{"version":3,"sources":["ValueObjects/maskFormat.js","ValueObjects/formatFone.js","ValueObjects/formatarCPF.js","assets/venda-liquida.png","assets/compra-liquida.png","assets/posicao-estoque.png","assets/receita-despesas.png","assets/i-gerente.png","assets/i-settings.png","assets/logoBancos/caixa.png","assets/i-group.png","assets/i-password.png","assets/i-chat.png","assets/i-user.png","state/reducer.js","pages/login/index.js","pages/recuperarSenha/index.js","pages/recuperarSenhaGerencial/index.js","pages/ativarConta/index.js","pages/ativarNovoEmail/index.js","pages/etiquetaServidor/manutencao.js","pages/etiquetaServidor/drawer.js","pages/etiquetaServidor/index.js","pages/importarPessoa/index.js","pages/antecipacao/manutencao.js","pages/antecipacao/drawer.js","pages/antecipacao/index.js","pages/semAcesso/index.js","pages/aliquotaSimplesNacional/manutencao.js","pages/aliquotaSimplesNacional/drawer.js","pages/aliquotaSimplesNacional/index.js","pages/home/index.js","pages/inicial/index.js","pages/dashboard/funcoes.js","pages/dashboard/vendaLiquida.js","pages/dashboard/compraLiquida.js","pages/dashboard/posicaoEstoque.js","pages/dashboard/receitasDespesas.js","pages/dashboard/index.js","pages/clientes/drawer.js","pages/clientes/index.js","pages/resumoCliente/tabEstatistica.js","pages/resumoCliente/tabUltimasCompras.js","pages/resumoCliente/index.js","pages/fornecedor/manutencao.js","pages/fornecedor/drawer.js","pages/fornecedor/index.js","pages/transportadores/drawer.js","pages/transportadores/index.js","pages/funcionario/manutencao.js","pages/funcionario/drawer.js","pages/funcionario/index.js","pages/vendedor/drawer.js","pages/vendedor/index.js","pages/tributacaoIcms/index.js","pages/tributacaoPisCofins/index.js","pages/ncm/tabDadosOrigemDestino.js","pages/ncm/manutencao.js","pages/ncm/drawer.js","pages/ncm/index.js","pages/marca/drawer.js","pages/marca/index.js","pages/marcaVeiculo/manutencao.js","pages/marcaVeiculo/drawer.js","pages/marcaVeiculo/index.js","pages/veiculo/manutencao.js","pages/veiculo/drawer.js","pages/veiculo/index.js","pages/manifestoEletronico/tabPercurso.js","pages/manifestoEletronico/tabDadosManifesto.js","components/filtroSeguroMDF/index.js","pages/manifestoEletronico/tabSegEProdPredominante.js","components/modals/modalDocsFiscais/index.js","pages/manifestoEletronico/manutencao.js","pages/manifestoEletronico/drawer.js","components/modals/modalReenviarMdfeSefaz/index.js","pages/manifestoEletronico/index.js","pages/grupoProdutos/drawer.js","pages/grupoProdutos/index.js","pages/subGrupo/drawer.js","pages/subGrupo/index.js","pages/produto/tabProdutoTributacao.js","pages/produto/tabListaPreco.js","pages/produto/tabGrade.js","pages/produto/tabImagem.js","pages/produto/tabLote.js","pages/produto/manutencao.js","pages/produto/drawer.js","pages/produto/index.js","pages/gradeProduto/tabItens.js","pages/gradeProduto/manutencao.js","pages/gradeProduto/drawer.js","pages/gradeProduto/index.js","pages/preco/tabItens.js","pages/preco/tabCliente.js","pages/preco/tabVendedor.js","pages/preco/manutencao.js","pages/preco/drawer.js","pages/preco/atualizarPreco.js","pages/preco/drawerPreco.js","pages/preco/index.js","pages/etiqueta/manutencao.js","pages/etiqueta/drawer.js","pages/etiqueta/drawerServidorImpressao.js","pages/etiqueta/index.js","pages/resumoProduto/index.js","pages/relatorioEtiqueta/manutencao.js","pages/relatorioEtiqueta/drawer.js","pages/relatorioEtiqueta/tabModeloFixo.js","pages/relatorioEtiqueta/tabModeloPersonalizado.js","pages/relatorioEtiqueta/index.js","pages/contaCorrente/tabAgenciaBancaria.js","pages/contaCorrente/tabEndereco.js","pages/contaCorrente/tabGerente.js","pages/contaCorrente/manutencao.js","pages/contaCorrente/drawer.js","pages/contaCorrente/index.js","pages/contaGerencial/tabConfigConta.js","pages/contaGerencial/manutencao.js","pages/contaGerencial/drawer.js","pages/contaGerencial/index.js","pages/operacaoFiscal/tabCfop.js","pages/operacaoFiscal/drawerContaGerencial.js","pages/operacaoFiscal/manutencao.js","pages/operacaoFiscal/drawer.js","pages/operacaoFiscal/importarOperacao.js","pages/operacaoFiscal/drawerImportar.js","pages/operacaoFiscal/index.js","pages/operacaoDebitoCredito/manutencao.js","pages/operacaoDebitoCredito/drawer.js","pages/operacaoDebitoCredito/index.js","pages/formaPagamento/tabCondicaoPagamento.js","pages/formaPagamento/tabBoleto.js","pages/formaPagamento/manutencao.js","pages/formaPagamento/drawer.js","ValueObjects/roundValue.js","pages/formaPagamento/index.js","pages/condicaoPagamento/tabFormaPagamento.js","pages/condicaoPagamento/tabParcelas.js","pages/condicaoPagamento/manutencao.js","pages/condicaoPagamento/drawer.js","pages/condicaoPagamento/index.js","pages/serieFiscal/manutencao.js","pages/serieFiscal/drawer.js","pages/serieFiscal/index.js","pages/historico/manutencao.js","pages/historico/drawer.js","pages/historico/index.js","pages/notaFiscal/drawer.js","pages/notaFiscalDevolucao/tabItens.js","pages/notaFiscalDevolucao/tabResumo.js","pages/notaFiscalDevolucao/tabNotasFiscais.js","pages/notaFiscalDevolucao/index.js","pages/notaFiscal/drawerDevolucao.js","pages/notaFiscal/debitoCredito.js","pages/notaFiscal/drawerDebitoCredito.js","pages/notaFiscal/modalDetalheNotaFiscal.js","pages/notaFiscalEntrada/fornecedorNFE.js","pages/notaFiscalEntrada/faturamentoNFE.js","pages/notaFiscalEntrada/resumoNFE.js","pages/notaFiscalEntrada/itensNFE.js","pages/notaFiscalEntrada/transportadorNFE.js","pages/notaFiscalEntrada/manutencao.js","pages/notaFiscal/drawerEntrada.js","pages/notaFiscal/index.js","services/webSql.js","components/modals/modalSelecionarGrade/index.js","pages/importacaoNotaFiscalEntrada/tabNotaFiscal.js","pages/importacaoNotaFiscalEntrada/drawerProduto.js","pages/importacaoNotaFiscalEntrada/tabItens.js","pages/importacaoNotaFiscalEntrada/tabTransporte.js","pages/importacaoNotaFiscalEntrada/tabFaturamento.js","pages/importacaoNotaFiscalEntrada/index.js","pages/importarNotaFiscalEntrada/index.js","pages/monitoramentoNfe/index.js","pages/notaFiscalTransferencia/tabNotaFiscalEmitida.js","pages/notaFiscalTransferencia/tabNotaFiscalRecebida.js","pages/notaFiscalTransferencia/tabItemTransferencia.js","pages/notaFiscalTransferencia/tabResumoTransferencia.js","pages/notaFiscalTransferencia/manutencao.js","pages/notaFiscalTransferencia/drawer.js","pages/notaFiscalTransferencia/index.js","pages/cartaCorrecaoNotaFiscal/index.js","pages/inutilizacaoNfe/index.js","components/filtroProdutoOrc/index.js","pages/ordemCompra/manutencao.js","pages/ordemCompra/drawer.js","pages/ordemCompra/tabFaturamento.js","pages/ordemCompra/tabItens.js","pages/ordemCompra/tabResumo.js","pages/ordemCompra/manutencaoRecebimento.js","pages/ordemCompra/drawerRecebimento.js","pages/ordemCompra/index.js","pages/orcamento/index.js","pages/statusPedido/manutencao.js","pages/statusPedido/drawer.js","pages/statusPedido/index.js","pages/pedidos/modalDetalhePedido.js","pages/pedidos/drawerNF.js","pages/pedidos/drawerTransferencia.js","pages/pedidos/index.js","pages/condicional/tabCondicionalEntrega.js","pages/condicional/tabCondicionalRetirada.js","pages/condicional/index.js","pages/valePresente/manutencao.js","pages/valePresente/drawer.js","pages/valePresente/index.js","pages/metas/manutencao.js","pages/metas/drawer.js","pages/metas/index.js","pages/comissao/manutencao.js","pages/comissao/drawer.js","pages/comissao/index.js","pages/consultaComissao/index.js","pages/contaReceber/manutencao.js","pages/contaReceber/drawer.js","pages/contaReceber/index.js","pages/recebimentoParcela/reparcelamentoParcelas.js","pages/recebimentoParcela/drawerReparcelamento.js","pages/recebimentoParcela/listaParcelasCliente.js","pages/recebimentoParcela/index.js","pages/contaPagar/manutencao.js","pages/contaPagar/drawer.js","pages/contaPagar/index.js","pages/pagamentoParcela/pagamento.js","pages/pagamentoParcela/drawerPagamento.js","pages/pagamentoParcela/index.js","pages/lancamentoCaixa/index.js","pages/fluxoCaixa/local/fluxoCaixaDiarioAnalitico.js","pages/fluxoCaixa/local/fluxoCaixaDiarioSintetico.js","pages/fluxoCaixa/local/fluxoCaixaMensalAnalitico.js","pages/fluxoCaixa/local/fluxoCaixaMensalSintetico.js","pages/fluxoCaixa/local/fluxoCaixaAnualAnalitico.js","pages/fluxoCaixa/local/fluxoCaixaAnualSintetico.js","pages/fluxoCaixa/contaGerencial/fluxoCaixaDiarioAnalitico.js","pages/fluxoCaixa/contaGerencial/fluxoCaixaDiarioSintetico.js","pages/fluxoCaixa/index.js","pages/conciliacaoCartoes/index.js","pages/cheque/manutencao.js","pages/cheque/drawer.js","pages/cheque/index.js","pages/boleto/index.js","pages/remessa/manutencao.js","pages/remessa/drawer.js","pages/remessa/index.js","pages/retornoBancarioLista/index.js","pages/retornoBancario/index.js","pages/armazemEstoque/manutencao.js","pages/armazemEstoque/drawer.js","pages/armazemEstoque/index.js","pages/estoque/outrasFiliais.js","pages/estoque/armazem.js","pages/estoque/index.js","pages/estoqueManutencao/custosInventario.js","pages/estoqueManutencao/manutencao.js","pages/estoqueManutencao/drawer.js","pages/estoqueManutencao/index.js","pages/inventario/log.js","pages/inventario/itens.js","pages/inventario/manutencao.js","pages/inventario/drawer.js","pages/inventario/index.js","pages/matrizFilial/tabFilial.js","pages/matrizFilial/tabEndereco.js","pages/matrizFilial/tabOutrasInformacoes.js","pages/matrizFilial/tabSenhaGerencial.js","pages/matrizFilial/manutencao.js","pages/matrizFilial/drawer.js","pages/matrizFilial/index.js","pages/configuracaoNfeNfce/index.js","pages/parametrosLocal/index.js","pages/acaoUsuario/index.js","pages/gerenciarPdv/index.js","pages/limiteCreditoCliente/tabRespostas.js","pages/limiteCreditoCliente/manutencao.js","pages/limiteCreditoCliente/drawer.js","pages/limiteCreditoCliente/index.js","pages/contador/index.js","pages/plano/planos.js","pages/plano/index.js","pages/bandeiraCartaoEmpresa/manutencao.js","pages/bandeiraCartaoEmpresa/drawer.js","pages/bandeiraCartaoEmpresa/index.js","pages/centroDistribuicao/tabEndereco.js","pages/centroDistribuicao/tabResponsavel.js","pages/centroDistribuicao/manutencao.js","pages/centroDistribuicao/drawer.js","pages/centroDistribuicao/index.js","pages/relatorios/index.js","pages/analiseInadimplencia/index.js","pages/personalizacaoRelatorios/manutencao.js","pages/personalizacaoRelatorios/drawer.js","pages/personalizacaoRelatorios/index.js","pages/relatorios/filtrosRelatorio.js","pages/usuario/tabHorariosAcessoUsuario.js","pages/usuario/tabPermissoesUsuario.js","pages/usuario/tabFiliaisUsuario.js","pages/usuario/manutencao.js","pages/usuario/drawer.js","pages/usuario/index.js","pages/grupoUsuario/tabHorariosAcessoGrupo.js","pages/grupoUsuario/tabPermissoesGrupo.js","pages/grupoUsuario/tabUsuarioGrupo.js","pages/grupoUsuario/manutencao.js","pages/grupoUsuario/drawer.js","pages/grupoUsuario/index.js","pages/efdIcmsIpi/index.js","pages/notificacao/index.js","pages/parametrosEmpresa/tabPdv.js","pages/parametrosEmpresa/index.js","pages/analiseInadimplencia/analiseInadimplenciaCli.js","pages/novaEmpresa/index.js","pages/novaEmpresa/ativarUsuarioPlano.js","pages/camposPersonalizados/manutencao.js","pages/camposPersonalizados/drawer.js","pages/camposPersonalizados/index.js","pages/renovarPlano/index.js","pages/relacionamentoFornecedorProduto/manutencao.js","pages/relacionamentoFornecedorProduto/drawer.js","pages/relacionamentoFornecedorProduto/index.js","pages/restaurante/tabEndereco.js","pages/restaurante/manutencao.js","pages/restaurante/drawer.js","pages/restaurante/index.js","pages/hotel/tabEndereco.js","pages/hotel/manutencao.js","pages/hotel/drawer.js","pages/hotel/index.js","pages/testes/index.js","pages/manutencaoProduto/index.js","pages/vigenciaFiscal/manutencao.js","pages/vigenciaFiscal/drawer.js","pages/vigenciaFiscal/index.js","pages/tabelaRetencao/manutencao.js","pages/tabelaRetencao/drawer.js","pages/tabelaRetencao/index.js","services/apiErp.js","pages/loginCatalogo/selecaoEmpresaCat.js","pages/loginCatalogo/esqueciSenha.js","pages/loginCatalogo/index.js","pages/InicialCatalogo/index.js","pages/catAcessosExterno/index.js","pages/catPecasExterno/consultaPecas.js","pages/catPecasExterno/drawerConsulta.js","pages/catalogosExterno/listaGrupoSubgrupo.js","pages/catalogosExterno/index.js","pages/catPecasExterno/index.js","pages/usuarioCatalogo/tabPermissoes.js","pages/usuarioCatalogo/manutencao.js","pages/usuarioCatalogo/drawer.js","pages/usuarioCatalogo/index.js","pages/cotacaoCatalogo/infosPedido.js","pages/cotacaoCatalogo/drawer.js","pages/cotacaoCatalogo/index.js","pages/cadastroCatalogo/manutencao.js","pages/cadastroCatalogo/drawer.js","pages/cadastroCatalogo/index.js","pages/downloadXml/index.js","pages/kitComposicao/manutencao.js","pages/kitComposicao/drawer.js","pages/kitComposicao/index.js","pages/balanca/index.js","components/detalheRecibo/index.js","pages/consultaRecebimento/modalDetalheRecibo.js","pages/consultaRecebimento/index.js","pages/homeCatalogo/index.js","App.js","serviceWorker.js","index.js","services/servidorImpressora.js","services/CarrinhoDB.js","services/calculaImposto.js","state/index.js","services/funcoes.js","pages/tabNotaFiscal/tabItens.js","pages/tabNotaFiscal/tabTransporte.js","pages/tabNotaFiscal/tabVeiculo.js","pages/tabNotaFiscal/tabVolumes.js","pages/tabNotaFiscal/tabValores.js","assets/i-financeiro.png","services/funcoesIE.js","assets/i-endereco.png","components/drawerVendedores/index.js","assets/logoGestor.png","services/auth.js","components/modals/modalAdicionarUsuario/index.js","components/modals/modalCalcularLimite/index.js","components/modals/modalCartaCorrecaoNotaFiscal/index.js","components/modals/modalCfop/index.js","components/modals/modalContaGerencial/index.js","components/modals/modalContatoCliente/index.js","components/modals/modalDefinirHorario/index.js","components/modals/modalEmail/index.js","components/modals/modalEmpresaFilial/index.js","components/modals/modalEmpresaFilialBusca/index.js","components/modals/modalEndereco/index.js","components/modals/modalGerarComissao/index.js","components/modals/modalExibirAcaoUsuario/index.js","components/modals/modalGerarRemessa/index.js","components/modals/modalInstrucaoRemessa/index.js","components/modals/modalInutilizacaoNfe/index.js","components/modals/modalListaPreco/index.js","components/modals/modalLoteProduto/index.js","components/modals/modalManifestoDestinatario/index.js","components/modals/modalNacionalidade/index.js","components/modals/modalNcm/index.js","pages/cheque/infoCheque.js","components/modals/modalOcorrenciaCheque/index.js","components/modals/modalOcupacao/index.js","components/modals/modalOrgaoSubjacente/index.js","components/modals/modalOutroContato/index.js","components/modals/modalPessoaAutorizada/index.js","components/modals/modalPlano/index.js","components/modals/modalProdutoCondicional/index.js","components/modals/modalTelefone/index.js","components/modals/modalTributacaoIcms/index.js","components/modals/modalVeiculo/index.js","components/modals/modalCancelamentoNfe/index.js","components/modals/modalReenviarSefaz/index.js","components/modals/modalDevolucao/index.js","components/modals/modalEnvioNFeEmail/index.js","components/modals/modalAjudaRejeicaoNfe/index.js","services/funcoesEtiqueta.js","components/modals/modalImprimirEtiquetas/index.js","components/modals/modalGradeOrdemCompra/index.js","components/modals/modalDetalhePedido/index.js","components/modals/modalDevolucaoCondicional/index.js","components/modals/modalDetalheOrcamento/tabItens.js","components/modals/modalDetalheOrcamento/tabFormaPagamento.js","components/modals/modalDetalheOrcamento/index.js","components/modals/modalGradeProduto/index.js","components/modals/modalSenhaLiberacao/index.js","components/modals/modalListarParcelas/index.js","components/modals/modalEditarParcelaContaReceber/index.js","components/modals/modalImportarElementosFormulario/index.js","components/modals/modalImportarElementosCamposAdicionais/index.js","components/modals/modalPersonalizacaoFormulario/index.js","components/modals/modalPersonalizacaoFormularioFiltros/index.js","components/modals/modalEditarRecebimentoParcela/index.js","components/modals/modalBandeiraCartao/index.js","components/modals/modalEditarPDV/index.js","components/modals/modalManutencaoNota/index.js","components/modals/modalContaCorrente/index.js","components/modals/modalTaxasCartaoCredito/index.js","components/modals/modalAntecipacaoClienteFornecedor/index.js","components/modals/modalSelectLote/index.js","components/modals/modalDevolucaoSubstituicaoTributaria/index.js","components/modals/modalListaProduto/index.js","components/modals/modalDetalhesOrdemCompra/index.js","components/modals/modalEstornoNfe/index.js","components/modals/modalParcelasPendentes/index.js","components/modals/modalAliquotaSimplesNacional/index.js","components/modals/modalItemInventario/index.js","components/modals/modalGrade/modalGrade.js","components/modals/modalConfirmacaoTransferencia/index.js","components/modals/modalEditarItemDevolucao/index.js","components/modals/modalEditarNotaFiscalEntrada/index.js","components/modals/modalEditarCFOP/index.js","components/modals/modalAntecipacaoDevolucao/index.js","components/modals/modalContrato/index.js","components/modals/modalCheque/index.js","components/modals/modalRetornaContaGerencial/index.js","components/modals/modalInutilizarNota/index.js","components/modals/modalProdutoGrade/index.js","components/modals/modalMapa/index.js","components/modals/modalRetencao/index.js","components/modals/modalSelecionarClienteCatalogo/index.js","components/modals/modalExibeImagem/index.js","components/modals/modalManutencaoPecasCat/index.js","components/modals/modalGradeProdutoImportacao/index.js","components/modals/modalSelecionarOrcamento/tabItensSelecionar.js","components/modals/modalSelecionarOrcamento/tabFormaPagamentoSelec.js","components/modals/modalSelecionarOrcamento/index.js","components/modals/modalCarregando/index.js","components/modals/modalGradeEstoque/index.js","assets/i-produto.png","assets/i-grade.png","components/comboData/index.js","pages/condicional/manutencao.js","pages/condicional/drawer.js","services/emitter.js","components/modals/modalDadosPeca/index.js","pages/pedidos/tabItens.js","components/drawerTransportadores/index.js","pages/pedidos/tabTransporte.js","pages/pedidos/tabFaturamento.js","pages/pedidos/manutencao.js","pages/pedidos/drawer.js","pages/notaFiscal/tabFaturamento.js","pages/notaFiscal/tabResumo.js","pages/notaFiscal/manutencao.js","services/apiPayer.js","assets/i-car.png","assets/i-info.png","assets/i-boleto.png","pages/grupoCatalogo/index.js","pages/condicional/drawerNFExtra.js","components/inputCpfCnpj/index.js","pages/condicional/devolucao.js","pages/condicional/drawerDevolucao.js","components/selectPaginado/index.js","pages/login/selecaoEmpresa.js","pages/login/esqueciSenha.js","assets/i-saida.png","components/modals/modalProcessoLento/index.js","pages/lancamentoCaixa/lancamentoTransferencia.js","pages/lancamentoCaixa/manutencao.js","components/inputEmail/index.js","pages/marca/manutencao.js","pages/grupoProdutos/manutencao.js","pages/subGrupo/manutencao.js","pages/vendedor/manutencao.js","pages/transportadores/manutencao.js","pages/clientes/manutencao.js","pages/orcamento/tabItens.js","pages/orcamento/tabFaturamento.js","pages/orcamento/manutencaoOrc.js","pages/orcamento/drawer.js","pages/tributacaoPisCofins/tabEntrada.js","pages/tributacaoPisCofins/tabSaida.js","pages/tributacaoPisCofins/manutencao.js","pages/tributacaoPisCofins/drawer.js","pages/tributacaoIcms/manutencao.js","pages/tributacaoIcms/drawer.js","pages/etiqueta/manutencaoEtiqueta.js","pages/etiqueta/servidorImpressao.js","ValueObjects/formatDate.js","assets/i-telefone.png","components/tabelaDados/index.js","assets/i-tranferencia.png","assets/i-dados.png","assets/i-cartao.png","components/modals/modalManutencaoPecasCat/UploadFoto.js","assets/i-contato.png","pages/CarrinhoCatalogo/index.js","components/editorFormulario/itemFormulario.js","components/editorFormulario/tiposElementosFormulario.js","components/header/index.js","components/linkNav/index.js","components/menu/index.js","components/breadcrumbPage/index.js","components/modulos/index.js","components/perfil/index.js","components/selects/selectProduto/index.js","components/filtroSearch/index.js","components/filtroAtivo/index.js","components/filtroOrdenacao/index.js","components/botaoNovo/index.js","components/pesquisaOrdenacao/index.js","components/breadIncluirDados/index.js","components/pesquisaOrdenacaoData/index.js","components/filtroData/index.js","components/modals/modalDetalhesLoteNfi/index.js","components/detalheNotaFiscal/tabDetalheItens.js","components/detalheNotaFiscal/tabDetalheIFormaPagamento.js","components/detalheNotaFiscal/tabDetalheTotalizadores.js","components/detalheNotaFiscal/tabNotaReferenciada.js","components/detalheNotaFiscal/index.js","components/detalhePedido/tabDetalheItens.js","components/detalhePedido/tabDetalheIFormaPagamento.js","components/detalhePedido/index.js","components/formulario/index.js","components/selects/selectAll/index.js","components/selectIncluir/index.js","components/editorFormularioRelatorio/itemFormulario.js","components/editorFormularioRelatorio/tiposElementosFormulario.js","components/editorFormularioRelatorio/index.js","components/editorCamposPersonalizados/itemFormulario.js","components/editorCamposPersonalizados/tiposElementosFormulario.js","components/editorCamposPersonalizados/index.js","components/formularioDinamico/index.js","components/filtroProdutoVnc/index.js","services/navigation.js","components/drawerNav/index.js","components/drawerLancamentoTransferencia/index.js","components/drawerManutencaoCaixa/index.js","components/drawerPaginasAbertas/index.js","components/tabela/index.js","components/formasPagamento/index.js","components/formasPagamentoRecebimento/index.js","components/infoNotaNFe/index.js","components/infoProdutoGrade/index.js","components/precoGrade/pageGrade.js","components/pesquisaGlobal/pessoas/TabTodas.js","components/pesquisaGlobal/pessoas/TabCliente.js","components/pesquisaGlobal/pessoas/TabVendedor.js","components/pesquisaGlobal/pessoas/TabFornecedor.js","components/pesquisaGlobal/pessoas/TabFuncionario.js","components/pesquisaGlobal/produto.js","components/pesquisaGlobal/notaFiscal.js","components/pesquisaGlobal/pedidos.js","components/pesquisaGlobal/orcamento.js","components/pesquisaGlobal/condicional.js","components/pesquisaGlobal/contaReceber.js","components/pesquisaGlobal/contaPagar.js","components/pesquisaGlobal/tributacao/icms.js","components/pesquisaGlobal/tributacao/piscofins.js","components/pesquisaGlobal/index.js","components/filtroProdutoNfi/index.js","components/filtroProdutoPdi/index.js","components/filtroProdutoNtf/index.js","components/filtroProdutoOrcamento/index.js","components/editarTabela/index.js","components/inputPhone/index.js","components/lancamentoCheque/index.js","components/slideLogin/index.js","components/aberturaChamado/index.js","components/editar/index.js","components/excluir/index.js","components/duplicar/index.js","components/adicionar/index.js","components/imprimir/index.js","components/exportar/index.js","components/inutilizar/index.js","components/importarXML/index.js","components/emitirNotaFiscal/index.js","components/emitirNotaFiscalDebito/index.js","components/cancelarEstorno/index.js","components/emitirNotaFiscalTransferencia/index.js","components/lancamentoEntrada/index.js","components/lancamentoSaida/index.js","components/lancamentoTransferencia/index.js","components/download/index.js","components/gerarEfdIcmsIpi/index.js","components/planos/index.js","components/botaoAbrirChamado/index.js","components/drawerCliente/index.js","components/pesquisaCamposPersonalizados/index.js","components/pesquisaAvancada/index.js","components/breadcrumbAbrirChamado/index.js","components/inputCep/index.js","components/inputPercentual/index.js","components/emitirNotaFiscalEntrada/index.js","components/sincronizarCatalogo/index.js","pages/fecharPedidoCatalogo/itensPedidoCat.js","pages/fecharPedidoCatalogo/index.js","services/funcoesGestor.js","components/drawerPedidoCat/index.js","components/drawerGrupoCat/index.js","components/filtroProdutoKit/index.js","assets/logoGestorWhite.png","components/editorFormulario/index.js","services/permissoes.js","assets/i-suporte.png","assets/i-formas.png","assets/i-alfinete.png","assets/i-bandeira.png","assets/i-bill.png","assets/i-code.png","assets/i-storage.png","assets/i-banco.png","services/api.js","pages/pessoas/endereco.js","pages/pessoas/orgaoSubjacente.js","pages/pessoas/email.js","pages/pessoas/telefone.js","pages/pessoas/ocupacao.js","pages/pessoas/nacionalidade.js","pages/pessoas/outrosContatos.js","pages/pessoas/pessoasAutorizadas.js","pages/pessoas/veiculos.js","actions/index.js","components/selects/selectPaginacao/index.js","components/data/index.js","assets/Contrato_NewERP.pdf","assets/i-subjacentes.png","assets/i-email.png","assets/i-ocupacoes.png","assets/i-nacionalidade.png","assets/i-pessoas-autorizadas.png","assets/i-print.png","assets/i-servidor.png","assets/i-new-pdv.png","assets/iconesModulos/vendas.png","assets/iconesModulos/compra.png","assets/iconesModulos/pdv.png","assets/iconesModulos/financeiro.png","assets/iconesModulos/contabilidade.png","assets/iconesModulos/industria.png","assets/iconesModulos/catalogoEletronico.png","assets/iconesModulos/pedidosOs.png","assets/iconesModulos/aReceber.png","assets/iconesModulos/aPagar.png","assets/iconesModulos/contaCorrente.png","assets/iconesModulos/caixaBanco.png","assets/iconesModulos/contabil.png","assets/iconesModulos/fiscal.png","assets/iconesModulos/impostos.png","assets/iconesModulos/sped.png","assets/iconesModulos/indicadores.png","assets/iconesModulos/mdfe.png","assets/iconesModulos/utilitarios.png","services/apiWeb.js","components/inputPreco/index.js","ValueObjects/formatNumber.js","assets/img-home.jpg","assets/img-home-01.jpg","assets/img-home-02.jpg","assets/img-home-03.jpg","assets/i-sem-acesso.png"],"names":["maskFormat","data","text","cpfCnpj","length","onlyNumbers","replace","result","format","split","numbers","item","index","i","num","caracter","formatFone","valor","retorno","toString","slice","FormatarCPF","cpf","reducer","state","action","type","drawerActions","CHANGE","ui","manutencaoActions","manutencao","listagemActions","listagem","tributacaoActions","tributacao","parametrosEmpresaActions","parametrosEmpresa","selectPaginadoActions","listaSelectPaginacao","listaTabelaDadosActions","listaTabelaDados","FORMULARIO","Login","useState","formularioExibir","setFormularioExibir","carregando","setCarregando","Form","useForm","formulario","useEffect","localStorage","removeItem","className","Content","justify","align","gutter","span","src","require","default","width","alt","Text","form","layout","name","initialValues","remember","size","onFinish","values","senha","encodeBase64","api","post","then","res","status","token","dadosUsuario","parseToken","setNomeUsuario","parseInt","getIdUsuario","UsuarioID","removerTelaAnt","setIdUsuario","setEmailUsuario","email","login","removerLocal","catch","err","response","notification","error","message","description","finally","onFinishFailed","errorInfo","console","log","Item","rules","required","placeholder","prefix","MailOutlined","Password","UnlockFilled","valuePropName","htmlType","loading","SendOutlined","to","SmileOutlined","onClick","onAcessar","DesktopOutlined","Link","href","target","underline","PhoneOutlined","EnvironmentOutlined","RecuperarSenha","usuarioEmail","setUsuarioEmail","validaHash","setValidaHash","voltarLogin","setTimeout","window","location","atob","get","warn","erro","getFieldValue","usu_senha","usu_confirmaSenha","dados","novaSenha","btoa","usu_email","put","success","label","dependencies","validator","_","value","Promise","reject","Error","resolve","RecuperarSenhaGerencial","AtivarConta","setDadosUsuario","senhaValida","setSenhaValida","validarSenha","trim","setFieldsValue","letrasMinusculas","test","letrasMaiusculas","numeros","url","substr","lastIndexOf","usu_ativo","Modal","warning","title","content","onOk","carregarUsuario","Title","level","usu_nome","onChange","disabled","ativarUsuario","AtivarNovoEmail","history","useHistory","selecionarEntidade","setSelecionarEntidade","entidadeUsuario","subTitle","extra","push","height","placement","closable","onClose","visible","grid","xs","sm","md","lg","xl","xxl","dataSource","renderItem","hoverable","style","textAlign","cover","logo","iconEntidade","entidade","empresa_id","id","mensagem","Meta","nomefantasia","ManutencaoEtiquetaServidor","aoSalvar","useStateValue","record","operacao","met_id","hidden","step","min","initialValue","TextArea","rows","DrawerEtiquetaServidor","dispatch","fecharDrawer","resetFields","showDrawer","ordem","closeIcon","MinusOutlined","footer","confirm","icon","ExclamationCircleOutlined","okText","cancelText","centered","CloseOutlined","submit","SaveOutlined","EtiquetaServidor","modalExcluirModelo","registro","delete","removerModelo","opcoesOrdenacao","colunas","render","met_descricao","met_colunas","color","dataIndex","key","fixed","EditFilled","editarModelo","DeleteOutlined","ImportarPessoa","arquivoBase64","setArquivoBase64","arquivo","setArquivo","setEntidade","apiArquivo","indexOf","listaEntidades","props","multiple","showUploadList","maxCount","beforeUpload","file","getBase64","base64","excluir","getEntidadeImp","setEntidadeImp","orientation","plain","Dragger","CloudUploadOutlined","t","class","viewBox","version","xmlns","d","Value","validarImportacao","Message","download","ManutencaoAntecipacao","acf_entradasaida","conteudo","cf","Option","pes_id","pes_nome","DrawerAntecipacao","dataPesquisa","AntecipacaoClienteForncedor","open","setOpen","parametrosValePresente","Date","toLocaleDateString","dataAtual","aplicarFiltrosAvancados","filtros","tipoPessoa","DataInicial","moment","DataFinal","outrosFiltros","_tipoPessoa","getFieldsValue","modalExcluirVale","ValePresente","acf_valepresente","FormatNumber","acf_valor","acf_nomepresenteado","valePresente","acf_id","imprimir","linkApi","eventoAoAlterar","FormatDate","Group","accordion","ghost","destroyInactivePanel","Panel","showArrow","block","ArrowUpOutlined","ArrowDownOutlined","SearchOutlined","acf_datalancamento","valorUtilizado","saldoAntecipacao","PrinterOutlined","modalImprimir","SemAcesso","Planos","ManutencaoAliquotaSimples","getMonth","getFullYear","items","asn_mes","asn_ano","buscarDados","enderecoUrl","asn_id","JSON","stringify","max","enterButton","defaultValue","formatter","parser","DrawerAliquotaSimples","AliquotaSimples","possuiAliquotaMes","setPossuiAliquotaMes","retornaMesExtenso","mes","itens","toUpperCase","asn_percaliquota","Home","getEmpresa","empRegimeTributario","emp_regimetributario","empEnquadramentoFiscal","emp_enquadramentofiscal","markupProduto","par_markupproduto","par_diastoleranciacobrancajuro","par_percjuromesparcelavencida","getItem","setNavegacao","geral","setPermissoes","setStatusPlano","exact","path","component","Inicial","Dashboard","Clientes","ResumoCliente","Fornecedor","Transportador","Funcionario","Vendedor","TributacaoIcms","TributacaoPisCofins","NcmSubtituicaoTributaria","Marca","MarcaVeiculo","Veiculo","ManifestoEletronico","GrupoProduto","SubGrupo","Produto","GradeProduto","Preco","Etiqueta","ResumoProduto","RelatorioEtiqueta","ContaCorrente","ContaGerencial","OperacaoFiscal","OperacaoDebitoCredito","FormaPagamento","CondicaoPagamento","SerieFiscal","Historico","NotaFiscal","ImportarNotaFiscalEntrada","MonitoramentoNfe","NotaFiscalTransferencia","NotaFiscalDevolucao","ImportacaoNotaFiscalEntrada","CartaCorrecaoNotaFiscal","InutilizacaoNfe","OrdemCompra","Orcamento","Pedidos","StatusPedido","Condicional","Metas","Comissao","ConsultaComissao","ContaReceber","RecebimentoParcela","ContaPagar","PagamentoParcela","LancamentoCaixa","LancamentoCaixaManutencao","LancamentoCaixaTransferencia","FluxoCaixa","ConciliacaoCartoes","Cheque","Boleto","Remessa","RetornoBancario","RetornoBancarioLista","ArmazemEstoque","Estoque","EstoqueManutencao","Inventario","MatrizFilial","ConfiguracaoNfeNfce","GerenciarPdv","LimiteCreditoCliente","Contador","Plano","BandeiraCartaoEmpresa","CentroDistribuicao","Relatorios","AnaliseInadimplencia","PersonalizacaoRelatorios","CamposPersonalizados","FiltrosRelatorio","Usuario","GrupoUsuario","EfdIcmsIpi","Notificacao","ParametrosEmpresa","RelacionamentoFornecedorProduto","Restaurante","Hotel","ManutencaoProduto","VigenciaFiscal","TabelaRetencao","ParametrosLocal","AcaoUsuario","DownloadXml","KitComposicao","Balanca","ConsultaRecebimento","setDataAtual","dataCalendar","setInterval","UserOutlined","getHours","getNomeUsuario","getNomeEmpresa","getNomeLocal","fullscreen","colors","numberFormatter","casasDecimais","toLocaleString","currency","minimumFractionDigits","maximumFractionDigits","dateFormatter","dateFormatterMes","dateFormatterAnoMes","renderCustomizedLabelPie","cx","cy","midAngle","innerRadius","outerRadius","percent","RADIAN","Math","PI","radius","x","cos","y","sin","fill","textAnchor","dominantBaseline","toFixed","RenderChartPie","resultSet","dataKey","nameKey","ResponsiveContainer","PieChart","margin","top","bottom","Pie","isAnimationActive","labelLine","legendType","map","e","Cell","Legend","verticalAlign","Tooltip","parseFloat","TableRenderer","columns","locale","emptyText","CartesianChart","children","ChartComponent","left","right","XAxis","tickFormatter","YAxis","v","CartesianGrid","labelFormatter","CartesianChartBar","legend","cursor","ComponentSpin","VendaLiquida","graficoSelecionado","formFiltros","vendaLiquidaDiaria","setVendaLiquidaDiaria","totalizadores","setTotalizadores","pessoaFisicaJuridica","setPessoaFisicaJuridica","topVendedores","setTopVendedores","vendedores","setVendedores","vendaLiquidaCidades","setVendaLiquidaCidades","vendaLiquidaClientes","setVendaLiquidaClientes","listaLocaisUsuario","setListaLocaisUsuario","carregandoTotalizadores","setCarregandoTotalizadores","carregandoVendaDiaria","setCarregandoVendaDiaria","carregandoFisicaJuridica","setCarregandoFisicaJuridica","carregandoVendedor","setCarregandoVendedor","carregandoCliente","setCarregandoCliente","carregandoCidade","setCarregandoCidade","carregarDados","dataInicial","dataFinal","locais","local","join","mesAnterior","getDate","ArrowLeftOutlined","setGraficoSelecionado","onBlur","getLocal","mode","allowClear","showSearch","optionFilterProp","filter","ativa","loc_ativo","Local","loc_id","loc_descricao","vlr_vendaliquida","vlr_total_venda","vlr_total_devvenda","LineChart","Line","stroke","vendedor","qtde_total","valor_total","BarChart","Bar","LabelList","position","cliente","cidade","uf","CompraLiquida","compraLiquidaDiaria","setCompraLiquidaDiaria","topFornecedores","setTopFornecedores","compraLiquidaCidades","setCompraLiquidaCidades","compraLiquidaFornecedor","setCompraLiquidaFornecedor","carregandoCompraDiaria","setCarregandoCompraDiaria","carregandoFornecedor","setCarregandoFornecedor","vlr_compraliquida","vlr_total_compra","vlr_total_devcompra","fornecedor","PosicaoEstoque","posicaoEstoqueMarca","setPosicaoEstoqueMarca","posicaoEstoqueGrupo","setPosicaoEstoqueGrupo","topGrupo","setTopGrupo","topMarca","setTopMarca","topProduto","setTopProduto","carregandoGrupo","setCarregandoGrupo","carregandoMarca","setCarregandoMarca","carregandoProduto","setCarregandoProduto","marcas","mar_id","grupos","gru_id","subgrupos","sgp_id","qtde_saldo_final","nameLabel","nameValue","onChangeFunction","vlr_custo_ultima_compra","vlr_custo_informado","vlr_custo_medio","grupo","marca","ReceitasDespesas","receitaDespesaDiaria","setReceitaDespesaDiaria","resultadoPorTipoConta","setResultadoPorTipoConta","resultadoCategoria","setResultadoCategoria","resultadoContaGerencial","setResultadoContaGerencial","comparativo12Meses","setComparativo12Meses","carregandoRecDespDiaria","setCarregandoRecDespDiaria","carregandoTipoConta","setCarregandoTipoConta","carregandoCategoria","setCarregandoCategoria","carregandoContaGerencial","setCarregandoContaGerencial","carregandoRecDespAnual","setCarregandoRecDespAnual","tipoConta","mesAtual","ultimosDozeMeses","vlr_resultado","vlr_total_receita","vlr_total_despesa","barSize","categoria_conta_gerencial","conta_gerencial","backgroundImage","DrawerCliente","editando","formCliente","filtro","setEditando","isObjetoDiffVazio","limparAoEditar","nameForm","formPesquisaAvancada","campoPerSelecionado","tipoFiltroPersonalizado","_ativo","clienteAtivo","filtroPersonalizado","filtroCampoAdicional","cap_nomeelemento","filtro_0","cap_id","cap_tipoelemento","condicao","modalExcluirRegistro","cli_codigo","cli_id","modalInativarRegistro","excluirRegistro","inativarRegistro","menuTable","parametros","nome","urlRel","PathRelatorio","Parametros","Tipo","NomeRelatorio","byteCharacters","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","Blob","fileURL","URL","createObjectURL","dadosBase64","nomeArquivo","link","document","createElement","click","fileDownloadName","alert","imprimirCliente","EyeFilled","overlay","trigger","preventDefault","MoreOutlined","funcaoRetorno","ret","expressao","funcaoLimpar","telaFiltro","cli_ativo","pej_nomefantasia","pef_apelido","pef_cpf","pej_cnpj","MaskFormat","psc_numero","FormatFone","log_logradouro","pee_numero","bai_nome","cep_cep","cid_descricao","est_sigla","pef_datanascimento","pej_datafundacao","editarCliente","EditOutlined","expandir","pef_rg","pej_inscricaoestadual","pem_email","TabEstatistica","dadosCliente","openModalDetalhePedido","setOpenModalDetalhePedido","pedidoId","setPedidoId","openModalDetalheOrcamento","setOpenModalDetalheOrcamento","openModalProdutoCondicional","setOpenModalProdutoCondicional","totalParcAtraso","setTotalParcAtraso","resumoFinanceiro","setResumoFinanceiro","dadosCondicionais","setDadosCondicionais","dadosCrediario","setDadosCrediario","dadosPedido","setDadosPedido","dadosPedidosAbertos","setDadosPedidosAbertos","limiteCredito","setLimiteCredito","dadosOrcamento","dadosCheque","setDadosCheque","valorPercentual","setValorPercentual","openCondicional","setOpenCondicional","openPedidos","setOpenPedidos","openOrcamento","setOpenOrcamento","dadosListaOrcamento","dadosCondicionaisAbertas","setDadosCondicionaisAbertas","dadosItensCondicional","setDadosItensCondicional","orcamentoId","setOrcamentoId","viewCondicional","viewPedidos","viewOrcamento","perc","vlr_ParcelasAbertas","vlr_LimiteCredito","toISOString","vlr_ParcelasEmAtraso","mediaDiasAtraso","total_Parcelas","total_Parcelas_Atraso","total_Parcelas_Adiantadas","vlr_TotalVendas","vlr_TotalVendasAVista","vlr_TotalVendasAPrazo","vlr_ParcelasAReceber","percentual_Vendas_Condicionais","qtde_Condicionais","vlr_Total_Condicionais","qtde_Condicionais_Abertos","percentual_Vendas_Pedidos","qtde_Pedidos","vlr_Total_Pedidos","qtde_Pedidos_Abertos","vnc_numero","vnc_datalancamento","vnc_prazoretorno","vnc_totalitens","abrirModalItens","vnc_valortotal","stp_descricao","stp_corstatus","ped_numero","ped_datainclusao","ped_dataprevisaoentrega","ped_totalitens","ped_id","pdi_valortotal","percentual_Vendas_Orcamentos","qtde_Orcamentos","vlr_Total_Orcamentos","qtde_Orcamentos_Abertos","qtde_Cheques","statusCheques","orc_numero","orc_datainclusao","orc_datavalidade","oit_qtdtotalitens","orc_id","oit_vlrtotalitens","exibirModalProdutoCondicional","fecharModalProdutoCondicional","dadosItens","exibirModalDetalhesPedido","fecharModalDetalhesPedido","exibirModalDetalhesOrcamento","fecharModalDetalhesOrcamento","TabUltimasCompras","dadosNotasFiscais","setDadosNotasFiscais","dadosItensNotas","setItensNotas","dadosGrupo","setDadosGrupo","listarNotasFiscais","sequencia","forEach","ordemNota","ser_serie","ntf_numero","ntf_dataemissao","ntf_totalitens","ntf_totalnota","scroll","pro_descricao","nfi_qtde","nfi_valordesconto","nfi_valorfrete","nfi_valortotalitem","gru_nome","gru_qtdetotalgrupo","gru_valortotalgrupo","expandable","expandedRowRender","listaTotSubGrupo","pagination","showHeader","sgp_nome","sgp_qtdetotalsubgrupo","sgp_valortotalsubgrupo","expandIcon","expanded","onExpand","openCliente","setOpenCliente","abaSelecionada","setAbaSelecionada","setDadosCliente","telefone","setTelefone","setEmail","endereco","setEndereco","setDataIncial","setDataFinal","clienteId","setClienteId","exibirOutrosClientes","carregarDatas","periodo","periodoData","setMonth","setDate","setItem","telefones","psc_principal","emails","pem_emailprincipal","enderecos","pee_enderecoprincipal","alterarCliente","cli","cli_datainclusao","cli_dataalteracao","formatarCpf","formatarCnpj","activeKey","tab","TabPane","ManutencaoFornecedor","pessoaJuridica","setPessoaJuridica","dadosEstrangeiro","setDadosEstrangeiro","regimeTributario","setRegimeTributario","setCpfCnpj","elementosFormulario","setElementosFormulario","listaCidades","setListaCidades","filtroCdd","setFiltroCdd","desabilitarCfpCnpj","setDesabilitarCpfCnpj","setMask","setFocusCpfCnpj","element","getElementById","focus","for_id","valores","pes_fisicajuridica","for_datainclusao","for_dataalteracao","pes_datainclusao","pes_dataalteracao","pef_dataalteracao","pef_rgdataexpedicao","id_rguf","est_id","for_regimetributariofiscal","listaFornecedor","lista","pef_rguf","campo","carregarCidades","pef_codigocidadenascimento","_cpfCnpj","HasValue","validarCpf","validarCnpj","UfEstado","validarEmail","carregaDadosCamposAdicionais","camposPersonalizados","fornecedorcampopersonalizado","elemento","f","trataSetaDadosFormularioDinamico","fcp_valor","receitaWS","consultaCNPJ","situacao","dadosForm","efr","pes_orgaopublico","abertura","dia","substring","ano","fantasia","listaEnderecos","tipoEndereco","numero","pee_ativo","retornaSoNumeros","cep","pee_complemento","complemento","bairro","logradouro","municipio","enderecoCompleto","listaTelefones","validarTelefone","tpt","listaEmails","pem_enviarboleto","pem_enviarcartacobranca","pem_enviarnfe","pem_enviarpromocao","pem_enviarvencparcela","pem_ativo","listarFornecedorCpfCnpj","replaceAll","for_ativo","validarCpfCnpjExistente","pes_fornecedor","onCancel","validarCnpjExiste","validarCpfExiste","pej_emailpessoacontato","dadosform","pessoatelefones","pessoaemails","pessoasocupacoes","ocupacoes","pessoaoutrocontatos","pessoanacionalidades","listaNacionalidade","idEstrangeiro","isEstrangeiro","pes_estrangeiro","end","pej_inscuf","validarIE","for_valorfretegratis","for_codigobancoagencia","for_observacao","fornecedorcampopersonalizados","camposAdicionais","trataRetornoFormularioDinamico","forDados","fcp_id","salvarCamposAdicionais","event","valorCampo","currentTarget","validarFisicoJuridico","suffix","QuestionCircleOutlined","options","maxLength","selecionarRegUnico","onClearFunction","onSelectFunction","est","est_descricao","filtroExtra","cid","cid_id","reg","parametrosFiltros","DrawerFornecedor","formFornecedor","fornecedorAtivo","modalExcluir","retornoPesquisaAvancada","for_codigo","editarFornecedor","DrawerTransportador","formTransportador","Transportadores","transportadorAtivo","trn_id","trn_ativo","ManutencaoFuncionario","estadoCivil","setEstadoCivil","supervisor","setSupervisor","controleCnhCategoria","setControleCnhCategoria","cnhCategoria","setCnhCategoria","funcionariocampopersonalizados","fun_id","cnhCategoriaPreenchida","cnh_categoria","fun_dataadmissao","fun_datademissao","cnh_dataemissao","cnh_datavencimento","listaFuncionario","String","verificarCpfValido","dado","pes_funcionario","listarFuncionarioCpf","fun_ativo","nacionalidades","estadocivil","ecv","ecv_id","fun_supervisor","sup","pessoacnh","cnh_numero","cnh_id","fun_valorcustohora","fun_valorcustomes","evc","ecv_descricao","DrawerFuncionario","formFuncionario","funcionarioAtivo","funcionario","editarFuncionario","DrawerVendedor","formVendedor","pagina","setPagina","destroyOnClose","onCloseEdit","salvandoDados","vendedorAtivo","ven_id","ven_ativo","icm_id","modalInativarConta","icm_descricao","CloseCircleOutlined","inativar","icm_ativo","CopyOutlined","duplicar","modalDuplicarDados","pis_id","pis_ativo","pis_descricao","nat_descricao","cpc_saidacstpis","cpc_id","cpc_saidacstcofins","cpc_entradacstpispj","cpc_entradacstpispf","cpc_entradacstcofinspj","cpc_entradacstcofinspf","strong","pis_saidapercredbcpis","pis_saidapercpis","pis_entradapercredbcpispf","pis_entradapercpispf","pis_entradapercredbcpispj","pis_entradapercpispj","pis_saidapercredbccofins","pis_saidaperccofins","pis_entradapercredbccofinspf","pis_entradaperccofinspf","pis_entradapercredbccofinspj","pis_entradaperccofinspj","TabDadosOrigemDestino","formModal","openModal","setOpenModal","listaNcm","setListaNcm","dadosNcm","setDadosNcm","listTemp","mvaorigemdestinos","splice","removerRegistro","shape","PlusOutlined","mva_uforigem","mva_ufdestino","mva_percaliquotaicmsreducao","mva_percaliquotaicms","mva_percmva","mva_ajustado","mva_simplesnacional","obj","indice","editarRegistro","exibirModal","fecharModal","setDados","formularioDados","ManutencaoNcmSubtituicaoTributaria","ncm_codigo","codigoNcm","ncm_ativo","listaMvaOrigemDestino","ncm_id","editarNcm","incluirNcm","codigo","verificaNCM","editItem","cip_entrada","cip","cip_id","cip_descricao","cip_saida","DrawerNcmSubtituicaoTributaria","formNCM","atualizarSiscomex","filtrosTela","ncmAtivo","popularFiltrosTela","excluirNcm","ModalCarregando","titleModalLoading","confirmContent","apiCall","successMessage","errorMessage","successCallback","errorCallback","ncm_descricao","duplicarNcm","ncm_percentual","ncm_extipi","DrawerMarca","cadMarca","openDrawer","setOpenDrawer","retornoSalvar","formMarca","mar_ativa","mar_nome","duplicarDados","ManutencaoMarcaVeiculo","atualizarPagina","mav_id","DrawerMarcaVeiculo","cadMarcaVeiculo","formMarcaVeiculo","mav_ativa","mav_descricao","modalInativarMarca","excluirMarca","inativarMarca","ManutencaoVeiculo","controleTipoRodado","setControleTipoRodado","controleTipoCarroceria","setControleTipoCarroceria","controleTipoProprietario","setControleTipoProprietario","controleTipoTransporte","setControleTipoTransporte","undefined","validatorInput","vei_inscricaoestadual_numeroInscricaoEstadual","vei_inscricaoestadual_ufestado","vei_id","textTransform","placa","vei_placa","noStyle","shouldUpdate","prevValues","currentValues","vei_tipoproprietario","DrawerVeiculo","cadVeiculo","formVeiculo","setPrimeiroRender","vei_descricao","modalInativarVeiculo","excluirVeiculo","vei_ativo","inativarVeiculo","vei_modelo","vei_dataaquisicao","vei_datavenda","listaTemp","vei_inscricaoestadual","ufEstado","numeroInscricaoEstadual","editarVeiculo","TabPercursoMDF","estadoInicio","estadoFinal","listaPercurso","setListaPercurso","setPercursoOk","percurso","setPercurso","ufInicial","ufFinal","vizinhosUF","AC","AL","AP","AM","BA","CE","ES","GO","MA","MT","MS","MG","PA","PB","PR","PE","RJ","RN","RS","RO","RR","SC","SP","SE","TO","DF","estadoId","iconeUf","redefinirPercurso","info","includes","display","alignItems","marginRight","toLowerCase","ultimaUF","estadoClick","marginLeft","fontWeight","marginTop","ReloadOutlined","percursoFinal","percursoValido","ufAtual","ufProximo","listaPercursoAtt","per_sequencia","CheckOutlined","TabDadosManifestos","formManifesto","listaDocs","tipoEmitente","setEstadoInicio","setEstadoFinal","listaMotorista","setListaMotorista","veiculoSelecionado","setVeiculoSelecionado","reboque1Selecionado","setReboque1Selecionado","reboque2Selecionado","setReboque2Selecionado","setListaEstados","listaVeiculos","setListaVeiculos","reboque1","vei_id_reboque2","vei_id_reboque3","reboque2","fetchData","all","estadosRes","veiculosRes","dadosDoc","cepDestino","dadosDestino","pme_cepcarrega","mca_id","mdf_ufinicio","cepOrigem","dadosOrigem","pme_cepdescarrega","mdf_uffim","mde_id","doc_modelodoc","mdf_tipoemitente","marginBottom","cepNumeros","match","verificaCepCarregamento","verificaCepDescarrega","rod_cpfcnpjciot","validarCpfCnpj","onSelect","onClear","vei","vei_reboque","fun","motorista","sequencia_motorista","numeroTelefone","adicionarMotorista","findIndex","mot","dadosTemp","removeMotorista","FiltroSeguroMDF","formularioSeg","listaSeguro","setListaSeguro","responsavelSeguro","adicionarSeguro","seg_responsavel","seg_cnpjresponsavel","seg_nomeseguradora","seg_cnpjseguradora","seg_numeroapolice","seg_numeroaverbacao","doc","seg_sequencia","TabSegEProdPredominante","tipoCarga","unidadePeso","modalRemove","seg","removeSeguro","dadosDocs","totalValor","reduce","vlr","doc_valortotal","totalPeso","doc_pesobruto","valorTotal","pesoBruto","totalNfe","totalCte","usaDados","ncm","editarSeguro","autoSize","maxRows","ModalDocsFiscais","setListaDocs","listaDocsTab1","setListaDocsTab1","selectedRowKeys1","setSelectedRowKeys1","listaDocsTab2","setListaDocsTab2","selectedRowKeys2","setSelectedRowKeys2","serie","setSerie","definirCamposTab1","definirCamposTab2","rowSelection1","newSelectedRowKeys","rowSelection2","listaSerie","Filtro","doc_chaveacesso","destino","params","retornoNull","adicionarDoc","validarCampos","doc_sequencia","chavesExistentes","docsSelecionados1","chave","docsAtualizados","modelo","peso","dataEmissao","destinatario","idCidadeOrigem","cidadeOrigem","ufOrigem","idCidadeDestino","cidadeDestino","ufDestino","prevListaDocs","docsSelecionados2","maskClosable","serie_id","ser","ser_id","buscarDoc","rowKey","rowSelection","estado","ManutencaoManifestoEletronico","pages","proximaPag","permiteValidar","setPermiteValidar","percursoOk","estadoInicioSelect","setEstadoInicioSelect","estadoFinalSelect","setEstadoFinalSelect","setTipoEmitente","setTipoCarga","setUnidadePeso","setResponsavelSeguro","paginaAtual","tagPages","listaValidacoes","setProximaPag","validaForm","setTagPages","mdf_dataemissao","validarTrocaPg","removerDoc","formManifes","dadosNewForm","pme_descricao","pme_tipocarga","mdf_unidadepeso","mdf_infadicionalfisco","mdf_infcomplentar","produtopredominantemdfe","pme_ncm","pme_ean","modalrodoviariomdfe","rod_ciot","vei_id_reboque1","motoristasmdfe","seguromdfe","percursomdfe","docreferenciadomdfe","current","Step","DrawerManifestoEletronico","onCloseDrawer","LeftOutlined","RightOutlined","ModalReenviarMdfeSefaz","exibirModalReenviarMdfeSefaz","fecharModalReenviarMdfeSefaz","titleModal","textoBotao","_link","mdf_id","retornoNF","mdf_status","mdf_chavemdfe","confirmLoading","mdf_numero","column","mdf_serie","mdf_modelo","valortotalmdfe","formParam","listaStatus","setListaStatus","openModalReenviarMdfeSefaz","setModalReenviarMdfeSefaz","filtrosAvancados","sql","filtroPor","retornaDescricaoStatus","autorizarMdfe","encerrarMdfe","menuTableOutros","chaveMdfe","linkOculto","encodeURIComponent","body","appendChild","remove","novaAbaNavegador","imprimirDamdfe","EyeOutlined","Search","onSearch","quantidadedocs","pesobruto","mdf_descricao","mdf_xmotivo","mdf_cstat","DrawerGrupoProduto","openDrawerGrupo","setOpenDrawerGrupo","cadGrupo","formGrupoProduto","gru_ativo","DrawerSubGrupo","openDrawerSubGp","setOpenDrawerSubGp","cadSubGp","gruId","formSubGrupo","sgb_ativo","sgp_ativo","editar","TabProdutoTributacao","listaCest","setListaCest","getRegimeTributario","regimeTrib","listaCstOrigem","setListaCstOrigem","hiddenFci","setHiddenFci","showGas","setShowGas","listaAnp","setlistaAnp","listaTipoProdutosSped","setListaTipoProdutoSped","checkMarcadores","checkAnp","anp","anp_codigo","buscarCest","_lista","find","c","cen_id","orm_id","number","tpi_id","tp","anp_id","cbf_id","tpi_descricao","ori","orm_descricao","setListaDados","hiddenCest","cest","cet_id","cet_descricao","icms","pis","l","anp_descricao","cbf_codigo","cbf_descricao","precision","TabListaPreco","listaDePrecos","setListaDePrecos","listaPrecoExclusao","removeLista","ltp_id","newData","listaExclusao","setListaPrecoExclusao","idx","ltp_principal","ltp_nome","editable","lpi_valorvenda","editarLista","modalConfirmaExclusao","listaPreco","setListaPreco","TabGrade","gerarEANProduto","formGrade","listaDeGrades","setListaDeGrades","listaModalidadesGrades","setModalidadesGrades","listaModalidadeItens","setListaModalidadeItens","criarGrade","setCriarGrade","openModalImgGrade","setOpenModalImgGrade","dadosImgGrade","setDadosImgGrade","detalhesModalImg","setDetalhesModalImg","itensGradeSelecionados","setItensGradeSelecionados","modalidadesAdicionadas","setModalidadesAdicionadas","previewImage","setPreviewImage","previewVisible","setPreviewVisible","inputPesquisa","React","createRef","togglePesquisa","atualizarFormGrade","listaGrades","prg_ean","pre_custoultimacompra","arredonda","prg_markup","prg_codigoetiqueta","reader","FileReader","readAsDataURL","onload","onerror","handlePreview","preview","originFileObj","calcularValorVendaPorMarkup","custo","markup","valorVenda","verificaEanExiste","ean","produto","existe","codEan","startsWith","pro_eaninvalido","validaEanGrade","modalExcluirGrade","grade","prg_id","atualizarGrade","modalInativarGrade","excluirGrade","codigoGrade","ativarInativarItemGrade","pro_id","pro_ativo","adicionaGradeProduto","modalidade","mgp_id","mgp_descricao","itensGrade","onKeyPress","keyCode","which","elementos","querySelectorAll","setAttribute","getAttribute","AppstoreOutlined","mod","filtrado","checked","ref","selecionados","listaSel","adicionarItensSelecionados","pesquisaGrade","itemGrade","excluirModalidade","posicaoGradeProduto","listaGrade","modalidades","primeiraModalidade","shift","totalOcorrencias","pro_markup","pre_qtde","prg_ativa","modalidadesgrade","imagens","itemModalidade","totalItensGradeAnterior","totalOcorrenciasGrade","modalidadeDistribuicao","z","gerarGrade","detalhesModal","dadosImg","descricao","atributo","img","uid","conteudoImagem","principal","abrirModalImgGrade","FileImageOutlined","SyncOutlined","cifrao","markupCalculado","recalcularMarkupDoProduto","dadosGrade","imgTemp","thumbUrl","salvarDadosImgGrade","listType","newFileList","fileList","onPreview","DownloadOutlined","TabImagem","listaImagens","setListaImagens","uploadPeca","isJpgOrPng","isLt2M","TabLote","listaLote","setListaLote","casaDecimaisUnd","sequencial","setSequencial","novaListaLote","removerLote","prl_numerolote","prl_qtde","prl_dataentrada","prl_datafabricacao","prl_datavencimento","ManutencaoProdutos","validarAoIniciar","filtroGrupo","setFiltroGrupo","produtoCamposPersonalizados","setProdutoCamposPersonalizados","listaUnidadeMedida","setListaUnidadeMedida","possuiCusto","setPossuiCusto","openDrawerMarca","setOpenDrawerMarca","grupoSelect","setGrupoSelect","foundGroup","setFoundGroup","setCasaDecimaisUnd","exibeLote","setExibeLote","obrigatorio","markupLoc","markupEmp","unidade","ump_id","un","carregaCamposPersonalizados","checkCasaDecimalUnidadeMedida","emb_ump_id","und","ump_casasdecimais","carregarSubGrupos","CodigoGrupo","validarForm","msgRetorno","validacao","gradeValida","validaValorVenda","prg_valorvenda","prc_percglp","prc_percglpnacional","prc_percglpimportado","pru_quantidade","salvarDadosCombustivel","dadosProd","dadosComb","prc_percgasnatural","prc_valorpartida","prc_qtdetemperatura","salvarProdutosUnidadeMedida","dadosUnidadeMedida","pru_id","pro_kitcomposicao","produtocampopersonalizados","pre_qtdeestoqueinicial","produtoGrade","popularGrade","ProdutoCombustivel","ProdutoUnidades","popularImagens","produtolotes","editarManutencao","incluirManutencao","retornoDrawer","imagensGrade","imgs","imagem","base64img","imagemComprimida","popularImgGrade","modalidadeGrade","atrib","popularModalidades","listaImg","possuiPrincipal","maxSize","resizeImageToMB","pcp_valor","pro_ean","buscarEanExistente","carregarListas","carregarParametros","found","proDados","pcp_id","parse","pro_controlelote","custoProduto","listaDoLote","isNaN","IdProduto","pro_datainclusao","data_sincro","eanAnterior","EAN","floor","random","calculaDigitoVerificadorEAN","salvarDados","validarEan","pro_usabalanca","onBlurProEan","BarcodeOutlined","pro_produto","pro_servico","pro_materiaprima","funcaoIncluir","IdGrupo","um","ump_descricao","pro_diasvalidade","rule","showIcon","gerarEANProdutoBalanca","pro_escalanaorelevante","verificaCnpj","DrawerProduto","incluirMaisUm","formProduto","formPesquisaAdc","dadosProdutoGrade","setDadosProdutoGrade","openModalEstoque","setOpenModalEstoque","aplicarFiltros","produtoAtivo","modalExcluirProduto","pro_codigo","modalInativarProduto","inativarProduto","precoMinimo","precoMaximo","limparFiltroPesquisa","onClickEditar","pro_usagrade","listarGrades","precoVendaMinimo","precoVendaMaximo","duplicarProduto","pro_observacao","pro_fci","TabItensGrade","setItensGrade","atualizarDadosGrade","editandoRegistro","setEditandoRegistro","adicionarItem","itemAdd","emp_id","descricaoItem","mgp_imprimenaetiqueta","mgp_modalidade","headers","keyItem","salvarItemGrade","selecionarTodos","itemEditar","selecionarItemGrade","dadosItem","ManutencaoGradeProduto","dadosEnviar","DrawerGradeProduto","formGradeProduto","TabItens","listaItensExcluir","setListaItensExcluir","listaEditarItens","setListaEditarItens","setEditandoItens","formItens","formImportItens","formTableItens","setFiltros","itemProduto","setItemProduto","importarProduto","setImportarProduto","editiItemId","setEditiItenId","visibleModalGrade","setVisibleModalGrade","grades","setGrades","setSubgrupos","listaPrecoSelectd","setListaPrecoSelectd","list","setItens","searchInput","useRef","productName","setProductName","codigoEan","dadosRequisicao","itenSelected","array","lpi_naocalculacomissao","onChangeProdutoFiltro","chamada","lpi_perccomissao","handleSearch","selectedKeys","clearFilters","listaFiltros","prev","onDeleteItem","listaExcluir","deleteItem","saveRow","validateFields","lpi_id","listaEditarItensTemp","onCloseModal","cancelEdition","isEditing","mergedColumns","filterDropdown","setSelectedKeys","onPressEnter","filterIcon","filtered","onFilter","onFilterDropdownVisibleChange","descricaoGrade","editRow","col","onCell","inputType","editing","onPressEnterProCodigo","pro","_filtro","_filtros","filtroItens","components","cell","restProps","inputNode","decimalSeparator","thousandSeparator","onValuesChange","marId","grupoId","subgrupId","listPrecoDestino","innerHTML","onChangeListaPreco","lp","mar","onChangeGrupo","gp","sgp","filtroMarca","filtroSubGp","codigoLista","importItensForPriceList","setList","onSave","TabCliente","clientes","setClientes","deleteCliente","columnWidth","TabVendedor","dadosVendedor","deleteVendedor","ManutencaoPreco","setExibeButtons","setSomenteCabecalho","exibeItens","setExibeItens","dadosSalvos","setDadosSalvos","editandoItens","listaEmpresa","ltp_somenteestelocal","ltp_ativa","ltp_consideradescontopgto","listaItemsExcluir","listaprecoitens","listaprecoclientes","listaprecovendedores","ltp_datainicial","ltp_datafinal","compararDatas","CheckCircleOutlined","incluirLista","DrawerPreco","formPreco","exibeButtons","AtualizarPreco","listaItens","setListaItens","quantidadeEncontrados","setQuantidadeImportar","buscarQuantidadeProdutos","showDrawerExtra","tipoAtualizacaoPreco","reajustarValor","valuesEnviar","spg_id","codigoGrupo","popularDadosSubGrupo","subGrupo","RedoOutlined","expandIconColumnIndex","DrawerAtualizarPreco","formAtualizar","loadingEdit","setLoadingEdit","itemEdit","setItemEdit","loadDada","ltp_todaempresa","getList","openAtualizarPrecos","_d","ImprimirEtiqueta","dadosAdicionais","setDadosAdicionais","dadosEmpresa","setDadosEmpresa","multiplosReg","setMultiplosReg","listaSubGrupo","setListaSubGrupo","dadosProduto","setDadosProduto","filtroProd","setFiltroProd","atualizarListaProd","setAtualizarListaProd","consultaProduto","setConsultaProduto","recordEditando","setRecordEditando","possuiGrade","setPossuiGrade","abrirModalGrade","setAbrirModalGrade","codBarras","squemaEtiquetaProduto","tipo","listaValidacao","modalExcluirItem","removerItem","popularDadosProdutonew","isNotNullOrEmpty","prod","listaPrecosProduto","listaPadraoProduto","lstPreco","qtd","listaPrecoProduto","quantidade","observacao","limparCampos","preco","prepararDadosEditar","idModelo","dadosRel","quantidadeColuna","qtdTot","campos","dadosCampos","listaDadosImpressora","dadosImpressora","squema","numeroColuna","dadosAux","valorParcelado","quantidadeParcela","qtdParcelas","numeroParcelas","possuiEntrada","emp_nomefantasia","descricaograde","pro_codigoetiqueta","pro_referencia","retornaEtiquetaEmBranco","retornaObjeto","schema","fields","jsreports","export","report_def","jsonRelatorio","datasets","outputHandler","montarEtiqueta","listaObj","objRetorno","attrname","codigoBarras","aoFecharModalGrade","adicionarItensGrade","valueKey","detalhes","filtroPesq","atualizaComponente","buscarProdutoCodBarra","TableOutlined","listaPre","rec","editarItem","danger","acrescimoDesconto","DrawerImprimirEtiqueta","formImprimirEtiqueta","DrawerServidorImpressao","servidor","fecharDrawerExtra","servidorOn","setServidorOn","ServidorImpressoraOnline","online","carregarConfiguracoes","conf","impressoraEtiqueta","modeloEtiqueta","verificarServidor","setListaProdutos","openProduto","setOpenProduto","dadosUltimaVenda","setDadosUltimaVenda","dadosUltimaCompra","setDadosUltimaCompra","dadosUltimosCustos","setDadosUltimosCustos","listaNotasVenda","setListaNotasVenda","listaNotasCompra","setListaNotasCompra","listaOrdemCompra","setListaOrdemCompra","listaPedidos","setListaPedidos","listaMovimentacoes","setListaMovimentacoes","dadosEstoque","setDadosEstoque","totalEstoque","setTotalEstoque","totalPedido","setTotalPedido","totalCondicional","setTotalCondicional","totalPrevisoes","setTotalPrevisoes","listarDados","toDate","retornaDataInicial","movimento","codigoMovimento","montarFiltro","listar","cod","fontSize","pre_qtdePedido","pre_qtdeCondicional","totalItem","pre_valorcustomedio","pre_custocomicms","pre_custosemicms","pre_valorcustoinformado","numeroNota","pessoaNome","codigoCondicional","nomeCliente","dataCondicional","qtdeDevol","qtde","codigoOrdemCompra","nomeFornecedor","dataOrdemCompra","numeroPedido","dataPedido","ope_descricao","dataPosicao","vlrUnitario","vlrTotalItem","tipoRegistro","ManutencaoRelatorioEtiqueta","exibeModelo","json","definirDadosPadrao","data_sources","atributosSquema","designer","Designer","outPutReport","getElementsByClassName","delay","on","reportdef","reportDef","data_source","showToolbar","abrirMontarRelatorio","DrawerRelatorioEtiqueta","formularioEtiquetas","TabModeloFixo","TabModeloPersonalizado","openModalEmpresaFilial","setOpenModalEmpresaFilial","relatorio","setRelatorio","rels","setRels","modalRemoverModelo","menuEmpresa","exibirModalEmpresaFilial","fecharModalEmpresaFilial","listaProdutosEtiquetas","codigoEmpresa","empresa","codigoProduto","codigoEtiqueta","codigoReferencia","listaEtiqueta","dadosEtiquetaColuna","TabAgenciaBancaria","TabEndereco","ctc_cidadeagencia","ctc_ufagencia","ctc_bairroagencia","ctc_enderecoagencia","TabGerente","ManutencaoContaCorrente","listaTipoContaCorrente","setListaTipoContaCorrente","listaUsuarios","setListaUsuarios","contaBancaria","setContaBancaria","listaUsuariosPermitidos","setListaUsuariosPermitidos","listaContaGerencial","setListaContaGerencial","listaContaGerencialAgrupador","setListaContaGerencialAgrupador","podeSelecionar","ctc_id","limitarSaldoUsuarios","ban_id","tcc_id","idRetorno","contacorrenteusuarios","ctc_saldoinicial","ctc_operacao","ctc_operacaoconta","contacorrentelocal","ctc_unidadeatendimento","ctc_fonegerente","tc","setAbaTipoContaCorrente","tcc_descricao","ban","ban_descricao","OptGroup","ctg_descricao","conta","ctg_id","usuario","usu_id","user","adicionarUsuario","DrawerContaCorrente","formContaCorrente","formPesquisa","statusAtivo","ctc_descricao","abrirLancamentoEntradaSaida","showDrawerManutencaoCaixa","abrirLancamentoCaixa","FileSearchOutlined","ArrowRightOutlined","RetweetOutlined","showDrawerTransferencia","abrirLancamentoTransferencia","ctc_ativo","ctc_numeroagencia","ctc_numeroconta","ctc_datasaldoinicial","saldo","TabConfigConta","formContaGerencial","listaConfigContaGerencial","setListaConfigContaGerencial","openModalContaGerencial","setOpenModalContaGerencial","cgc_descricaoTipo","cgc_descricaocontadestino","exibirModalContaGerencial","fecharModalContaGerencial","ManutencaoContaGerencial","listarContaDRE","setListarContaDRE","mostrarCodigoLabel","dre_id","dre_descricao","DrawerContaGerencial","filtrarConta","pesquisa","ctg_ativo","contasGerenciais","isActive","header","ManutencaoOperacaoFiscal","listaCfop","setListaCfop","listaDestinoOperacao","setListaDestinoOperacao","listaCategoriaOperacao","setListaCategoriaOperacao","cfo_cfop","cfo_descricao","opc_destinooperacao","opc_categoria","opc_ativo","CheckableTag","selecionarOpcao","adicionarCfop","sort","a","b","openDrawerContaGerencial","setOpenDrawerContaGerencial","setCodigoContaGerencial","hiddenFlagsCompra","setHiddenFlagsCompra","listaIndicadorPresenca","setListaIndicadorPresenca","listaNaturezaOperacao","setListaNaturezaOperacao","listaTipoPreco","setListaTipoPreco","listaTributacaoPisCofins","setListaTributacaoPisCofins","setListaTributacaoIcms","codigoContaGerencial","carregarContasGerenciais","cfop","tip_id","operacaocfops","ope_calculacomissao","ope_alteracontagerencial","ope_id","tip_descricao","dropdownRender","menu","minRows","DrawerOperacaoFiscal","formOperacaoFiscal","ImportarOperacao","setOperacao","paginacao","selecionarItem","ope_ativo","parametrosSelecionarItens","funcao","keys","linhas","linha","DrawerOperacaoFiscalImportar","showImportar","setShowImportar","refreshKey","setRefreshKey","prevKey","ManutencaoOperacaoDebitoCredito","listaTipoImposto","setlistaTipoImposto","odc_id","taj_id","odc_cfop","taj_codigoajuste","taj_descricao","DrawerOperacaoDebitoCredito","formOperacaoDebitoCredito","odc_descricao","TabCondicaoPagamento","listaCondPag","selectedRowKeys","setSelectedRowKeys","condicaoPagamento","setCondicaoPagamento","cond","configSelecionarItem","selectedRows","setListaCondPag","listIndex","condPgto","condPag","cpg_id","cpg_descricao","TabBoleto","dadosBoleto","listaJuroMora","setListaJuroMora","setListaRegistro","listaFormaEmissao","setListaFormaEmissao","listaEspecieDocumento","setListaEspecieDocumento","listaTipoAceite","setListaTipoAceite","listaCodigoProtesto","setListaCodigoProtesto","listaDistribuicao","setListaDistribuicao","listaCodigoMulta","setListaCodigoMulta","listaCodigoBaixa","setListaCodigoBaixa","listaConvenio","setListaConvenio","listaCarteira","setListaCarteira","listaPadraoArq","setListaPadraoArq","contemProtesto","setContemProtesto","ehBaixa","setEhBaixa","modeloImpressao","setModeloImpressao","_banco","jurosMora","BoletoRegistro","boletoFormaEmissao","boletoEspecieDocumento","boletoTipoAceite","boletoDistribuicao","boletoCodigoMulta","boletoCodigoProtesto","boletoCodigoBaixa","boletoConvenio","boletoCarteira","padraoArquivoRemessa","modeloImpresaoBoleto","popularDadosCarteira","crt_id","carteira","setDadosBoleto","dbl_tipojuromora","juroMora","dbl_formatonossonumero","cvn_id","dbl_formaemissao","formaEmissao","dbl_especiedocumento","EspecieDocumento","dbl_aceite","tipoAceite","dbl_distribuicao","distribuicao","dbl_codigoprotesto","codigoProtesto","dbl_codigomulta","codigoMulta","dbl_codigobaixa","codigoBaixa","dbl_padraoarquivoremessa","padraoArq","popularDadosBoleto","crt_descricao","crt_carteira","popularEspecieDocumento","popularJurosMora","popularFormatoNossoNum","convenio","cvn_descricao","popularFormaEmissao","popularIdentificacaoTitulo","popularFormaDistribuicao","popularProtestoTitulo","popularMultaTitulo","popularBaixaDevTitulo","popularPadraoArquivoRemessa","ManutencaoFormaPagamento","tipoPagamento","setTipoPagamento","tipoIntegracao","setTipoIntegracao","funcaoTef","setFuncaoTef","tpFuncao","setTpIntegracao","showItegracao","setShowItegracao","isBoleto","setIsBoleto","definirDadosBoletos","setDefinirDadosBoletos","isCarne","setIsCarne","isValePresente","setIsValePresente","mostrarCondicao","setMostarCondicao","fpg_id","resetarConstantes","fpg_emiteboleto","fpg_tipopagamento","fpg_tipointegracao","calcPercent","fpg_descricao","fpg_ativo","fpg_imprimecarne","fpg_padraosistema","fpg_codigofuncaotef","fpg_descontopadrao","formacondicaopagamentos","definicaoboleto","dbl_id","dbl_boletosfaltantes","dbl_percjuromora","dbl_diasaplicarmulta","dbl_modeloimpressao","dbl_diasbaixa","dbl_diasparaprotestar","dbl_valorminimoprotesto","dbl_valormulta","dbl_nomearquivoremessa","dbl_extensaoarquivoremessa","dbl_nossonumeroinicial","dbl_nossonumerofinal","dbl_numeroconvenio","dbl_numerocontrato","dbl_msglocalpagamento","dbl_mensagem1","dbl_mensagem2","dbl_mensagem3","dbl_mensagemmora","tpPagamento","alterarTpPagamento","forma","cta","tpIntegracao","alterarTpIntegracao","definirDadosBoleto","DrawerFormaPagamento","formFormaPagamento","roundValue","places","arr","sig","round","modalExcluirCondicao","fpg_principal","TabFormaPagamento","formasPagamento","listaFormaPagamento","setListaFormaPagamento","charAt","listaFormasPagamento","listaForma","setListaFormasPagamento","TabParcelas","listaParcelas","alterarParcela","parcelas","posicao","pcl_numerodias","valorInteiro","percValorInt","pcl_percparcela","sobra","setParcelas","parcela","pcl_numeroparcela","dias","nDiasParcelas","somaPercentual","resto","nUltimaParcela","percParcela","dadosParcelamento","criarParcelas","ManutencaoCondicaoPagamento","exibeParcelas","setExibeParcelas","listaDadosForma","setListaDadoForma","cpg_descontopadrao","cpg_percentualjuros","mostraParcela","defineParcelas","carregarDadosCondicao","salvarManutencao","validarCondicaoCrediario","cpg_ativo","parcelamentos","formaPgto","DrawerCentroDistribuicao","formCondicaoPagamento","ManutencaoSerieFiscal","listaModelo","setListaModelo","bloquearCampos","setBloquearCampos","editarSerie","incluirSerie","maxlength","buttonStyle","optionType","Button","DrawerSerieFiscal","formSerieFiscal","ser_ativo","modelodocfiscal","ser_numero","ManutencaoHistorico","his_id","DrawerHistorico","formHistorico","his_ativo","his_descricao","DrawerNotaFiscal","drawerExtra","fecharDrawerNotaFiscal","formNotaFiscal","salvarRascunho","setSalvarRascunho","setShowDrawerExtra","FileDoneOutlined","listaNotaDevolucao","adicionarNotas","dadosNfe","openModalEditarItemDevolucao","setOpenModalEditarItemDevolucao","openModalEditarCFOP","setOpenModalEditarCFOP","setItemEditar","listaCFOP","setListaCFOP","qtdeOriginal","nota","ntf_id","nfi_id","qtdeRestante","nfi_valorseguro","valorSeguroRateio","valorFreteRateio","nfi_valoroutros","valorOutrosRateio","valorDescontoRateio","bcIcms","nig_valorbc","valorIcms","nig_valoricms","bcIcmsSt","nig_valorbcst","valorIcmsSt","nig_valoricmsst","bcIpi","npi_valorbcipi","valorIpi","npi_valoripi","setListaNotaDevolucao","dadosNfeDevolucao","ntf_tipooperacao","ntf_ufdest","setAdicionarNotas","ntf_chavenfe","removeNotaFiscal","pesquisarItem","excluirMarcados","nfi_ean","nfi_cfop","nig_origemmercadoria","nig_cst","nis_origemmercadoria","nis_csosn","nfi_unidademedida","nfi_valorunitario","excluirItem","defaultExpandAllRows","aoSelecionar","selecionarCFOP","exibirModalEditarItemDevolucao","salvarItemNota","cancelar","TabResumo","resumoNota","resumo","valorProduto","valorFrete","valorOutros","valorSeguro","valorBaseICMS","valorICMS","valorBaseST","valorICMSST","valorBaseIPI","valorIPI","valorDesconto","valorTotalNotaFiscal","validarNumeros","setResumoNota","TabNotasFiscais","ntf_status","ntf_finalidadeNfe","listaStatusNota","setListaStatusNota","ambiente","setAmbiente","serieFiscal","setSerieFiscal","setGerarNfSt","openModalAntecipacao","setOpenModalAntecipacao","openDevolucaoSubstituicaoTributaria","setOpenDevolucaoSubstituicaoTributaria","listaNotasReferenciadas","setListaNotasReferenciadas","listaFinalidadeNota","setListaFinalidadeNota","setTipoFormaPagamento","dadosTransp","setDadosTransp","setListaPais","setListaTipoEndereco","possuiCliente","setPossuiCliente","tipoOperacao","setTipoOperacao","filtroAdd","setFiltroAdd","operacaoFiscal","setOperacaoFiscal","valorIcmsDev","valorBaseIcmsDev","valorIcmsStDev","valorBaseIcmsStDev","dadosNotaDevSt","setDadosNotaDevSt","statusNota","carregaDadosNota","dadosNota","notasReferenciadas","salvar","dadosNotaDev","dadosNotaReferenciada","ntf_nomedest","ntf_finalidade","valortotalfrete","valortotaldesconto","valortotalnota","itensNf","remover","nig_percreducaobc","nig_percicms","nig_percreducaobcst","nig_percmvast","npi_percaliquotaipi","dadosDestinatario","dadosContribuinte","ntf_docfiscal","listarNotasReferenciadas","count","n","notasSelecionadas","entries","notaDevolucaoFinal","gerarAntecipacao","antecipacaoEstorno","pdv_id","ntf_modalidadefrete","valorAcrescimo","notaFiscalTransportadora","preencherDadosTransportadores","ntf_consumidorfinal","ntf_infcomplementar","notaFiscalDestinatario","tratarDadosDestinatario","documentosReferenciados","notaFiscalFaturamento","notafiscalitens","numeroItem","notaDevolucao","numeroNotaDevolver","popularItemsValoresTotais","dadosGerais","itensPreenchidos","totalDesconto","totalFrete","totalSeguro","ope_gerarespelho","openPdfNewTab","dadosFormulario","ntf_cnpjcpfdest","ntf_iedest","ntf_idestrangeirodest","ntf_logradourodest","ntf_numeroenderecodest","ntf_bairrodest","ntf_cepdest","ntf_telefonedest","ntf_emaildest","operacaocredito","retornoNFAjusteAdjudicacao","operacaodebito","retornoNFAjusteRessarcimento","itemReferenciado","nfi_id_origem","novoItem","nfi_numeroitem","nfi_numeropedidocompra","nfi_itempedidocompra","nfi_informacaoadicional","cso_id","ocp_id","cst_id","nfi_ncm","nfectereferenciadaitens","trv_id","trv_marca","trv_modelo","trv_placa","trv_rntc","trv_uf","trv_observacao","nvl_especievolume","nvl_marcavolume","nvl_numeracaovolume","nvl_pesobruto","nvl_pesoliquido","nvl_qtdevolumes","validacoes","retornoAmbiente","ntf_datainclusao","ntf_dhsaient","ntf_municipiodest","ntf_codigoibgemundest","ntf_paisdest","cli_regimetributariofiscal","setDadosNfeDevolucao","popularListaNotaDevolucao","verificaCep","adicionarNotasSelecionadas","selecionarNota","idOperacao","popularOperacaoFiscal","op","tpt_id","em","tel","pse_id","pej_inscricaomunicipal","listarClienteCpfCnpj","tipoEnd","pse_nome","tpe_id","tpe_descricao","veiculos","salvarNotaAjuste","salvarNotaDevolucao","DrawerDevolucao","formDevolucao","showDrawerDevolucao","NotaFiscalDebitoCredito","listaPessoas","setListaPessoas","exibeDestinatario","setExibeDestinatario","setDadosContribuinte","verificarOperacao","odc","verificarPessoaContribuinte","pes","baseCalculo","valorDebitoCredito","emitirNfe","pc","DrawerDebitoCredito","formDebitoCredito","ModalDetalheNotaFiscal","dadosModal","FornecedorNFE","dadosEndereco","setDadosFornecedor","setOpenDrawerFornecedor","listaEndereco","setListaEndereco","listaEmail","setListaEmail","dadosTelefone","setDadosTelefone","abreModalTelefone","setAbreModalTelefone","pessoaFisica","setPessoaFisica","formularioTelefone","pef_produtorrural","pie_inscricaoestadual","enderecoP","pee_id","telefoneP","psc_id","emailP","pem_id","setarCpfCnpj","buscarDadosEndereco","buscarCep","fetch","localidade","pes_idestrangeiro","ntf_cpfcnpj","ntf_endereco","buscarDadosFornecedor","mask","dadosSelect","funcaoBotao","campoDescricao","campoValue","campokey","placeHolder","labelFormItem","nameFormItem","mail","pse","exibirModalTelefone","fecharModalTelefone","FaturamentoNFE","dadosOperacao","valorNota","setValorNota","faturamento","controlModal","setControlModal","calcularDesconto","percentualDesconto","tot","pfp_valor","recalcularTotal","calcularAcrescimo","percentualAcrescimo","valorPago","dadosFat","vendedorDescMaxFinal","totalValorDescontoItens","subTotalNotaFiscal","subTotal","total","valorOutrasDespesas","calcularFaturamento","ResumoNFE","itensNota","ItensNFE","carregarPagina","quantidadeItens","setQuantidadeItens","setValorTotal","dadosEditando","setDadosEditando","dadosTabela","btnEditando","itemEditando","percdesc","percacresc","dadosRet","setDadosItens","removerItemNota","TransportadorNFE","mostrarTransportador","setMostrarTransportador","possuiTransportador","setPossuiTransportador","listaTransportadores","setListaTransportadores","dadosVeiculos","setDadosVeiculos","buscarDadosTransp","popularDadosVeiculo","veiculo","NFEntrada","setCarregarPagina","setListaSerie","setDadosEndereco","dadosFornecedor","listaValidacoesForn","pagamentosCodigos","validarFornecedor","validarFaturamento","formaPagamento","fpg_tipoavistaaprazo","popularDados","gerarBoleto","formasPgto","SalvarNota","popularDadosItens","preencherDadosFaturamento","preencherDadosDestinatario","tipooperacao","preencherDadosSerieFiscal","freteUn","seguroUn","qtdTotalItens","dadosForma","recebimentoCartao","aux","dadosModalCheque","contaCorrente","cheques","nfp_valor","bce_id","rcc_nsu","antecipacoes","enderecoDest","telefoneDest","pt","telefoneDestinatario","emailDest","pem","ntf_emaildestinatario","ntf_complementodest","dadosTransportador","veiculoTransp","formas","dadosFormaPgto","fpg_quitacaoantecipacao","pdi_valorfrete","calcularFrete","spinning","tip","ntf_indicadorpresenca","ope_indicadorpresenca","carregandoPagina","DrawerEntrada","formEntrada","setShowNFEntrada","showNFEntrada","openModalCartaCorrecao","setOpenModalCartaCorrecao","openModalExcluir","setOpenModalExcluir","openModalDevolucao","setOpenModalDevolucao","openModalEnvioNFeEmail","setOpenModalEnvioNFeEmail","openModalAjudaRejeicaoNfe","setOpenModalAjudaRejeicaoNfe","openModalCancelarEstornar","setOpenModalCancelarEstornar","openModalImprimirEtiquetas","setOpenModalImprimirEtiquetas","listaTipoNota","setListaTipoNota","setDadosNota","openModalEstorno","setOpenModalEstorno","openModalDetalhes","setOpenModalDetalhes","dadosDetalhesNota","setDadosDetalhesNota","dadosNfeEtiqueta","setDadosNfeEtiqueta","exibirModalInutilizar","setExibirModalInutilizar","openModalReenviarSefaz","setModalReenviarSefaz","abrirCancelarNota","terminouPrazoCancelamento","horas","recarregarLista","modalExcluirNotaCompra","excluirNotaCompra","ntf_nroinutilizadosefaz","ntf_tiponota","editarNota","autorizarNota","ser_emitentedocumento","abrirExcluirNota","FileTextOutlined","abrirCartaCorrecao","UndoOutlined","dadosNotaFiscalDevolucao","abrirDrawerDevolucao","abrirEnvioEmail","TagOutlined","abrirImprimirEtiqueta","nomeVendedor","totalItemSemDesconto","perc_desconto","valor_item_desconto","ntf_modelo","chaveNFe","gerarRascunho","visualizarNota","imprimirRelatorioJasper","idNotaFiscal","finalidade","tipoNota","modeloNota","visualizarDanfe","notaFiscal","imprimirRelatorioNaoFiscal","DollarOutlined","StopOutlined","tpNota","pv","fp","condPagamento","formatarCpfCnpj","ntf_serie","ntf_cstat","ntf_xmotivo","exibirModalImprimirEtiquetas","fecharModalImprimirEtiquetas","exibirModalAjudaRejeicaoNfe","fecharModalAjudaRejeicaoNfe","dadosNotaDevolucao","exibirModalDevolucao","fecharModalDevolucao","openDrawerDevolucao","exibirModalEnvioNFeEmail","fecharModalEnvioNFeEmail","exibirModalCancelarEstornar","fecharModalCancelarEstornar","exibirModalReenviarSefaz","fecharModalReenviarSefaz","criarBanco","nomeTabela","request","indexedDB","onupgradeneeded","objectStore","createObjectStore","keyPath","autoIncrement","createIndex","unique","unico","onsuccess","close","excluirBancoDados","callback","deleteDatabase","incluirBanco","db","transaction","add","oncomplete","buscarDadosTabela","tabela","getRequest","getAll","ModalSelecionarGrade","gradesSelecionadas","setGradesSelecionadas","gradesSelecionadasBkp","selecionarGrades","formatNumber","TabNotaFiscal","dadosRemetente","ntf_dataentrada","oc","objeto","setListaProduto","listaProdutosSistema","setListaProdutosSistema","produtos","setProdutos","keyProdutoCadastrado","setKeyProdutoCadastrado","setAtualizarProduto","aguardandoPopular","setAguardandoPopular","exibirModalSelecGrade","setExibirModalSelecGrade","dadosModalGrade","setDadosModalGrade","ativarMarkup","setAtivarMarkup","setParametrosEmpresa","setDadosGrade","dadosProdutoXml","xEan","cProd","xProd","xOrigem","orm","xUnidadeMedida","ump","xValorUnitarioProduto","pro_modelo","tpi","csv_id","nfs_valorissqn","abrirCadastroProduto","itensSistema","salvarGrades","prodGrade","nfi_custoinformado","prodVincular","fpr_codigo","fpr_descricao","par_calculaprecovenda","seqPai","ativarDisabled","keyGrade","keyLista","produtoXml","buscaGrade","xQuantidade","buscaMarkup","ParMarkup","incluirProdutoItem","IdGrade","cprod","xValorTotalProduto","itemXml","valorItens","qtdItens","qtdTotal","validarValorTot","produtoSis","qtdeAnterior","vincularProdutoNota","proKey","fpr_id","okType","excluirItemSistemaXml","custoInformadoAtual","qtdeInformadoAtual","calculaSobraAoRemoverItem","buscarSobra","listaProd","itensXml","valorRetorno","valorRestante","qdteRestante","Valor","produtogrades","seq","qtdeItem","seqAuxiliar","listaItemSis","dadosItensSistema","itemSis","parametro","produtosSistema","linhasSeleq","limparItensSistemas","ultimorProd","buscarDadosGradeModal","onRow","rowIndex","onMouseLeave","stopPropagation","onMouseEnter","registroItem","valorUni","adicionarControleQtd","unidadeMedida","salvarUnidadeMedida","validarValorItem","popularQuantidade","popularCustoInformado","buscarGradeProduto","registrosPorPagina","p","alterarQtde","alterarMarkup","valorVendas","produtoSelecionado","itensProduto","valorItemSelecionado","it","modalEditar","onCloseModalGrade","TabTransporte","dadosTransporte","TabFaturamento","dadosFaturamento","faturamentoDados","openModalEditarNotaFiscalEntrada","setOpenModalEditarNotaFiscalEntrada","objFaturamento","setObjFaturamento","abreModalContaCorrente","setAbreModalContaCorrente","listaContaCorrente","setListaContaCorrente","semCondicaoPagamento","setSemCondicaoPagamento","listaCondicoesPagamento","setListaCondicoesPagamento","setContaCorrente","editandoParcela","setEditandoParcela","parcelasGeradas","setParcelasGeradas","buscarCondicaoPagamento","idFormaPgto","DeveAbrirModalContaCorrente","verificarParcelas","montarParcelas","qtdeParcelas","valorParcela","parc","prc_numeroparcela","prc_datavencimento","prc_numeroDuplicata","prc_valor","alteraForm","valorFormasPagamento","pagamento","dadosFormaPagamento","setFaturamentoDados","objetoConsolidado","acumulador","tipopagamento","formaPag","nomeFormaPagamento","tipoavistaaprazo","numeroFatura","vDesconto","adicionarFormaDePagamento","dataVencimento","ajustarDatasParcelas","valorParcelas","valorJaUtilizado","valorRestanteTot","qtdeTotParcelas","valorSobra","onChangevalorParcela","DeleteOutlineOutlined","excluirFormaPagaento","exibirModalContaCorrente","fecharModalContaCorrenteOk","ultimaForma","valorFechou","onCloseModalContaCorrente","fecharModalContaCorrente","exibirModalEditarNotaFiscalEntrada","fecharModalEditarNotaFiscalEntrada","exibir","fechar","setDadosFaturamento","setDadosRemetente","setDadosTransporte","setCorrelacaoCFOP","setIndicadorPagamento","desabilitaBotao","setDesabilitaBotao","setKeys","listapreco","ListaPrecoItem","idProduto","idProdutoGrade","precoLista","editarValorVenda","validarItens","valido","lote","nItem","notaEntrada","itensOrd","subvetor","fat","validarDados","findXml","xml","vOutrasDespesas","vValorFrete","vValorSeguro","vValorTotalNfe","vValorTotalProdutos","vBaseCalculoIcms","vValorIcms","vValorIpi","vBaseCalculoIcmsSt","vValorIcmsSt","vValorCofins","vValorPis","valorFreteForaNota","freteForaNota","valorICMSSTForaNota","icmsstForaNota","valorOutrasDespesasForaNota","outrasDespesasForaNota","dadosRem","cnpjCpf","bai_bairro","popularDadosRemetente","dadosParcelas","prc_numeroduplicata","popularParcelas","popularDadosFaturamento","popularDadosTransportador","incluirDadosNota","validarAba","formNotaEntrada","openNota","setOpenNota","dadosCamposItens","keyItens","keyFat","keyRem","keyTransp","criarBancoWeb","vetorSeparado","removerNota","nomeBanco","carregarNota","cnpj","setCnpj","tipoNfe","setTipoNfe","situacaoNfe","setSituacaoNfe","FileProtectOutlined","tipoNf","nfd_tipodocumento","tipoManifesto","nfd_manifestodestinatario","importarNotaFiscalEletronica","nfd_chavenfe","cStat","retEvento","infEvento","xMotivo","limparFiltros","dataMaxEmissao","nsuEspecifico","situacaoNf","lcn_ambienteemissao","nsuUltimo","lcn_monitoramentonsuproducao","loc_cnpj","listarNotas","verificarNotas","chaveAcesso","chaveNfe","nfd_numeronf","nfd_situacaonfe","nfd_nomeemissor","nfd_cpfcnpjemissor","nfd_datahoraemissao","nfd_valortotal","nfd_serienf","nfd_modelodocumento","TabNotaFiscalEmitida","openModalCancelar","setOpenModalCancelar","inutilizarNota","TabNotaFiscalRecebida","openModalConfirmacao","setOpenModalConfirmacao","rel_nomearquivo","rel_nome","fileContents","statusTransferencia","abrirModalConfirmacao","TabItemTransferencia","dadosNfeTransferencia","validarTransporte","setQuantidade","baseICMS","nig_valorIcms","BaseST","nig_percicmsst","TabResumoTransferencia","valorBaseICMSST","dadosItensTemp","ManutencaoNotaFiscalTransferencia","limparDados","abrirDrawer","tipoPreco","setTipoPreco","filiaisEmpresa","setFiliaisEmpresa","setDadosNfeTransferencia","listaValidacoesDest","listaValidacoesTransp","proxPagina","retornoSerie","retornoTipoPreco","retornoFiliais","retornoParametrosEmp","par_69","par_custopadraonftransferencia","retornoDadosContribuinte","listaItemNotaFiscal","buscarEnderecoLocal","lcd_id","filial","rateioFrete","recalcularImpostos","totalSt","possuiIe","empresaSelecionada","fisicaJuridica","loc_tipocontribuinte","aliquotaIcms","Number","percIpi","aliquotaICMSST","CalcularImpostoItem","iod_uforigem","iod_ufdestino","iod_percdiferimentoicms","iod_percicmsreducaobc","impostos","retornoICMS","ret_baseIcms","ret_valorIcms","retornoICMSST","ret_baseIcmsST","ValorST","ret_valorIcmsSt","BaseIPI","retornoIPI","ret_baseIPI","ValorIPI","ret_valorIpi","nfi_valoricmsst","nfi_valoripi","valorTotalSt","_numeroItem","_totalFrete","_valorFrete","somaTotal","valorTotalItem","calculaValorProporcional","rateioAcrescimo","_valorAcrescimo","valoracresc","setLimparDados","transporte","alterarCusto","DrawerNotaFiscalTransferencia","formNotaFiscalTransferencia","statusNfe","setStatusNfe","aba","situacaoNotaTransferencia","abrirModal","setAbrirModal","filtrarLista","textoCorrecao","IdNotaFiscal","incluirNovo","correcoes","correcao","evt_sequencia","evt_texto","evt_dataEnvio","evt_protocolo","evt_dataprocessamento","PrinterFilled","evt_chavenfe","imprimirCartaoCorrecao","listaNfRejeitada","setListaNfRejeitada","listaNfEmDititacaMais30Dias","setListaNfEmDititacaMais30Dias","listaNfEmDititacaMenos30Dias","setListaNfEmDititacaMenos30Dias","qtdeNumerosInutilizar","setQtdeNumerosInutilizar","qtdeInutilizados","setQtdeInutilizados","retornoInutilizacao","setRetornoInutilizacao","etapas","etapaAtual","setEtapaAtual","data30Dias","dadosMais30","dadosMenos30","justificativaInutilizacao","listaInutilizacao","unshift","numeroInicial","numeroFinal","justificativa","quantidadeInutilizados","expandIconPosition","infInut","nNFIni","nProt","dhRecbto","FiltroProdutoOrc","desabilitarProd_id","setDesabilitarProd_id","exibirDetalhes","setExibirDetalhes","dadosDetalhes","setDadosDetalhes","listaProdutos","refProd","alterarValorTotal","ocp_quantidade","ocp_valorun","popularLista","listaDados","setItensOrdemCompra","validarItem","itensOrdemCompra","retornaSequencial","adicionarItemOrdemCompra","ocp_valortotal","onChangeProID","editandoItem","ManutencaoOrdemCompra","transportador","openModalGradeOrdemCompra","setOpenModalGradeOrdemCompra","regPagina","setRegPagina","ordemcompraitens","orc_valorfrete","orc_status","orc_dataconclusao","orc_prazomaximo","orc_valortotal","forn","trn","pageSize","showSizeChanger","pg","onShowSizeChange","atual","porPagina","atualizarValorTotalOC","exibirModalGradeOrdemCompra","fecharModalGradeOrdemCompra","DrawerOrdemCompra","alteraData","formOrdemCompra","valorTotalDesconto","orc_valorseguro","totalizador","setTotalizador","itensSemQuantidade","vlrTotalRecebendo","vlrTotalDesconto","somaRateio","QtdeTotalRecebendo","frete","totalSemDesc","qtdrecebendo","maximoItens","ocp_quantidaderecebida","ocp_qtdrecebendo","ocp_frete","ocp_desconto","desconto","totalItemRecebendo","ratearDescontoFrete","qtdeTotalRecebendo","switchReceber","r","alteraQuantidadeItemRecebido","ManutencaoRecebimentoOrdemCompra","setFormasPagamento","buscarItensOrdemCompra","listaDadosContribuinte","ocp_quantidaderecebidaanteriormente","bloquear","orc_valordesconto","orc_valoracrescimo","recebimento","antecipacao","valorAntecipacao","Itens","verifica","DrawerRecebimento","formRecebimentoOrdemCompra","setListaFornecedor","listaTransportador","setListaTransportador","dadosOrdemCompra","setDadosOrdemCompra","UploadOutlined","IdOrdemCompra","abrirDetalhesOrdemCompra","dataIni","dataFim","orc_nropedido","orc_atendente","nomeTransportador","editarOrdemCompra","openModalSelecionarOrcamento","setOpenModalSelecionarOrcamento","listaVendedor","setListaVendedor","setDadosOrcamento","visualizar","IdOrcamento","gerarPedido","pes_telefone","qtditem","ManutencaoStatusPedido","setColor","initial","setInitial","recarregarDados","hex","stp_id","somenteAtivar","stp_statusanterior","DrawerStatusPedido","formStatusPedido","stp_ativo","duplicarStatus","editarStatus","stp_pedidocancelado","stp_pedidoconcluido","stp_permiteeditarpedido","stp_permiteemissaonf","ModalDetalhePedido","DrawerNF","dadosNFE","DrawerTransferencia","dadosDetalhesPedido","setDadosDetalhesPedido","formPedidos","setStatus","drawerTransferencia","setDrawerTransferencia","exibirDrawerPedidos","setExibirDrawerPedidos","ativo","ativoPedido","carregarPrimeiraVez","carregarStatus","modalConfirm","cancelarPedido","itensPedido","ped_datavalidade","ped_modalidadefrete","pdi_valorunitario","pdi_quantidade","pdi_valordesconto","pdi_valoracrescimo","loc_id_transferencia","ped_precoutilizado","duplicarPedido","ped_ativo","emitirNf","editarPedido","emitirTransferencia","idPedido","imprimirPedido","pedidoDuplicar","ped_id_duplicar","stp","retornarSempre","pes_endereco","pes_nroestabelecimento","pes_bairro","pes_cep","pes_cidade","pes_uf","pdi_qtditem","ped_valortotal","visualizarPedido","exibirDrawer","fecharDrawerPedidos","TabCondicionalEntrega","situacaoVenda","imprimirCondicional","exibirDrawerDevolucao","setExibirDrawerDevolucao","openModalContatoCliente","setOpenModalContatoCliente","setPessoaId","exibirDrawerNota","setExibirDrawerNota","vnc_situacao","modalExcluirCondicional","vnc_entregaagendada","vnc_id","condicional","cli_nome","retornaCorSituacao","cor","vnc_levarparacliente","vnc_telefonecliente","DollarCircleOutlined","editarCondicional","vnc_enderecoentrega","alterarCondicionalEntregue","exibirModalContatoCliente","fecharModalContatoCliente","TabCondicionalRetirada","pessoaId","PessoaId","setSituacaoVenda","setProdutoFiltro","formParametrosAvancados","idVendaCondicional","ManutencaoValePresente","formParametrosValePresente","listaCompradores","listaCondPagamento","setListaCondPagamento","ehCheque","setEhCheque","exibirModalCheque","setExibirModalCheque","openModalCartao","setOpenModalCartao","dadosVale","setDadosVale","abreModalLiberacao","setAbreModalLiberacao","parcelasPessoasAtraso","setParcelasPessoasAtraso","abreModalParcPendentes","setAbreModalParcPendentes","editandoParcelas","setEditandoParcelas","semCondicao","setSemCondicao","tipoFormaPagamento","dinheiro","cheque","cartaoCredito","cartaoDebito","creditoLoja","valeAlimentacao","valeRefeicao","valeCombustivel","outro","limparFormaPagamento","dadosVal","fpg","buscarParametrosEmp","par_contagerencialvalepresente","par_contagervalepresenteprazo","cgc_contagerencialdestino","cgc_contagerencialdestino2","onChangeFormaPagamento","compradores","cli_vendasomenteavista","validarContaCorrente","listarCondicao","numeroCheques","depositoBancario","pix","transfBancaria","abrirModalCheque","somaParcelas","dataPagamento","numeroUltimaParcela","totalParcela","creditoDebito","credito","inserirDadosCrediario","incluirCheque","popularParcelasDebito","liberado","parcelasAtraso","limiteCreditoDisp","parcelasPessoa","verificarRestricoesCredito","validarVale","lancouCheque","cpr_numeroparcelas","valesQuitados","com","onChangeCondicao","popularValor","numeroParc","qtdTotParcelas","onChangeValorParc","fecharModalOk","fecharModalOK","retornoModal","dadosCartao","tipoParcelamento","numeroDias","bandeira","bce_nrodiasrecebimentocredito","bce_nrodiasrecebimentodebito","rcc_parcelarecebimento","rcc_valor","nsu","rcc_previsaorecebimento","listaContas","dadosObj","par_id","avistaAPrazo","DrawerValePresente","formValePresente","setValesQuitados","DataPesquisa","acf_codigovalepresente","ManutencaoMetas","mtv_id","listaVendedoresMetas","mtv_datainicial","mtv_datafinal","listarMsgVendedorComMeta","DrawerMetas","formManutencao","parametrosMetasVendas","modalExcluirMeta","metaVenda","mtv_valor","pageNumber","excluirMeta","mtv_totalvendido","vendido","strokeWidth","showDrawerEdit","ManutencaoComissao","vendedorSelec","setVendedorSelec","possuiComissao","ven_perccomissaoaprazo","ven_perccomissaoavista","ven_formacalculocomissao","ven_formulacomissao","colSpan","DrawerComissao","openManutencao","setOpenManutencao","registroManutencao","setRegistroManutencao","setEditar","dadosManutencao","formConsultaComissao","detalhesDados","setDetalhesDados","painelAtivo","setPainelAtivo","setDadosModal","retornaDescTipo","comissaoVendedores","comissao","abrirModalComissao","ven","efetuarPesquisa","valorTotalVenda","valorTotalComissao","buscarDadosDetalhados","com_basecalculo","com_percentual","com_valor","mcc_valor","valorTotalNota","valorComissao","ManutencaoContaReceber","Select","openIntevaloDias","setOpenIntevaloDias","dadosContasReceber","setDadosContasReceber","openModalEditarParcela","setOpenModalEditarParcela","dadosLinhaEditar","setDadosLinhaEditar","IdContaPagarReceber","cpr_id","gerarParcelas","qtdDias","somaDasParcelas","cpr_datavencimento","valortotal","quantidadeParcelas","cpr_periodicidade","primeiroPagamento","cpr_dataprimeiropagamento","divisao","intervaloDias","cpr_intervalodias","outraData","prc_periodicidade","mostrarIntervaloDias","option","cpr_datainclusao","cpr_numerodocumento","dadosLinha","dadosContasReceberPagar","DrawerContaReceber","formContaReceber","openPesquisaAvancada","setOpenPesquisaAvancada","parametrosContasReceber","listaStatusParcela","setListaStatusParcela","modalNovaConta","statusParcela","retornarStatus","prc_status","cpr_observacao","buscarParcelas","imprimirContaReceber","modalEstornar","cpr_descricao","ReparcelamentoParcelas","dadosReparcelamento","setDadosReparcelamento","listaParcelasReparcelar","setListaParcelasReparcelar","descontoItem","setDescontoItem","paginaParcAntigas","setPaginaParcAntigas","paginaParcGeradas","setPaginaParcGeradas","nroRegistrosParcAntigas","setNroRegistrosParcAntigas","nroRegistrosParcGeradas","setNroRegistrosParcGeradas","zerarJuros","listaTotalizadores","listaTotalizadoresReparcelar","valorAReceber","valorOriginal","valorQuitado","valorJuros","valorTotalJuros","setListaTotalizadoresReparcelar","novaData","dataInclusao","parcelarGeradas","cpr_pagarreceber","cpr_contaestornadarelacionada","pessoaAutorizadaId","contaGerencial","mcc_datapagamento","prc_codigobarras","prc_estornado","prc_id","bol_id","ajustaDatasParcelas","diferencaDatas","rateioJuros","sobraJuros","juros","totalJuros","vencida","page","parcelasQuitadas","FormOutlined","onBlurValorJuros","onBlurValorParc","percentual","calcularJuros","DrawerReparcelamento","buscarParcelasPessoa","formReparcelamento","showDrawerReparcelamento","ListaParcelasCliente","setListaParcelasCliente","receberSelecionados","listaParcelasReceber","setListaParcelas","selectedRow","somarParcelas","totais","valorPagoRecebido","setTotalSelecionados","totalReceber","parcelasReceber","valorReceber","numeroDiasVencida","concat","zerouJuros","listarParcelas","reparcelarSelecionados","diasAtrazo","totalSelecionados","pesquisaCodBarras","setPesquisaCodBarras","listaParcelasCliente","setListaParcelasReceber","listaCondicaoPagamento","setListaCondicaoPagamento","openModalCheque","setOpenModalCheque","openModalBandeiraCartao","setOpenModalBandeiraCartao","setListaTotalizadores","alterarValorPago","setAlterarValorPago","nroRegistros","setNroRegistros","valoresPagamento","setValoresPagamento","modalInstance","statusPagamentoIntegraPagto","tipoFormaPagExistente","tipoParcelamentoCartao","calcularSobra","restanteReceber","troco","calcularRecebimentoParcial","valorRecebido","_perc","formaPagamentoSelecionada","efetuarRecebimento","calcularParcelasCartao","parcelascartao","verificaIntegracaoPagamento","definicaoParcelamento","valParcela","dadosIntegracaoPos","cnpjEmpresa","getCnpjEmpresa","tipopgto","metodopgto","submetodopgto","imp_cnpjlocal","imp_valor","imp_tipopgto","imp_metodopgto","imp_submetodopgto","imp_qtdeparcelas","integrapgto","integrapgtook","criaRegistroIntegraPagto","imp_id","_paymentType","_paymentMethodSubType","_installments","_paymentMethod","command","paymentMethod","paymentType","paymentMethodSubType","installments","apiPayer","modalAguardandoPagamento","destroy","verificarPagamentoMaquina","cancelarPagamentoMaquina","imp_statuspgto","imp_autorizacao","statusTransaction","authorizerId","verificaTodosPagamentos","finalizarVenda","dataPagamentoRecebimento","valorTotalParcelas","dataFormatada","valorTot","valorTotalPagoRecebido","valorTotalAcrescimo","valorFormaPgto","valorDescontoFormaPgto","valorJurosFormaPgto","parcelasCartao","removerCarcaterEspecial","dadosReceber","limparListas","retornoParcela","buscarCodBarras","labelInput","placeholderInput","validaIntervaloData","filterOption","input","valorTotalSemAcrescimo","sobraAcrescimo","acrescimo","valorTotalSemDesconto","sobraDesconto","rateioDesconto","salvarDadosModal","funcaoSalvar","ManutencaoContaPagar","dadosContasPagar","setDadosContasPagar","DrawerContaPagar","formContaPagar","parametrosContasPagar","cpr_estornado","ManutencaoPagamento","calcularPagamentoParcial","listaParcelasPagar","exibirCondicaoPag","setExibirCondicaoPag","inputRef","fpPix","fpDinheiro","fpCheque","fpCartaoCredito","fpCartaoDebito","fpCreditoLoja","fpValeAlimentacao","fpValeRefeicao","fpValePresente","fpValeCombustivel","fpOutro","setListaParcelasPagar","innerHeight","valorAPagar","restantePagar","DrawerPagamento","listaParcelasFornecedor","setListaParcelasFornecedor","formParametros","parcelasPagar","pagarSelecionados","filtrarPeriodo","valorInformado","listaContaCorrenteSaldo","setListaContaCorrenteSaldo","entradaSaida","setEntradaSaida","tipoMovimentacaoFinanceira","setTipoMovimentacaoFinanceira","listaCaixa","setListaCaixa","infoContas","setInfoContas","openModalSenha","setOpenModalSenha","dadosLancamentoEstornar","setDadosLancamentoEstornar","consuMovimentacao","setConsuMovimentacao","setInputPesquisa","listarCaixa","marcarTodos","pesquisaAvancada","contas","idContas","contasSelecionadas","marcado","contaAtiva","reprocessarCaixa","exibirEstornados","tipoMovimentacao","lc_valor_final","lc_valor_inicial","listaCaixaContas","saldoAtual","valormcc","saldoAnterior","reverse","mov","mcc_movimentoestornado","mcc_entradasaida","mcc_id","lc_complemento","order","contaSelecionada","selecionarConta","entrada","saida","mcc_dataHora","mcc_estornado","mcc_transferencia","mcc_complemento","mcc_numerodocumento","mcc_valorjuros","mcc_valormulta","mcc_valordesconto","retornoExclusao","aoFechar","FluxoCaixaDiarioLocalAnalitico","valoresProvisionados","tabelaFluxoCaixa","saldos","fluxoLocal","nomeLocal","listaFluxoSaldos","nomeContaCorrente","saldoInicial","saldoConta","saldosConta","saldoFinal","listaFluxoItens","dataPgtoVencimento","valor_RealizadoEntrada","valor_RealizadoSaida","totalCreditoRealizado","totalDebitoRealizado","valor_ProvisaoReceber","valor_ProvisaoPagar","totalCreditoPrevisto","totalDebitoPrevisto","FluxoCaixaDiarioSintetico","valor_SaldoInicial","valor_SaldoFinal","FluxoCaixaMensalAnalitico","setSaldoInicial","setSaldoFinal","listaFinal","setListaFinal","fluxoPeriodo","fluxoApresentacao","fluxoOrganizacao","dadosFinal","FinalSaldo","totalSaldoConta","totalSaldosConta","totalSaldo","totalSaldoInicial","createFinal","codigoLocal","CodigoLocal","tratarDados","fontFamily","row","mesExtenso","realizadoEntradaMesAno","realizadoSaidaMesAno","realizadoEntrada","realizadoSaida","prevReceberMesAno","prevPagarMesAno","prevReceber","prevPagar","FluxoCaixaMensalLocalSintetico","FluxoCaixaAnualAnalitico","realizadoEntradaAno","realizadoSaidaAno","prevReceberAno","prevPagarAno","FluxoCaixaAnualLocalSintetico","setListaInicial","dadosInicial","createInicial","FluxoCaixaDiarioGerencialAnalitico","receitaDespesa","setReceitaDespesa","categoria","setCategoria","setContaGerencial","setDataInicial","saldoPrevisto","setSaldoPrevisto","saldoRealizado","setSaldoRealizado","setLocal","ReceitaDespesa","mapaUnico","Map","receitaDespesaCategoria","has","set","from","FiltraCategoria","codigoCategoria","FiltraConta","dadosReceita","totalProvisaoReceber","totalProvisaoPagar","totalEntradaRealizado","totalSaidaRealizado","dadosCategoria","dadosConta","ListaReceitaDespesa","createData","ListaCategoria","createCategoria","descricaoCategoria","realizadoentradaCategoria","realizadosaidaCategoria","provisaopagarCategoria","provisaoreceberCategoria","ListaConta","createConta","descricaoContaGerencial","InicialSaldo","padding","justifyContent","paddingRight","Table","TableBody","categoriasFiltradas","Fragment","contasGerenciaisFiltradas","TableRow","TableCell","paddingLeft","FluxoCaixaDiarioGerencialSintetico","sum","formFluxoCaixa","tipoFluxoCaixa","setTipoFluxoCaixa","setValoresProvisionados","setPeriodo","organizacao","setOrganizacao","formaApresentacao","setFormaApresentacao","setTabelaFluxoCaixa","setSaldos","anoAtual","montaDataMes","montaDataMesFim","montaDataAno","montaDataAnoFim","flx_periodo","flx_organizacao","flx_apresentacao","flx_dataInicial","flx_dataFinal","mesInicial","flx_mesInicial","month","mesFinal","flx_mesFinal","anoInicial","flx_anoInicial","year","anoFinal","flx_anoFinal","dataInicio","organizacaoFiltrada","picker","verificarFluxo","listaMovimentacao","setListaMovimentacao","listaContaGerencialTaxas","setListaContaGerencialTaxas","listaContaGerencialAgrupadorTaxas","setListaContaGerencialAgrupadorTaxas","listarMovimentacao","dadosMovimentacao","lancamentos","conciliacaoCartaoDetalhamento","taxas","dadosTaxaCartaoCreditoParcela","totaltaxas","totalBruto","auxTotaltaxas","auxTotalBruto","rcc_id","prevVal","elem","taxa","tax","tcp_parcelaminima","tcp_parcelamaxima","tcp_taxa","bce_taxapadraodebito","bce_taxapadraocredito","openDetalhes","calcularTaxaCartao","bnd_id","marcarDesmarcarTodos","bce_nomecredenciadora","dadosTaxa","taxaAlterar","calculaValores","forceRender","toggleDetalhes","rcc_datalancamento","listaMov","ctg_id_taxas","listaComMovimentacao","movimentacao","hcc_totalbrutodebito","hcc_taxadebito","hcc_totalliquidodebito","hcc_totalbrutocredito","hcc_taxacredito","hcc_totalliquidocredito","listDados","listaConcatenada","HistoricoConciliacaoCartao","ManutencaoCheque","DrawerCheque","formCheque","openModalOcorrencia","setOpenModalOcorrencia","statusCheque","setStatusCheque","ocorrencia","setOcorrencia","chq_numero","chq_agencia","chq_contacorrente","banco","chq_status","pessoa","chq_dataemissao","chq_bompara","chq_valor","BankOutlined","UserSwitchOutlined","TeamOutlined","setListaBancos","pes_cpf","ClienteId","Key","banc_id","bol_numerodocumento","bol_dataemissao","bol_datavencimento","bol_valor","imprimirBoleto","ManutencaoRemessa","openModalInstrucaoRemessa","setOpenModalInstrucaoRemessa","openModalGerarRemessa","setOpenModalGerarRemessa","parcelaEditar","setParcelaEditar","dadosSelecionados","setDadosSelecionados","setBanco","idBanco","setIdBanco","bol_dataEmissao","VerificaBanco","firstId","every","selecionado","bancoId","rem_qtdeboletos","rem_valortotal","bol","padraoarquivoremessa","dbl_nomearquivormessa","parcelaboleto","tratarParcelasBoletos","parcelaboletos","emissao","buscarBancos","InfoCircleOutlined","gerarRemessa","InfoOutlined","exibirModalInstrucaoRemessa","fecharModalInstrucaoRemessa","isp_codigo","exibirModalGerarRemessa","fecharModalGerarRemessa","retornoRemessa","parts","filename","contentType","blob","navigator","userAgent","msSaveBlob","linkElement","clickEvent","MouseEvent","dispatchEvent","ex","DrawerRemessa","listarRemessas","formRemessa","codigoCliente","rem_id","rem_datageracao","downloadArquivo","useLocation","dadosRetorno","setMovimento","expandedRowKey","setExpandedRowKey","motivoFiltro","isValid","parcelasFiltradas","filtrarParcelasPorBanco","soma","datavencimento","valorMultaJuros","codCliente","nfp_id","tratarParcelas","motivo","FiltraMotivo","codigoMovimentoRetorno","FiltroLiquidada","FiltroErro","FiltroEntrada","DownOutlined","verificaBanco","firstIdBanco","VerificaMovimento","nossoNumero","cpfCnpjCliente","par_numeroParcela","expandedRowKeys","handleExpand","descricaoMotivoOcorrencia","setDadosRetorno","convertToBase64","onRemove","removerRetorno","pathname","validarRetorno","ManutencaoArmazemEstoque","listaSetor","setListaSetor","exibirAlterarSetor","setExibirAlterarSetor","setores","setor","cancelarAlteracaoSetor","ses_descricaoItem","aes_id","ses_id","setorestoques","incluir","ses_descricao","ses_ativo","incluirSetor","alterarSetor","DrawerArmazemEstoque","formArmazemEstoque","aes_descricao","aes_ativo","aes_endereco","aes_numero","aes_bairro","OutrasFiliais","dadosEstoqueGeral","setDadosEstoqueGeral","estoque","loc_codigo","Armazem","listaArmazens","setListaArmazens","openOutras","setOpenOutras","openArmazem","setOpenArmazem","consultaGeral","setConsultaGeral","setListaMarca","listaGrupo","setListaGrupo","setIdProduto","exibeFooter","setExibeFooter","tpLista","filtroDesc","filtroTpEstoque","tpEstoque","fil","consultar","buscarProduto","val","showDrawerOutras","HomeOutlined","HddOutlined","footerTabela","offset","CustosInventario","exibirCustos","setExibirCustos","ehFracionado","setEhFracionado","custoMedio","custoComIcms","pre_valorcustocomicms","custoSemIcms","pre_valorcustosemicms","custoUltimaCompra","pre_valorcustoultimacompra","validarProduto","pre_justificativa","pre_dataposicao","produtoId","validarEstoqueProduto","onChangeProCodigo","customedio","custocomicms","custosemicms","custoultimacompra","resetarCampos","atributos","atr","qtdEstoque","ManutencaoEstoqueInventario","listaProduto","dataHora","setDataHora","hora","hours","minuto","minutes","pre_hora","carregarData","listaInventario","dataHoraPosicao","minutos","validarValoresInformados","manutencaoInventario","DrawerEstoque","formEstoqueInventario","listaSelect","setListaSelect","pesquisarInventario","codProd","inv_mes","inv_ano","Log","listaDadosLog","iic_quantidade","iic_datahora","TipoCodigoProduto","onCloseModalItem","abrirModalItem","setAbrirModalItem","dadosRegistro","setDadosRegistro","listaItem","setListaItem","verificaSituacao","ivi_estoqueanterior","ivi_estoqueatual","inv_id","situacao_id","listaDadosItens","ivi_id","ManutencaoInventario","permiteSalvar","produtoPorEAN","setProdutoPorEAN","dadosTipoCodigo","setDadosTipoCodigo","setDadosProdutosSelect","setListaDadosLog","setListaDadosItens","inventario","setInventario","setFiltro","exibirSenha","setExibirSenha","valorFracionado","setValorFracionado","modalProcessoLento","setModalProcessoLento","somLeituraItem","somErroLeituraItem","config","modalSalvar","produtoItem","localizarItem","CodigoProduto","qtdeItemAdicionar","beepOk","buscarDadosInventario","beepErro","inv_conclusao","Audio","play","inv_numero","defineFiltro","tipoCodigo","adicionarItemQuantidade","qtdeEstoque","qtdeEstoqueAnterior","qtdeFalta","qtdeSobra","ConsoleSqlOutlined","BarsOutlined","DrawerInventario","formInventario","setPermiteSalvar","desabilitarBtnNovo","setDesabilitarBtnNovo","openModalInventario","setOpenModalInventario","dadosInventario","setDadosInventario","validarPermissaoTela","modalExcluirInventario","excluirInventario","inventarioId","pesquisar","dataIncFinal","dataIncInicial","inventarioPesq","inv_datainclusao","InventarioId","carregarProdInventario","TabFilial","imageUrl","setImageUrl","setLoading","hover","setHover","borderColor","uploadButton","border","LoadingOutlined","rotate","modalTitle","modalOk","addEventListener","TabOutrasInformacoes","exigibilidadeIssqn","setExigibilidadeIssqn","TabSenhaGerencial","possuiSenha","setPossuiSenha","setUsuario","loc_senhagerencial","userId","usu_admin","emailUsuario","RecuperaSenhaGerencial","ManutencaoMatrizFilial","tipoContribuinte","setTipoContribuinte","regimeTributarioFiscal","setRegimeTributarioFiscal","desabilitaCNPJ","setDesabilitaCNPJ","loc_inscricaoestadual","loc_cpfresponsavel","loc_email","logradouroCidade","log_id","bai_id","cep_id","loc_logo","modalAlterarMatriz","salvarFilial","matriz","loc_inscricaoestadual_ufestado","alteraMatriz","loc_centrodistribuicao","novaSenhaGerencial","senhaGerencialAtual","pesquisaInformacoesCep","loc_cep","retornoCep","siglaEstado","possuiCep","pesquisaCepPostmon","loc_matriz","retornoFilial","retornoCnpjLocal","retornoCnpj","loc_telefone","loc_nomefantasia","loc_numeroestabelecimento","loc_complemento","DrawerMatrizFilial","listarFiliais","formMatrizFilial","iscricaoEstadual","loc_inscricaomunicipal","setConfig","exibeMotivoContingencia","setExibeMotivoContingencia","exibeMotivoContingenciaNFCe","setExibeMotivoContingenciaNFCe","certificadoValido","setCertificadoValido","ambienteEmissao","setAmbienteEmissao","formaEmissaoNormal","setFormaEmissaoNormal","lcn_validadecertificado","lcn_tipoemissao","lcn_tipoemissaonfce","authorization","lcn_id","tipoEmissao","minLength","ContainerOutlined","validaCnpj","dataValidade","validarCertificado","controleAvisoEstoque","setControleAvisoEstoque","tipoTef","setTipoTef","listaTipoEntidade","setListaTipoEntidade","TipoEntidade","Id","u","aco_datahora","aco_tipoacao","aco_titulo","abreModalSerie","setAbreModalSerie","dadosPdv","setDadosPdv","ativarDesativarPDV","pdv_ativado","pdv_numerocaixa","pdv_nomecomputador","pdv_registro","pdv_dataregistro","abrirModalSerie","pdv_ipredelocal","exibirModalPDV","fecharModalPDV","TabRespostas","respostas","formResposta","listaSomaSubtrai","setListaSomaSubtrai","respostasLimiteCredito","rlc_ordem","setRespostasLimiteCredito","alterarOrdem","ordemAtual","ordemNova","itemAtual","rlc_id","rlc_percentual","rlc_resposta","rlc_somasubtrai","itemTemp","ManutencaoLimiteCreditoCliente","listaTipoResposta","setListaTipoResposta","showRespostas","setShowRespostas","tipoResposta","qlc_tiporesposta","respostalimitecreditos","qlc_id","editarLimiteCredito","incluirLimiteCredito","formLimiteCreditoCliente","qlc_ordem","listasDados","questao","qlc_questao","formContador","novoContador","setNovoContador","setBuscaContador","Emitter","emit","con_id","con_cpf","con_cnpjescritorio","verificarCnpjValido","con_cep","con_cidade","con_ibge","cid_ibge","con_uf","con_bairro","con_logradouro","recursosPlano","setRecursosPlano","alterarPlano","setAlterarPlano","listaPlanos","setListaPlanos","planoAtual","setPlanoAtual","planoSelecionado","setPlanoSelecionado","formAlterarPlano","comparaPlano","setComparaPlano","listarPlanos","planoUsuario","pla_nome","plano","pla_valor","lcp_id","validade","lcp_validadeplano","listaPlano","pla_id","pla_nivel","diferenciais","pla_diferenciais","getEmailUsuario","senhaUsuario","ShoppingOutlined","ManutencaoBandeiraCartaoEmpresa","setValue","setDadosCartao","listaTaxasCartao","setListaTaxasCartao","formularioTaxas","taxasCartaoCreditoParcelados","bce_ativo","bnd_nome","ctc_digitoverificadoragencia","ctc_digitoverificadorconta","imagemCartao","buscarDadosCNPJ","excluirTaxa","DrawerBandeiraCartaoEmpresa","formBandeiraCartao","bandeirasCartao","setBandeirasCartao","openModalTaxas","setOpenModalTaxas","dadosTaxaCartao","setDadosTaxaCartao","cartao","bce_cnpjcredenciadora","imagemBanco","abrirModalTaxas","SettingOutlined","ativarBandeiraCartaoEmpresa","exibirModalTaxasCartaoCredito","fecharModalTaxasCartaoCredito","setCidade","TabResponsavel","ManutencaoCentroDistribuicao","filialInexistente","setFilialInexistente","centroCadastrado","setCentroCadastrado","centroExiste","dadosCentroDistribuicao","loc_pontoreferencia","loc_responsavelestabelecimento","buscarDadosFilial","formCentroDistribuicao","SaveFilled","centro","setEmpresa","setNomeLocal","editarCentro","acessarCentroDistribuicao","campoFiltro","setGrupos","grj_id","grj_descricao","rel_descricao","rel_id","nomeRelatorio","abrirNovaJanela","BlockOutlined","Formularios","aoUpload","setAoUpload","sistema","setSistema","relatorioParametro","sis","s","rel_sistema","elementosOrdem","rpj_ordem","RelatorioParametro","nomeRel","arquivoRel","uploadRelatorio","DrawerPersonalizacao","formFormulario","listaSistema","onConfirm","tituloRelatorio","setTituloRelatorio","tipoRelatorio","setTipoRelatorio","imprimirSomenteCorpo","setimprimirSomenteCorpo","form2","relStage","setRelStage","paginaVoltar","setPaginaVoltar","ordenaParametros","relStatetemp","rpj_nomeelemento","rpj_label","TabHorariosAcessoUsuario","idDay","setIdDay","day","listHorarios","setListHorarios","carregarListaHorariosAcesso","uac_dia","uac_bloqueado","uac_id","bloqueado","horaInicial","uac_horainicial","horaFinal","uac_horafinal","transformList","onChangeHorario","desbloquear","change","usuarioacessos","mudarAcesso","DeleteFilled","deleteHorario","setDataModal","TabPermissoesUsuario","load","setLoad","listPermissoes","setListPermissoes","_listaPermissoesPagina","_listarPersmissoesMongo","dataAcess","pru_nome","pru_permissoes","permissoes","acessoModulo","permissoesApi","metodos","indexMetodo","pm","metodo","acesso","acessoPermissoesMongo","loadPermissoes","handleChangeBloqueioPagina","listaPermissoesPaginas","handleChangeBloqueioAll","TabFiliaisUsuario","setLocais","pageRows","setPageRows","validaLocId","setValidaLocId","outrosLocId","setOutrosLocId","resListar","usuarioslocais","totalItens","totalItems","resLocais","locaisSelecionados","locaisselecionados","loadLocais","others","is","justOutCheck","sel_page","o","pop","ManutencaoUsuario","setUserId","setFileList","setArray","emailAtual","setEmailAtual","carregarAvatar","getPermissoesDefault","caminho_avatar","img_avatar","permissaoDefault","onBlurVerificaEmail","emailNovo","idUsuario","usu_sac","usu_suporte","usuarios_locais","avatar","usu_avatar","hasFeedback","DrawerUsuario","formUsuario","usu_usuariopdv","listaFiliais","mostrarFiltroAtivo","nameInputFiltroAtivo","usu_datainclusao","usuEmail","loadData","TabHorariosAcessoGrupo","TabPermissoesGrupo","TabUsuarioGrupo","usuarios","incluirRemoverUsuario","incluido","setUsuarios","ManutencaoGrupoUsuario","telaDuplicar","setTelaDuplicar","carregarUsuarios","prg_nome","prg_permissoes","controller","gru_descricao","usuariosEmpresa","usuariosGrupo","listaDefinicaoHorario","usuariogrupousuarios","formGrupoUsuario","modalInativarGrupo","formEfdIcmsIpi","modalExcluirNotificacao","excluirNotificacao","ordenar","not_datahora","not_descricao","whiteSpace","TabPdv","impressaoComprovantes","setCusto","tipoMarkup","setTipoMarkup","setImpressaoComprovantes","enquadramentoFiscal","setEnquadramentoFiscal","codigoBarrasBalanca","setCodigoBarrasBalanca","numeroDigitosBalanca","setNumeroDigitosBalanca","modeloBalanca","setModeloBalanca","back","retornoEmpresa","emp_razaosocial","emp_logo","dadosParametrosEmpresa","par_contagerencialsangriapdv","par_contagerencialsuprimentopdv","par_ctg_recebimentoparcela","par_viasimpressaonfce","par_impressaodavls","par_impressaonfce","par_impressaocondicional","par_impressaorecbtoparcela","par_impressaocarne","par_viasimpressaocarne","par_usanotapromissoria","AnaliseInadimplenciaCliente","listaIndice","setListaIndice","listaLocais","setListaLocais","logoEmpresa","setLogoEmpresa","listaDadosInadimplencia","setListaDadosInadimplencia","tiposPagamento","setTiposPagamento","indiceSelecionado","setIndiceSelecionado","setImprimir","mostrarScroll","setMostrarScroll","popularLabelTpPag","formTiposCobranca","tiposCobranca","tpCobranca","tipoCobrancaLabel","dataAnalise","dadosCheques","localAtual","reqCheques","reqCrediario","limparVariaveis","cnpjLocal","vlr_AVencer","vlr_Ate30dias","vlr_Ate60dias","vlr_Ate90dias","vlr_Ate120dias","vlr_Ate150dias","vlr_Ate180dias","vlr_Acima180dias","vlr_Vencidos","vlr_Total","vlr_Indicador_Acima30dias","vlr_Indicador_Acima60dias","vlr_Indicador_Acima90dias","vlr_Indicador_Acima120dias","vlr_Indicador_Acima150dias","vlr_Indicador_Acima180dias","calcularTotal","objTotalizador","indices","numeroIndice","carregarDadosIndice","listaTpCobranca","popularTipoCobranca","outerHeight","carregarLocaisPadroes","Header","tpPag","buscarDadosInadimplencia","print","overflowY","NovaEmpresa","periodoAssinatura","setPeriodoAssinatura","testeGratuito","setTesteGratuito","urlContrato","setUrlContrato","dadosNovaEmpresa","setDadosNovaEmpresa","informacoes","setInformacoes","openModalContrato","setOpenModalContrato","codigoSegurancaContrato","setCodigoSegurancaContrato","captcha","setCaptcha","reCaptchaRef","inputEmail","dadosLocalAtivacao","diaPagamento","emailEnvioCobranca","mesValidade","anoValidade","cvv","dadosTitular","planoId","dadosContrato","setDadosContrato","selecionarPlano","teste","cadastrarEmpresa","novaEmpresa","retornoNovaEmpresa","retornoEmail","textoAleatorio","assinarContrato","periodoTeste","localId","retornoAssinatura","retornoPlanos","loc_tipoContribuinte","pla_numeropdvs","RocketOutlined","retornoPesquisaEmail","pesquisaCNPJ","razao","validarRazaoSocial","sitekey","exibirModalContrato","fecharModalContrato","codigoSeguranca","AtivarUsuarioPlano","ativarEmpresaLocal","tipoEntidade","cap_ordem","cap_tipoentidade","setCamposPersonalizados","camposPersonalizadosTemp","ListaCamposPersonalizados","cap_mensagemobrigatorio","editarCamposPersonalizados","RenovarPlano","ManutencaoFornecedorProduto","buscarProdutoFornecedor","forId","DrawerFornecedorProduto","formFornecedorProduto","edit","setEdit","ultimocusto","listaTipoEndereco","listaPais","openDropdown","setOpenDropdown","pais","onFocus","te","ManutencaoRestaurante","listaTipoRestaurante","setListaTipoRestaurante","valorPreferencia","setValorPreferencia","valuePreferenciaSlider","setValuePreferenciaSlider","listaTiposEndereco","setListaTiposEndereco","setTiposContatos","res_notaavaliacao","res_site","out_descricao","res_id","coordenadas","enderecoTemp","pee_localreferencia","pee_latitude","pee_longitude","telefoneTemp","psc_ramal","emailTemp","outroContato","toc_id","out_ativo","OutrosContatos","Emails","Enderecos","Telefones","pej_databaixasefaz","pej_baixadoreceita","tipFormatter","tr","tpt_descricao","DrawerRestaurante","formularioRestaurante","listaTiposRestaurante","setListaTiposRestaurantes","res_preco_buffetlivre","res_preco_kg","res_tipo","res_cafemanha","res_almoco","res_janta","editarRestaurante","listaPaises","lte","ManutencaoHotel","listaTipoHotel","setListaTipoHotel","hot_nota_avaliacao","hot_id","th","DrawerHotel","formularioHotel","openModalMapa","setOpenModalMapa","hot_tipo","hot_preco_standard","hot_preco_duplo","hot_preco_triplo","exibirModalMapa","fecharModalMapa","Testes","formTeste","setarFormulario","carregandoGerar","setCarregandoGerar","considerarVigencia","setConsiderarVigencia","setMarcado","listaCestAlterar","setListaCestAlterar","dadosProdutos","setDadosProdutos","formAlterar","cestAlterar","buscarProdutos","filtroNcm","filtroCest","SomenteNcmInativos","EANInvalidos","hideSelectAll","gerarManutencao","vig_id","icm","defaultChecked","preserveSelectedRowKeys","confirmar","vig","vig_descricao","ManutencaoVigencia","DrawerVigencia","vig_datainicial","ManutencaoRetencao","dadosTipoRetencao","setDadosTipoRetencao","tar_descontamovimentacaofinanceira","tar_descontatotalnota","tar_id","exibirModalRetencao","DrawerRetencao","tabRetencao","tar_descricao","tar_percentuaretencao","tar_tiporetencao","apiErp","axios","create","baseURL","linkApiGestor","interceptors","use","getToken","Authorization","codigoempresa","codigolocal","logout","SelecoesEmpresaCat","veioDaHome","setCodigoEmpresa","setCodigoLocal","formLogin","setNomeEmpresa","listaLocal","setStatusFilial","buscarTela","codEmpresa","carregarLocais","validaLocalUnico","carregarDadosEmpresa","buscarEmpresaUnica","EsqueciSenha","enviarEmailRecuperarSenha","LoginCatalogo","InicialCatalogo","setExibirModal","getClienteCat","CatAcessosExterno","ConsultaPecas","grupoAtual","catalogoExterno","listaPecas","setListaPecas","pecaSelecionada","setPecaSelecionada","openImg","setOpenImg","image","setImage","imageGrupo","setImageGrupo","opeModalInfo","setOpenModalInfo","codcatalogo","buscarPecas","buscarImagemGrupo","sticky","small","codpeca","descpeca","numeropeca","ellipsis","showTitle","observacoes","codPeca","descPeca","buscarImagemMongo","PictureOutlined","rowClassName","produzido","controle","contentClass","base64Data","codigoPeca","dadosImagem","DrawerConsulta","setGrupoAtual","disabledAnt","setDisabledAnt","disabledPro","setDisabledPro","setExibir","buscarGrupo","codgrupo","proximo","anterior","validarGrupo","codGrupo","codCatalogo","desccatalogo","LeftCircleOutlined","RightCircleOutlined","DrawerGrupo","codLinha","nomeCatalogo","nomeLinha","valueGrupo","setValueGrupo","setValueSubGrupo","foto","setFoto","rowSelectionn","setRowSelectionn","rowSelectionnGrup","setRowSelectionnGrup","codSubGrupo","numSubGrupo","funcoesAoSelecionar","rowSelectionGrup","numGrupo","funcoesAoSelecionarGrup","responsive","descGrupo","catalogo","nomegrupo","nomecatalogo","CatalogosExterno","codCatalago","setCodCatalago","nomeCatalago","setNomeCatalago","setCodLinha","setNomeLinha","openGrupo","setOpenGrupo","listaLinha","setListaLista","linhaSelecionada","setLinhaSelecionada","filtroFixo","descLinha","alturaScroll","codlinha","desclinha","GroupOutlined","CatPecasExterno","exibeGrupos","setExibeGrupos","listaFotos","setListaFotos","selected","dadosSelec","cat004","cat003","ctc001","keySelecionaRadio","alignitems","TabPermissoes","apiWeb","ManutencaoUsuarioCat","setImageComponent","DrawerUsuarioCatalogo","atualizarTabela","UsuarioCatalogo","buscarUsuarios","InfosCotacao","dadosPedidos","tipoCobranca","setTipoCobranca","codTipoCobranca","buscarCondicao","codCondicaoPag","cnpjCliente","enderecoCliente","cidadeCliente","cepCliente","ufCliente","Description","codProduto","valorUnitario","DrawerCotacaoCat","CotacaoCatalogo","ManutencaoCatalogo","listaGrupos","openDrawerGrp","setOpenDrawerGrp","editandoGrp","setEditandoGrp","sequencialGrp","setSequencialGrp","Excluir","novaListaGrupos","Sequencia","setListaGrupos","sub","Codigo","Descricao","sequenciaGrp","formCatalogo","aoSalvarGrupos","DrawerCadastroCatalogo","catalogoTemp","Empresa","CaminhoImg","Grupos","CadastroCatalogo","ExcluirCat","modalExcluirCat","req","method","ok","statusText","objectUrl","revokeObjectURL","msg","ManutencaoKitComposicao","listaItems","setListaItems","setControlButton","carregarItensProdutoKit","soAtivos","preco_total_kit","qtde_item","pkc_valorunitario","dadosPost","listaProdutosKit","inativarItem","pkc_id","myFunction","pkc_qtde_item","pkcValorUnitario","pkc_ativo","saveEdition","listar_inativos","valorProdutoKit","porc_desconto","listaItemsTemp","somaValor","diferenca","DrawerKitComposicao","setFechouCadastro","fechouCadastro","formKitComp","listaKits","setListaKits","attList","setAttList","carregarListaKit","inativarKit","par_modelobalanca","dataHoraAtz","dataatualizacao","horaatualizacao","msg2","DetalhesRecibo","setDetalheRecibo","parcelasProcessadas","setParcelasProcessadas","processedParcelas","processParcelas","groupedParcelas","acc","Object","rec_decricaofinanceiro","cde_chaveacesso","ModalDetalheRecibo","formRecebimento","openModalRecibo","setOpenModalRecibo","dadosDetalheRecibo","setDadosDetalheRecibo","visualizarDetalhes","rec_id","cde_id","reimprimirRecibo","rec_numero","rec_datahora","HomeCatalogo","incollapsed","CarrinhoCatalogo","PrivateRoute","Component","rest","isAuthenticated","App","FormSizeDemo","componentSize","primaryColor","ptBR","nextColor","mergedNextColor","ConfigProvider","theme","onColorChange","initialState","userConfig","Boolean","hostname","ReactDOM","StrictMode","serviceWorker","ready","registration","unregister","impressorasInstaladas","imprimirRawBase64","nomeImpressora","impressora","texto","urlImpressao","initDatabase","objectStoreSincro","errorCode","getDateSincro","setDateSincro","cursorRequest","openCursor","date","continue","clearDateSincro","clearRequest","clear","loadShoppingCartItems","setCarrinhoItens","saveShoppingCart","descricaoPeca","valorPeca","newItem","Qtd","addRequest","getTime","dateSincro","editCartItemQuantity","novaQuantidade","itemExistente","putRequest","deleteCartItem","deleteRequest","clearShoppingCart","origemProduto","cst","csosn","quantidadeItem","percDiferimento","percReducaoIcms","aliquotaIcmsSt","percMva","percReducaoIcmsST","percMvaAjustado","aliquotaIpi","eConsumidorFinal","destinatarioTemIE","indicadorPresenca","eProdutorRural","eOrgaoPublico","uf_origem","uf_destino","vlr_unitario","vlr_frete","vlr_outros","vlr_descontos","StateContext","createContext","StateProvider","Provider","useReducer","useContext","numeroEan","digitoVerificador","multiplicador","somaEAN","Ean","formObj","Buffer","decodeBase64","jsonPayload","decodeURIComponent","d1","d2","df","abs","setHours","isDate","RegExp","rev","tamanho","digitos","pos","resultado","caminho","_url","responseType","retornaValorPorExtenso","$","j","titulo","substituirCaracterEspecial","str","timer","ms","clearTimeout","aleatorio","letras","rnum","jsonp","encodeURI","timeout","func","script","removeChild","retornaSoLetras","casasDec","possuiErro","idRelatorio","param","rpj_obrigatorio","pathRelatorio","valorRatear","eanCodigo","fator","numlen","base64String","maxSizeInMB","maxWidth","maxHeight","maxFileSize","Image","canvas","ctx","getContext","drawImage","compressedBase64","toDataURL","base64FileSize","scaleRatio","sqrt","scaledWidth","scaledHeight","exibirMensagemException","execao","detail","ret_aliquotaIcms","ret_baseIcmsSt","ret_aliquotaIcmsSt","TabVeiculo","TabVolumes","TabValores","ValidarInscricaoEstadualRS","ValidarInscricaoEstadualSC","ValidarInscricaoEstadualPR","ValidarInscricaoEstadualSP","ValidarInscricaoEstadualMG","ValidarInscricaoEstadualRJ","ValidarInscricaoEstadualES","ValidarInscricaoEstadualBA","ValidarInscricaoEstadualSE","ValidarInscricaoEstadualAL","ValidarInscricaoEstadualPE","ValidarInscricaoEstadualPB","ValidarInscricaoEstadualRN","ValidarInscricaoEstadualPI","ValidarInscricaoEstadualMA","ValidarInscricaoEstadualCE","ValidarInscricaoEstadualGO","ValidarInscricaoEstadualTO","ValidarInscricaoEstadualMT","ValidarInscricaoEstadualMS","ValidarInscricaoEstadualDF","ValidarInscricaoEstadualAM","ValidarInscricaoEstadualAC","ValidarInscricaoEstadualPA","ValidarInscricaoEstadualRO","ValidarInscricaoEstadualRR","ValidarInscricaoEstadualAP","numeroInscricao","pesosMultiplicador","inscricaoEstadualSemDigitoVerificador","somaIE","pesosMultiplicadorPrimeiro","pesosMultiplicadorSegundo","primeiroDigitoVerificador","inscricaoEstadualComPrimeiroDigitoVerificador","nNumero","numeroInscricao_","segundoDigitoVerificador","padStart","listaDigitosValorMultiplicacao","valorMultiplicacao","valor1","valor2","primeiraDezenaExata","inscricaoEstadualComSegundoDigitoVerificador","digitoVerificadorPrimeiro","inscricaoEstadualComPrimeiroDigito","valorAcrescentadoNaSoma","digitoVerificadorPadrao","DrawerVendedores","exibirDrawerVendedores","fecharDrawerVendedores","TOKEN_KEY","EMPRESA_KEY","LOCAL_KEY","NOMEEMPRESA_KEY","NOMELOCAL_KEY","REGIMETRIBUTARIO_KEY","NOMEUSUARIO_KEY","IDUSUARIO_KEY","EMAILUSUARIO_KEY","TELA_KEY","NAVEGACAO_KEY","PERMISSOES_KEY","BREADCRUMB_KEY","STATUSPLANO_KEY","TELAANTERIRO_KEY","ENTIDADE_KEY","STATUSFILIAL_KEY","DADOS_INTEGRA_KEY","CNPJ_EMPRESA_KEY","CLIENTECAT_KEY","NOMECLIENTECAT_KEY","process","getTela","getNavegacao","getPermissao","getStatusPlano","getStatusFilial","getTelaAnterior","getNomeClienteCat","nomeEmpresa","nomeUsuario","setTela","tela","nav","perm","setTelaAnterior","setDadosIntegra","setCnpjEmpresa","setClienteCatalogo","setNomeClienteCatalogo","ModalAdicionarUsuario","filiais","ModalCalcularLimite","setOpenModalCalcular","setStep","mostraRendaConj","setmostraRendaConj","valorsimulado","setvalorsimulado","listaQuestoes","setListaQuestoes","dadosResposta","setDadosResposta","setValores","adicionarResposta","pergunta","dadoPergunta","respEditar","resp","calculoSimulado","pef_renda","pef_rendaconjuge","questionario","porcentagemBase","par_percentuallimitecredito","vlrbase","vlrsim","porcentagem","salvarLimite","resposta","q","cli_valorlimitecredito","CalculatorOutlined","HighlightOutlined","questoes","ModalCartaCorrecaoNotaFiscal","exibeCondicoes","setExibeCondicoes","retornoProcessamento","mensagemCancelamento","chNFe","nSeqEvento","ModalCfop","cfo_id","retornaDadosCFOP","ModalContaGerencial","listaTipo","nivel","cgc_tipo","ModalContatoCliente","IdPessoa","BuscarDadosCliente","toc_descricao","ModalDefinirHorario","ModalEmail","exibirModalEmail","fecharModalEmail","dadosEmail","setDadosEmail","ModalEmpresaFilial","ModalEmpresaFilialBusca","relNovo","setRelNovo","rel","Nome","QuantidadeColuna","JsonRelatorio","ModalEndereco","exibirModalEndereco","fecharModalEndereco","exibirPais","produtorRural","selectPaginado","setIsEstrangeiro","cid_nome","listarTpEndereco","listarPais","pseId","tpeId","setFocusCep","pse_codigobacen","alterarStatusEstrangeiro","ModalGerarComissao","formGerarComissao","ModalExibirAcaoUsuario","ModalGerarRemessa","ModalInstrucaoRemessa","listaInstrucao","setListaInstrucao","formInstrucao","instrucao","isp_id","isp_descricao","ModalInutilizacaoNfe","solicitarInutilizacaoNumeracao","inutilizacao","nroInicial","nroFinal","nNFFin","qtdNumero","ModalListaPreco","nomeLista","verificaListaPrecoExistente","ModalLoteProduto","prl_infoadicional","listaLoteLength","isAfter","ModalManifestoDestinatario","retornaDescricaoManifestoDestinatario","ModalNacionalidade","dadosNacionalidade","exibirModalNacionalidade","fecharModalNacionalidade","nacionalidade","setListaNacionalidade","ModalNcm","InfoCheque","chq_serie","ModalOcorrencia","movimentacaoCheque","setMovimentacaoCheque","motivoDevolucao","setMotivoDevolucao","chq_id","och_id","och_data","och_status","cmc_id","och_observacao","cc","cmc_descricao","ModalOcupacao","listaOcupacoes","exibirModalOcupacao","fecharModalOcupacao","cbo_id","cbo","dadosOcupacoes","cbo_descricao","poc_principal","setDadosOcupacoes","ocup","ModalOrgaoSubjacente","listaOrgaoSubjacente","exibirModalOrgaoSubjacente","fecharModalOrgaoSubjacente","pop_cep","pop_cidade","pop_email","pop_ativo","pop_observacao","pop_latitude","pop_longitude","pop_numero","pop_localreferencia","pop_complemento","pop_bairro","pop_endereco","pop_telefone","setListaOrgaoSubjacente","ModalOutroContato","listaOutrosContatos","exibirModalOutroContato","fecharModalOutroContato","dadosOutrosContatos","listarTpOutroContato","listaTpOutroContato","setDadosOutrosContatos","toc","ModalPessoaAutorizada","listaPessoasAutorizadas","exibirModalPessoaAutorizada","fecharModalPessoaAutorizada","listasGrauParentesco","setListasGrauParentesco","dadosPessoasAutorizadas","g","grp_id","grp_descricao","pesAuto","pea_id","pea_ativo","setDadosPessoasAutorizadas","pef_id","pessoafisicas","ModalPlano","inativo","setGratis","setMei","inicial","setInicial","avancado","setAvancado","completo","setCompleto","premium","setPremium","backgroundColor","ModalProdutoCondicional","dadosCondicional","setDadosCondicional","ven_nome","vnc_observacao","vci_quantidade","vci_devolvido","vci_valorun","ModalTelefone","listarTpTelefone","listaTpTelefone","psc_ativo","psc","ModalTributacaoIcms","listaOrigemDestino","listaCst","setListaCst","listaCsosn","setListaCsosn","listarUfDestino","setListarUfDestino","setRegimeTrib","estadoOrigem","setEstadoOrigem","mostrarCsoSn","setMostrarCsoSn","mostrarCstIcms","setMostrarCstIcms","mostrarDiferimentoIcms","setMostrarDiferimentoIcms","mostrarAlicotaIcms","setMostrarAlicotaIcms","mostrarReducaoBC","setMostrarReducaoBC","obrigatorioDadosICMS","setObrigatorioDadosICMS","validarCst","codigoCst","iod_percicms","rt","codigoCso","validarCsosn","calculaAliquotaEquivalente","calculaPercentualReducao","_percicms","_aliquotaEquivalente","_calc","_percreducao","aliquotaEquivalente","percicms","percicmsreducaobc","percdiferimentoicms","iod_id","cst_descricao","cso_descricao","ModalVeiculo","exibirModalVeiculo","fecharModalVeiculo","ModalCancelamentoNfe","_cStat","ModalReenviarSefaz","notafiscalformapgtos","ModalDevolucao","abrirManutencao","ModalEnvioNFeEmail","dest","enderecosDestinatarios","enderecoEmail","adicionarEmail","emailLista","excluirEmail","ModalAjudaRejeicaoNfe","activeOpen","setActiveOpen","CustomerServiceOutlined","comandosEnviarImp","etiqueta","qtdComandos","comando","met_comando","indiceEtiqueta","met_quantidadecaracteresdescricaoproduto","imprimirImpressoraPadrao","montarEtiquetaImpressora","ModalImprimirEtiquetas","listaModeloPadrao","setListaModeloPadrao","listaModeloEtiqueta","setListaModeloEtiqueta","buscarListaPreco","listarItensNota","imprimirEtiqueta","tpEtiqueta","imprimirEtiquetaImp","descricaoModelo","onChangeTipo","ModalGradeOrdemCompra","pedidoItem","pedidoFormaPgto","carregarItensPedido","formataCpf","formataCnpj","pes_nomecliente","pes_nometransportador","pes_nomevendedor","ped_observacao","totFrete","retornaFrete","retornaValorTotal","ModalDevolucaoCondicional","formDados","vci_quantidadeDevolvida","vci_id","devolvidoTotal","oit_qtde","oit_valorunitario","valorFinal","setValorFinal","orf_valortotal","orf_percentualdesconto","orf_percentualacrescimo","orf_observacao","ModalDetalheOrcamento","orcamento","setOrcamento","orc_nomecliente","orc_valoroutros","ModalGradeProduto","origem","dadosValidacao","ehPercentual","setEhPercentual","dadosFiltrados","setDadosFiltrados","alterarQuantidade","calcularAcres","calcularDesc","filtrados","percDesc","valorDesc","valorAcresc","valorRet","percAcresc","ModalSenhaLiberacao","iconRender","EyeTwoTone","EyeInvisibleOutlined","ModalListarParcelas","alterarEstado","parcelaAlt","prc","nft_id","salvarParcela","estornaParcela","ModalEditarVencimentoParcela","validarValor","ModalImportarElementosFormulario","exibirModalImportarElementos","fecharModalImportarElementos","listaElementosSelecionados","setListaElementosSelecionados","listaParametros","setListaParametros","filtrosRel","setFiltrosRel","codRel","setCodRel","listarParametros","listaParametrosAtz","par","rpj_tipoelemento","listaParametrosTemp","listaElementos","selecionaElementos","rpj_id","importarElementos","ImportOutlined","ModalImportarElementosCamposAdicionais","cap_label","ModalPersonalizacaoFormulario","exibirModalPersonalizacao","fecharModalPersonalizacao","meta","ModalPersonalizacaoFormularioFiltros","finish","ModalEditarValoresParcela","calcularValorReceber","verificarValorReceber","FormBuilder","defineWidget","Rate","Slider","TimePicker","Upload","ModalBandeiraCartao","listaBandeiras","setListaBandeiras","bandeiraSelecionada","setBandeiraSelecionada","modalCancelar","abrirTipoParcelamento","bnd_logo","ModalEditarPDV","dadosPdvTemp","ModalManutencaoNota","mostarCsoSn","notaTransferencia","exibePerc","setExibePerc","estadoOrig","setEstadoOrig","estadoDest","setEstadoDest","listaEst","estadoDestino","tribPisCofins","ModalContaCorrente","linhaPintada","setLinhaPintada","searchTerm","setSearchTerm","searchResults","setSearchResults","results","selecionarContaCorrente","ModalTaxasCartaoCredito","ModalAntecipacaoClienteFornecedor","formAnterior","exibirModalAntecipacaoClienteFornecedor","fecharModalAntecipacaoClienteFornecedor","dadosAntecipacao","listaAntecipacao","setListaAntecipacao","setValorAtecipacao","totalAntecipacao","anm_valor","saldoAUtilizar","selecionarAntecipacoes","ModalSelectLote","dadosLote","setDadosLote","itemCLote","quantidadeRestante","quantidadeParaAtribuir","prl_id","nfl_qtde","selecionarLotes","ModalDevolucaoSubstituicaoTributaria","validar","ModalListaProduto","exibirModalListaProduto","fecharModalListaProduto","ModalDetalhesOrdemCompra","ocp_faltareceber","atributoTemp","orc_observacao","orc_formapagamento","ModalEstornoNfe","textoEstorno","ModalParcelasPendentes","ModalAliquotaSimplesNacional","aposSalvar","ModalItemInventario","ModalGrade","ModalConfirmacaoTransferencia","conferiTodos","setConferiTodos","usarLeitor","setUsarLeitor","codBarrasInput","marcarItem","produtoConferido","itensNotaFiscal","idSerie","elipse","ModalEditarItemDevolucao","ModalEditarNotaFiscalEntrada","ModalEditarCFOP","ModalAntecipacaoDevolucao","setSelecionarContaCorrente","ModalContrato","confirmacaoLeitura","ModalCheque","vemDaNota","quantidadeCheque","valorTotalCheque","ModalRetornaContaGerencial","listaContaGerencialTodas","setListaContaGerencialTodas","contaLista","dadosContaGerencial","ModalInutilizarNota","ExceptionOutlined","ModalProdutoGrade","setListaGrade","listaGradeBkp","setListaGradeBkp","dadosDaGrade","ModalMapa","ModalRetencao","fecharModalRetencao","ModalSelecaoClientesCat","formClientes","dadosLista","setDadosLista","emailusuario","cancelButtonProps","ModalExibeImagem","ModalManutencaoPecasCat","formGrupo","exibirModalItens","dadosPecasSelect","setDadosPecasSelect","flagCodPeca","setFlagCodPeca","jaTemFoto","setJaTemFoto","NumeroItem","Quantidade","Observacoes","listaPecasLength","salvarFoto","FileName","Base64Data","SeqGrupo","pecaEditando","CodPeca","dadosPeca","some","peca","UploadFoto","ModalGradeProdutoImportacao","TabItensSelecionar","confirmarItens","modalFechada","botaoConfirmar","setBotaoConfirmar","itemEditado","setItemEditado","cancelEdit","novosItens","oit_id","oit_valortotal","salvarEdicao","TabFormaPagamentoSelecionar","confirmarFpgs","listaFpg","setListaFpg","novasFpgs","orf_id","ModalSelecionarOrcamento","itensConfirmados","setItensConfirmados","fpgsConfirmados","setFpgsConfirmados","setModalFechada","loadingModal","okButtonProps","ModalGradeEstoque","setItensProduto","precoVenda","qtdPedido","qtdCondicional","qtdPrevisao","ComboData","opcoes","Data","this","InputDemoDate","setState","ManutencaoCondicional","dadosEntrega","setDadosEntrega","setCliente","quantidadeTot","setQuantidadeTot","setValorTot","dadosSenha","setDadosSenha","dataRetorno","devolver","possuiEdicaoAberta","recalcularTotais","modalParcelasAtraso","modalSenhaGerencial","totBaixado","dataEntrega","horaEntrega","minutoEntrega","horaagendada","vnc_imagemassinaturacliente","vendacondicionalitens","endPrincipal","endEntrega","switchEntregar","vci_sequencia","desfazerDevolucao","manutencaoItem","salvarItem","cancelarEdicaoItem","DrawerCondicional","eventEmitter","EventEmitter","fn","once","off","payload","freeze","ModalDadosPecas","setDadosPeca","setDadosTabela","listaDadosTab","percDescCli","valorLiquido","valIpi","perMva","percIcms","valIcms","percRedBaseCalcST","baseCalcST","valST","precoFinal","codigoAlternativo","infAdicional","lineHeight","sx","infoCliente","clienteCidade","clienteCep","clienteUF","addShoppingCart","seqKey","valorItemDesconto","pdi_numeroitem","pdi_percacresc","DrawerTransportadores","exibirDrawerTransportadores","fecharDrawerTransportadores","valorTotalPedido","formTransp","mostrarModalTransp","setMostrarModalTransp","buscarVeiculos","pdi_valoroutrasdespesas","onBlurFunction","transp","trn_valorfretefixo","trn_percentualfrete","retornaValorFrete","emiteTransferencia","editarValores","setEditarValores","valorJaPago","setValorJaPago","pagamentoTotal","setPagamentoTotal","executarParcelas","setExecutarParcelas","formaPagamentoAtual","setFormaPagamentoAtual","indexPosicao","pedidoparcela","valorRestantePgto","restante","novaFormaPagamento","novaCondicoesPagamento","pagamentoTemp","ped_valorTotal","dadosCondicoesPagamento","calculaDesconto","percValor","ped_valorTotalDesc","recalcularTotalPedido","calculaAcrescimo","ped_valorTotalAcre","percDesconto","valorCFreteEOutros","calcuPercDesc","calcuPercAcresc","possuiBoletoComParcelas","possuiBoletoSemParcelas","validarJaPossuiBoleto","valorTotalIPI","adicionarFormaPagamento","editarFormasPagamento","removerFormaPagamento","dataVenc","ajustarDataParcelas","editarParcelas","salvarParcelas","rowExpandable","totalPagamento","ManutencaoPedidos","mostraBtnSalvar","dadosEnderecoLocal","setDadosEnderecoLocal","listaTelefone","setListaTelefone","abreModalEndereco","setAbreModalEndereco","abreModalEmail","setAbreModalEmail","formularioEmail","dadosFormasPagamento","setDadosFormasPagamento","setEmiteTransferencia","abrirDrawerVendedores","setAbrirDrawerVendedores","formVendedores","openDrawerCliente","setOpenDrawerCliente","validaValorPago","pedidoitens","pedidoformapgtos","arrayDados","telefoneCliente","ped_valorfrete","ped_valorTotalitens","ped_valoroutrasdespesas","ped_responsavelpedido","pgto","pfp_id","pdi_id","carregarDadosCliente","retornarDadosCPFCNPJ","dadosEmailCliente","ExclamationOutlined","limparCliente","buscarDadosLocal","retornoEndereco","totalIPI","cso_i","ret_percReducaoIcms","ret_percMva","ret_percReducaoIcmsST","ped_indicadorpresenca","pdi_valoricmsst","pdi_valoripi","restoClientes","restoForma","oit_desconto","oit_observacao","restoItem","carregarDadosInciais","carregarDadosItems","ope","campoKey","Divider","rulesFormItem","setCodigoCliente","DrawerPedidos","setMostraBtnSalvar","setvalorTotalSt","rateios","reteioDesconto","nfi_valordescontorateado","_valorTotalDescontoItem","_totalDesconto","_valorDesconto","percentualDescontoConcedido","ven_maximodesconto","ManutencaoNotaFiscal","abreModalSimplesNac","setAbreModalSimplesNac","setDadosVendedor","openModalEndereco","setOpenModalEndereco","formEndereco","openValidaIE","setOpenValidaIE","consumidorFinal","setconsumidorFinal","listaSubjacente","setListaSubjacente","popularDadosSimples","setarAdjacentes","adjacentes","setarEnderecos","setarTelefones","telefonePrincipal","setarEmails","emailPricipal","modalVerificaIEdestinatario","validarOperacao","interestadual","buscarDadosCliente","pessoaorgaospublicos","ie","reteioFrete","salvarNota","modalAutorizarSefaz","realizarReenvioSefaz","analisaFormaPagamento","pagamentoMaquininha","listaIdsIntegracao","pagamentoPayer","concluirVenda","verificarPagamentos","imprimirDAVLS","tratarPedidoFaturado","AlterarSituacaoCondicional","incluirNota","subjacente","pop_id","ntf_subjacente","pe","pop_nome","listaCliente","dadosVen","alterarVendedor","tratarDadosSubjacente","GrupoCatalogo","formCatalog","exibirModalPecas","setExibirModalPecas","subgrupoSelect","setSubgrupoSelect","listaTempGrp","codigoGrp","descricaoGrp","Pecas","removerPecas","novaListaPecas","DrawerNFExtra","InputCpfCnpj","NovoValor","onKeyUp","DevolucaoCondicional","formItemCondicional","riscarCampos","setRiscarCampos","checkedSwitch","setCheckedSwitch","dadosDevolucao","setDadosDevolucao","itemEncontrado","todosItensDevolvidos","setarFocoProduto","lenght","percdes","excluirItens","SelectPaginado","setarPrimeiroReg","setLista","alterouPag","setAlterouPag","setCampoDescricao","setValor","primeiroReg","setPrimeiroReg","parametrosUrl","search","onPopupScroll","scrollTop","offsetHeight","scrollHeight","onPopUpScroll","SelecoesEmpresa","hash","reload","ModalProcessoLento","LancamentoTransferencia","setListaFiliais","listaContaCorrenteDestino","setListaContaCorrenteDestino","listaContaGerencialOrigem","setListaContaGerencialOrigem","listaContaGerencialAgrupadorOrigem","setListaContaGerencialAgrupadorOrigem","listaContaGerencialDestino","setListaContaGerencialDestino","listaContaGerencialAgrupadorDestino","setListaContaGerencialAgrupadorDestino","listarContaDestino","mcc_datahora","ctc_id_origem","ctgorigem","ctg_id_origem","ctgdestino","ctg_id_destino","ctcorigem","ctcdestino","ctc_id_destino","localdestino","acompanharLancamentos","setAcompanharLancamentos","listaContaGerencialPesquisa","setListaContaGerencialPesquisa","listaContaGerencialAgrupadorPesquisa","setListaContaGerencialAgrupadorPesquisa","saldoAtualConta","setSaldoAtualConta","saldoAnteriorConta","setSaldoAnteriorConta","buscarDadosContaGerencial","buscarSaldoConta","h","ctg_id_consulta","valor_consulta","caixa","InputEmail","setIsValid","ManutencaoMarca","ManutencaoGrupoProduto","ManutencaoSubGrupo","gru","ManutencaoVendedor","opcoesCriarUsuario","setOpcoesCriarUsuario","listaEstadoCivil","setListaEstadoCivil","listaUsuariosLocal","setListaUsuariosLocal","exibirOpcoes","setExibirOpcoes","criarUsuario","validarAbas","vendedorcampopersonalizados","vcp_valor","vcp_id","listaValidacoesVen","valida","adicionaEmail","pes_vendedor","listarVendedorCpf","usu","usuarioVinculado","regioesVenda","regioes","adicionarFuncionarioVendedor","modalAdicionarFuncionarioVendedor","campoId","emailUsuarioExistente","emailUsuarioDisponivel","EstCivil","controls","ManutencaoTransportador","fretePorConta","setFretePorConta","tipoTransporte","setTipoTransporte","setBaixadoRec","transportadorcampopersonalizados","tcp_id","tcp_valor","pes_transportador","listarTransportadorCpfCnpj","pessoaAutorizada","transportadorveiculos","ManutencaoClientes","orgaoPublico","setOrgaoPublico","openModalCalcular","dadosRegimeTrib","setDadosRegimeTrib","setProdutorRural","cli_datainiciallimitecred","cli_datafinallimitecred","listaOrgaoPublico","clientecampopersonalizados","ccp_valor","pes_cliente","cli_clientecontribuinteicms","pej_orgaop","pessoaautorizada","ccp_id","dissable","TabFaturamentoNovo","valorOrcamento","setValorOrcamento","dadosItemEditando","setDadosItemEditando","valorPgmto","orcamentoFormaPagamento","valorPagamento","valoracrescimo","valordesconto","valoritens","setOrcamentoFormaPagamento","adicionarLista","ManutencaoOrcamento","clienteSemCadastro","setClienteSemCadastro","buscarDadosOrcamento","orc_numerotelefone","clienteSelecionado","preencherDadosOrcamento","orc_responsavelorcamento","orcamentoformapagamento","orcamentoitem","isBefore","UserAddOutlined","retornaDadosCliente","Drawer","formOrcamento","TabEntrada","listaCstPisCofins","setListaCSTPisCofins","cstpispj","setcstpispj","cstcofinspj","setcstcofinspj","cstpispf","setcstpispf","cstcofinspf","setcstcofinspf","cpc_descricao","TabSaida","listaNaturezaEfd","setListaNaturezaEfd","naturezaReceita","setNaturezaReceita","cstcofins","setcofins","nat_id","nat_codigo","ManutencaoTributacaoPisCofins","DrawerTributacaoPisCofins","formTributacaoPisCofins","ManutencaoTributacaoIcms","setListaOrigemDestino","dadosOrigemDestino","setDadosOrigemDestino","iod_novo","iod","icmsorigemdestinos","DrawerTributacaoIcms","formTributacaoIcms","ImprimirImpEtiqueta","configCodBarra","persCodBarra","qtdParc","limparItens","popularDadosProduto","keyProd","buscarGrade","produtosIncluir","ServidorImpressao","menuConfig","carregandoServer","setCarregandoServer","listaImpressoras","setListaImpressoras","setAbrirManutencao","verificarConfiguracao","impressoraNaoFiscal","listarImpressoras","listarModeloEtiqueta","retImp","modeloEtiquetaImp","impressoraNFiscal","impEtiquetaUtilizar","downloadServidor","indicator","spin","imp","padraoDYMO","salvarConfiguracoes","MehOutlined","verificarServidorNovamente","formatDate","TabelaDados","headerTabela","setRegistrosPorPagina","listaTbDados","setListaTbDados","configPaginacao","onSelectAll","changeRows","setCondicaoSelecionarItem","configSelecionarRadio","setSelecionaRadio","ordem2","newValue","carrinhoItens","atualizarCarrinho","setAtualizarCarrinho","setTotal","setPrecoItem","openDrawerPedido","setOpenDrawerPedido","updateTotal","buscarPreco","useCallback","prevState","deleteAllItems","editItemQuantity","more","enviarPedido","ConcatPedido","newTotal","CodigoCliente","concluirPedido","textDecoration","ItemFormulario","fnEditar","fnExcluir","TiposElementosFormulario","el","RetornaDescricaoElementoFormulario","widget","HeaderPage","openPerfil","setOpenPerfil","openBuscaGlobal","setOpenBuscaGlobal","openPaginaAbertas","setOpenPaginaAbertas","openModalModulos","setOpenModalModulos","openModalPesquisaGlobal","setOpenModalPesquisaGlobal","paginasAbertas","setPaginasAbertas","formularioPerfil","listaNotificacoes","setListaNotificacoes","contador","setContador","openServidor","setOpenServidor","dadosBusca","setDadosBusca","formularioServImp","openModalCliente","setOpenModalCliente","setCatalogo","openDrawerSinc","setOpenDrawerSinc","clienteCatalogo","countItemCart","toggle","useFullScreen","showDrawerPerfil","onClosePerfil","onCloseServidor","useMemo","menuUsuario","SettingFilled","WechatFilled","LogoutOutlined","notificacoes","excluirNotificacoesDia","InfoCircleTwoTone","notif","listarNotificacoes","outrosConteudos","infoCliCatalogo","ExpandOutlined","arrow","BellFilled","UnorderedListOutlined","DrawerPaginasAbertas","exibirPagina","paginas","fecharPagina","zIndex","efetuarBuscaGlobal","PesquisaGlobal","openPesquisaGlobal","ModulosPage","Perfil","imagemAlterada","SincronizarCatalogo","LinkNav","patch","icone","MenuPage","listaMenu","setListaMenu","openKeys","setOpenKeys","rootKeys","CarregaMenu","pesquisarMenu","subMenu","Sider","breakpoint","collapsedWidth","defaultSelectedKeys","onOpenChange","latestOpenKey","elementRef","elementoPai","parentNode","firstChild","innerText","AtzBreadcrumb","SubMenu","onTitleClick","ordemMenu","itemMenu","validarPermissaoMenu","itm_id","BreadcrumbPage","listaTitulo","breadcrumb","htmlBreadcrumb","setHtmlBreadcrumb","MontaBreadcrumb","arrBreadcrumb","defaultActiveKey","SelectProduto","overflow","textOverflow","FiltroSearch","nameInput","FiltroAtivo","FiltroOrdenacao","BotaoIncluirDados","desabilita","setDesabilita","PesquisaOrdenacao","labelInputFiltroAtivo","BreadcrumbIncluirDados","BotaoAbrirChamado","PesquisaOrdenacaoData","setDataPesquisa","FiltroData","valueSlider","setValueSlider","ModalDetalheLoteNfi","itemLote","TabDetalheItens","itensNF","percentualDesc","setPercentualDesc","exibirModalLote","setExibirModalLote","setDadosItem","retornarPercentual","nis_valorbcst","nis_percicmsst","nis_valoricmsst","nis_percmvast","tooltip","TabDetalheIFormaPagamento","Print","imp_idintegracao","nfp_codigovalepresente","nfp_valortroco","renderFunction","rcc_conciliado","TabDetalheTotalizadores","detalheNotaFiscal","setDetalheNotaFiscal","valortotalprodutos","valortotalbcicms","valortotalbcicmsst","valortotalbcipi","valortotalicms","valortotalicmsst","valortotalipi","valortotaloutros","valorbcpis","valorbccofins","valortotalpis","valortotalcofins","TabNotaReferenciada","docsreferenciados","datadoc","dfr_chave","totaldoc","DetalheNotaFiscal","arrFinalidade","arrStatus","arrAmbiente","setverificadevolucao","verificadevolucao","ntf_ambiente","DetalhePedido","pedido","setPedido","ped_iedest","FormGW","listaInputHidden","validarCampoValido","elements","formItemHidden","querySelector","inputHidden","itemHidden","popularListaInputHidden","prototype","call","activeElement","verificarJaPossuiFocus","getFieldInstance","allValues","gravaLocalStorage","SelectAll","idValue","returnObject","usouFiltro","setUsouFiltro","filtroAnt","setFiltroAnt","multiplosFiltros","_nameValue","lf","SelectIncluir","onDeselect","onDropdownVisibleChange","onInputKeyDown","retornarDadosArray","isArray","rpj_linha","rpj_coluna","EditorFormulario","objElementoFormularioEdicao","formEditor","openModalPersonalizacao","setOpenModalPersonalizacao","openModalImportarElemento","setOpenModalImportarElemento","elementoEdicao","setElementoEdicao","optionsSelect","SortableItem","SortableElement","sortIndex","indiceElemento","rpj_options","editarElementoTela","excluirElemento","SortContainer","SortableContainer","onSortEnd","oldIndex","newIndex","arrayMove","shouldCancelStart","tagName","rpj_mensagemobrigatorio","errorFields","field","errors","normalize","tipoEl","cap_linha","cap_coluna","cap_obrigatorio","EditorFormularioCampos","marks","cap_options","somaColunaLinha","verificaNome","duration","FormularioDinamico","retornarLinhas","elementosDinamicos","setElementosDinamicos","elementoConvert","retornaElementos","camposDinamicos","lin","linhasFiltro","componente","itemFiltro","inputNumber","inputPreco","dataPicker","select","selectPaginacao","selectAll","checkbox","rpj_mensagemObrigatorio","rpj_placeholder","FiltroProduto","listaSelectProd","setListaSelectProd","liberacaoSenha","setLiberacaoSenha","popularProduto","produtosSelec","carregarParametrosLocal","resParams","paramsEstoque","par_avisoestoqueinsuficiente","dadosIncluido","resEstoque","valorEstoque","calcularValorEstoque","estoqueInsuficiente","novosDadosIncluido","adicionarItemCondicional","filtroGrade","somenteValorPositivo","aprovado","gravarTela","constante","dadosTela","limparTela","todos","DrawerNav","afterVisibleChange","jsonGeral","dadosCaminho","nomeForm","DrawerLancamentoTransferencia","DrawerManutencaoCaixa","listaPag","onClosePaginaAbertas","dadosGeral","pag","pagSelec","pagAbertas","excluirPagina","Tabela","FormasPagamento","setFormaPagamento","multiplasFormasPagamento","setMultiplasFormasPagamento","ehValePresente","setEhValePresente","isNota","setIsNota","setDadosParcelas","formaPagamentoAntecipacao","setFormaPagamentoAntecipacao","tipoContaCorrente","setTipoContaCorrente","abreModalAntecipacao","setAbreModalAntecipacao","setDadosAntecipacao","setValorRestante","desabilitaBtn","setDesabilitaBtn","semPagamento","setSemPagamento","dadosFpg","verificarAntecipacoes","abrirModalCartao","formaPgtoAntecipacao","dadosIniciais","liberadoCredito","pagamentoCartao","codigoValePresente","descontoPadrao","incluirNovaFormaPagamento","ant","validacaoFormasPagamento","codVale","saldoVale","buscarValePresente","salvarFormaPagamento","cancelarAlteracoesFormaPagamento","cancelaContaCorrente","FormasPagamentoRecebimento","InfoNotaNFe","InfoProdutoGrade","PageGrade","updateValue","property","TabTodas","TabFornecedor","TabFuncionario","PesquisaPedidos","PesquisaOrcamento","oit_qtditem","PesquisaCondicional","PesquisaContaReceber","PesquisaContaPagar","PesquisaTributacaoIcms","PesquisaTributacaoPisCofins","pesquisaTipo","conteudoExibir","setConteudoExibir","listaNota","setListaNota","listaPedido","setListaPedido","listaOrcamento","setListaOrcamento","listaCondicional","setListaCondicional","listaTributacaoIcms","listaContasPagar","setListaContasPagar","listaContasReceber","setListaContasReceber","totalRegistros","setTotalRegistros","montarTelas","telaPessoas","pessoas","telaNota","notafiscal","telaPedidos","pedidos","telaCondicional","vendacondicional","telaContasReceber","contasareceber","telaContasPagar","contasapagar","telaOrcamentos","orcamentos","telaProdutos","telaTributacaoIcms","tributacaoicms","telaTributacaoPisCofins","tributacaopiscofins","busca","efetuarBusca","speed","dots","slidesToShow","slidesToScroll","FiltroProdutoNfi","buscarProdutosCodBarra","setBuscarProdutosCodBarra","dadosCfop","setDadosCfop","abrirModalManutencaoNota","setAbrirModalManutencaoNota","dadosProdutoImpostos","setDadosProdutoImpostos","ocultaListaPreco","setOcultaListaPreco","controleLote","setControleLote","abrirModalLote","setAbrirModalLote","buscarDadosProdImpostos","destinoOperacao","codigoProd","ufDest","inscEstadual","listaPrecoPar","objProd","informacaoAdicional","carregarSelectPaginados","listaPrecoTemp","listaPrecoCliente","ope_tipoprecoutilizar","produtoImposto","popularFormProduto","ncm_porcentagem","popularDadosContribuintes","incluirItemPedidoCondicional","onChangeValorUnitario","recalcularValorTotal","onClickBtnCancelar","perDesconto","validarDescontoMaximoVendedor","calculaTotalItemDescAcr","dadosImposto","tip_entradasaida","popularItemNota","alterarItem","incluirItem","verificarItemLote","itemNota","valorSt","prodNota","dadosPreco","buscaPrecoListaPrecoSelecionada","carregarNcm","nfitemlotes","salvarLotes","FiltroProdutoPdi","setAux","abrirModalListaProd","setAbrirModalListaProd","listaDadosProdModal","setListaDadosProdModal","liberadoParaIncluir","setLiberadoParaIncluir","produtoBuscaEan","setProdutoBuscaEan","buscarDadosProdutoPedido","prod_id","listaprecoItem","custoProd","lpc","dpr_precovenda","adicionarItemPedido","adicionarItemCodBarras","itemPedido","pdi_basecalculoicms","pdi_basecalculoicmsst","pdi_basecalculoipi","pdi_percentualicms","pdi_percentualicmsst","pdi_percentualipi","proId","prg","FiltroProdutoNtf","tributacaoIcms","setTributacaoIcms","classeProduto","buscarDadosProdutoNotaTransf","setarCfopCorrespondenteTributacaoICMS","adicionarItemNotaTransferencia","cfoCfop","vlr_valorunitario","ipi","diferimento","icmst","retornoDiferimento","baseIPI","baseICMSST","ICMSST","nig_valoricmsoperacao","ICMS","nig_percicmsdiferimento","nig_valoricmsdiferimento","valorICMSDiferido","adicionarItemLeitorCodBarras","dadostributacao","resGrade","incluirProdutoExterno","prodSelecionado","itemDaLista","abrirEditarItem","salvarDadosGradeModal","FiltroProdutoOrcamento","numeroitem","EditarTabela","InputPhone","lazy","maskOptions","appended","dynamicMasked","isCellPhone","unmaskedValue","compiledMasks","PhoneInput","LancamentoCheque","setListaCliente","infoBanco","setInfoBanco","detalhesCheque","setDetalhesCheque","listaCheques","setListaCheques","emissor","setEmissor","valorPorExtenso","pessoa_nome","selecionarCliente","popularCheque","campoValor","campoExtenso","atualizaDetalhes","cpfcnpjemissor","rgieemissor","nomeemissor","emissorclientedesde","valorUn","validarDigito","valorCheques","chq_codigocompensacao","chq_c1","chq_c2","chq_c3","valorExtenso","chq_nomeemissor","chq_cpfcnpjemissor","chq_rgieemissor","chq_telefoneemissor","telefoneemissor","chq_emissorclientedesde","chq_observacao","chq_cmc7","radioemissocheque","buscaDadosEmissorCheque","AimOutlined","buscarBanco","SlideLogin","effect","autoplay","AberturaChamado","setFile","activeIndex","setActiveIndex","onchange","arquivos","before","dataTransfer","files","listaArq","arq","handleOnClickClose","browser","isOpera","isFirefox","isSafari","isIE","documentMode","isEdge","StyleMedia","isChrome","dadosTicket","screen","availWidth","availHeight","platform","windowsPlatforms","iosPlatforms","os","getOS","dados_console","anexos","tipoArquivo","popularAnexos","chamadoAberto","numeroProtocolo","html2canvas","Editar","Duplicar","Adicionar","Imprimir","Explorar","Inutilizar","ImportarXML","NotaFiscalButton","EmitirNotaFiscal","CancelarEstorno","EmitirNotaFiscalTransferencia","LancamentoEntrada","LancamentoSaida","Download","GerarEfdIcmsIpi","enumStatus","listarPlanoLocal","voltarHome","renovarPlano","retornoMudancaPlano","PesquisaCamposPersonalizados","setCampoPerSelecionado","setTipoFiltroPersonalizado","setCondicao","camposPer","setCamposPer","campoPer","PesquisaAvancada","listaCondicao","setListaCondicao","listaCondicaoReq","setListaCondicaoReq","listaCampos","setListaCampos","setListaFiltros","ehBooleano","setEhBooleano","ehData","setEhData","listaCamposBooleano","listaCamposString","listaCamposData","adicionarFiltro","validarFiltrosPreenchidos","labelCampo","labelCondicao","validarFiltrar","booleano","camposKey","removerFiltroLista","BreadcrumbAbrirChamado","InputCep","InputPercentual","precisao","valorTemp","zeros","repeat","valueTemp","myInputRef","NumericInputDemo","styleForm","NotaFiscalEntradaButton","progresso","setProgresso","exibeProg","setExibeProg","clienteOk","setClienteOk","produtoOk","setProdutoOk","deuErro","setDeuErro","listaErros","setListaErros","resCli","resProd","Paper","TableHead","ItensPedidoCat","FecharPedidoCatalogo","setDadosPedidos","setItensCarrinho","cliCpfCnpj","nomeCidade","codUF","GerarChavePedido","DrawerPedidoCat","setPages","DrawerGrupoCat","FiltroProdutoKit","listaItensTemp","produtoTemp","valor_unitario","produto_id","adicionarElemento","widgetProps","defaults","eval","tratarErro","editarElemento","tipoDeValidacao","botoesValidacao","valuesBotoes","objPermissao","validarPermmissao","acao","retornaAcao","permissao","Endereco","alterarPropriedadeEndereco","coluna","indexPrincipal","editEndereco","removerEndereco","OrgaoSubjacente","openModalOrgaoSubjacente","setOpenModalOrgaoSubjacente","alterarPropriedade","EditableCell","Email","openModalEmail","setOpenModalEmail","alterarPropriedadeEmail","removeEmail","pem_enviarcobranca","editEmail","Telefone","openModalTelefone","setOpenModalTelefone","tagPrincipal","tagsAtivo","editingKey","alterarPropriedadeTelefone","modalExcluirTelefone","removeTelefone","tag","psc_observacao","editaTelefone","Ocupacao","openModalOcupacao","setOpenModalOcupacao","modalExcluirOcupacao","poc_id","removeOcupacao","alterarPropriedadeOcupacao","editaOcupacao","Nacionalidade","tagsData","selectedTags","setSelectedTags","openModalNacionalidade","setOpenModalNacionalidade","pse_nacionalidade","excluirNacionalidade","pen_dataentradapais","pen_observacao","nextSelectedTags","editarNacionalidade","openModalOutroContato","setOpenModalOutroContato","modalExcluirOutroContato","removeOutroContato","alterarPropriedadeOutrosContatos","editaOutroContato","PessoasAutorizadas","openModalPessoaAutorizada","setOpenModalPessoaAutorizada","removePessoaAutorizada","alterarPropriedadePessoaAutorizada","editaPessoaAutorizada","Veiculos","openModalVeiculo","setOpenModalVeiculo","trv_ativo","alterarPropriedadeVeiculo","SelectPaginacao","totalReg","setTotalReg","trunc","subtrairSomarDias","NovaData","inputElement","closest","inputs","currentIndex","nextInput","DataInput","InputPreco","aposVirgula","InputValor","negativo"],"mappings":"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","file":"static/js/main.1ce459db.chunk.js","sourcesContent":["export default function maskFormat(data, text, cpfCnpj = false) {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n // if (cpfCnpj) {\r\n // if (data.toString().length > 11) {\r\n // text = '00.000.000/0000-00';\r\n // } else {\r\n // text = '000.000.000-00';\r\n // }\r\n // }\r\n\r\n if (cpfCnpj) {\r\n if (data.length > 11) {\r\n text = '00.000.000/0000-00';\r\n } else {\r\n text = '000.000.000-00';\r\n }\r\n } \r\n\r\n let onlyNumbers = data.replace(/[^0-9]/g, '');\r\n if (onlyNumbers === '') {\r\n return;\r\n } else {\r\n let result = '';\r\n let format = text.split('');\r\n let numbers = onlyNumbers.split('');\r\n let item = '';\r\n let index = 0;\r\n for (var i in numbers) {\r\n let num = numbers[i];\r\n if (!!format[index]) {\r\n let caracter = format[index];\r\n while (caracter !== '0') {\r\n item = item + caracter;\r\n index++;\r\n caracter = format[index];\r\n }\r\n item = item + num;\r\n index++;\r\n } else {\r\n return;\r\n }\r\n result = item.replace('*', ' ');\r\n if (format.length === result.length) {\r\n return result;\r\n }\r\n }\r\n }\r\n};","export default function formatFone(valor) {\r\n let retorno = '';\r\n if (!!valor) {\r\n valor = valor.toString();\r\n if (valor.length >= 8) {\r\n switch (valor.length) {\r\n case 8:\r\n retorno = valor.slice(0, 4) + '-' + valor.slice(4, 8);\r\n break;\r\n case 9:\r\n retorno = valor.slice(0, 1) + ' ' + valor.slice(1, 5) + '-' + valor.slice(5, 9);\r\n break;\r\n case 10:\r\n retorno = '(' + valor.slice(0, 2) + ') ' + valor.slice(2, 6) + '-' + valor.slice(6, 10);\r\n break;\r\n case 11:\r\n retorno = '(' + valor.slice(0, 2) + ') ' + valor.slice(2, 3) + ' ' + valor.slice(3, 7) + '-' + valor.slice(7, 11);\r\n break;\r\n }\r\n }\r\n }\r\n return retorno;\r\n}","export default function FormatarCPF(cpf) {\r\n let valor = '';\r\n if (!!cpf && cpf !== '') {\r\n valor = cpf.slice(0, 3) + '.' + cpf.slice(3, 6) + '.' + cpf.slice(6, 9) + '-' + cpf.slice(9, 11);\r\n }\r\n return valor;\r\n}","export default __webpack_public_path__ + \"static/media/venda-liquida.347ae568.png\";","export default __webpack_public_path__ + \"static/media/compra-liquida.fddcf344.png\";","export default __webpack_public_path__ + \"static/media/posicao-estoque.21be5beb.png\";","export default __webpack_public_path__ + \"static/media/receita-despesas.53d59ada.png\";","export default __webpack_public_path__ + \"static/media/i-gerente.ae0c7a3f.png\";","export default __webpack_public_path__ + \"static/media/i-settings.821462f7.png\";","export default __webpack_public_path__ + \"static/media/caixa.c2e705db.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/i-password.32016030.png\";","export default __webpack_public_path__ + \"static/media/i-chat.734a99c5.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MEM1RUQxNERGQjY3MTFFQkFGMkI5MzIzQjVCRjQwODMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MEM1RUQxNEVGQjY3MTFFQkFGMkI5MzIzQjVCRjQwODMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowQzVFRDE0QkZCNjcxMUVCQUYyQjkzMjNCNUJGNDA4MyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowQzVFRDE0Q0ZCNjcxMUVCQUYyQjkzMjNCNUJGNDA4MyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoYBjOAAAAM+SURBVHjatFZbSBRRGP5mZm+6q6u76uIVVteF7aZGPSiZaJEPQlCRXai3ICiCCB+inuwhCSSCICKkHoPMQsKHMipDzDASLyhali0qVl7X3dVVd6Z/ctVZnbNa0Q8fZ9nzzf+d/ztn/jOcJEn436GJNHnuZbM8X0Y4RCggZBIEQpDwhdBCeEpouLN/zyIrD8eqhATKabhOyNrEYgcIV0jo0aZEKHk0DTWEE3/hzEPCGRLzM0VIIEounVD8D1vwWraYhGZZe3KPKfDhDcS+Lgi0Jt6eDdGxFaLFBk6rW8ssDuU5va4SquIoDaqe6uvvY/ybG8HgatVmox4Boxn6k+cpi+qyyqmaWvkHrzhFVWpMQ99HjA2GC8ghLy7a7wHn7mPZVhXKuyRCUco6RbruNohiuEChKw03ThVCKwiQRtwskaxQ3pU9OcJiBnw+aAQezmQLMm1m7HLYYE80/Z7btyMDz6emscg+BHLehmWRfObbynO4drwAqfHR6+bSrTHQBrhIIvlKuxxqjMOSG87UBFUBOeKMOpTEBxHLlnEo7VJtLykSWZVgZC4zyRyF7TR2SgvwcBpm21quRFRj9PAW5DpTEMlKg8WCIUSxKKJSZFD91bVhQGdFpAx3NdsgcUzKoFKkTY0hH9w+xDEzfBIsGIU+UotpU4rUs1gtXAKGedO6/73Qoo63b9TH6pUi8p0wqm4JhxrBhengqifzQREPtFvoAUMkgdFQ3iUR6jFzNFSy2N8XeNR95TDh9WHK50er24t3Q4GNqqgM5Q07unLnlJtkyYolk150Nvego2sAnkQehaV6CJyEfreI2qZnsCZbkbfbhaydmeAFXinwKpRP9T5JoOHtrMfvev+iHb3ddOEFV0/31VwTihwCDjzxkI+rz2nMRpSW5SODehpFL2EvVTEW6WZMbHrc3N7T8Tl13cup55Ft0qBpfF6lXetx9vKxVqroIAn8VE7xa7kyQWfQOe3ZaY3UZsPmRgKiugDx7OmJjePDE0VrBSJ+SMiRc6Ha6Zn2VY9PeopmJmdildaB9iAmPsZjjY9tijUbKzpuV/T/8dfK2si7eNMgBsUculuSeJ77QbZ0tN+6NLeZZ38JMADHSB3ZYeASkAAAAABJRU5ErkJggg==\"","import { drawerActions, manutencaoActions, listagemActions, tributacaoActions, listaTabelaDadosActions, parametrosEmpresaActions, selectPaginadoActions } from '../actions'\r\n\r\nexport const reducer = (state, action) => {\r\n switch (action.type) {\r\n case drawerActions.CHANGE:\r\n return {\r\n ...state,\r\n ui: action.data\r\n };\r\n\r\n case manutencaoActions.CHANGE:\r\n return {\r\n ...state,\r\n manutencao: action.data\r\n };\r\n\r\n case listagemActions.CHANGE:\r\n return {\r\n ...state,\r\n listagem: { ...state.listagem, ...action.data }\r\n };\r\n\r\n case tributacaoActions.CHANGE:\r\n return {\r\n ...state,\r\n tributacao: { ...state.tributacao, ...action.data }\r\n };\r\n case parametrosEmpresaActions.CHANGE:\r\n return {\r\n ...state,\r\n parametrosEmpresa: { ...state.parametrosEmpresa, ...action.data }\r\n };\r\n\r\n case selectPaginadoActions.CHANGE:\r\n return {\r\n ...state,\r\n listaSelectPaginacao: action.data\r\n };\r\n\r\n case listaTabelaDadosActions.CHANGE:\r\n return {\r\n ...state,\r\n listaTabelaDados: action.data\r\n }\r\n default:\r\n return state;\r\n }\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Layout, Row, Col, Typography, Form, Input, Checkbox, Button, notification } from 'antd';\r\nimport { UnlockFilled, MailOutlined, SmileOutlined, SendOutlined, DesktopOutlined, EnvironmentOutlined, PhoneOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport { EsqueciSenha, SelecoesEmpresa } from \"./pages\";\r\nimport { login, setNomeUsuario, setIdUsuario, setEmailUsuario, getIdUsuario, setTelaAnterior, removerTelaAnt, removerLocal } from '../../services/auth';\r\n\r\nimport { ModulosPage, SlideLogin } from \"../../components\";\r\nimport { encodeBase64, parseToken } from '../../services/funcoes';\r\n\r\nconst FORMULARIO = {\r\n LOGIN: 1,\r\n SELECIONA_EMPRESA: 2,\r\n ESQUECI_SENHA: 3,\r\n}\r\n\r\nexport default function Login() {\r\n\r\n const [formularioExibir, setFormularioExibir] = useState(FORMULARIO.LOGIN);\r\n const [carregando, setCarregando] = useState(false);\r\n const [formulario] = Form.useForm();\r\n\r\n const onFinish = values => {\r\n setCarregando(true);\r\n values.senha = encodeBase64(values.senha);\r\n delete values.remember;\r\n api.post('Login/EfetuarLogin', values).then(res => {\r\n if (res.status === 200) {\r\n const token = res.data;\r\n let dadosUsuario = parseToken(res.data);\r\n setNomeUsuario(dadosUsuario.name);\r\n if (parseInt(getIdUsuario()) !== parseInt(dadosUsuario.UsuarioID)) {\r\n removerTelaAnt()\r\n }\r\n setIdUsuario(dadosUsuario.UsuarioID);\r\n setEmailUsuario(dadosUsuario.email);\r\n login(token);\r\n removerLocal();\r\n setFormularioExibir(FORMULARIO.SELECIONA_EMPRESA);\r\n }\r\n }).catch( err => {\r\n if (!!err) {\r\n if (!!err.response && !!err.response.data) {\r\n notification.error({ message: err.response.data || 'Falha ao efetuar o login' });\r\n } else {\r\n notification.error({ message: 'Falha ao efetuar o login', description: 'Verifique os dados informados e tente novamente.' });\r\n }\r\n } else {\r\n notification.error({ message: 'Falha ao efetuar o login', description: 'Verifique os dados informados e tente novamente.' });\r\n }\r\n }).finally(() => setCarregando(false));\r\n };\r\n\r\n const onFinishFailed = errorInfo => {\r\n console.log('Erro ao efetuar o login:', errorInfo);\r\n };\r\n\r\n useEffect(() => {\r\n localStorage.removeItem(\"@GestorWeb-Token\");\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Gestor\r\n \r\n \r\n \r\n Identifique abaixo suas credenciais para realizar o acesso.

\r\n
\r\n \r\n
\r\n {formularioExibir === FORMULARIO.LOGIN &&\r\n
\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Salvar meus dados de login\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n {formularioExibir === FORMULARIO.SELECIONA_EMPRESA && }\r\n {formularioExibir === FORMULARIO.ESQUECI_SENHA && setFormularioExibir(FORMULARIO.LOGIN)} />}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n www.gestorweb.com.br | (55) 3535-4900\r\n \r\n \r\n | Três de Maio - RS - 98910-000\r\n \r\n \r\n \r\n \r\n Todos os direitos reservados - Gestor Web ®\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Layout, Row, Col, Form, Input, Button, notification, Typography } from 'antd';\r\nimport { UnlockFilled, SendOutlined, DesktopOutlined, PhoneOutlined, EnvironmentOutlined } from '@ant-design/icons';\r\n\r\nimport { SlideLogin } from \"../../components\";\r\nimport api from '../../services/api';\r\n\r\nexport default function RecuperarSenha() {\r\n const [usuarioEmail, setUsuarioEmail] = useState('');\r\n const [validaHash, setValidaHash] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n useEffect(() => {\r\n let email = atob(window.location.href.split('usu=')[1]);\r\n setUsuarioEmail(email);\r\n verificarHashParaAlterarSenha();\r\n }, []);\r\n\r\n function verificarHashParaAlterarSenha() {\r\n api.get(`Usuario/VeriricarHashParaAlterarSenha/${atob(window.location.href.split('usu=')[1])}`).then(\r\n res => {\r\n if (res.data) {\r\n console.log(res.data)\r\n setValidaHash(true);\r\n } else {\r\n notification.warn({ description: 'Sua Senha Foi Alterada Recentemente, tente novamente mais tarde!', message: 'Aviso' });\r\n voltarLogin();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro.response);\r\n // if (erro.response.data.Message === \"Tempo para alterar a senha exgotado!\") {\r\n notification.warn({ description: \"Tempo limite de 30 minutos para alterar a senha exgotado! Tente novamente mais tarde!\", message: \"Aviso\" });\r\n voltarLogin();\r\n //}\r\n }\r\n );\r\n };\r\n\r\n function alterarSenha() {\r\n if (validaHash) {\r\n if (form.getFieldValue().usu_senha === form.getFieldValue().usu_confirmaSenha) {\r\n let dados = {\r\n novaSenha: btoa(form.getFieldValue().usu_senha),\r\n usu_email: usuarioEmail\r\n };\r\n api.put(`Usuario/AlterarSenha`, dados).then(\r\n res => {\r\n notification.success({ description: 'Sua Senha Foi Alterada Com Sucesso!', message: 'Aviso' });\r\n voltarLogin();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n } else {\r\n notification.warn({ description: 'As senhas informadas não conferem, favor verificar!', message: 'Aviso' })\r\n }\r\n } else {\r\n notification.warn({ description: 'Não foi possivel validar hash, Tempo esgotado, favor enviar novo pedido de recuperação de senha!', message: 'Aviso' })\r\n }\r\n };\r\n\r\n function voltarLogin() {\r\n setTimeout(() => { window.location = '/#/' }, 2000);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \"Gestor\r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('usu_senha') === value) {\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(new Error('As senhas informadas não conferem!'));\r\n },\r\n }),]}>\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n www.gestorweb.com.br | (55) 3535-4900\r\n \r\n \r\n | Três de Maio - RS - 98910-000\r\n \r\n \r\n \r\n \r\n Copyright © Gestor Web 2022 - Todos os direitos reservados\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Layout, Row, Col, Form, Input, Button, notification, Typography } from 'antd';\r\nimport { UnlockFilled, SendOutlined, DesktopOutlined, PhoneOutlined, EnvironmentOutlined } from '@ant-design/icons';\r\n\r\nimport { SlideLogin } from \"../../components\";\r\nimport api from '../../services/api';\r\n\r\nexport default function RecuperarSenhaGerencial() {\r\n\r\n const [usuarioEmail, setUsuarioEmail] = useState('');\r\n const [validaHash, setValidaHash] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n useEffect(() => {\r\n let email = atob(window.location.href.split('usu=')[1]);\r\n setUsuarioEmail(email);\r\n verificarHashParaAlterarSenha();\r\n }, []);\r\n\r\n function verificarHashParaAlterarSenha() {\r\n api.get(`Usuario/VeriricarHashParaAlterarSenha/${atob(window.location.href.split('usu=')[1])}`).then(\r\n res => {\r\n if (res.data) {\r\n console.log(res.data)\r\n setValidaHash(true);\r\n } else {\r\n notification.warn({ description: 'Sua Senha Foi Alterada Recentemente, tente novamente mais tarde!', message: 'Aviso' });\r\n voltarLogin();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro.response);\r\n // if (erro.response.data.Message === \"Tempo para alterar a senha exgotado!\") {\r\n notification.warn({ description: \"Tempo limite de 30 minutos para alterar a senha exgotado! Tente novamente mais tarde!\", message: \"Aviso\" });\r\n voltarLogin();\r\n //}\r\n }\r\n );\r\n };\r\n\r\n function alterarSenha() {\r\n if (validaHash) {\r\n if (form.getFieldValue().usu_senha === form.getFieldValue().usu_confirmaSenha) {\r\n let dados = {\r\n novaSenha: btoa(form.getFieldValue().usu_senha),\r\n usu_email: usuarioEmail\r\n };\r\n api.put(`Usuario/AlterarSenhaGerencial`, dados).then(\r\n res => {\r\n notification.success({ description: 'Sua Senha Foi Alterada Com Sucesso!', message: 'Aviso' });\r\n voltarLogin();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n } else {\r\n notification.warn({ description: 'As senhas informadas não conferem, favor verificar!', message: 'Aviso' })\r\n }\r\n } else {\r\n notification.warn({ description: 'Não foi possivel validar hash, Tempo esgotado, favor enviar novo pedido de recuperação de senha!', message: 'Aviso' })\r\n }\r\n };\r\n\r\n function voltarLogin() {\r\n setTimeout(() => { window.location = '/#/' }, 2000);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \"Gestor\r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('usu_senha') === value) {\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(new Error('As senhas informadas não conferem!'));\r\n },\r\n }),]}>\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n www.gestorweb.com.br | (55) 3535-4900\r\n \r\n \r\n | Três de Maio - RS - 98910-000\r\n \r\n \r\n \r\n \r\n Copyright © Gestor Web 2022 - Todos os direitos reservados\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Layout, Row, Col, Form, Input, Button, Typography, Modal } from 'antd';\r\nimport { UnlockFilled, SendOutlined } from '@ant-design/icons';\r\n\r\nimport api from \"../../services/api\";\r\nimport { SlideLogin } from \"../../components\";\r\n\r\nexport default function AtivarConta() {\r\n const [dadosUsuario, setDadosUsuario] = useState({});\r\n const [senhaValida, setSenhaValida] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n useEffect(() => {\r\n carregarUsuario();\r\n }, []);\r\n\r\n function carregarUsuario() {\r\n let url = window.location.href;\r\n let dadosUsuario = atob(url.substr(url.lastIndexOf('/') + 1)).split('|');\r\n api.get(`Usuario/RetornaUsuarioEmail?email=${dadosUsuario[0]}`).then(\r\n res => {\r\n if (!!res.data) {\r\n if (!!res.data.usu_ativo) {\r\n Modal.warning({\r\n title: 'Atenção!',\r\n content: 'Usuário já está ativo!',\r\n onOk() {\r\n voltarLogin();\r\n }\r\n });\r\n } else {\r\n setDadosUsuario(res.data)\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function ativarUsuario() {\r\n let dados = {};\r\n dados.usu_email = dadosUsuario.usu_email;\r\n dados.novaSenha = btoa(form.getFieldValue().usu_senha);\r\n api.put(`Usuario/AtivarUsuario`, dados).then(\r\n res => {\r\n Modal.success({\r\n title: 'Aviso!',\r\n content: 'Sua conta foi ativada com sucesso!',\r\n onOk() {\r\n voltarLogin();\r\n }\r\n });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validarSenha() {\r\n let usu_senha = '';\r\n let usu_confirmaSenha = '';\r\n if (!!form.getFieldValue().usu_senha) {\r\n usu_senha = form.getFieldValue().usu_senha.trim();\r\n }\r\n if (!!form.getFieldValue().usu_confirmaSenha) {\r\n usu_confirmaSenha = form.getFieldValue().usu_confirmaSenha.trim();\r\n }\r\n\r\n form.setFieldsValue({ usu_senha: usu_senha, usu_confirmaSenha: usu_confirmaSenha });\r\n if (usu_senha.length >= 6 && usu_senha === usu_confirmaSenha) {\r\n let letrasMinusculas = /[a-z]+/.test(usu_senha);\r\n let letrasMaiusculas = /[A-Z]+/.test(usu_senha);\r\n let numeros = /[0-9]+/.test(usu_senha);\r\n if (letrasMinusculas && letrasMaiusculas && numeros) {\r\n setSenhaValida(true);\r\n } else {\r\n setSenhaValida(false);\r\n }\r\n } else {\r\n setSenhaValida(false);\r\n }\r\n };\r\n\r\n function voltarLogin() {\r\n setTimeout(() => {\r\n window.location = '/#/';\r\n }, 2000);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \"Gestor\r\n \r\n \r\n \r\n Olá {dadosUsuario.usu_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Antes de ativar sua conta, precisamos definir sua senha de acesso.
\r\n A senha deve atender os seguintes requisitos:

\r\n
\r\n \r\n \r\n 1. Mínimo de 6 caracteres;\r\n \r\n \r\n 2. Deve conter números e letras (maiúsculas e minúsculas);\r\n \r\n
\r\n \r\n \r\n \r\n } onChange={() => { validarSenha() }}/>\r\n \r\n \r\n \r\n \r\n } onChange={() => { validarSenha() }}/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState } from 'react';\r\nimport {Row, Button, Result,Form, Card, notification, Drawer, List} from 'antd';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport api from '../../services/api';\r\nimport { login } from '../../services/auth';\r\n\r\nimport iconEntidade from '../../assets/i-contato.png';\r\nexport default function AtivarNovoEmail() {\r\n const history = useHistory();\r\n const [form] = Form.useForm();\r\n const [ carregando, setCarregando ] = useState(false);\r\n const [ selecionarEntidade, setSelecionarEntidade ] = useState(false);\r\n const [ entidadeUsuario, setEntidadesUsuario ] = useState([]);\r\n \r\n const onFinish = values => {\r\n setCarregando(true);\r\n api.post('/auth', values).then(res => {\r\n if (res.status === 200) {\r\n const token = res.data.token;\r\n login(token);\r\n console.log('entidade logado');\r\n //history.push('/home');\r\n }\r\n }, err => {\r\n notification.error({ message: err.response.data.mensagem, description: 'Verifique os dados informados e tente novamente.' });\r\n }).finally(() => setCarregando(false));\r\n };\r\n\r\n const onFinishFailed = errorInfo => {\r\n console.log('Failed:', errorInfo);\r\n };\r\n\r\n function acessarEntidade(entidade) {\r\n setCarregando(true);\r\n api.post('/auth/entidade', { empresa_id: entidade.id }).then(res => {\r\n login(res.data.token);\r\n \r\n //history.push('/home');\r\n }, err => {\r\n notification.error({ message: 'Erro ao carregar os dados', description: err.response.data.mensagem });\r\n }).finally(() => setCarregando(false));\r\n }\r\n\r\n return (\r\n \r\n
\r\n







\r\n \r\n \r\n
\r\n ]}\r\n />,\r\n setSelecionarEntidade(false)} visible={selecionarEntidade}>\r\n (\r\n \r\n } onClick={() => acessarEntidade(item)}>\r\n \r\n

{item.nomefantasia}

\r\n \r\n ]}/>\r\n
\r\n
\r\n )} />\r\n
\r\n \r\n );\r\n \r\n}","import React from \"react\";\r\nimport { Col, Form, Input, notification, Row } from \"antd\";\r\nimport InputNumber from \"rc-input-number\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function ManutencaoEtiquetaServidor({ formulario, carregando, aoSalvar }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n const salvarManutencao = record => {\r\n let operacao = 'Incluir';\r\n if (!!record.met_id) {\r\n operacao = 'AlterarAsync';\r\n }\r\n carregando(true);\r\n api.post(`ModeloEtiqueta/${operacao}`, record).then(\r\n res => {\r\n notification.success({ description: `Modelo ${operacao === 'Incluir' ? 'incluído' : 'editado'} com sucesso!`, message: `Aviso` });\r\n aoSalvar();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};","import React, { useState } from 'react';\r\nimport { Button, Col, Form, Modal, Row } from 'antd';\r\nimport { CloseOutlined, ExclamationCircleOutlined, MinusOutlined, SaveOutlined } from '@ant-design/icons';\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoEtiquetaServidor from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerEtiquetaServidor() {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [formulario] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados) {\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n formulario.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-met_descricao' } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n }\r\n footer={\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }>\r\n { fecharDrawer() }} />\r\n
\r\n
\r\n );\r\n};","import React, { useEffect } from \"react\";\r\nimport { Col, notification, Row, Tag, Modal } from \"antd\";\r\nimport { DeleteOutlined, EditFilled, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport DrawerEtiquetaServidor from \"./drawer\";\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, EditarTabela, Excluir, PesquisaOrdenacao, TabelaDados } from \"../../components\";\r\n\r\n\r\nexport default function EtiquetaServidor() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-met_descricao' } })\r\n }, []);\r\n\r\n function editarModelo(registro) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: registro } });\r\n };\r\n\r\n function modalExcluirModelo(registro) {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o modelo selecionado?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n removerModelo(registro);\r\n }\r\n });\r\n };\r\n\r\n function removerModelo(registro) {\r\n api.delete(`ModeloEtiqueta/ExcluirAsync?Id=${registro.met_id}`).then(\r\n res => {\r\n if (res.data) {\r\n notification.success({ description: 'Modelo removido com sucesso!' });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-met_descricao' } });\r\n } else {\r\n notification.warning({ description: 'Modelo não foi removido!' });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n \r\n {met_id}\r\n \r\n \r\n \r\n {met_descricao}\r\n \r\n \r\n Colunas {met_colunas}\r\n \r\n \r\n ),\r\n }, {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (registro) => (\r\n \r\n {/* \r\n
\r\n \r\n
\r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Upload, Button, notification, Form, Typography, Divider, Modal } from \"antd\";\r\n\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { getBase64, validarImportacao } from \"../../services/funcoes\";\r\nimport { CloudUploadOutlined } from \"@ant-design/icons\";\r\nimport { BreadcrumbPage } from \"../../components\";\r\nimport api from \"../../services/api\";\r\nimport { getEntidadeImp, setEntidadeImp } from \"../../services/auth\";\r\n\r\nexport default function ImportarPessoa() {\r\n const [arquivoBase64, setArquivoBase64] = useState(\"\");\r\n const [arquivo, setArquivo] = useState(null);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [entidade, setEntidade] = useState();\r\n const [carregando, setCarregando] = useState(false);\r\n const apiArquivo = window.location.href.indexOf('localhost') > -1 || window.location.href.indexOf('homologacao') > -1 ? 'http://homologacao.gestorweb.com.br/' : 'https://app.gestorweb.com.br/';\r\n\r\n const listaEntidades = {\r\n 0: 'Cliente',\r\n 1: 'Fornecedor',\r\n 2: 'Transportador',\r\n 3: 'Funcionario',\r\n 4: 'Vendedor',\r\n 5: 'Produto'\r\n };\r\n\r\n const listaDocumentosPadrao = {\r\n 0: 'ImportarCliente.xlsx',\r\n 1: 'ImportarFornecedores.xlsx',\r\n 2: 'ImportarTransportador.xlsx',\r\n 3: 'ImportarFuncionario.xlsx',\r\n 4: 'ImportarVendedores.xlsx',\r\n 5: 'ImportarProdutos.xlsx'\r\n };\r\n\r\n const props = {\r\n name: 'file',\r\n multiple: false,\r\n showUploadList: false,\r\n maxCount: 1,\r\n disabled: !!arquivo,\r\n beforeUpload(file) {\r\n if (file.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {\r\n notification.warning({ description: 'Favor informar uma planilha no formato XLSX!', message: 'Aviso' });\r\n return false;\r\n }\r\n getBase64(file).then(base64 => {\r\n setArquivoBase64(base64);\r\n setArquivo(file);\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!!!entidade) {\r\n setEntidade(getEntidadeImp());\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && (!!manutencao.dados.entidade || manutencao.dados.entidade === 0)) {\r\n setEntidade(manutencao.dados.entidade);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!entidade || entidade === 0) {\r\n setEntidadeImp(entidade);\r\n }\r\n }, [entidade])\r\n\r\n function importar() {\r\n setCarregando(true);\r\n api.post(`ImportarDados/Importar`, { entidade: { Value: listaEntidades[entidade] }, dados: { Value: arquivoBase64 } }).then(\r\n (res) => {\r\n if (!!res.data) {\r\n validarImportacao(res.data, listaEntidades[entidade]);\r\n } else {\r\n Modal.error({ title: `Não foi possivel importar a planilha de ${listaEntidades[entidade]}` });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n if (!!erro.response && !!erro.response.data && !!erro.response.data.Message) {\r\n notification.warning({ description: erro.response.data.Message, message: 'Aviso' });\r\n }\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n setCarregando(false);\r\n excluir();\r\n }\r\n );\r\n };\r\n\r\n function excluir() {\r\n setArquivoBase64(\"\");\r\n setArquivo(null);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {`Importar Importar dados do cadastro de {entidade === 3 ? 'Funcionário' : listaEntidades[entidade]}\r\n \r\n \r\n Importe aqui os dados a partir de uma planilha padrão para o GestorWeb\r\n \r\n \r\n \r\n \r\n {!!!arquivo &&
\r\n \r\n \r\n

\r\n \r\n

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

Arraste a planilha aqui! (o arquivo deve estar no formato .xlsx)

\r\n \r\n \r\n \r\n \r\n
\r\n
}\r\n {!!arquivo &&
\r\n \r\n \r\n \r\n \r\n \r\n {arquivo.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
}\r\n
\r\n \r\n Clique aqui para realizar o download da planilha modelo para importar os dados.\r\n \r\n
\r\n
\r\n );\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Select, notification } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport { FormGW, InputPreco } from \"../../components\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function ManutencaoAntecipacao({ formulario, carregando, aoSalvar }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const salvarManutencao = record => {\r\n record.acf_entradasaida = 2;\r\n carregando(true);\r\n api.post(`AntecipacaoClienteFornecedor/IncluirAntecipacao`, record).then(\r\n res => {\r\n notification.success({ description: \"Antecipação incluída com sucesso!\", message: \"Aviso\" })\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n ({cf.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoAntecipacao from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerAntecipacao({ dataPesquisa }) {\r\n\r\n const [form] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados) {\r\n form.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '%2Bfpg_descricao' } });\r\n form.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from 'react';\r\nimport moment from 'moment';\r\nimport { Row, Col, Form, Button, Collapse, Modal, notification, Tag, Radio } from 'antd';\r\nimport { ArrowDownOutlined, ArrowUpOutlined, SearchOutlined, PrinterOutlined, DeleteOutlined, ExclamationCircleOutlined, CloseOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber, FormatDate } from \"../../ValueObjects\";\r\nimport { listagemActions, manutencaoActions } from '../../actions';\r\nimport { TabelaDados, Excluir, Imprimir, Data, BreadcrumbIncluirDados, FiltroSearch } from '../../components';\r\nimport { linkApi } from '../../services/auth';\r\nimport DrawerAntecipacao from './drawer';\r\nimport ComboData from '../../components/comboData';\r\n\r\nexport default function AntecipacaoClienteForncedor() {\r\n\r\n const [open, setOpen] = useState(false);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [parametrosValePresente] = Form.useForm();\r\n const [dataPesquisa, setDataPesquisa] = useState(new Date().toLocaleDateString());\r\n const [dataAtual] = useState(new Date());\r\n\r\n useEffect(() => {\r\n let _tipoPessoa = !!!parametrosValePresente.getFieldsValue().tipoPessoa ? 2 : parametrosValePresente.getFieldsValue().tipoPessoa;\r\n parametrosValePresente.setFieldsValue({ DataFinal: moment(new Date()) });\r\n parametrosValePresente.setFieldsValue({ DataInicial: moment(parametrosValePresente.getFieldValue().dataPesquisa) });\r\n parametrosValePresente.setFieldsValue({ tipoPessoa: 2 });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '%2Bfpg_descricao' } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataFinal=${moment(parametrosValePresente.getFieldValue().DataFinal).format('YYYY-MM-DD')}&dataInicial=${moment(parametrosValePresente.getFieldValue().DataInicial).format('YYYY-MM-DD')}&EntradaSaida=${_tipoPessoa}&filtro=` } })\r\n }, []);\r\n\r\n function aplicarFiltrosAvancados() {\r\n let filtros = '';\r\n filtros += `&SomenteAtivos=true`;\r\n filtros += `&EntradaSaida=${parametrosValePresente.getFieldValue().tipoPessoa}`\r\n filtros += `&dataInicial=${(!!!parametrosValePresente.getFieldValue().DataInicial ? moment(dataAtual).format(\"YYYY-MM-DD\") : moment(parametrosValePresente.getFieldValue().DataInicial).format('YYYY-MM-DD'))}`;\r\n filtros += `&dataFinal=${(!!!parametrosValePresente.getFieldValue().DataFinal ? moment(dataAtual).format(\"YYYY-MM-DD\") : moment(parametrosValePresente.getFieldValue().DataFinal).format('YYYY-MM-DD'))}`;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtros } });\r\n };\r\n\r\n const modalImprimir = (record) => {\r\n Modal.confirm({\r\n title: 'Imprimir',\r\n icon: ,\r\n content: `Confirmar impressao do vale ${record.acf_nomepresenteado} no valor de ${FormatNumber(record.acf_valor, true)}?`,\r\n okText: 'Imprimir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n imprimir(record);\r\n }\r\n });\r\n };\r\n\r\n function excluirVale(valePresente) {\r\n api.post(`AntecipacaoClienteFornecedor/ExcluirValePresente/${valePresente.acf_id}`).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.warning({ message: `Aviso!`, description: erro.response.data });\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '%2Bfpg_descricao' } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&SomenteAtivos=true&dataFinal=${moment(parametrosValePresente.getFieldValue().DataFinal).format('YYYY-MM-DD')}&dataInicial=${moment(parametrosValePresente.getFieldValue().DataInicial).format('YYYY-MM-DD')}&filtro=` } })\r\n }\r\n );\r\n };\r\n\r\n const modalExcluirVale = (ValePresente) => {\r\n let mensagem = (ValePresente.acf_valepresente ? `Deseja realmente excluir o Vale de R$ ${FormatNumber(ValePresente.acf_valor, true)} presenteado à ${ValePresente.acf_nomepresenteado} ?` : `Deseja realmente excluir a antecipação do cliente ${ValePresente.pes_nome} no valor de R$ ${FormatNumber(ValePresente.acf_valor, true)}?`)\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: mensagem,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirVale(ValePresente);\r\n }\r\n });\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n const imprimir = ValePresente => {\r\n window.open(linkApi + 'AntecipacaoClienteFornecedor/GerarComprovante?idValePresente=' + ValePresente.acf_id, \"_blank\");\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n let filtros = '';\r\n filtros += `&SomenteAtivos=true`;\r\n filtros += `&EntradaSaida=${parametrosValePresente.getFieldValue().tipoPessoa}`\r\n filtros += `&dataInicial=${moment(parametrosValePresente.getFieldValue().dataPesquisa).format('YYYY-MM-DD')}`;\r\n filtros += `&dataFinal=${FormatDate(new Date().toLocaleDateString())}`;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtros } });\r\n parametrosValePresente.setFieldsValue({ DataFinal: moment(new Date()) });\r\n parametrosValePresente.setFieldsValue({ DataInicial: moment(parametrosValePresente.getFieldValue().dataPesquisa) });\r\n }} />\r\n \r\n \r\n \r\n aplicarFiltrosAvancados()}>\r\n Cliente\r\n Fornecedor\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n (\r\n
\r\n \r\n \r\n {pes_nome}\r\n \r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 100,\r\n render: ({ acf_datalancamento }) => (\r\n
\r\n {moment(acf_datalancamento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n render: ({ acf_valor }) => (\r\n
\r\n {FormatNumber(acf_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Utilizado (R$)',\r\n align: 'right',\r\n render: ({ valorUtilizado }) => (\r\n
\r\n {FormatNumber(valorUtilizado, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Saldo (R$)',\r\n align: 'right',\r\n render: ({ saldoAntecipacao }) => (\r\n
\r\n {FormatNumber(saldoAntecipacao, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record, dados) => (\r\n
\r\n \r\n \r\n } onClick={() => { modalImprimir(dados) }} />\r\n \r\n \r\n modalExcluirVale(dados)} icon={} />\r\n \r\n \r\n
\r\n ),\r\n }\r\n ]} />\r\n \r\n
\r\n
\r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Col, Row, Typography } from 'antd';\r\n\r\nimport { Planos } from \"../\";\r\nimport { BreadcrumbAbrirChamado } from \"../../components\";\r\n\r\nexport default function SemAcesso() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Seu plano atual não possui esta opção.\r\n \r\n \r\n \r\n \r\n Consulte nossos planos e faça um upgrade!\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, notification, InputNumber } from \"antd\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport api from \"../../services/api\";\r\n\r\nexport default function ManutencaoAliquotaSimples({ form, carregando, aoSalvar }) {\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n\r\n const salvarManutencao = values => {\r\n let enderecoUrl = 'AliquotaSimplesNacional/';\r\n carregando(true);\r\n\r\n if (values.asn_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ description: 'Registro alterado com sucesso!', message: 'Aviso' });\r\n aoSalvar();\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n }\r\n );\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ description: 'Registro alterado com sucesso!', message: 'Aviso' });\r\n aoSalvar();\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n }\r\n );\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n if (!!ui.showDrawer) {\r\n buscarDados();\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n function buscarDados() {\r\n let data = new Date();\r\n api.get(`AliquotaSimplesNacional/Listar?mes=${data.getMonth() + 1}&ano=${data.getFullYear()}`).then(\r\n res => {\r\n let dados = res.data.items[0];\r\n if (!!!dados) {\r\n\r\n let dataAtual = new Date();\r\n dados = { asn_mes: dataAtual.getMonth() + 1, asn_ano: dataAtual.getFullYear() };\r\n }\r\n form.setFieldsValue(dados);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n};","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoAntecipacao from './manutencao';\r\nimport { drawerActions, listagemActions } from '../../actions';\r\n\r\nexport default function DrawerAliquotaSimples({ dataPesquisa }) {\r\n\r\n const [form] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-asn_id' } });\r\n form.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col } from 'antd';\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from '../../actions';\r\nimport { TabelaDados, BreadcrumbPage, BotaoIncluirDados, BotaoAbrirChamado } from '../../components';\r\nimport DrawerAliquotaSimples from './drawer';\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function AliquotaSimples() {\r\n const [{ ui, listaTabelaDados }, dispatch] = useStateValue();\r\n const [possuiAliquotaMes, setPossuiAliquotaMes] = useState(true);\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-asn_id' } });\r\n }, []);\r\n\r\n function retornaMesExtenso(mes) {\r\n switch (mes) {\r\n case 1:\r\n return 'Janeiro';\r\n case 2:\r\n return 'Fevereiro';\r\n case 3:\r\n return 'Março';\r\n case 4:\r\n return 'Abril';\r\n case 5:\r\n return 'Março';\r\n case 6:\r\n return 'Junho';\r\n case 7:\r\n return 'Julho';\r\n case 8:\r\n return 'Agosto';\r\n case 9:\r\n return 'Setembro';\r\n case 10:\r\n return 'Outubro';\r\n case 11:\r\n return 'Novembro';\r\n case 12:\r\n return 'Dezembro';\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!!listaTabelaDados.itens && listaTabelaDados.itens.length > 0) {\r\n if (listaTabelaDados.itens[0].asn_mes !== (new Date().getMonth() + 1)) {\r\n setPossuiAliquotaMes(false);\r\n } else {\r\n setPossuiAliquotaMes(true);\r\n }\r\n } else {\r\n setPossuiAliquotaMes(false);\r\n }\r\n }, [listaTabelaDados.itens])\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {possuiAliquotaMes ? 'ALTERAR' : 'INCLUIR'} {retornaMesExtenso(new Date().getMonth() + 1).toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {retornaMesExtenso(asn_mes)}\r\n
\r\n )\r\n }, {\r\n title: 'Ano',\r\n render: ({ asn_ano }) => (\r\n
\r\n {asn_ano}\r\n
\r\n )\r\n }, {\r\n title: 'Alíquota (%)',\r\n align: 'right',\r\n render: ({ asn_percaliquota }) => (\r\n
\r\n {FormatNumber(asn_percaliquota, true, false, 2)}\r\n
\r\n )\r\n }\r\n ]}\r\n />\r\n
\r\n \r\n
\r\n )\r\n};","import React, { useEffect } from 'react';\r\nimport { Route, Switch, HashRouter } from \"react-router-dom\";\r\nimport { Layout, Modal } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from \"../../state\";\r\nimport { MenuPage, HeaderPage } from \"../../components\";\r\nimport { getEmpresa, setNavegacao, setPermissoes, setStatusPlano } from '../../services/auth'\r\nimport { tributacaoActions, parametrosEmpresaActions } from \"../../actions\";\r\nimport {\r\n Login, Inicial, Dashboard, Clientes, ResumoCliente, Fornecedor, Transportador, Funcionario, Vendedor, TributacaoIcms, TributacaoPisCofins, NcmSubtituicaoTributaria,\r\n Marca, GrupoProduto, SubGrupo, Produto, GradeProduto, Preco, Etiqueta, ResumoProduto, RelatorioEtiqueta, ContaCorrente, ContaGerencial, OperacaoFiscal, OperacaoDebitoCredito,\r\n FormaPagamento, CondicaoPagamento, SerieFiscal, Historico, NotaFiscal, ImportarNotaFiscalEntrada, MonitoramentoNfe, NotaFiscalTransferencia, CartaCorrecaoNotaFiscal, InutilizacaoNfe, OrdemCompra,\r\n NotaFiscalDevolucao, Orcamento, StatusPedido, Pedidos, Condicional, ValePresente, Metas, Comissao, ConsultaComissao, ContaReceber, RecebimentoParcela, ContaPagar,\r\n PagamentoParcela, LancamentoCaixa, LancamentoCaixaManutencao, LancamentoCaixaTransferencia, FluxoCaixa, ConciliacaoCartoes, Cheque, Boleto, Remessa, RetornoBancario,\r\n RetornoBancarioLista, ArmazemEstoque, Estoque, EstoqueManutencao, Inventario, MatrizFilial, ConfiguracaoNfeNfce, GerenciarPdv, LimiteCreditoCliente, Contador, Plano,\r\n BandeiraCartaoEmpresa, CentroDistribuicao, Relatorios, AnaliseInadimplencia, PersonalizacaoRelatorios, FiltrosRelatorio, Usuario, GrupoUsuario, EfdIcmsIpi, Notificacao,\r\n ParametrosEmpresa, CamposPersonalizados, RelacionamentoFornecedorProduto, Restaurante, Hotel, ManutencaoProduto, VigenciaFiscal, TabelaRetencao, ParametrosLocal, ImportacaoNotaFiscalEntrada, AcaoUsuario, DownloadXml, KitComposicao,\r\n Balanca, MarcaVeiculo, Veiculo, ConsultaRecebimento, ManifestoEletronico\r\n} from \"../\";\r\nimport EtiquetaServidor from '../etiquetaServidor';\r\nimport ImportarPessoa from '../importarPessoa';\r\nimport AntecipacaoClienteForncedor from '../antecipacao';\r\nimport SemAcesso from '../semAcesso';\r\nimport AliquotaSimples from '../aliquotaSimplesNacional';\r\n\r\nexport default function Home() {\r\n\r\n const [{ tributacao, parametrosEmpresa }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n empresaUsuario();\r\n buscarParametros();\r\n resetarNav();\r\n buscarPermissoesUsuario();\r\n buscarStatusPlano();\r\n }, []);\r\n\r\n function empresaUsuario() {\r\n api.get('/Empresa/Buscar/' + parseInt(getEmpresa())).then(\r\n res => {\r\n if (res.status === 200) {\r\n dispatch({\r\n type: tributacaoActions.CHANGE,\r\n data: { empRegimeTributario: res.data.emp_regimetributario, empEnquadramentoFiscal: res.data.emp_enquadramentofiscal }\r\n });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.error(erro);\r\n }\r\n );\r\n };\r\n\r\n function buscarParametros() {\r\n api.get('/ParametroEmpresa/BuscarParametros').then(\r\n res => {\r\n if (res.status === 200) {\r\n dispatch({ type: parametrosEmpresaActions.CHANGE, data: { markupProduto: res.data.par_markupproduto, par_diastoleranciacobrancajuro: res.data.par_diastoleranciacobrancajuro, par_percjuromesparcelavencida: res.data.par_percjuromesparcelavencida } });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.error(erro);\r\n }\r\n );\r\n };\r\n\r\n function resetarNav() {\r\n if (!!!localStorage.getItem(\"@GestorWeb-Navegacao\")) {\r\n setNavegacao({ geral: {} });\r\n }\r\n };\r\n\r\n\r\n function buscarPermissoesUsuario() {\r\n api.get(`PermissaoUsuario/Listar`).then(\r\n (res) => {\r\n setPermissoes(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n if (erro.response.status === 426) {\r\n Modal.warn({\r\n title: erro.response.data,\r\n });\r\n window.location = '/Home#/semAcesso'\r\n } else {\r\n console.log(erro);\r\n }\r\n }\r\n );\r\n };\r\n\r\n function buscarStatusPlano() {\r\n api.get(`LocalPlano/VerificarStatusPlano`).then(\r\n res => {\r\n\r\n }\r\n ).catch(\r\n erro => {\r\n if (erro.response.status === 402) {\r\n setStatusPlano('VENCIDO');\r\n window.location = '/renovarPlano#'\r\n }\r\n }\r\n );\r\n };\r\n return (\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Alert, Calendar, Button } from \"antd\";\r\nimport { UserOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport { getNomeEmpresa, getNomeLocal, getNomeUsuario } from '../../services/auth';\r\n\r\nexport default function Inicial() {\r\n\r\n const [dataAtual, setDataAtual] = useState(new Date());\r\n\r\n useEffect(() => {\r\n\r\n setInterval(dataCalendar, 1000);\r\n }, []);\r\n\r\n function dataCalendar() {\r\n setDataAtual(new Date());\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dataAtual.getHours() > 12 ? 'Boa tarde!' : dataAtual.getHours() > 18 ? 'Boa Noite!' : ' Bom dia!'}\r\n \r\n \r\n {getNomeUsuario()}, \r\n \r\n \r\n você está acessado a empresa:\r\n \r\n \r\n {`${getNomeEmpresa()} / ${getNomeLocal()}`}.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {moment(dataAtual).format('DD')} \r\n \r\n \r\n \r\n \r\n \r\n \r\n {moment(dataAtual).format('MMM')}\r\n \r\n \r\n \r\n \r\n {moment(dataAtual).format('YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {moment(dataAtual).format('HH:mm')}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n}","import React from 'react';\r\nimport { Col, Row, Spin, Table, Divider } from 'antd';\r\nimport { CartesianGrid, PieChart, Pie, Cell, XAxis, YAxis, Tooltip, ResponsiveContainer, Legend } from 'recharts';\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nconst colors = [\r\n '#0088FE', '#00C49F', '#FF8042', '#eb2f96', '#003c80', '#faad14', '#fa1414', '#9c00fe', '#14d0d9', '#5c5c5c'\r\n];\r\nconst numberFormatter = (item, casasDecimais = 2) => item.toLocaleString({ style: 'currency', currency: 'BRL' }, { minimumFractionDigits: casasDecimais, maximumFractionDigits: casasDecimais });\r\nconst dateFormatter = (item) => moment(item).format(\"DD/MM/YYYY\");\r\nconst dateFormatterMes = (item) => moment(item).format(\"DD/MM\");\r\nconst dateFormatterAnoMes = (item) => moment(item).format(\"MM/YYYY\");\r\n\r\nconst renderCustomizedLabelPie = ({ cx, cy, midAngle, innerRadius, outerRadius, percent }) => {\r\n let RADIAN = Math.PI / 180;\r\n let radius = innerRadius + (outerRadius - innerRadius) * 0.4;\r\n let x = cx + radius * Math.cos(-midAngle * RADIAN);\r\n let y = cy + radius * Math.sin(-midAngle * RADIAN);\r\n\r\n return (\r\n cx ? \"start\" : \"end\"}\r\n dominantBaseline=\"central\"\r\n >\r\n {(percent * 100).toFixed(0) >= 6 ? `${(percent * 100).toFixed(0)}%` : ''}\r\n \r\n );\r\n};\r\n\r\nexport const RenderChartPie = ({ resultSet, dataKey, nameKey }) => {\r\n\r\n if (!resultSet) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {resultSet.map((e, index) => (\r\n \r\n ))}\r\n \r\n \r\n numberFormatter(parseFloat(t))} />\r\n \r\n \r\n );\r\n};\r\n\r\nexport const TableRenderer = ({ dataSource, columns, carregando }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n );\r\n};\r\n\r\nexport const CartesianChart = ({ resultSet, children, ChartComponent, dataKey }) => (\r\n \r\n \r\n \r\n numberFormatter(v)} />\r\n \r\n {/**/}\r\n {children}\r\n numberFormatter(parseFloat(t))} labelFormatter={dateFormatter} />\r\n \r\n \r\n);\r\n\r\nexport const CartesianChartBar = ({ resultSet, children, ChartComponent, dataKey, legend, tickFormatter }) => (\r\n \r\n \r\n \r\n {!!dataKey ? : }\r\n numberFormatter(v)} />\r\n {children}\r\n numberFormatter(parseFloat(t))} labelFormatter={dateFormatterAnoMes}/>\r\n {legend && }\r\n \r\n \r\n);\r\n\r\nexport const ComponentSpin = ({ children, carregando }) => {\r\n if (carregando) {\r\n return \r\n {children}\r\n ;\r\n } else {\r\n return
\r\n {children}\r\n
;\r\n }\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { Card, Col, Row, Typography, Divider, Form, Select, Button } from 'antd';\r\nimport { ExclamationCircleOutlined, ArrowLeftOutlined } from \"@ant-design/icons\";\r\nimport { BarChart, Bar, LineChart, Line, LabelList } from 'recharts';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { getEmpresa, getLocal } from '../../services/auth';\r\nimport { Data, BreadcrumbPage, BotaoAbrirChamado } from \"../../components\";\r\nimport { CartesianChart, CartesianChartBar, ComponentSpin, RenderChartPie, TableRenderer } from \"./funcoes\";\r\n\r\nconst numberFormatter = (item, casasDecimais = 2) => item.toLocaleString({ style: 'currency', currency: 'BRL' }, { minimumFractionDigits: casasDecimais, maximumFractionDigits: casasDecimais });\r\n\r\nexport default function VendaLiquida({ graficoSelecionado }) {\r\n const [formFiltros] = Form.useForm();\r\n const [vendaLiquidaDiaria, setVendaLiquidaDiaria] = useState([]);\r\n const [totalizadores, setTotalizadores] = useState({});\r\n const [pessoaFisicaJuridica, setPessoaFisicaJuridica] = useState([]);\r\n const [topVendedores, setTopVendedores] = useState([]);\r\n const [vendedores, setVendedores] = useState([]);\r\n const [vendaLiquidaCidades, setVendaLiquidaCidades] = useState([]);\r\n const [vendaLiquidaClientes, setVendaLiquidaClientes] = useState([]);\r\n const [listaLocaisUsuario, setListaLocaisUsuario] = useState([]);\r\n const [carregandoTotalizadores, setCarregandoTotalizadores] = useState(false);\r\n const [carregandoVendaDiaria, setCarregandoVendaDiaria] = useState(false);\r\n const [carregandoFisicaJuridica, setCarregandoFisicaJuridica] = useState(false);\r\n const [carregandoVendedor, setCarregandoVendedor] = useState(false);\r\n const [carregandoCliente, setCarregandoCliente] = useState(false);\r\n const [carregandoCidade, setCarregandoCidade] = useState(false);\r\n\r\n useEffect(() => {\r\n api.get(`/Local/ListarLocalUsuario?codigoEmpresa=${getEmpresa()}`).then(res => {\r\n if (res.status === 200) {\r\n setListaLocaisUsuario(res.data.items);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n let dataInicial = !!formFiltros.getFieldValue().dataInicial ? moment(formFiltros.getFieldValue().dataInicial).format('YYYY-MM-DD') : null;\r\n let dataFinal = !!formFiltros.getFieldValue().dataFinal ? moment(formFiltros.getFieldValue().dataFinal).format('YYYY-MM-DD') : null;\r\n let locais = !!formFiltros.getFieldValue().local ? formFiltros.getFieldValue().local.join(',') : '';\r\n\r\n let mesAnterior = moment(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 30)).format(\"YYYY-MM-DD\");\r\n\r\n setCarregandoTotalizadores(true);\r\n setCarregandoVendaDiaria(true);\r\n setCarregandoFisicaJuridica(true);\r\n setCarregandoVendedor(true);\r\n setCarregandoCliente(true);\r\n setCarregandoCidade(true);\r\n api.get(`Dashboard/ListarVendaLiquidaDiaria?locais=${locais}&dataInicial=${mesAnterior}&dataFinal=${moment(new Date()).format(\"YYYY-MM-DD\")}`).then(\r\n (res) => {\r\n setVendaLiquidaDiaria(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoVendaDiaria(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarTotalizadoresVenda?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}`).then(\r\n (res) => {\r\n if (!!res.data && res.data.length > 0) {\r\n setTotalizadores(res.data[0]);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoTotalizadores(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarPessoaFisicaJuridica?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setPessoaFisicaJuridica(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoFisicaJuridica(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarVendedoresVendaLiquida?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setVendedores(res.data);\r\n setTopVendedores(res.data.slice(0, 10));\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoVendedor(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarVendaLiquidaCidades?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setVendaLiquidaCidades(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoCidade(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarVendaLiquidaClientes?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setVendaLiquidaClientes(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoCliente(false);\r\n });\r\n };\r\n\r\n const renderCustomizedLabelBar = (props) => {\r\n const { x, y, width, value } = props;\r\n\r\n return (\r\n \r\n 0 ? y - 10 : y + 10} fill={parseFloat(value) > 0 ? \"#0d49c3\" : \"red\"} textAnchor=\"middle\" dominantBaseline=\"middle\">\r\n {numberFormatter(parseFloat(value))}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Venda Venda Liquída \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Venda Líquida (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_vendaliquida ? totalizadores.vlr_vendaliquida : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Venda (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_total_venda ? totalizadores.vlr_total_venda : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Devolução de Venda (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_total_devvenda ? totalizadores.vlr_total_devvenda : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Venda Líquida por Dia - Últimos 30 dias\r\n \r\n <>\r\n {vendaLiquidaDiaria.length > 0 ? \r\n \r\n \r\n : \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Venda Líquida - Pessoa Física Jurídica\r\n \r\n
\r\n {pessoaFisicaJuridica.length > 0 ? : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Venda Líquida por Vendedor\r\n \r\n
\r\n (\r\n
\r\n {vendedor}\r\n
\r\n ),\r\n }, {\r\n title: 'Quant. Venda Líquida',\r\n align: 'right',\r\n render: ({ qtde_total }) => (\r\n
\r\n {numberFormatter(parseFloat(qtde_total), 3)}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Venda Líquida',\r\n align: 'right',\r\n render: ({ valor_total }) => (\r\n
\r\n {numberFormatter(parseFloat(valor_total))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Top 10 Vendedores por Venda Líquida\r\n \r\n
\r\n {topVendedores.length > 0 ? \r\n \r\n \r\n \r\n \r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Venda Líquida por Cliente\r\n \r\n
\r\n (\r\n
\r\n {cliente}\r\n
\r\n ),\r\n }, {\r\n title: 'Quant. Venda Líquida',\r\n align: 'right',\r\n render: ({ qtde_total }) => (\r\n
\r\n {numberFormatter(parseFloat(qtde_total), 3)}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Venda Líquida',\r\n align: 'right',\r\n render: ({ valor_total }) => (\r\n
\r\n {numberFormatter(parseFloat(valor_total))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Venda Líquida por Cidade UF\r\n \r\n
\r\n (\r\n
\r\n {cidade}\r\n
\r\n ),\r\n }, {\r\n title: 'UF',\r\n render: ({ uf }) => (\r\n
\r\n {uf}\r\n
\r\n ),\r\n }, {\r\n title: 'Quant. Venda Líquida',\r\n align: 'right',\r\n render: ({ qtde_total }) => (\r\n
\r\n {numberFormatter(parseFloat(qtde_total), 3)}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Venda Líquida',\r\n align: 'right',\r\n render: ({ valor_total }) => (\r\n
\r\n {numberFormatter(parseFloat(valor_total))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { Card, Col, Row, Typography, Form, Divider, Select, Button } from 'antd';\r\nimport { ExclamationCircleOutlined, ArrowLeftOutlined } from \"@ant-design/icons\";\r\nimport { LineChart, Line } from 'recharts';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { getEmpresa, getLocal } from '../../services/auth';\r\nimport { Data, BreadcrumbPage, BotaoAbrirChamado } from \"../../components\";\r\nimport { CartesianChart, ComponentSpin, RenderChartPie, TableRenderer } from './funcoes';\r\n\r\nconst numberFormatter = (item, casasDecimais = 2) => item.toLocaleString({ style: 'currency', currency: 'BRL' }, { minimumFractionDigits: casasDecimais, maximumFractionDigits: casasDecimais });\r\n\r\nexport default function CompraLiquida({ graficoSelecionado }) {\r\n const [formFiltros] = Form.useForm();\r\n const [compraLiquidaDiaria, setCompraLiquidaDiaria] = useState([]);\r\n const [totalizadores, setTotalizadores] = useState({});\r\n const [topFornecedores, setTopFornecedores] = useState([]);\r\n const [compraLiquidaCidades, setCompraLiquidaCidades] = useState([]);\r\n const [compraLiquidaFornecedor, setCompraLiquidaFornecedor] = useState([]);\r\n const [listaLocaisUsuario, setListaLocaisUsuario] = useState([]);\r\n const [carregandoTotalizadores, setCarregandoTotalizadores] = useState(false);\r\n const [carregandoCompraDiaria, setCarregandoCompraDiaria] = useState(false);\r\n const [carregandoFornecedor, setCarregandoFornecedor] = useState(false);\r\n const [carregandoCidade, setCarregandoCidade] = useState(false);\r\n\r\n useEffect(() => {\r\n api.get(`/Local/ListarLocalUsuario?codigoEmpresa=${getEmpresa()}`).then(res => {\r\n if (res.status === 200) {\r\n setListaLocaisUsuario(res.data.items);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n let dataInicial = !!formFiltros.getFieldValue().dataInicial ? moment(formFiltros.getFieldValue().dataInicial).format('YYYY-MM-DD') : null;\r\n let dataFinal = !!formFiltros.getFieldValue().dataFinal ? moment(formFiltros.getFieldValue().dataFinal).format('YYYY-MM-DD') : null;\r\n let locais = !!formFiltros.getFieldValue().local ? formFiltros.getFieldValue().local.join(',') : '';\r\n\r\n let mesAnterior = moment(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 30)).format(\"YYYY-MM-DD\");\r\n\r\n setCarregandoTotalizadores(true);\r\n setCarregandoCompraDiaria(true);\r\n setCarregandoFornecedor(true);\r\n setCarregandoCidade(true);\r\n api.get(`Dashboard/ListarCompraLiquidaDiaria?locais=${locais}&dataInicial=${mesAnterior}&dataFinal=${moment(new Date()).format(\"YYYY-MM-DD\")}`).then(\r\n (res) => {\r\n setCompraLiquidaDiaria(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoCompraDiaria(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarTotalizadoresCompra?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}`).then(\r\n (res) => {\r\n if (!!res.data && res.data.length > 0) {\r\n setTotalizadores(res.data[0]);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoTotalizadores(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarFornecedoresCompraLiquida?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setCompraLiquidaFornecedor(res.data)\r\n setTopFornecedores(res.data.slice(0, 10));\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoFornecedor(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarCompraLiquidaCidades?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setCompraLiquidaCidades(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoCidade(false);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Compra Compra Líquida\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Compra Líquida (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_compraliquida ? totalizadores.vlr_compraliquida : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Compra (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_total_compra ? totalizadores.vlr_total_compra : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Devolução de Compra (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_total_devcompra ? totalizadores.vlr_total_devcompra : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Compra Líquida por Dia - Últimos 30 dias\r\n \r\n
\r\n {compraLiquidaDiaria.length > 0 ? \r\n \r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Top 10 Fornecedores por Valor - Compra Líquida\r\n \r\n
\r\n {topFornecedores.length > 0 ?\r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Compra Líquida por Fornecedor\r\n \r\n
\r\n (\r\n
\r\n {fornecedor}\r\n
\r\n ),\r\n }, {\r\n title: 'Quantidade Compra Líquida (R$)',\r\n align: 'right',\r\n render: ({ qtde_total }) => (\r\n
\r\n {numberFormatter(parseFloat(qtde_total), 3)}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Compra Líquida (R$)',\r\n align: 'right',\r\n render: ({ valor_total }) => (\r\n
\r\n {numberFormatter(parseFloat(valor_total))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Compra Líquida por Cidade UF\r\n \r\n
\r\n (\r\n
\r\n {cidade}\r\n
\r\n ),\r\n }, {\r\n title: 'UF',\r\n render: ({ uf }) => (\r\n
\r\n {uf}\r\n
\r\n ),\r\n }, {\r\n title: 'Quantidade Compra Líquida (R$)',\r\n align: 'right',\r\n render: ({ qtde_total }) => (\r\n
\r\n {numberFormatter(parseFloat(qtde_total), 3)}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Compra Líquida (R$)',\r\n align: 'right',\r\n render: ({ valor_total }) => (\r\n
\r\n {numberFormatter(parseFloat(valor_total))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { Card, Col, Row, Typography, Form, Divider, Select, Button } from 'antd';\r\nimport { ExclamationCircleOutlined, ArrowLeftOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { getEmpresa, getLocal } from '../../services/auth';\r\nimport { BreadcrumbPage, BotaoAbrirChamado, SelectPaginacao } from \"../../components\";\r\nimport { ComponentSpin, RenderChartPie, TableRenderer } from './funcoes';\r\n\r\nconst numberFormatter = (item, casasDecimais = 2) => item.toLocaleString({ style: 'currency', currency: 'BRL' }, { minimumFractionDigits: casasDecimais, maximumFractionDigits: casasDecimais });\r\n\r\nexport default function PosicaoEstoque({ graficoSelecionado }) {\r\n const [formFiltros] = Form.useForm();\r\n const [listaLocaisUsuario, setListaLocaisUsuario] = useState([]);\r\n const [totalizadores, setTotalizadores] = useState({});\r\n const [posicaoEstoqueMarca, setPosicaoEstoqueMarca] = useState([]);\r\n const [posicaoEstoqueGrupo, setPosicaoEstoqueGrupo] = useState([]);\r\n const [topGrupo, setTopGrupo] = useState([]);\r\n const [topMarca, setTopMarca] = useState([]);\r\n const [topProduto, setTopProduto] = useState([]);\r\n const [carregandoTotalizadores, setCarregandoTotalizadores] = useState(false);\r\n const [carregandoGrupo, setCarregandoGrupo] = useState(false);\r\n const [carregandoMarca, setCarregandoMarca] = useState(false);\r\n const [carregandoProduto, setCarregandoProduto] = useState(false);\r\n\r\n useEffect(() => {\r\n\r\n api.get(`/Local/ListarLocalUsuario?codigoEmpresa=${getEmpresa()}`).then(res => {\r\n if (res.status === 200) {\r\n setListaLocaisUsuario(res.data.items);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n let locais = !!formFiltros.getFieldValue().local ? formFiltros.getFieldValue().local.join(',') : '';\r\n let marcas = !!formFiltros.getFieldValue().mar_id ? formFiltros.getFieldValue().mar_id.join(',') : '';\r\n let grupos = !!formFiltros.getFieldValue().gru_id ? formFiltros.getFieldValue().gru_id.join(',') : '';\r\n let subgrupos = !!formFiltros.getFieldValue().sgp_id ? formFiltros.getFieldValue().sgp_id.join(',') : '';\r\n\r\n setCarregandoTotalizadores(true);\r\n setCarregandoGrupo(true);\r\n setCarregandoMarca(true);\r\n setCarregandoProduto(true);\r\n api.get(`Dashboard/ListarTotalizadoresEstoque?locais=${locais}&filtroMarca=${marcas}&filtroGrupo=${grupos}&filtroSubgrupo=${subgrupos}`).then(\r\n (res) => {\r\n if (!!res.data && res.data.length > 0) {\r\n setTotalizadores(res.data[0]);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoTotalizadores(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarEstoqueGrupo?locais=${locais}&filtroMarca=${marcas}&filtroGrupo=${grupos}&filtroSubgrupo=${subgrupos}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setTopGrupo(res.data.filter((x) => { return x.qtde_saldo_final >= 0 }).slice(0, 10));\r\n setPosicaoEstoqueGrupo(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoGrupo(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarEstoqueMarca?locais=${locais}&filtroMarca=${marcas}&filtroGrupo=${grupos}&filtroSubgrupo=${subgrupos}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setTopMarca(res.data.filter((x) => { return x.qtde_saldo_final >= 0 }).slice(0, 10));\r\n setPosicaoEstoqueMarca(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoMarca(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarEstoqueProduto?locais=${locais}&filtroMarca=${marcas}&filtroGrupo=${grupos}&filtroSubgrupo=${subgrupos}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setTopProduto(res.data.filter((x) => { return x.qtde_saldo_final >= 0 }).slice(0, 10));\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoProduto(false);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Posição Posição de Estoque\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total Custo Última Compra (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_custo_ultima_compra ? totalizadores.vlr_custo_ultima_compra : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total Custo Informado (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_custo_informado ? totalizadores.vlr_custo_informado : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total Custo Médio (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_custo_medio ? totalizadores.vlr_custo_medio : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n % Top 10 por Grupo e Quantidade de Estoque\r\n \r\n
\r\n {topGrupo.length > 0 ?\r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n % Top 10 por Marca e Quantidade de Estoque\r\n \r\n
\r\n {topMarca.length > 0 ?\r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n % Top 10 por Produto e Quantidade de Estoque\r\n \r\n
\r\n {topProduto.length > 0 ?\r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Posição de Estoque por Grupo\r\n \r\n
\r\n (\r\n
\r\n {grupo}\r\n
\r\n ),\r\n }, {\r\n title: 'Quant. Saldo Final (R$)',\r\n align: 'right',\r\n render: ({ qtde_saldo_final }) => (\r\n
\r\n {numberFormatter(parseFloat(qtde_saldo_final), 3)}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Custo Últ. Compra (R$)',\r\n align: 'right',\r\n render: ({ vlr_custo_ultima_compra }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_custo_ultima_compra))}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Custo Informado (R$)',\r\n align: 'right',\r\n render: ({ vlr_custo_informado }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_custo_informado))}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Custo Médio (R$)',\r\n align: 'right',\r\n render: ({ vlr_custo_medio }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_custo_medio))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Posição de Estoque por Marca\r\n \r\n
\r\n (\r\n
\r\n {marca}\r\n
\r\n ),\r\n }, {\r\n title: 'Quant. Saldo Final (R$)',\r\n align: 'right',\r\n render: ({ qtde_saldo_final }) => (\r\n
\r\n {numberFormatter(parseFloat(qtde_saldo_final), 3)}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Custo Últ. Compra (R$)',\r\n align: 'right',\r\n render: ({ vlr_custo_ultima_compra }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_custo_ultima_compra))}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Custo Informado (R$)',\r\n align: 'right',\r\n render: ({ vlr_custo_informado }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_custo_informado))}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Custo Médio (R$)',\r\n align: 'right',\r\n render: ({ vlr_custo_medio }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_custo_medio))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { Card, Col, Row, Typography, Form, Divider, Select, Button } from 'antd';\r\nimport { ExclamationCircleOutlined, ArrowLeftOutlined } from \"@ant-design/icons\";\r\nimport { LineChart, Line, BarChart, Bar, LabelList } from 'recharts';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { getEmpresa, getLocal } from '../../services/auth';\r\nimport { Data, BreadcrumbPage, BotaoAbrirChamado } from '../../components';\r\nimport { CartesianChart, CartesianChartBar, RenderChartPie, TableRenderer, ComponentSpin } from './funcoes';\r\n\r\nconst numberFormatter = (item, casasDecimais = 2) => item.toLocaleString({ style: 'currency', currency: 'BRL' }, { minimumFractionDigits: casasDecimais, maximumFractionDigits: casasDecimais });\r\n\r\nexport default function ReceitasDespesas({ graficoSelecionado }) {\r\n const [formFiltros] = Form.useForm();\r\n const [listaLocaisUsuario, setListaLocaisUsuario] = useState([]);\r\n const [totalizadores, setTotalizadores] = useState({});\r\n const [receitaDespesaDiaria, setReceitaDespesaDiaria] = useState([]);\r\n const [resultadoPorTipoConta, setResultadoPorTipoConta] = useState([]);\r\n const [resultadoCategoria, setResultadoCategoria] = useState([]);\r\n const [resultadoContaGerencial, setResultadoContaGerencial] = useState([]);\r\n const [comparativo12Meses, setComparativo12Meses] = useState([]);\r\n const [carregandoTotalizadores, setCarregandoTotalizadores] = useState(false);\r\n const [carregandoRecDespDiaria, setCarregandoRecDespDiaria] = useState(false);\r\n const [carregandoTipoConta, setCarregandoTipoConta] = useState(false);\r\n const [carregandoCategoria, setCarregandoCategoria] = useState(false);\r\n const [carregandoContaGerencial, setCarregandoContaGerencial] = useState(false);\r\n const [carregandoRecDespAnual, setCarregandoRecDespAnual] = useState(false);\r\n\r\n useEffect(() => {\r\n api.get(`/Local/ListarLocalUsuario?codigoEmpresa=${getEmpresa()}`).then(res => {\r\n if (res.status === 200) {\r\n setListaLocaisUsuario(res.data.items);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n let dataInicial = !!formFiltros.getFieldValue().dataInicial ? moment(formFiltros.getFieldValue().dataInicial).format('YYYY-MM-DD') : null;\r\n let dataFinal = !!formFiltros.getFieldValue().dataFinal ? moment(formFiltros.getFieldValue().dataFinal).format('YYYY-MM-DD') : null;\r\n let tipoConta = !!formFiltros.getFieldValue().tipoConta ? formFiltros.getFieldValue().tipoConta.join(',') : '';\r\n\r\n let mesAtual = new Date(new Date().getFullYear(), new Date().getMonth() + 1, 0);\r\n let ultimosDozeMeses = new Date(mesAtual.getFullYear(), mesAtual.getMonth() - 11, 1);\r\n let locais = !!formFiltros.getFieldValue().local ? formFiltros.getFieldValue().local.join(',') : '';\r\n let mesAnterior = moment(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 30)).format(\"YYYY-MM-DD\");\r\n\r\n setCarregandoTotalizadores(true);\r\n setCarregandoRecDespDiaria(true);\r\n setCarregandoTipoConta(true);\r\n setCarregandoCategoria(true);\r\n setCarregandoContaGerencial(true);\r\n setCarregandoRecDespAnual(true);\r\n api.get(`Dashboard/ListarTotalizadoresRecDesp?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}&tipoConta=${tipoConta}`).then(\r\n (res) => {\r\n if (!!res.data && res.data.length > 0) {\r\n setTotalizadores(res.data[0]);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoTotalizadores(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarRecDespDiaria?locais=${locais}&dataInicial=${mesAnterior}&dataFinal=${dataFinal}&tipoConta=${tipoConta}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setReceitaDespesaDiaria(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoRecDespDiaria(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarResultadoTipoConta?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}&tipoConta=${tipoConta}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setResultadoPorTipoConta(res.data.filter((x) => { return x.vlr_resultado >= 0 }));\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoTipoConta(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarResultadoCategoria?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}&tipoConta=${tipoConta}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setResultadoCategoria(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoCategoria(false);\r\n });\r\n\r\n api.get(`Dashboard/ListarResultadoContaGerencial?locais=${locais}&dataInicial=${dataInicial}&dataFinal=${dataFinal}&tipoConta=${tipoConta}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setResultadoContaGerencial(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoContaGerencial(false);\r\n })\r\n\r\n api.get(`Dashboard/ListarRecDespAnual?locais=${locais}&dataInicial=${moment(ultimosDozeMeses).format(\"YYYY-MM-DD\")}&dataFinal=${moment(mesAtual).format(\"YYYY-MM-DD\")}&tipoConta=${tipoConta}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setComparativo12Meses(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregandoRecDespAnual(false);\r\n })\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Receitas Receitas x Despesas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total Receita (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_total_receita ? totalizadores.vlr_total_receita : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total Despesa (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_total_despesa ? totalizadores.vlr_total_despesa : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Resultado (Receita-Despesa) (R$)\r\n \r\n \r\n {numberFormatter(!!totalizadores.vlr_resultado ? totalizadores.vlr_resultado : 0)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total Receita x Despesa por - Últimos 30 dias\r\n \r\n
\r\n {receitaDespesaDiaria.length > 0 ? \r\n \r\n \r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Resultado (Receita - Despesa) por Tipo de Conta\r\n \r\n
\r\n {resultadoPorTipoConta.length > 0 ?\r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Comparativo entre Receita e Despesa - Últimos 12 Meses\r\n \r\n
\r\n {comparativo12Meses.length > 0 ? moment(item).format(\"MM/YYYY\")} dataKey=\"periodo\" ChartComponent={BarChart}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n : \r\n
\r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Receita x Despesa por Categoria Conta Gerencial\r\n \r\n
\r\n (\r\n
\r\n {categoria_conta_gerencial}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Total Receita (R$)',\r\n align: 'right',\r\n render: ({ vlr_total_receita }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_total_receita))}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Total Despesa (R$)',\r\n align: 'right',\r\n render: ({ vlr_total_despesa }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_total_despesa))}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Resultado (R$)',\r\n align: 'right',\r\n render: ({ vlr_resultado }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_resultado))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Receita x Despesa por Conta Gerencial\r\n \r\n
\r\n (\r\n
\r\n {conta_gerencial}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Total Receita (R$)',\r\n align: 'right',\r\n render: ({ vlr_total_receita }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_total_receita))}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Total Despesa (R$)',\r\n align: 'right',\r\n render: ({ vlr_total_despesa }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_total_despesa))}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Resultado (R$)',\r\n align: 'right',\r\n render: ({ vlr_resultado }) => (\r\n
\r\n {numberFormatter(parseFloat(vlr_resultado))}\r\n
\r\n ),\r\n }]} />\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { Card, Col, Row, Typography } from 'antd';\r\n\r\nimport { BotaoAbrirChamado, BreadcrumbPage } from \"../../components\";\r\nimport { VendaLiquida, CompraLiquida, PosicaoEstoque, ReceitasDespesas } from \"./pages\";\r\n\r\nexport default function Dashboard() {\r\n const [graficoSelecionado, setGraficoSelecionado] = useState(null);\r\n\r\n useEffect(() => {\r\n setGraficoSelecionado(null);\r\n }, []);\r\n\r\n return (\r\n
\r\n {graficoSelecionado === null &&\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { setGraficoSelecionado(0) }}>\r\n \r\n \r\n Venda Líquida \r\n \r\n \r\n \r\n \r\n \r\n { setGraficoSelecionado(1) }}>\r\n \r\n \r\n Compra Líquida \r\n \r\n \r\n \r\n \r\n \r\n { setGraficoSelecionado(2) }}>\r\n \r\n \r\n Posição de Estoque \r\n \r\n \r\n \r\n \r\n \r\n { setGraficoSelecionado(3) }}>\r\n \r\n \r\n Receitas x Despesas \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {graficoSelecionado === 0 && }\r\n {graficoSelecionado === 1 && }\r\n {graficoSelecionado === 2 && }\r\n {graficoSelecionado === 3 && }\r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Form, Row, Col, Button, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoClientes from './manutencao';\r\nimport { drawerActions, manutencaoActions, listagemActions } from '../../actions';\r\nimport { isObjetoDiffVazio } from '../../services/funcoes';\r\n\r\nexport default function DrawerCliente({ editando }) {\r\n const nameForm = \"manutencaoCliente\"\r\n const [formCliente] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados && editando.editando && !isObjetoDiffVazio(formCliente.getFieldValue())) {\r\n formCliente.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n formCliente.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n editando.setEditando(false);\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n fecharDrawer={() => { fecharDrawer() }}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Row, Col, Form, Button, Dropdown, Menu, Tag, Popover, Modal, Collapse, notification, Radio } from \"antd\";\r\nimport { EditOutlined, MoreOutlined, DeleteOutlined, PrinterOutlined, EyeFilled, ExclamationCircleOutlined, ArrowUpOutlined, ArrowDownOutlined, CloudUploadOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport DrawerCliente from './drawer';\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatFone, MaskFormat } from \"../../ValueObjects\";\r\nimport { getEmpresa, getIdUsuario, getLocal } from \"../../services/auth\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, TabelaDados, Editar, Excluir, BreadcrumbPage, BotaoAbrirChamado, BotaoIncluirDados, PesquisaAvancada } from \"../../components\";\r\n\r\n\r\nexport default function Clientes() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [formPesquisaAvancada] = Form.useForm();\r\n const [open, setOpen] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [campoPerSelecionado, setCampoPerSelecionado] = useState({});\r\n const [tipoFiltroPersonalizado, setTipoFiltroPersonalizado] = useState(0);\r\n\r\n useEffect(() => {\r\n let _ativo = !!!formPesquisaAvancada.getFieldsValue().clienteAtivo ? 1 : formPesquisaAvancada.getFieldsValue().clienteAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${_ativo}`, filtro: '', ordem: '+pes_nome' } })\r\n formPesquisaAvancada.setFieldsValue({ clienteAtivo: 1 });\r\n }, []);\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n const menuOutros = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function aplicarFiltrosAvancados() {\r\n let outrosFiltros = '';\r\n outrosFiltros += `&Ativo=${formPesquisaAvancada.getFieldsValue().clienteAtivo}`;\r\n let filtroPersonalizado = \"\"\r\n if (tipoFiltroPersonalizado == 1) {\r\n filtroPersonalizado = formPesquisaAvancada.getFieldsValue().filtroCampoAdicional\r\n } else if (tipoFiltroPersonalizado == 2) {\r\n filtroPersonalizado = formPesquisaAvancada.getFieldsValue()[campoPerSelecionado[0].cap_nomeelemento]\r\n }\r\n if (!!filtroPersonalizado || typeof filtroPersonalizado == 'boolean') {\r\n let filtros = { filtro_0: { cap_id: campoPerSelecionado[0].cap_id, cap_tipoelemento: campoPerSelecionado[0].cap_tipoelemento, condicao: formPesquisaAvancada.getFieldsValue().condicao, outrosFiltros: filtroPersonalizado } }\r\n outrosFiltros += `&filtroAdicional=${JSON.stringify(filtros)}`;\r\n }\r\n\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: outrosFiltros } });\r\n\r\n }\r\n\r\n function editarCliente(record) {\r\n setEditando(true);\r\n record.pef_datanascimento = moment(record.pef_datanascimento);\r\n record.pej_datafundacao = !!record.pej_datafundacao ? moment(record.pej_datafundacao) : null;\r\n record.cpfCnpj = !!record.pef_cpf ? record.pef_cpf : (!!record.pej_cnpj ? record.pej_cnpj : '');\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function excluirRegistro(cliente) {\r\n api.delete(`Cliente/Excluir/${cliente.cli_id}`).then(\r\n (res) => {\r\n notification.success({ message: 'Aviso', description: 'Cliente excluído com sucesso!' });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n }).catch(\r\n (erro) => {\r\n console.error(erro);\r\n modalInativarRegistro(cliente);\r\n })\r\n };\r\n\r\n function inativarRegistro(cliente) {\r\n api.put(`cliente/InativarCliente/${cliente.cli_id}`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n })\r\n };\r\n\r\n const modalExcluirRegistro = (cliente) => {\r\n console.log('cliente', cliente);\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o cliente ${cliente.cli_codigo}-${cliente.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(cliente);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarRegistro = (cliente) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o cliente!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o cliente ${cliente.cli_codigo}-${cliente.pes_nome} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(cliente);\r\n }\r\n });\r\n };\r\n\r\n function menuTable(cliente) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: cliente } });\r\n }}>\r\n Informações Detalhadas\r\n \r\n \r\n \r\n )\r\n }\r\n function download(dadosBase64, nomeArquivo) {\r\n //var dadosBase64 = \"LCwsLCwsLCwsLCwsLCwsLCwyNi8wNy8yMDIxLCwsCiwsLCwsLERFTU9OU1RSQUNBTyBWQVJFSk8sLCwsLCwsLCwsLCwsLAosLCwsLCwsLCwsLCwsLCwsLDExOjU0OjQ2LCwsCiwsLCwsLExvY2FsOiBMT0pBIE1BVFJJWiwsLCwsLCwsLCwsLCwsCiwsLCwsLCwsLCwsLCwsLCwsUMOhZ2luYTogMSBkZSAyLCwsCkNOUEo6ICwsMDMuNjgzLjE5NS8wMDAxLTAwLCwsLCwsLCwsSW5zY3Jpw6fDo28gRXN0LjosLDE0NzAwMzY2NzAsLFRlbGVmb25lOiwsLCwsKDU1KSAzNTM1LTQ5MDAKRW5kZXJlw6dvOiwsLCJBVi4gU0VOLiBBTEJFUlRPIFBBU1FVQUxJTkksIDM0NywgMiBBTkRBUiwgQ0VOVFJPLCBUUsOKUyBERSBNQUlPLVJTLCA5ODkxMDAwMCIsLCwsLCwsLCwsLCwsLCwsLApGaWx0cmFuZG8gcG9yOiAsLCwsLCwsLCwsLCwsLCwsLCwsLApURVNURSwsLCwsLCwsLCwsLCwsLCwsLCwsCiwsLCwsLCwsLCwsLCwsQ3VzdG8sLCwsUHJlw6dvIHZlbmRhLCwKLEPDs2RpZ28sLCwsRGVzY3Jpw6fDo28gUHJvZHV0bywsLCxVTSwsLENsYXNzZSBJQ01TLCwsLCwsLCwKLCwsLCwsLE5DTTogLDAwMDAwMDAwLCwsLCwsLCwsLCwsCiwxLCwsLFBST0RVVE8gREVNT05TVFJBQ0FPLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiMTgsOTkiLAosLCwsLCwsTkNNOiAsMDIwMTEwMDAsLCwsLCwsLCwsLCwKLDMxLCwsLFBST0RVVE8gRkFCUklDQURPIENGT1AgNTEwMSwsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjE5LDkwIiwKLDM1LCwsLFBST0RVVE8gRkFCUklDQcOHw4NPIFBSw5NQUklBIFRFU1RFLCwsLCxVTixUUklCVVRBRE8gQ09NICwsLCIwLDAwIiwsLCwsIjI1LDAwIiwKLDM2LCwsLFBST0RVVE8gRkFCUklDQcOHw4NPIFBSw5NQUklBIFRFU1RFICwsLCwsVU4sVFJJQlVUQURPIENPTSAsLCwiMCwwMCIsLCwsLCIyMCwwMCIsCiwsLCwsLCxOQ006ICwxMjExMjEsLCwsLCwsLCwsLCwKLDQyLCwsLFByb2R1dG8gdGVzdGUgMSwsLCwsQ1gsVGVzdGUgVHJpYnV0YcOnw6NvIDEsLCwiMCwwMCIsLCwsLCIxMCwwMCIsCiw5OTk5OTksLCwsUHJvZHV0byB0ZXN0ZSAxLCwsLCxVTixUZXN0ZSBUcmlidXRhw6fDo28gMSwsLCIwLDAwIiwsLCwsIjEwLDAwIiwKLCwsLCwsLE5DTTogLDIyMDExMDAwLCwsLCwsLCwsLCwsCiw0NCwsLCxQcm9kdXRvIHRlc3RlIDIsLCwsLENYLFRlc3RlIFRyaWJ1dGHDp8OjbyAxLCwsIjAsMDAiLCwsLCwiMjAsMDAiLAosNDUsLCwsUHJvZHV0byB0ZXN0ZSAyLCwsLCxDWCxUZXN0ZSBUcmlidXRhw6fDo28gMSwsLCIwLDAwIiwsLCwsIjIwLDAwIiwKLDM0NDQ0NCwsLCxBR1VBIE1JTkVSQUwsLCwsLFVOLFRSSUJVVEFETyBDU09TTiAxMDIsLCwiMCwzOCIsLCwsLCIxOTk5OSw5OSIsCiwsLCwsLCxOQ006ICwyOTAzMTkxMCwsLCwsLCwsLCwsLAosMjcsLCwsTWFpcyB1bSBQcm9kdXRvIGRlIFRlc3RlcywsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjIyLDAwIiwKLCwsLCwsLE5DTTogLDI5MDMzOTExLCwsLCwsLCwsLCwsCiwyNiwsLCx0dGVzdGVlZSwsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjEwLDAwIiwKLDI4LCwsLFByb2R1dG8gdGVzdGUgMDAzLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiMTAwLDAwIiwKLDMyLCwsLFByb2R1dG8gVGVzdGUgSW5jbHVzw6NvIE1hcmksLCwsLFVOLFRSSUJVVEFETyBDU09TTiAxMDIsLCwiMCwwMCIsLCwsLCIyMiw1MCIsCiwzOCwsLCxQcm9kdXRvIGNvbSBjYW1wbyBwZXJzb25hbGl6YWRvLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiOTAsMDIiLAosMzksLCwsVGVuaXMgTWFzY3VsaW5vLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiOSw5MCIsCiwsLCwsLCxOQ006ICwyOTA0OTkxMSwsLCwsLCwsLCwsLAosMTAsLCwsdGVzdGVzIDIsLCwsLFVOLFRSSUJVVEFETyBDU09TTiAxMDIsLCwiMCwwMCIsLCwsLCI3NSwwMCIsCiwxMSwsLCxjYWzDp2Egc3VwbGV4LCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiMTksOTkiLAosMTIsLCwsdGVzdGUsLCwsLFVOLFRSSUJVVEFETyBDU09TTiAxMDIsLCwiMCwwMCIsLCwsLCIyNSwwMCIsCiwxMywsLCxDQU1JU0VUQSBNQVNDLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiOCw3OCIsCiwxNiwsLCxjYW1pc2V0YSBwb2xvLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjksMDAiLCwsLCwiMTksODAiLAosMTcsLCwsQ0hJTkVMTywsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjExLDAwIiwKLCwsLCwsLE5DTTogLDI5MDQ5OTEyLCwsLCwsLCwsLCwsCiwyLCwsLFRlbm5pcyBOaWtlLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiMTkwLDAwIiwKLDcsLCwsUFJPRFVUTyBOT1ZPLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiMjksOTAiLAosOCwsLCxQUk9EVVRPIFJPVVBBUywsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjksOTkiLAosMjMsLCwsVEVTVEUgUFJPRFVUTyAyNDUsLCwsLFVOLFRSSUJVVEFETyBDU09TTiAxMDIsLCwiMCwwMCIsLCwsLCIwLDAwIiwKLDI0LCwsLFRFU1RFIFBST0RVVE8gMjQ1LCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiMTUsOTkiLAosLCwsLCwsTkNNOiAsMjkwNDk5MTYsLCwsLCwsLCwsLCwKLDE1LCwsLFBST0RVVE8gVEVTVEUsLCwsLFVOLFNVQlNUSVRVSURPIHRlc3RlLCwsIjAsMDAiLCwsLCwiMTksOTAiLAosLCwsLCwsTkNNOiAsMjkxNDc5MTEsLCwsLCwsLCwsLCwKLDQsLCwsQ0FMw4dBIEpFQU5TLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjI5LDYwIiwsLCwsIjI1LDk5IiwKLDksLCwsUHJvZHV0byBjb20gZ3JhZGUsLCwsLFVOLFRSSUJVVEFETyBDU09TTiAxMDIsLCwiMTcsMDAiLCwsLCwiMjIsNTAiLAosLCwsLCwsTkNNOiAsMzUwNjkxMjAsLCwsLCwsLCwsLCwKLDE4LCwsLFByb2R1dG8gdGVzdGUgVEhJQUdPLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjAsMDAiLCwsLCwiMjAsMDAiLAosLCwsLCwsTkNNOiAsMzkyNDkwMDAsLCwsLCwsLCwsLCwKLDExMSwsLCxQcm9kdXRvIFRlc3RlIFRoaWFnbywsLCwsUEMsVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjI0MiwwMCIsCiwsLCwsLCxOQ006ICwzOTI2OTA5MCwsLCwsLCwsLCwsLAosNDAsLCwsUHJvZHV0byBub3ZvIFRoaWFnbywsLCwsVU4sU1VCU1RJVFVJRE8gdGVzdGUsLCwiMCwwMCIsLCwsLCI0NCwwMCIsCiwsLCwsLCxOQ006ICw0ODIzNjkwMCwsLCwsLCwsLCwsLAosNSwsLCxYSUNBUkEgUFJPTU9DSU9OQUwsLCwsLFVOLFRSSUJVVEFETyBDU09TTiAxMDIsLCwiMCwwMCIsLCwsLCI0LDk5IiwKLCwsLCwsLE5DTTogLDU4MDcxMDAwLCwsLCwsLCwsLCwsCiwzLCwsLFRVTklDQSBGRU1FTklOQSwsLCwsUEMsVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjMwLDAwIiwKLCwsLCwsLE5DTTogLDYxMTIxMTAwLCwsLCwsLCwsLCwsCiw0MSwsLCxQUk9EVVRPIENPTSBHUkFERSwsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjEyLDkwIiwKLCwsLCwsLE5DTTogLDYxMTQyMDAwLCwsLCwsLCwsLCwsCiwyNSwsLCxUZXN0ZSBwcm9kdXRvIHRoaWFnbyAwOTExLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjEwMCwwMCIsLCwsLCIxMDAsMDAiLAosLCwsLCwsTkNNOiAsNjIwNzkxMDAsLCwsLCwsLCwsLCwKLDI5LCwsLENhbWlzYSB0ZXN0ZSwsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjM1LDAwIiwKLCwsLCwsLE5DTTogLDY4MDUxMDAwLCwsLCwsLCwsLCwsCiwyMSwsLCxCQUJBRE9SIDIxLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjQxLDkzIiwsLCwsIjIxLDAwIiwKLDIyLCwsLEJBQkFET1IgTk9WTywsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIxNCw0NCIsLCwsLCIzMywwMCIsCiwzMCwsLCxQUk9EVVRPIFBFUk1JVEUgQVBST1ZFSVRBTUVOVE8sLCwsLFVOLFRSSUJVVEFETyBDT00gLCwsIjAsMDAiLCwsLCwiOSw5OSIsCiwzMywsLCxCQUJBRE9SIDMzLCwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwsIjMsMDAiLCwsLCwiMTUwLDAwIiwKLCwsLCwsLE5DTTogLDc0MDcxMDEwLCwsLCwsLCwsLCwsCiw2LCwsLFBST0RVVE8gRU0gS0csLCwsLEtHLFRSSUJVVEFETyBDU09TTiAxMDIsLCwiMCwwMCIsLCwsLCIxNSwwMCIsCiwsLCwsLCxOQ006ICw4NDgzMzAyOSwsLCwsLCwsLCwsLAosMTQsLCwsQ0FNSVNFVEEgTUFTQywsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjE5LDgwIiwKLCwsLCwsLE5DTTogLDg1MTcxMTAwLCwsLCwsLCwsLCwsCiwzNywsLCxQcm9kdXRvIFVvVywsLCwsVU4sVFJJQlVUQURPIENTT1NOIDEwMiwsLCIwLDAwIiwsLCwsIjE5LDk5IiwKR2VyYWRvIFBvcjogLCwsLFF1YWxpZGFkZSBOZXdFUlAsLCwsLCwsLCwsLCxQw6FnaW5hOiAxIGRlIDIsLCwsCiwsLCwsLCwsLCxDdXN0bywsUHJlw6dvIHZlbmRhLAosQ8OzZGlnbywsRGVzY3Jpw6fDo28gUHJvZHV0bywsLFVNLCwsQ2xhc3NlIElDTVMsLCwsCiwsLCxOQ006ICw4OTAzOTEwMCwsLCwsLCwsCiwxOSwsVkVMQSwsLCxVTixUUklCVVRBRE8gQ1NPU04gMTAyLCwiMCwwMCIsLCwiMTEsMDAiCiwyMCwsVkVMQSBOT1ZBLCwsLFVOLFRSSUJVVEFETyBDU09TTiAxMDIsLCIwLDAwIiwsLCIxMywyMCIKR2VyYWRvIFBvcjogLCxRdWFsaWRhZGUgTmV3RVJQLCwsLCwsLCwsUMOhZ2luYTogMiBkZSAyLCwK\"\r\n\r\n const link = document.createElement('a');\r\n link.href = \"data:application/octet-stream;base64,\" + dadosBase64;\r\n link.download = nomeArquivo;\r\n link.click();\r\n }\r\n function imprimirCliente(record) {\r\n let parametros = [{ nome: \"empresaLogado\", valor: getEmpresa() }, { nome: \"localLogado\", valor: getLocal() }, { nome: \"usuarioLogado\", valor: getIdUsuario() }, { nome: 'codigoCliente', valor: record.cli_id }];\r\n\r\n let urlRel = {\r\n PathRelatorio: \"Cliente/FichaIndividual_001/FichaIndividual\",\r\n Parametros: JSON.stringify(parametros),\r\n Tipo: \"PDF\",\r\n NomeRelatorio: \"Ficha Individual de Cliente\"\r\n }\r\n\r\n api.post(`RelatorioJasper/RetornaDadosRelatorios`, urlRel).then(\r\n res => {\r\n if (urlRel.Tipo === 'PDF') {\r\n var byteCharacters = atob(res.data);\r\n var byteNumbers = new Array(byteCharacters.length);\r\n for (var i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n var byteArray = new Uint8Array(byteNumbers);\r\n var file = new Blob([byteArray], { type: 'application/pdf;base64' });\r\n var fileURL = URL.createObjectURL(file);\r\n window.open(fileURL);\r\n } else {\r\n download(res.data, res.data.fileDownloadName);\r\n }\r\n }).catch(\r\n erro => {\r\n console.error(erro);\r\n alert('Erro ao gerar Relatório: ' + erro);\r\n }\r\n );\r\n };\r\n\r\n function pesquisaAvancada(expressao) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${formPesquisaAvancada.getFieldValue().clienteAtivo}&filtroAdicional=${btoa(expressao)}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n function limparFiltroPesquisa() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${formPesquisaAvancada.getFieldValue().clienteAtivo}`, ordem: '+pes_nome' } })\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n aplicarFiltrosAvancados()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n { pesquisaAvancada(ret) }} funcaoLimpar={() => { limparFiltroPesquisa() }} telaFiltro={1} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {cli_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Cliente',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nome Fantasia',\r\n render: ({ pej_nomefantasia, pef_apelido }) => (\r\n
\r\n {pej_nomefantasia ?? (pef_apelido ?? 'Não Informado')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 138,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Endereço',\r\n render: ({ log_logradouro, pee_numero, bai_nome, cep_cep, cid_descricao, est_sigla }) => (\r\n
\r\n {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 95,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n editarCliente(record)} icon={} />\r\n \r\n \r\n { modalExcluirRegistro(record) }} icon={} />\r\n \r\n \r\n \r\n \r\n RG: {pef_rg}\r\n : null}\r\n {!!pej_inscricaoestadual ? \r\n IE: {pej_inscricaoestadual}\r\n : null}\r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Card, Divider, Progress, Button, Table, Tag } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { ModalDetalhePedido, ModalProdutoCondicional, ModalDetalheOrcamento } from \"../../components/modals/\";\r\n\r\nexport default function TabEstatistica({ dadosCliente, dataInicial, dataFinal }) {\r\n\r\n const [openModalDetalhePedido, setOpenModalDetalhePedido] = useState(false);\r\n const [pedidoId, setPedidoId] = useState(null);\r\n const [openModalDetalheOrcamento, setOpenModalDetalheOrcamento] = useState(false);\r\n const [openModalProdutoCondicional, setOpenModalProdutoCondicional] = useState(false);\r\n const [totalParcAtraso, setTotalParcAtraso] = useState({});\r\n const [resumoFinanceiro, setResumoFinanceiro] = useState({});\r\n const [dadosCondicionais, setDadosCondicionais] = useState({});\r\n const [dadosCrediario, setDadosCrediario] = useState({});\r\n const [dadosPedido, setDadosPedido] = useState({});\r\n const [dadosPedidosAbertos, setDadosPedidosAbertos] = useState([]);\r\n const [limiteCredito, setLimiteCredito] = useState({});\r\n const [dadosOrcamento, setDadosOrcamento] = useState({});\r\n const [dadosCheque, setDadosCheque] = useState([]);\r\n const [valorPercentual, setValorPercentual] = useState(0);\r\n const [openCondicional, setOpenCondicional] = useState(false);\r\n const [openPedidos, setOpenPedidos] = useState(false);\r\n const [openOrcamento, setOpenOrcamento] = useState(false);\r\n const [dadosListaOrcamento, setDadosListaOrcamento] = useState([]);\r\n const [dadosCondicionaisAbertas, setDadosCondicionaisAbertas] = useState([]);\r\n const [dadosItensCondicional, setDadosItensCondicional] = useState({});\r\n const [orcamentoId, setOrcamentoId] = useState(null);\r\n\r\n const viewCondicional = () => {\r\n setOpenCondicional(!openCondicional)\r\n };\r\n\r\n const viewPedidos = () => {\r\n setOpenPedidos(!openPedidos);\r\n };\r\n\r\n const viewOrcamento = () => {\r\n setOpenOrcamento(!openOrcamento);\r\n };\r\n\r\n useEffect(() => {\r\n if (!!dadosCliente && isObjetoDiffVazio(dadosCliente)) {\r\n carregarDados();\r\n }\r\n }, [dadosCliente]);\r\n\r\n useEffect(() => {\r\n if (!!dadosCliente && isObjetoDiffVazio(dadosCliente)) {\r\n carregarDados();\r\n }\r\n }, [dataInicial]);\r\n\r\n useEffect(() => {\r\n if (!!dadosCliente && isObjetoDiffVazio(dadosCliente)) {\r\n carregarDados();\r\n }\r\n }, [dataFinal]);\r\n\r\n function carregarDados() {\r\n listarLimiteCredito();\r\n listarTotalParcelasEmAtraso();\r\n listarResumoFinanceiro();\r\n listarDadosCondicionais();\r\n listarDadosCondicionaisAbertas();\r\n listarDadosPedido();\r\n listarDadosPedidoAberto();\r\n listarDadosOrcamento();\r\n listarDadosListaOrcamento();\r\n listarDadosCheque();\r\n listarParcelasAReceber();\r\n };\r\n\r\n function listarLimiteCredito() {\r\n api.get(`Cliente/LimiteCreditoCMR?IdPessoa=${dadosCliente.pes_id}`).then(\r\n res => {\r\n let dados = res.data;\r\n let perc = parseFloat(((dados.vlr_ParcelasAbertas * 100) / dados.vlr_LimiteCredito).toFixed(2));\r\n if (perc > 100) {\r\n setValorPercentual(100);\r\n } else {\r\n setValorPercentual(perc);\r\n }\r\n setLimiteCredito(dados);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarParcelasAReceber() {\r\n api.get(`ContasPagarReceber/CRMParcelasAReceber?IdPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n setDadosCrediario(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarTotalParcelasEmAtraso() {\r\n api.get(`Parcela/TotalParcelasEmAtraso?IdPessoa=${dadosCliente.pes_id}`).then(\r\n res => {\r\n setTotalParcAtraso(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarResumoFinanceiro() {\r\n api.get(`Pessoa/ResumoFinanceiroCRM?IdPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n setResumoFinanceiro(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarDadosCondicionais() {\r\n api.get(`VendaCondicional/RetornaDadosCondicionaisCRM?IdPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n setDadosCondicionais(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarDadosCondicionaisAbertas() {\r\n api.get(`VendaCondicional/RetornaDadosCondicionaisAberto?IdCliente=${dadosCliente.cli_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n setDadosCondicionaisAbertas(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarDadosPedido() {\r\n api.get(`Pedido/RetornaDadosPedidoCRM?IdPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n setDadosPedido(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarDadosPedidoAberto() {\r\n api.get(`Pedido/RetornaDadosPedidosAberto?IdCliente=${dadosCliente.cli_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n setDadosPedidosAbertos(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n // não implementado ainda no novo back end\r\n function listarDadosOrcamento() {\r\n // api.get(`Orcamento/RetornaDadosOrcamentoCRM?IdPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n // res => {\r\n // setDadosOrcamento(res.data);\r\n // }\r\n // ).catch(\r\n // erro => {\r\n // console.log(erro);\r\n // }\r\n // );\r\n };\r\n\r\n function listarDadosListaOrcamento() {\r\n // api.get(`Orcamento/ListaOrcamentoCrmDTO?IdPessoa=${dadosCliente.cli_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n // res => {\r\n // setDadosListaOrcamento(res.data);\r\n // }\r\n // ).catch(\r\n // erro => {\r\n // console.log(erro);\r\n // }\r\n // );\r\n };\r\n\r\n function listarDadosCheque() {\r\n api.get(`Cheque/RetornaDadosChequeCRM?CodigoPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n setDadosCheque(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function abrirModalItens(record) {\r\n setDadosItensCondicional(record)\r\n setOpenModalProdutoCondicional(true)\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n * Limite de Crédito Excedido. Valor Limite (R$):\r\n {isObjetoDiffVazio(limiteCredito) ? FormatNumber(limiteCredito.vlr_LimiteCredito, true) : FormatNumber(0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!totalParcAtraso ? FormatNumber(totalParcAtraso.vlr_ParcelasEmAtraso, true) : FormatNumber(0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Média de Atraso\r\n \r\n \r\n \r\n \r\n {isObjetoDiffVazio(dadosCrediario) ? dadosCrediario.mediaDiasAtraso : 0} dias\r\n \r\n \r\n \r\n \r\n Total de parcelas:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCrediario) ? dadosCrediario.total_Parcelas : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total de parcelas em atraso:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCrediario) ? dadosCrediario.total_Parcelas_Atraso : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total de parcelas adiantadas:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCrediario) ? dadosCrediario.total_Parcelas_Adiantadas : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Comprado\r\n \r\n \r\n \r\n \r\n {isObjetoDiffVazio(resumoFinanceiro) ? FormatNumber(resumoFinanceiro.vlr_TotalVendas, true) : FormatNumber(0, true)}\r\n \r\n \r\n \r\n \r\n Valor compras a vista (R$):\r\n \r\n \r\n {isObjetoDiffVazio(resumoFinanceiro) ? FormatNumber(resumoFinanceiro.vlr_TotalVendasAVista, true) : FormatNumber(0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor compras a prazo (R$):\r\n \r\n \r\n {isObjetoDiffVazio(resumoFinanceiro) ? FormatNumber(resumoFinanceiro.vlr_TotalVendasAPrazo, true) : FormatNumber(0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor a receber (R$):\r\n \r\n \r\n {isObjetoDiffVazio(resumoFinanceiro) ? FormatNumber(resumoFinanceiro.vlr_ParcelasAReceber, true) : FormatNumber(0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Percentual de Vendas das Condicionais:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCondicionais) ? dadosCondicionais.percentual_Vendas_Condicionais + '%' : '0%'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total de Condicionais:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCondicionais) ? dadosCondicionais.qtde_Condicionais : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total de Compras (R$):\r\n \r\n \r\n {isObjetoDiffVazio(dadosCondicionais) ? FormatNumber(dadosCondicionais.vlr_Total_Condicionais, true) : FormatNumber(0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Condicionais em Aberto:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Percentual de Vendas dos Pedidos:\r\n \r\n \r\n {isObjetoDiffVazio(dadosPedido) ? dadosPedido.percentual_Vendas_Pedidos + '%' : '0%'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total de Pedidos:\r\n \r\n \r\n {isObjetoDiffVazio(dadosPedido) ? dadosPedido.qtde_Pedidos : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor total de compras (R$):\r\n \r\n \r\n {isObjetoDiffVazio(dadosPedido) ? FormatNumber(dadosPedido.vlr_Total_Pedidos, true) : FormatNumber(0, true)} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pedidos em Aberto:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {openCondicional &&\r\n \r\n \r\n } onClick={() => viewCondicional(false)}> Fechar \r\n }>\r\n
(\r\n
\r\n Nº {vnc_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Lançamento',\r\n render: ({ vnc_datalancamento }) => (\r\n
\r\n {moment(vnc_datalancamento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Retorno',\r\n render: ({ vnc_prazoretorno }) => (\r\n
\r\n {moment(vnc_prazoretorno).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Itens',\r\n align: 'center',\r\n render: ({ vnc_totalitens }, record) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ vnc_valortotal }) => (\r\n
\r\n {FormatNumber(vnc_valortotal, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n }\r\n {openPedidos &&\r\n \r\n \r\n } onClick={() => viewPedidos()}> Fechar \r\n }>\r\n
(\r\n
\r\n \r\n
\r\n \r\n {stp_descricao}\r\n \r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'Nº',\r\n align: 'left',\r\n render: ({ ped_numero }) => (\r\n
\r\n {ped_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Lançamento',\r\n align: 'center',\r\n render: ({ ped_datainclusao }) => (\r\n
\r\n {moment(ped_datainclusao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Entrega',\r\n align: 'center',\r\n render: ({ ped_dataprevisaoentrega }) => (\r\n
\r\n {moment(ped_dataprevisaoentrega).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Itens',\r\n align: 'center',\r\n render: ({ ped_totalitens, ped_id }) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ pdi_valortotal }) => (\r\n
\r\n {FormatNumber(pdi_valortotal, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n Percentual de Vendas dos Orçamentos:\r\n \r\n \r\n {isObjetoDiffVazio(dadosOrcamento) ? dadosOrcamento.percentual_Vendas_Orcamentos + '%' : '0%'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total de Orçamentos:\r\n \r\n \r\n {isObjetoDiffVazio(dadosOrcamento) ? dadosOrcamento.qtde_Orcamentos : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total de Compras (R$):\r\n \r\n \r\n {isObjetoDiffVazio(dadosOrcamento) ? FormatNumber(dadosOrcamento.vlr_Total_Orcamentos, true) : FormatNumber(0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Orçamentos em Aberto:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Quantidade:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCheque) ? dadosCheque.qtde_Cheques : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Status:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCheque) ? dadosCheque.statusCheques : 0}\r\n \r\n \r\n {false && \r\n \r\n Cheques de Terceiros:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCheque) ? dadosCheque.qtde_ChequesDepositados : 0}\r\n \r\n }\r\n {false && \r\n \r\n Voltaram:\r\n \r\n \r\n {isObjetoDiffVazio(dadosCheque) ? dadosCheque.qtde_ChequesDevolvidos : 0}\r\n \r\n }\r\n \r\n \r\n \r\n {openOrcamento &&\r\n \r\n \r\n } onClick={() => viewOrcamento(false)}> Fechar \r\n }>\r\n
(\r\n
\r\n {orc_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Lançamento',\r\n align: 'center',\r\n render: ({ orc_datainclusao }) => (\r\n
\r\n {moment(orc_datainclusao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Validade',\r\n align: 'center',\r\n render: ({ orc_datavalidade }) => (\r\n
\r\n {moment(orc_datavalidade).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Itens',\r\n align: 'center',\r\n render: ({ oit_qtdtotalitens, orc_id }) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ oit_vlrtotalitens }) => (\r\n
\r\n {FormatNumber(oit_vlrtotalitens, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n }\r\n setOpenModalProdutoCondicional(false)} dadosItens={dadosItensCondicional} />\r\n setOpenModalDetalhePedido(false)} ped_id={pedidoId} />\r\n setOpenModalDetalheOrcamento(false)} orc_id={orcamentoId} />\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Card, Table, Select, Form, Divider, Tag } from \"antd\";\r\nimport { ExclamationCircleOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\n\r\nexport default function TabUltimasCompras({ form, dadosCliente, dataInicial, dataFinal }) {\r\n\r\n const [dadosNotasFiscais, setDadosNotasFiscais] = useState([]);\r\n const [dadosItensNotas, setItensNotas] = useState([]);\r\n const [dadosGrupo, setDadosGrupo] = useState([]);\r\n\r\n useEffect(() => {\r\n form.setFieldsValue({ ordemNota: \"+ntf_dataemissao\" });\r\n if (!!dadosCliente && isObjetoDiffVazio(dadosCliente)) {\r\n carregarDados();\r\n }\r\n }, [dadosCliente]);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, [dataInicial]);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, [dataFinal]);\r\n\r\n function carregarDados() {\r\n listarNotasFiscais();\r\n listarItensNotas();\r\n listarTotaisGrupo();\r\n };\r\n\r\n function listarNotasFiscais(ordem = \"\") {\r\n api.get(`NotaFiscal/ListaNotasFiscaisClienteCRM?IdPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}${!!ordem ? `&ordem=${ordem}` : ''}`).then(\r\n res => {\r\n setDadosNotasFiscais(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarItensNotas() {\r\n api.get(`NotaFiscal/ListaItensNotasClienteCRM?IdPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n setItensNotas(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarTotaisGrupo() {\r\n api.get(`NotaFiscal/RetornaTotaisGruposCRM?IdPessoa=${dadosCliente.pes_id}&dataFinal=${moment(dataFinal).toISOString()}&dataInicial=${moment(dataInicial).toISOString()}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let sequencia = 1;\r\n res.data.forEach((dados) => {\r\n dados.key = sequencia++;\r\n });\r\n setDadosGrupo(res.data);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function alterarOrdemDadosNota() {\r\n listarNotasFiscais(form.getFieldValue().ordemNota);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n {ser_serie}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº',\r\n width: 105,\r\n align: 'center',\r\n render: ({ ntf_numero }) => (\r\n
\r\n {ntf_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Emissão',\r\n width: 100,\r\n align: 'right',\r\n render: ({ ntf_dataemissao }) => (\r\n
\r\n {!!ntf_dataemissao ? moment(ntf_dataemissao).format('DD/MM/YYYY') : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde. Itens',\r\n width: 120,\r\n align: 'right',\r\n render: ({ ntf_totalitens }) => (\r\n
\r\n {ntf_totalitens}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 120,\r\n render: ({ ntf_totalnota }) => (\r\n
\r\n {FormatNumber(ntf_totalnota, true)}\r\n
\r\n ),\r\n }\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qantidade',\r\n width: 75,\r\n align: 'center',\r\n render: ({ nfi_qtde }) => (\r\n
\r\n {nfi_qtde}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desconto (R$)',\r\n width: 75,\r\n align: 'right',\r\n render: ({ nfi_valordesconto }) => (\r\n
\r\n {FormatNumber(nfi_valordesconto, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Frete (R$)',\r\n width: 75,\r\n align: 'right',\r\n render: ({ nfi_valorfrete }) => (\r\n
\r\n {FormatNumber(nfi_valorfrete, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 75,\r\n fixed: 'right',\r\n render: ({ nfi_valortotalitem }) => (\r\n
\r\n {FormatNumber(nfi_valortotalitem, true)}\r\n
\r\n ),\r\n }\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n {gru_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde Total Grupo',\r\n width: 275,\r\n align: 'right',\r\n render: ({ gru_qtdetotalgrupo }) => (\r\n
\r\n {gru_qtdetotalgrupo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Total Grupo (R$)',\r\n width: 275,\r\n\r\n align: 'right',\r\n render: ({ gru_valortotalgrupo }) => (\r\n
\r\n {FormatNumber(gru_valortotalgrupo, true)}\r\n
\r\n ),\r\n }\r\n ]} expandable={{\r\n expandedRowRender: ({ listaTotSubGrupo }) => {\r\n return (\r\n
(\r\n
\r\n {sgp_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde Total Subgrupo',\r\n width: 275,\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ sgp_qtdetotalsubgrupo }) => (\r\n
\r\n {sgp_qtdetotalsubgrupo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Total Subgrupo (R$)',\r\n width: 275,\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ sgp_valortotalsubgrupo }) => (\r\n
\r\n {FormatNumber(sgp_valortotalsubgrupo, true)}\r\n
\r\n ),\r\n }\r\n ]} />\r\n )\r\n }\r\n }} expandIcon={({ record, expanded, onExpand }) => {\r\n return expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n );\r\n }} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Card, Typography, Divider, Tabs, Select, Button, Radio } from \"antd\";\r\nimport { EditOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatFone } from \"../../ValueObjects\";\r\nimport { TabEstatistica, TabUltimasCompras } from \"./tabPage\";\r\nimport { BreadcrumbAbrirChamado, Data, SelectPaginacao } from \"../../components\";\r\nimport { formatarCnpj, formatarCpf } from \"../../services/funcoes\";\r\n\r\nexport default function ResumoCliente() {\r\n\r\n const [openCliente, setOpenCliente] = useState(false);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [dadosCliente, setDadosCliente] = useState({});\r\n const [telefone, setTelefone] = useState({});\r\n const [email, setEmail] = useState({});\r\n const [endereco, setEndereco] = useState({});\r\n const [dataInicial, setDataIncial] = useState(new Date());\r\n const [dataFinal, setDataFinal] = useState(new Date());\r\n const [clienteId, setClienteId] = useState(null);\r\n\r\n const exibirOutrosClientes = () => {\r\n setOpenCliente(!openCliente);\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n setClienteId(manutencao.dados.cli_id);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!!manutencao.dados && !!localStorage.getItem('@GestorWeb-clienteResumo')) {\r\n setClienteId(localStorage.getItem('@GestorWeb-clienteResumo'));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n carregarDatas();\r\n if (!!clienteId) {\r\n localStorage.setItem('@GestorWeb-clienteResumo', clienteId);\r\n listarCliente();\r\n }\r\n }, [clienteId]);\r\n\r\n function carregarDatas() {\r\n let data = new Date();\r\n let periodo = form.getFieldValue().periodoData;\r\n\r\n form.setFieldsValue({ dataFinal: moment(data) });\r\n setDataFinal(moment(data));\r\n switch (periodo) {\r\n case 1:\r\n data.setMonth(data.getMonth() - 12);\r\n break;\r\n case 2:\r\n data.setMonth(data.getMonth() - 6);\r\n break;\r\n case 3:\r\n data.setDate(data.getDate() - 30);\r\n break;\r\n default:\r\n data.setDate(data.getDate() - 30);\r\n break;\r\n }\r\n form.setFieldsValue({ dataInicial: moment(data) });\r\n setDataIncial(moment(data));\r\n };\r\n\r\n function listarCliente() {\r\n api.get(`Cliente/BuscarCliente/${clienteId}`).then(\r\n res => {\r\n setDadosCliente(res.data);\r\n setTelefone(res.data.telefones.filter(telefone => telefone.psc_principal)[0]);\r\n setEmail(res.data.emails.filter(email => email.pem_emailprincipal)[0]);\r\n setEndereco(res.data.enderecos.length > 0 ? res.data.enderecos.filter(endereco => endereco.pee_enderecoprincipal)[0] : res.data.enderecos[0]);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function alterarCliente() {\r\n let cli_id = form.getFieldValue().cli_id;\r\n setClienteId(cli_id);\r\n exibirOutrosClientes();\r\n form.setFieldsValue({ cli_id: null });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n { carregarDatas() }}>\r\n 1 Ano\r\n 6 Meses\r\n Últimos 30 dias\r\n \r\n \r\n \r\n \r\n \r\n \r\n { setDataIncial(form.getFieldValue().dataInicial); }} />\r\n \r\n \r\n { setDataFinal(form.getFieldValue().dataFinal); }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n exibirOutrosClientes()} icon={openCliente ? : } />}>\r\n {!!openCliente &&\r\n \r\n \r\n \r\n alterarCliente()}\r\n conteudo={\r\n cli => (\r\n {cli.cli_codigo} - {cli.pes_nome})\r\n } />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {dadosCliente.pes_nome}\r\n \r\n \r\n \r\n \r\n \r\n Cliente desde: {!!dadosCliente.cli_datainclusao ? moment(dadosCliente.cli_datainclusao).format('DD/MM/YYYY') : 'Não informado'}\r\n \r\n \r\n Última atualização: {!!dadosCliente.cli_dataalteracao ? moment(dadosCliente.cli_dataalteracao).format('DD/MM/YYYY') : 'Não informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosCliente.pef_cpf &&\r\n \r\n CPF: {!!dadosCliente.pef_cpf ? formatarCpf(dadosCliente.pef_cpf) : 'Não informado'}\r\n \r\n }\r\n {!!dadosCliente.pej_cnpj &&\r\n \r\n CNPJ: {!!dadosCliente.pej_cnpj ? formatarCnpj(dadosCliente.pej_cnpj) : 'Não informado'}\r\n \r\n }\r\n \r\n Telefone: {!!telefone && FormatFone(telefone.psc_numero) ? FormatFone(telefone.psc_numero) : 'Não informado'}\r\n \r\n \r\n E-mail: {!!email && email.pem_email ? email.pem_email : 'Não informado'}\r\n \r\n \r\n Data de Nascimento: {!!dadosCliente.pef_datanascimento ? moment(dadosCliente.pef_datanascimento).format(\"DD/MM/YYYY\") : 'Não informado'}\r\n \r\n \r\n Endereço: {!!endereco ? `${endereco.log_logradouro}, ${endereco.pee_numero}, ${endereco.bai_nome}, ${endereco.cep_cep} - ${endereco.est_sigla}` : 'Não informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Tabs, Typography, Row, Col, Form, Divider, Input, Select, Radio, Checkbox, Switch, Tooltip, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { getEmpresa } from \"../../services/auth\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport { Data, FormGW, FormularioDinamico, InputPreco, SelectPaginacao } from \"../../components\";\r\nimport { isObjetoDiffVazio, validarCnpj, validarCpf, consultaCNPJ, retornaSoNumeros, HasValue, validarTelefone } from \"../../services/funcoes\";\r\nimport { Endereco, Email, Telefone, Ocupacao, Nacionalidade, OutrosContatos } from '../pessoas/pages';\r\nimport { validarIE } from \"../../services/funcoesIE\";\r\nimport { trataRetornoFormularioDinamico, trataSetaDadosFormularioDinamico } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoFornecedor({ formulario, carregando, aoSalvar, editando }) {\r\n\r\n const [pessoaJuridica, setPessoaJuridica] = useState(false);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [dadosEstrangeiro, setDadosEstrangeiro] = useState(false);\r\n const [regimeTributario, setRegimeTributario] = useState([]);\r\n const [cpfCnpj, setCpfCnpj] = useState(\"\");\r\n const [elementosFormulario, setElementosFormulario] = useState([]);\r\n const [listaCidades, setListaCidades] = useState(false);\r\n const [filtroCdd, setFiltroCdd] = useState(null);\r\n const [desabilitarCfpCnpj, setDesabilitarCpfCnpj] = useState(false);\r\n const [mask, setMask] = useState(\"\");\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n const switchEstrangeiro = () => {\r\n setDadosEstrangeiro(!dadosEstrangeiro)\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.for_id) {\r\n listaFornecedor(manutencao.dados.for_id);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.for_id && editando.editando) {\r\n let lista = [];\r\n if (!!manutencao.dados.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: manutencao.dados.pef_rguf });\r\n carregarCidades(manutencao.dados.pef_rguf);\r\n }\r\n if (!!manutencao.dados.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: manutencao.dados.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n editando.setEditando(false);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [ui.showDrawer, manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n let _cpfCnpj = formulario.getFieldValue().cpfCnpj ? formulario.getFieldValue().cpfCnpj : manutencao.dados.cpfCnpj;\r\n _cpfCnpj = _cpfCnpj.replace(/[^\\d]+/g, '');\r\n if (HasValue(_cpfCnpj)) {\r\n if (_cpfCnpj.length === 11) {\r\n if (validarCpf(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n }\r\n else if (_cpfCnpj.length === 14) {\r\n if (validarCnpj(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n } else {\r\n setDesabilitarCpfCnpj(false);\r\n }\r\n }\r\n if (!!manutencao.dados.cpfCnpj) {\r\n if (manutencao.dados.cpfCnpj.length > 11) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n }\r\n } else {\r\n setFocusCpfCnpj();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function setFocusCpfCnpj() {\r\n setTimeout(\r\n () => {\r\n try {\r\n let element = document.getElementById(\"cpf\");\r\n if (element) {\r\n element.focus();\r\n }\r\n } catch (error) {\r\n console.log('error :>> ', error);\r\n }\r\n }, 300);\r\n }\r\n const salvarCamposAdicionais = (values) => {\r\n\r\n var camposAdicionais = [];\r\n elementosFormulario?.map((elemento) => {\r\n values = trataRetornoFormularioDinamico(values, elemento);\r\n let fornecedorcampopersonalizados = { ...manutencao.dados };\r\n let forDados = fornecedorcampopersonalizados.fornecedorcampopersonalizado?.filter(f => f.cap_id == elemento.cap_id)[0];\r\n if ((!!forDados ? forDados.fcp_valor : \"\") !== (!!values[elemento.cap_nomeelemento] ? values[elemento.cap_nomeelemento] : \"\")) {\r\n camposAdicionais.push({ fcp_id: !!forDados ? forDados.fcp_id : null, for_id: values.for_id, cap_id: elemento.cap_id, fcp_valor: values[elemento.cap_nomeelemento] });\r\n }\r\n });\r\n return camposAdicionais;\r\n }\r\n\r\n const salvarManutencao = valores => {\r\n if (!!valores.pej_emailpessoacontato) {\r\n if (!validarEmail(valores.pej_emailpessoacontato)) {\r\n notification.warning({ message: 'Aviso', description: 'E-mail do contado inválido' });\r\n return false;\r\n }\r\n }\r\n let dadosform = formulario.getFieldValue();\r\n valores = { ...valores, ...dadosform };\r\n valores.pessoatelefones = !!manutencao.dados.telefones && manutencao.dados.telefones.length > 0 ? manutencao.dados.telefones : [];\r\n valores.enderecos = !!manutencao.dados.enderecos && manutencao.dados.enderecos.length > 0 ? manutencao.dados.enderecos : [];\r\n valores.pessoaemails = !!manutencao.dados.emails && manutencao.dados.emails.length > 0 ? manutencao.dados.emails : [];\r\n valores.pessoasocupacoes = !!manutencao.dados.ocupacoes && manutencao.dados.ocupacoes.length > 0 ? manutencao.dados.ocupacoes : [];\r\n valores.pessoaoutrocontatos = !!manutencao.dados.pessoaoutrocontatos && manutencao.dados.pessoaoutrocontatos.length > 0 ? manutencao.dados.pessoaoutrocontatos : [];\r\n valores.pessoanacionalidades = !!manutencao.dados.listaNacionalidade && manutencao.dados.listaNacionalidade.length > 0 ? manutencao.dados.listaNacionalidade : [];\r\n valores.pes_fisicajuridica = pessoaJuridica ? 2 : (dadosEstrangeiro ? 3 : 1);\r\n\r\n valores.cpfCnpj = valores.cpfCnpj.replaceAll('.', '').replaceAll('/', '').replaceAll('-', '');\r\n if (!!valores.idEstrangeiro && dadosEstrangeiro) {\r\n valores.isEstrangeiro = true;\r\n valores.pes_estrangeiro = true;\r\n } else {\r\n valores.isEstrangeiro = false;\r\n valores.pes_estrangeiro = false;\r\n\r\n if (valores.cpfCnpj.length === 11) {\r\n valores.pes_fisicajuridica = 1;\r\n valores.pef_cpf = valores.cpfCnpj;\r\n if (!validarCpf(valores.cpfCnpj)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n return false;\r\n }\r\n } else if (valores.cpfCnpj.length === 14) {\r\n valores.pes_fisicajuridica = 2;\r\n valores.pej_cnpj = valores.cpfCnpj;\r\n if (!validarCnpj(valores.cpfCnpj)) {\r\n notification.warning({ message: 'Aviso', description: 'CNPJ informado é inválido' });\r\n return false;\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'CPF/CNPJ informado é inválido' });\r\n return false;\r\n }\r\n }\r\n\r\n if (!!valores.cpfCnpj) {\r\n if (valores.pes_fisicajuridica === 1) {\r\n valores.pef_cpf = valores.cpfCnpj.replace(/\\D/g, '');\r\n valores.pef_rguf = valores.enderecos?.filter((end) => (end.pee_enderecoprincipal === true))[0].est_sigla;\r\n } else {\r\n valores.pej_cnpj = valores.cpfCnpj.replace(/\\D/g, '');\r\n valores.pej_inscuf = valores.enderecos.length > 0 ? valores.enderecos.filter((end) => (end.pee_enderecoprincipal === true))[0].est_sigla : '';\r\n }\r\n }\r\n if (!!valores.pej_inscricaoestadual && !validarIE(valores.pej_inscricaoestadual, valores.pej_inscuf)) {\r\n notification.warning({ message: 'Aviso', description: 'Inscrição Estadual informada é inválida' });\r\n return false;\r\n } else if (!!!valores.pej_inscricaoestadual) {\r\n valores.pej_inscricaoestadual = \"\";\r\n }\r\n\r\n valores.for_valorfretegratis = parseFloat(valores.for_valorfretegratis);\r\n valores.for_codigobancoagencia = !!valores.for_codigobancoagencia ? valores.for_codigobancoagencia : '';\r\n valores.pef_apelido = !!valores.pef_apelido ? valores.pef_apelido : '';\r\n valores.for_regimetributariofiscal = !!valores.regimeTributario ? valores.regimeTributario : null;\r\n valores.for_observacao = !!valores.for_observacao ? valores.for_observacao : '';\r\n valores.fornecedorcampopersonalizados = salvarCamposAdicionais(valores);\r\n if (!!formulario.getFieldValue().regimeTributario) {\r\n valores.regimeTributario = {\r\n key: formulario.getFieldValue().regimeTributario,\r\n value: regimeTributario.filter(item => (item.key === formulario.getFieldValue().regimeTributario))[0].value\r\n }\r\n }\r\n\r\n carregando(true);\r\n\r\n if (!!valores.for_id) {\r\n api.put(`Fornecedor/Editar`, valores).then(\r\n (res) => {\r\n notification.success({ message: 'Aviso', description: `Fornecedor editado com sucesso!` });\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.error({ message: 'Erro ao salvar dados do Fornecedor.', description: JSON.stringify(erro.response) });\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n\r\n api.post(`Fornecedor/Incluir`, valores).then(\r\n (res) => {\r\n notification.success({ message: 'Aviso', description: `Fornecedor incluído com sucesso!` });\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.error({ message: 'Erro ao salvar dados do Fornecedor.', description: JSON.stringify(erro.response) });\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n };\r\n function carregarCidades(UfEstado) {\r\n if (!!UfEstado) {\r\n setListaCidades(true);\r\n setFiltroCdd(` &UfEstado=${UfEstado}`);\r\n }\r\n else {\r\n setListaCidades(false);\r\n }\r\n }\r\n\r\n function validarEmail(email) {\r\n let reg = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n return reg.test(email);\r\n };\r\n\r\n\r\n function carregaCamposPersonalizados() {\r\n api.get(`CamposPersonalizados/ListarTodos?TipoEntidade=2&PageNumber=1&PageSize=1000&Order=+cap_ordem`).then(res => {\r\n if (res.status === 200) {\r\n setElementosFormulario(res.data.items);\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao carregar Campos personalizados!');\r\n }\r\n );\r\n };\r\n\r\n function carregaDadosCamposAdicionais() { //Campos Adicionais\r\n let camposPersonalizados = { ...manutencao.dados };\r\n camposPersonalizados?.fornecedorcampopersonalizado?.map(d => {\r\n let elemento = elementosFormulario.filter(f => f.cap_id === d.cap_id)[0];\r\n if (!!elemento)\r\n trataSetaDadosFormularioDinamico(formulario, elemento, d.fcp_valor);\r\n })\r\n }\r\n\r\n useEffect(() => { if (!!elementosFormulario && elementosFormulario.length > 0) carregaDadosCamposAdicionais(); }, [elementosFormulario]);\r\n useEffect(() => {\r\n if (manutencao?.dados?.fornecedorcampopersonalizado?.length > 0)\r\n carregaDadosCamposAdicionais();\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n popularDados();\r\n }, []);\r\n\r\n function popularDados() {\r\n listarRegimeTrib();\r\n carregaCamposPersonalizados();\r\n };\r\n\r\n function listarRegimeTrib() {\r\n api.get('Enum/Listar?nome=RegimeTributarioFiscal').then(\r\n (res) => {\r\n setRegimeTributario(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validarCpfExiste(cpfCnpj) {\r\n api.get(`PessoaFisica/VerificarCpfExistente?cpf=${cpfCnpj}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_fornecedor) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"O CPF informado já esta cadastrado no sistema!\\n Deseja atualizar seus dados?\",\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n listarFornecedorCpfCnpj(cpfCnpj);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n } else {\r\n listarFornecedorCpfCnpj(cpfCnpj);\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validarCnpjExiste(cpfCnpj) {\r\n api.get(`PessoaJuridica/VerificarCnpjExistente?cnpj=${cpfCnpj}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_fornecedor) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"O CNPJ informado já esta cadastrado no sistema!\\n Deseja atualizar seus dados?\",\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n listarFornecedorCpfCnpj(cpfCnpj);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n } else {\r\n listarFornecedorCpfCnpj(cpfCnpj);\r\n }\r\n } else {\r\n receitaWS(cpfCnpj);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function listaFornecedor(for_id) {\r\n if (!!!for_id) {\r\n return;\r\n }\r\n api.get(`Fornecedor/BuscarFornecedor/${for_id}`).then(\r\n (res) => {\r\n let valores = res.data;\r\n if (res.data.pes_fisicajuridica === 2) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n if (!!res.data && isObjetoDiffVazio(res.data)) {\r\n valores.for_datainclusao = !!valores.for_datainclusao ? moment(valores.for_datainclusao) : null;\r\n valores.for_dataalteracao = !!valores.for_dataalteracao ? moment(valores.for_dataalteracao) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.pef_dataalteracao = !!valores.pef_dataalteracao ? moment(valores.pef_dataalteracao) : null;\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n valores.pej_datafundacao = !!valores.pej_datafundacao ? moment(valores.pej_datafundacao) : null;\r\n valores.id_rguf = valores.est_id;\r\n valores.regimeTributario = !!valores.for_regimetributariofiscal ? valores.for_regimetributariofiscal : null;\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n const receitaWS = (cpfCnpj) => {\r\n if (!HasValue(formulario.getFieldsValue().pes_nome)) {\r\n consultaCNPJ(cpfCnpj).then((retorno) => {\r\n let dados = retorno;\r\n if (dados.status === \"OK\" && dados.situacao === \"ATIVA\") {\r\n let dadosForm = {};\r\n\r\n if (dados.efr !== \"\") {\r\n dadosForm.pes_orgaopublico = true;\r\n }\r\n dadosForm.pes_nome = dados.nome;\r\n if (!!dados.abertura) {\r\n let dia = dados.abertura.substring(0, 2);\r\n let mes = dados.abertura.substring(3, 5);\r\n let ano = dados.abertura.substring(6, 10);\r\n dadosForm.pej_datafundacao = moment(new Date(ano, mes, dia));\r\n }\r\n dadosForm.pej_nomefantasia = dados.fantasia;\r\n\r\n\r\n let listaEnderecos = [];\r\n let tipoEndereco = {};\r\n tipoEndereco.pais = \"BRASIL\";\r\n tipoEndereco.pse_id = 33;\r\n tipoEndereco.tpe_id = 4;\r\n tipoEndereco.tpe_descricao = \"COMERCIAL\";\r\n tipoEndereco.pee_numero = dados.numero;\r\n tipoEndereco.pee_ativo = true;\r\n tipoEndereco.pee_enderecoprincipal = true;\r\n tipoEndereco.cep_cep = retornaSoNumeros(dados.cep);\r\n tipoEndereco.pee_complemento = dados.complemento;\r\n tipoEndereco.bai_nome = dados.bairro;\r\n tipoEndereco.log_logradouro = dados.logradouro;\r\n tipoEndereco.cid_descricao = dados.municipio;\r\n tipoEndereco.est_sigla = dados.uf;\r\n tipoEndereco.enderecoCompleto = tipoEndereco.log_logradouro + ', ' + tipoEndereco.pee_numero + ' - ' + tipoEndereco.bai_nome + ' - ' + tipoEndereco.pee_complemento + ' - ' + tipoEndereco.cep_cep + ' - ' + tipoEndereco.cid_descricao + ' - ' + tipoEndereco.uf;\r\n listaEnderecos.push(tipoEndereco);\r\n\r\n let listaTelefones = [];\r\n if (dados.telefone !== \"\" && validarTelefone(retornaSoNumeros(dados.telefone).substring(0, 10))) {\r\n let tpt = {};\r\n tpt.tpt_id = 1;\r\n tpt.tpt_descricao = \"COMERCIAL\";\r\n tpt.psc_ativo = true;\r\n tpt.psc_numero = retornaSoNumeros(dados.telefone).substring(0, 10);\r\n tpt.psc_principal = true;\r\n listaTelefones.push(tpt);\r\n }\r\n\r\n let listaEmails = [];\r\n if (dados.email !== \"\" && validarEmail(dados.email)) {\r\n let email = {};\r\n email.pem_email = dados.email;\r\n email.pem_emailprincipal = true;\r\n email.pem_enviarboleto = false;\r\n email.pem_enviarcartacobranca = false;\r\n email.pem_enviarnfe = false;\r\n email.pem_enviarpromocao = false;\r\n email.pem_enviarvencparcela = false;\r\n email.pem_ativo = true;\r\n listaEmails.push(email);\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ telefones: listaTelefones }, ...{ emails: listaEmails }, ...{ enderecos: listaEnderecos } } } });\r\n formulario.setFieldsValue(dadosForm);\r\n\r\n }\r\n if (dados.status === \"OK\" && dados.situacao === \"BAIXADA\") {\r\n notification.warning({ message: 'Aviso', description: 'Empresa/CNPJ ' + dados.situacao + ' na receita!' });\r\n }\r\n }, (erro) => {\r\n console.log('ERRO:', erro);\r\n });\r\n }\r\n }\r\n\r\n function listarFornecedorCpfCnpj(cpfCnpj) {\r\n cpfCnpj = cpfCnpj.replaceAll('-', '').replaceAll('/', '').replaceAll('.', '');\r\n if (cpfCnpj === null || cpfCnpj === \"\") {\r\n return false;\r\n }\r\n api.get(`Fornecedor/BuscarFornecedorCpfCnpj/${cpfCnpj}`).then(\r\n (res) => {\r\n let valores = res.data;\r\n if (res.data.pes_fisicajuridica === 2) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n if (!!res.data && isObjetoDiffVazio(res.data)) {\r\n valores.for_ativo = true;\r\n valores.for_datainclusao = !!valores.for_datainclusao ? moment(valores.for_datainclusao) : null;\r\n valores.for_dataalteracao = !!valores.for_dataalteracao ? moment(valores.for_dataalteracao) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.pef_dataalteracao = !!valores.pef_dataalteracao ? moment(valores.pef_dataalteracao) : null;\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n valores.pej_datafundacao = !!valores.pej_datafundacao ? moment(valores.pej_datafundacao) : null;\r\n valores.id_rguf = valores.est_id;\r\n valores.regimeTributario = !!valores.for_regimetributariofiscal ? valores.for_regimetributariofiscal : 1;\r\n let lista = [];\r\n if (!!valores.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: valores.pef_rguf });\r\n }\r\n if (!!valores.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: valores.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n editando.setEditando(false);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n editando.setEditando(true);\r\n } else {\r\n if (cpfCnpj.length === 14) {\r\n setPessoaJuridica(true);\r\n receitaWS(cpfCnpj);\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n if (cpfCnpj.length === 14) {\r\n setPessoaJuridica(true);\r\n receitaWS(cpfCnpj);\r\n }\r\n }\r\n );\r\n }\r\n\r\n function validarFisicoJuridico(event) {\r\n let valorCampo = event.currentTarget.value.replace(/\\D/g, '');\r\n if (valorCampo.length === 11) {\r\n if (!validarCpf(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n formulario.setFieldsValue({ cpfCnpj: \"\" })\r\n setFocusCpfCnpj();\r\n return false;\r\n }\r\n } else if (valorCampo.length === 14) {\r\n if (!validarCnpj(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CNPJ informado é inválido' });\r\n formulario.setFieldsValue({ cpfCnpj: \"\" })\r\n setFocusCpfCnpj();\r\n return false;\r\n }\r\n }\r\n setPessoaJuridica(valorCampo.length === 14);\r\n };\r\n\r\n function validarCpfCnpjExistente(cpfCnpj) {\r\n if (cpfCnpj) {\r\n if (cpfCnpj.length === 14) {\r\n validarCnpjExiste(cpfCnpj);\r\n } else if (cpfCnpj.length === 11) {\r\n validarCpfExiste(cpfCnpj);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'O CFP/CNPJ informado é inválido. Deve conter 11 ou 14 dígitos' });\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'O CFP/CNPJ não foi informado' });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Fornecedor Estrangeiro\r\n \r\n \r\n }\r\n \r\n \r\n {!!dadosEstrangeiro === false &&\r\n \r\n \r\n { validarFisicoJuridico(valor); validarCpfCnpjExistente(valor.currentTarget.value.replace(/\\D/g, '')) }}\r\n onChange={(event, type) => {\r\n setCpfCnpj(event.target.value);\r\n setMask(type === \"CPF\");\r\n }} />\r\n \r\n \r\n }\r\n {!!dadosEstrangeiro &&\r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {!pessoaJuridica &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!pessoaJuridica &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarCidades(UfEstado)} onSelectFunction={(UfEstado) => carregarCidades(UfEstado)}\r\n conteudo={\r\n est => (\r\n {est.est_sigla} - {est.est_descricao})\r\n } />\r\n \r\n \r\n\r\n \r\n \r\n ({cid.cid_id} - {cid.cid_descricao})\r\n } />\r\n \r\n \r\n \r\n }\r\n {!pessoaJuridica &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n {pessoaJuridica &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Fornecedor Ativo? \r\n \r\n \r\n \r\n \r\n Produtor Rural \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \"Informações Informações Financeiras\r\n \r\n \r\n Adicione as informações financeiras aqui.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pessoaJuridica &&\r\n \r\n \r\n Baixado da Receita? \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!pessoaJuridica &&\r\n \r\n \r\n \r\n }\r\n {!!dadosEstrangeiro &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Campos Campos Adicionais\r\n \r\n \r\n Adicione abaixo as informações adicionais.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Form, Row, Col, Button, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoFornecedor from './manutencao';\r\nimport { drawerActions, manutencaoActions, listagemActions } from '../../actions';\r\nimport { isObjetoDiffVazio } from '../../services/funcoes';\r\n\r\nexport default function DrawerFornecedor({ editando }) {\r\n const nameForm = \"manutencaoFornecedor\"\r\n const [formFornecedor] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n\r\n if (!!manutencao.dados && editando.editando && !isObjetoDiffVazio(formFornecedor.getFieldValue())) {\r\n formFornecedor.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n formFornecedor.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } });\r\n editando.setEditando(false);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n fecharDrawer={() => { fecharDrawer() }}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Popover, notification, Modal, Button, Menu, Dropdown, Form, Collapse, Radio } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, MoreOutlined, CloudUploadOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\nimport { Link } from \"react-router-dom\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerFornecedor from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatFone, MaskFormat } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, TabelaDados, Editar, Excluir, BreadcrumbPage, BotaoAbrirChamado, BotaoIncluirDados, PesquisaAvancada } from \"../../components\";\r\n\r\nexport default function Fornecedor() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [editando, setEditando] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n let _ativo = !!!form.getFieldsValue().fornecedorAtivo ? 1 : form.getFieldsValue().fornecedorAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${_ativo}`, ordem: '+pes_nome' } })\r\n form.setFieldsValue({ fornecedorAtivo: 1 });\r\n }, []);\r\n\r\n function editarFornecedor(record) {\r\n setEditando(true);\r\n record.pef_datanascimento = moment(record.pef_datanascimento);\r\n record.pej_datafundacao = !!record.pej_datafundacao ? moment(record.pej_datafundacao) : null;\r\n record.cpfCnpj = !!record.pef_cpf ? record.pef_cpf : (!!record.pej_cnpj ? record.pej_cnpj : '');\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n function modalExcluir(record) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Deseja realmente excluir o Fornecedor?`,\r\n okText: 'Excluir',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluir(record);\r\n }\r\n });\r\n }\r\n\r\n function excluir(record) {\r\n api.delete(`Fornecedor/Excluir/${record.for_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Aviso', description: 'Fornecedor excluído com sucesso!' });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n modalInativarRegistro(record);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().fornecedorAtivo}`, ordem: '+pes_nome' } });\r\n }\r\n )\r\n };\r\n\r\n const modalInativarRegistro = (record) => {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Não foi possível excluir o fornecedor ${record.pes_nome}. Deseja inativar este registro?`,\r\n okText: 'Inativar',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(record);\r\n }\r\n });\r\n };\r\n\r\n function inativarRegistro(record) {\r\n api.put(`Fornecedor/InativarFornecedor/${record.for_id}`).then(\r\n res => {\r\n notification.success({ description: 'Registros inativado com sucesso!', message: 'Aviso' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().fornecedorAtivo}`, ordem: '+pes_nome' } });\r\n }\r\n )\r\n };\r\n\r\n const menuOutros = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function retornoPesquisaAvancada(expressao) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().fornecedorAtivo}&filtroAdicional=${btoa(expressao)}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n function limparFiltroPesquisa() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().fornecedorAtivo}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n retornoPesquisaAvancada(dados)} funcaoLimpar={() => { limparFiltroPesquisa() }} form={form} telaFiltro={4} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {for_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Fornecedor',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nome Fantasia',\r\n render: ({ pej_nomefantasia }) => (\r\n
\r\n {pej_nomefantasia || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 138,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Endereço',\r\n render: ({ log_logradouro, pee_numero, bai_nome, cep_cep, cid_descricao, est_sigla }) => (\r\n
\r\n {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n editarFornecedor(record);\r\n }} icon={} />\r\n \r\n \r\n {\r\n modalExcluir(record)\r\n }} icon={} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} expandir={({ pej_nomefantasia, pef_rg, pej_inscricaoestadual, pem_email }) => {\r\n return (\r\n
\r\n \r\n {!!pej_nomefantasia ?
\r\n Nome Fantasia: {pej_nomefantasia}\r\n : null}\r\n {!!pef_rg && \r\n RG: {pef_rg || 'Não Informado'}\r\n }\r\n {!!pej_inscricaoestadual && \r\n IE: {pej_inscricaoestadual || 'Não Informado'}\r\n }\r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Form, Row, Col, Button, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoTransportador from './manutencao';\r\nimport { drawerActions, listagemActions } from '../../actions';\r\nimport { isObjetoDiffVazio } from '../../services/funcoes';\r\n\r\nexport default function DrawerTransportador({ editando }) {\r\n\r\n const [formTransportador] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados && editando.editando && !isObjetoDiffVazio(formTransportador.getFieldValue())) {\r\n formTransportador.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n formTransportador.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } });\r\n editando.setEditando(false);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n fecharDrawer={() => { fecharDrawer() }}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Popover, Tag, notification, Modal, Menu, Button, Dropdown, Form, Collapse, Radio } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, CloudUploadOutlined, MoreOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\nimport { Link } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerTransportador from \"./drawer\";\r\nimport { useStateValue } from '../../state';\r\nimport { FormatFone, MaskFormat } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, TabelaDados, Editar, Excluir, BreadcrumbPage, BotaoAbrirChamado, BotaoIncluirDados, PesquisaAvancada } from \"../../components\";\r\n\r\nexport default function Transportadores() {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [editando, setEditando] = useState(false);\r\n const [form] = Form.useForm();\r\n const [open, setOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n let _ativo = !!!form.getFieldsValue().transportadorAtivo ? 1 : form.getFieldsValue().transportadorAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${_ativo}`, filtro: '', ordem: '+pes_nome' } })\r\n form.setFieldsValue({ transportadorAtivo: 1 });\r\n }, []);\r\n\r\n\r\n\r\n const menuOutros = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n\r\n\r\n function editarTransportador(valores) {\r\n setEditando(true);\r\n valores.pej_datafundacao = !!valores.pej_datafundacao ? moment(valores.pej_datafundacao) : null;\r\n valores.pef_dataalteracao = !!valores.pef_dataalteracao ? moment(valores.pef_dataalteracao) : null;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.cpfCnpj = !!valores.pef_cpf ? valores.pef_cpf : valores.pej_cnpj;\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function modalExcluir(record) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Deseja realmente excluir o Transportador`,\r\n okText: 'Excluir',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluir(record);\r\n }\r\n });\r\n }\r\n\r\n function excluir(record) {\r\n api.delete(`Transportador/Excluir/${record.trn_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Aviso', description: 'Transportador excluído com sucesso!' });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n modalInativarRegistro(record);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${form.getFieldsValue().transportadorAtivo}`, ordem: '+pes_nome' } });\r\n }\r\n )\r\n };\r\n\r\n const modalInativarRegistro = (record) => {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Não foi possível excluir o transportador ${record.pes_nome}. Deseja inativar este registro?`,\r\n okText: 'Inativar',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(record);\r\n }\r\n });\r\n };\r\n\r\n function inativarRegistro(record) {\r\n api.put(`Transportador/InativarTransportador/${record.trn_id}`).then(\r\n res => {\r\n notification.success({ description: 'Registros inativado com sucesso!', message: 'Aviso' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${form.getFieldsValue().transportadorAtivo}`, ordem: '+pes_nome' } });\r\n }\r\n )\r\n };\r\n\r\n function retornoPesquisaAvancada(expressao) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${form.getFieldsValue().transportadorAtivo}&filtroAdicional=${btoa(expressao)}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n function limparFiltroPesquisa() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${form.getFieldsValue().transportadorAtivo}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n { retornoPesquisaAvancada(ret) }} funcaoLimpar={() => { limparFiltroPesquisa() }} telaFiltro={1} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {trn_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Transportador',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nome Fantasia',\r\n render: ({ pej_nomefantasia }) => (\r\n
\r\n {pej_nomefantasia || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 138,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Endereço',\r\n render: ({ log_logradouro, pee_numero, bai_nome, cep_cep, cid_descricao, est_sigla }) => (\r\n
\r\n {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n editarTransportador(record);\r\n\r\n }} icon={} />\r\n \r\n \r\n {\r\n modalExcluir(record);\r\n }}\r\n icon={} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} expandir={({ pef_rg, pej_inscricaoestadual, pem_email }) => {\r\n return (\r\n
\r\n \r\n {!!pef_rg ?
\r\n RG: {pef_rg}\r\n : null}\r\n {!!pej_inscricaoestadual ? \r\n IE: {pej_inscricaoestadual}\r\n : null}\r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n\r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Tabs, Typography, Row, Col, Form, Divider, Input, Select, Radio, Checkbox, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\"\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport { Data, FormGW, FormularioDinamico, InputCpfCnpj, InputPreco, SelectPaginacao } from \"../../components\";\r\nimport { Endereco, Email, Telefone, Ocupacao, Nacionalidade, OutrosContatos } from '../pessoas/pages';\r\nimport { trataRetornoFormularioDinamico, trataSetaDadosFormularioDinamico, HasValue, isObjetoDiffVazio, validarCpf, validarCnpj } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoFuncionario({ formulario, carregando, aoSalvar, editando }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [estadoCivil, setEstadoCivil] = useState([]);\r\n const [pessoaJuridica, setPessoaJuridica] = useState(false);\r\n const [supervisor, setSupervisor] = useState([]);\r\n const [desabilitarCfpCnpj, setDesabilitarCpfCnpj] = useState(false);\r\n const [listaCidades, setListaCidades] = useState(false);\r\n const [filtroCdd, setFiltroCdd] = useState(null);\r\n const [elementosFormulario, setElementosFormulario] = useState([]);\r\n const [controleCnhCategoria, setControleCnhCategoria] = useState([]);\r\n const [cnhCategoria, setCnhCategoria] = useState(false);\r\n\r\n useEffect(() => { if (!!elementosFormulario && elementosFormulario.length > 0) carregaDadosCamposAdicionais(); }, [elementosFormulario]);\r\n useEffect(() => {\r\n if (manutencao?.dados?.funcionariocampopersonalizados?.length > 0)\r\n carregaDadosCamposAdicionais();\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n listarEstadoCivil();\r\n listarSupervisor();\r\n carregaCamposPersonalizados();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.fun_id && editando.editando) {\r\n let lista = [];\r\n if (!!manutencao.dados.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: manutencao.dados.pef_rguf });\r\n }\r\n if (!!manutencao.dados.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: manutencao.dados.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n editando.setEditando(false);\r\n }\r\n\r\n formulario.setFieldsValue(manutencao.dados);\r\n cnhCategoriaPreenchida(manutencao.dados.cnh_categoria);\r\n }\r\n }, [ui.showDrawer, manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.fun_id)\r\n listaFuncionario(manutencao.dados.fun_id)\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n let _cpfCnpj = formulario.getFieldValue().pef_cpf ? formulario.getFieldValue().pef_cpf : manutencao.dados.pef_cpf;\r\n _cpfCnpj = _cpfCnpj.replace(/[^\\d]+/g, '');\r\n if (HasValue(_cpfCnpj)) {\r\n if (_cpfCnpj.length === 11) {\r\n if (validarCpf(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n }\r\n else if (_cpfCnpj.length === 14) {\r\n if (validarCnpj(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n } else {\r\n setDesabilitarCpfCnpj(false);\r\n }\r\n }\r\n if (!!manutencao.dados.pef_cpf) {\r\n if (manutencao.dados.pef_cpf.length > 11) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n }\r\n } else {\r\n setFocusCpfCnpj();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=CnhCategoria`).then(res => {\r\n if (res.status === 200) {\r\n setControleCnhCategoria(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, [])\r\n\r\n function setFocusCpfCnpj() {\r\n setTimeout(\r\n () => {\r\n try {\r\n let element = document.getElementById(\"pef_cpf\");\r\n if (element) {\r\n element.focus();\r\n }\r\n } catch (error) {\r\n console.log('error :>> ', error);\r\n }\r\n }, 300);\r\n }\r\n\r\n function carregarCidades(UfEstado) {\r\n if (!!UfEstado) {\r\n setListaCidades(true);\r\n setFiltroCdd(` &UfEstado=${UfEstado}`);\r\n }\r\n else {\r\n setListaCidades(false);\r\n }\r\n }\r\n\r\n const salvarManutencao = valores => {\r\n valores = { ...valores, ...formulario.getFieldValue() };\r\n if (!!manutencao.dados) {\r\n if (!manutencao.dados.enderecos || manutencao.dados.enderecos.length === 0) {\r\n notification.warning({ message: 'Aviso!', description: 'Nenhum endereço foi cadastrado!' });\r\n return false;\r\n } else if (!manutencao.dados.telefones || manutencao.dados.telefones.length === 0) {\r\n notification.warning({ message: 'Aviso!', description: 'Nenhum número de telefone foi cadastrado!' });\r\n return false;\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Favor informar o endereço, telefone.' });\r\n return false;\r\n }\r\n valores.pessoaemails = !!manutencao.dados.emails && manutencao.dados.emails.length > 0 ? manutencao.dados.emails : [];\r\n valores.pessoasocupacoes = !!manutencao.dados.ocupacoes && manutencao.dados.ocupacoes.length > 0 ? manutencao.dados.ocupacoes : [];\r\n valores.pessoaoutrocontatos = !!manutencao.dados.pessoaoutrocontatos && manutencao.dados.pessoaoutrocontatos.length > 0 ? manutencao.dados.pessoaoutrocontatos : [];\r\n valores.pessoatelefones = !!manutencao.dados.telefones && manutencao.dados.telefones.length > 0 ? manutencao.dados.telefones : [];\r\n valores.enderecos = !!manutencao.dados.enderecos && manutencao.dados.enderecos.length > 0 ? manutencao.dados.enderecos : [];\r\n valores.pessoanacionalidades = !!manutencao.dados.nacionalidades && manutencao.dados.nacionalidades.length > 0 ? manutencao.dados.nacionalidades : [];\r\n\r\n valores.estadocivil = estadoCivil.filter((ecv) => (ecv.ecv_id === valores.ecv_id))[0];\r\n valores.supervisor = {};\r\n if (!!valores.fun_supervisor) {\r\n valores.supervisor.fun_id = supervisor.filter((sup) => (sup.fun_id === valores.fun_supervisor))[0].fun_id;\r\n }\r\n\r\n valores.pessoacnh = {};\r\n if (!!valores.cnh_numero || !!valores.cnh_categoria) {\r\n valores.pessoacnh.cnh_id = !!valores.cnh_id ? valores.cnh_id : null;\r\n valores.pessoacnh.cnh_numero = valores.cnh_numero;\r\n valores.pessoacnh.cnh_categoria = !!valores.cnh_categoria ? valores.cnh_categoria : null;\r\n valores.pessoacnh.cnh_dataemissao = !!valores.cnh_dataemissao ? moment(valores.cnh_dataemissao) : null;\r\n valores.pessoacnh.cnh_datavencimento = !!valores.cnh_datavencimento ? moment(valores.cnh_datavencimento) : null;\r\n }\r\n\r\n valores.fun_datademissao = !!valores.fun_datademissao ? moment(valores.fun_datademissao) : null;\r\n valores.fun_dataadmissao = !!valores.fun_dataadmissao ? moment(valores.fun_dataadmissao) : null;\r\n valores.pef_cpf = valores.pef_cpf.replace(/\\D/g, '');\r\n\r\n if (valores.pef_cpf.length === 11) {\r\n valores.pes_fisicajuridica = 1;\r\n valores.cpfCnpj = valores.pef_cpf;\r\n if (!validarCpf(valores.cpfCnpj)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n return false;\r\n }\r\n } else if (valores.pef_cpf.length === 14) {\r\n valores.pes_fisicajuridica = 2;\r\n valores.pej_cnpj = valores.pef_cpf;\r\n if (!validarCnpj(valores.pef_cpf)) {\r\n notification.warning({ message: 'Aviso', description: 'CNPJ informado é inválido' });\r\n return false;\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'CPF/CNPJ informado é inválido' });\r\n return false;\r\n }\r\n\r\n\r\n valores.fun_valorcustohora = parseFloat(valores.fun_valorcustohora);\r\n valores.fun_valorcustomes = parseFloat(valores.fun_valorcustomes);\r\n valores.funcionariocampopersonalizados = salvarCamposAdicionais(valores);\r\n carregando(true);\r\n if (!!valores.fun_id) {\r\n api.put(`Funcionario/Editar`, valores).then(\r\n res => {\r\n notification.success({ message: 'Aviso!', description: `Funcionario editado com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n api.post(`Funcionario/Incluir`, valores).then(\r\n res => {\r\n notification.success({ message: 'Aviso!', description: `Funcionario incluído com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n\r\n };\r\n\r\n function carregaDadosCamposAdicionais() { //Campos Adicionais\r\n let camposPersonalizados = { ...manutencao.dados };\r\n camposPersonalizados?.funcionariocampopersonalizados?.map(d => {\r\n let elemento = elementosFormulario.filter(f => f.cap_id === d.cap_id)[0];\r\n if (!!elemento)\r\n trataSetaDadosFormularioDinamico(formulario, elemento, d.fcp_valor);\r\n })\r\n }\r\n\r\n const salvarCamposAdicionais = (values) => {\r\n var camposAdicionais = [];\r\n elementosFormulario?.map((elemento) => {\r\n values = trataRetornoFormularioDinamico(values, elemento);\r\n let funcionariocampopersonalizados = { ...manutencao.dados };\r\n let forDados = funcionariocampopersonalizados.funcionariocampopersonalizados?.filter(f => f.cap_id == elemento.cap_id)[0];\r\n if (!!values[elemento.cap_nomeelemento]) {\r\n camposAdicionais.push({ fcp_id: !!forDados ? forDados.fcp_id : null, fun_id: values.fun_id, cap_id: elemento.cap_id, fcp_valor: String(values[elemento.cap_nomeelemento]) });\r\n }\r\n });\r\n return camposAdicionais;\r\n }\r\n\r\n function carregaCamposPersonalizados() {\r\n api.get(`CamposPersonalizados/ListarTodos?entidade=3&PageNumber=1&PageSize=1000&Order=+cap_ordem`).then(res => {\r\n if (res.status === 200) {\r\n setElementosFormulario(res.data.items);\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao carregar Campos personalizados!');\r\n }\r\n );\r\n };\r\n\r\n function validarCpfExistente(cpf) {\r\n api.get(`PessoaFisica/VerificarCpfExistente?cpf=${cpf}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_funcionario) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"O CPF informado já esta cadastrado no sistema!\\n Deseja atualizar seus dados?\",\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n listarFuncionarioCpf(cpf);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n } else {\r\n listarFuncionarioCpf(cpf);\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n\r\n function verificarCpfValido(dado) {\r\n let valorCampo;\r\n if (!!dado.currentTarget) {\r\n valorCampo = dado.currentTarget.value.replace(/\\D/g, '');\r\n } else {\r\n valorCampo = dado;\r\n }\r\n if (HasValue(valorCampo)) {\r\n if (!validarCpf(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n formulario.setFieldsValue({ pef_cpf: null });\r\n setFocusCpfCnpj();\r\n } else {\r\n validarCpfExistente(valorCampo)\r\n }\r\n }\r\n }\r\n\r\n function listaFuncionario(fun_id) {\r\n if (!!!fun_id) {\r\n return;\r\n }\r\n api.get(`Funcionario/BuscarFuncionario/${fun_id}`).then(\r\n (res) => {\r\n let valores = res.data;\r\n if (!!res.data && isObjetoDiffVazio(res.data)) {\r\n res.data.pef_rguf = res.data.pef_rguf == \"\" ? null : res.data.pef_rguf\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.fun_dataadmissao = !!valores.fun_dataadmissao ? moment(valores.fun_dataadmissao) : null;\r\n valores.fun_datademissao = !!valores.fun_datademissao ? moment(valores.fun_datademissao) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.cnh_dataemissao = !!valores.cnh_dataemissao ? moment(valores.cnh_dataemissao) : null;\r\n valores.cnh_datavencimento = !!valores.cnh_datavencimento ? moment(valores.cnh_datavencimento) : null;\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarFuncionarioCpf(cpf) {\r\n api.get(`Funcionario/BuscarFuncionarioCpf/${cpf}`).then(\r\n res => {\r\n let valores = res.data;\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.fun_dataadmissao = !!valores.fun_dataadmissao ? moment(valores.fun_dataadmissao) : null;\r\n valores.fun_datademissao = !!valores.fun_datademissao ? moment(valores.fun_datademissao) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.fun_ativo = true;\r\n let lista = [];\r\n if (!!valores.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: valores.pef_rguf });\r\n }\r\n if (!!valores.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: valores.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n editando.setEditando(false);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function listarEstadoCivil() {\r\n api.get(`EstadoCivil/Listar`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setEstadoCivil(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function listarSupervisor() {\r\n api.get(`Funcionario/BuscarSupervisor`).then(\r\n res => {\r\n setSupervisor(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n const cnhCategoriaPreenchida = (value) => {\r\n if (value) {\r\n setCnhCategoria(true);\r\n } else {\r\n setCnhCategoria(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n { verificarCpfValido(pef_cpf) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarCidades(UfEstado)} onSelectFunction={(UfEstado) => carregarCidades(UfEstado)}\r\n conteudo={\r\n est => (\r\n {est.est_sigla} - {est.est_descricao})\r\n } />\r\n \r\n \r\n\r\n \r\n \r\n ({cid.cid_id} - {cid.cid_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Funcionário Ativo? \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \"Outras Outras Informações\r\n \r\n \r\n Outras Informações Relacionadas.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Campos Campos Adicionais\r\n \r\n \r\n Adicione abaixo as informações adicionais.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Form, Row, Col, Button, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoFuncionario from './manutencao';\r\nimport { drawerActions, listagemActions } from '../../actions';\r\nimport { isObjetoDiffVazio } from '../../services/funcoes';\r\n\r\nexport default function DrawerFuncionario({ editando }) {\r\n\r\n const [formFuncionario] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados && editando.editando && !isObjetoDiffVazio(formFuncionario.getFieldValue())) {\r\n formFuncionario.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n formFuncionario.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } });\r\n editando.setEditando(false);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n { fecharDrawer() }}\r\n closeIcon={}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Popover, notification, Modal, Button, Dropdown, Menu, Form, Collapse, Radio } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, MoreOutlined, CloudUploadOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerFuncionario from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatFone, MaskFormat } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, PesquisaAvancadaPessoas, TabelaDados, Editar, Excluir, BotaoIncluirDados, BotaoAbrirChamado, BreadcrumbPage, PesquisaAvancada } from \"../../components\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Funcionario() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [editando, setEditando] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n\r\n const menuOutros = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n useEffect(() => {\r\n let _ativo = !!!form.getFieldsValue().funcionarioAtivo ? 1 : form.getFieldsValue().funcionarioAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${_ativo}`, ordem: '+pes_nome' } })\r\n form.setFieldsValue({ funcionarioAtivo: 1 });\r\n }, []);\r\n\r\n function excluirRegistro(funcionario) {\r\n api.delete(`Funcionario/Excluir/${funcionario.fun_id}`).then(\r\n (res) => {\r\n notification.success({ message: 'Aviso', description: 'funcionario excluído com sucesso!' });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().funcionarioAtivo}`, filtro: '', ordem: '+pes_nome' } });\r\n }).catch(\r\n (erro) => {\r\n console.error(erro);\r\n modalInativarRegistro(funcionario);\r\n })\r\n };\r\n\r\n function inativarRegistro(funcionario) {\r\n api.put(`Funcionario/InativarFuncionario/${funcionario.fun_id}`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().funcionarioAtivo}`, filtro: '', ordem: '+pes_nome' } });\r\n })\r\n };\r\n\r\n const modalExcluirRegistro = (funcionario) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o funcionario ${funcionario.fun_id}-${funcionario.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(funcionario);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarRegistro = (funcionario) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o funcionario!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o funcionario ${funcionario.fun_id}-${funcionario.pes_nome} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(funcionario);\r\n }\r\n });\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n function editarFuncionario(record) {\r\n setEditando(true);\r\n record.fun_dataadmissao = moment(record.fun_dataadmissao);\r\n record.fun_datademissao = moment(record.fun_datademissao);\r\n record.pef_rgdataexpedicao = moment(record.pef_rgdataexpedicao);\r\n record.pef_datanascimento = moment(record.pef_datanascimento);\r\n record.pef_dataalteracao = moment(record.pef_dataalteracao);\r\n record.pes_datainclusao = moment(record.pes_datainclusao);\r\n record.pes_dataalteracao = moment(record.pes_dataalteracao);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function retornoPesquisaAvancada(expressao) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().funcionarioAtivo}&filtroAdicional=${btoa(expressao)}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n function limparFiltroPesquisa() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().funcionarioAtivo}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n retornoPesquisaAvancada(dados)} funcaoLimpar={() => { limparFiltroPesquisa() }} form={form} telaFiltro={4} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {fun_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Funcionário',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CPF',\r\n width: 138,\r\n render: ({ pef_cpf }) => (\r\n
\r\n {MaskFormat(pef_cpf, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Endereço',\r\n render: ({ log_logradouro, pee_numero, bai_nome, cep_cep, cid_descricao, est_sigla }) => (\r\n
\r\n \r\n {!!log_logradouro ? log_logradouro : 'Não Informado'}\r\n {!!pee_numero ? (', ' + pee_numero) : ''}\r\n {!!bai_nome ? (', ' + bai_nome) : ''}\r\n {!!cep_cep ? ('- ' + cep_cep) : ''}\r\n {!!cid_descricao ? ('- ' + cid_descricao) : ''}\r\n {!!est_sigla ? ('- ' + est_sigla) : ''}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n editarFuncionario(record);\r\n }} icon={} />\r\n \r\n \r\n { modalExcluirRegistro(record) }} icon={} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]}\r\n expandir={({ pem_email, pef_rg }) => {\r\n return (\r\n \r\n {!!pef_rg ? \r\n RG: {pef_rg}\r\n : null}\r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Form, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoVendedor from './manutencao';\r\nimport { drawerActions, manutencaoActions, listagemActions } from '../../actions';\r\nimport { isObjetoDiffVazio } from '../../services/funcoes';\r\n\r\nexport default function DrawerVendedor({ editando }) {\r\n const [formVendedor] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [pagina, setPagina] = useState(1);\r\n\r\n if (!!manutencao.dados && editando.editando && !isObjetoDiffVazio(formVendedor.getFieldValue())) {\r\n formVendedor.setFieldsValue(manutencao.dados);\r\n }\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n formVendedor.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n setPagina(1);\r\n editando.setEditando(false);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n onCloseEdit={onClose}\r\n fecharDrawer={fecharDrawer}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Tag, Popover, notification, Modal, Dropdown, Button, Menu, Form, Collapse, Radio } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, MoreOutlined, CloudUploadOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerVendedor from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatFone, FormatarCPF } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, TabelaDados, Editar, Excluir, BotaoIncluirDados, BotaoAbrirChamado, BreadcrumbPage, PesquisaAvancada } from \"../../components\";\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport default function Vendedor() {\r\n\r\n const [{ listagem, manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [editando, setEditando] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n\r\n const menuOutros = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n useEffect(() => {\r\n let _ativo = !!!form.getFieldsValue().vendedorAtivo ? 1 : form.getFieldsValue().vendedorAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${_ativo}`, filtro: '', ordem: '+pes_nome' } })\r\n form.setFieldsValue({ vendedorAtivo: 1 });\r\n }, []);\r\n\r\n function editarVendedor(valores) {\r\n setEditando(true);\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.pef_dataalteracao = !!valores.pef_dataalteracao ? moment(valores.pef_dataalteracao) : null;\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n valores.id_rguf = valores.pef_rguf\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function excluirRegistro(vendedor) {\r\n api.delete(`Vendedor/Excluir/${vendedor.ven_id}`).then(\r\n (res) => {\r\n notification.success({ message: 'Aviso', description: 'vendedor excluído com sucesso!' });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().vendedorAtivo}`, filtro: '', ordem: '+pes_nome' } });\r\n }).catch(\r\n (erro) => {\r\n console.error(erro);\r\n modalInativarRegistro(vendedor);\r\n })\r\n };\r\n\r\n function inativarRegistro(vendedor) {\r\n api.put(`Vendedor/InativarVendedor/${vendedor.ven_id}`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().vendedorAtivo}`, filtro: '', ordem: '+pes_nome' } });\r\n })\r\n };\r\n\r\n const modalExcluirRegistro = (vendedor) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o vendedor ${vendedor.ven_id}-${vendedor.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(vendedor);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarRegistro = (vendedor) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o vendedor!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o vendedor ${vendedor.ven_id}-${vendedor.pes_nome} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(vendedor);\r\n }\r\n });\r\n };\r\n\r\n function retornoPesquisaAvancada(expressao) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().vendedorAtivo}&filtroAdicional=${btoa(expressao)}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n function limparFiltroPesquisa() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&ativo=${form.getFieldValue().vendedorAtivo}`, ordem: '+pes_nome' } })\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n retornoPesquisaAvancada(dados)} funcaoLimpar={() => { limparFiltroPesquisa() }} form={form} telaFiltro={6} />\r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n (\r\n \r\n \r\n {ven_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vendedor', key: 'pes_nome',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CPF',\r\n width: 138,\r\n render: ({ pef_cpf }) => (\r\n
\r\n {FormatarCPF(pef_cpf) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'RG',\r\n width: 120,\r\n render: ({ pef_rg }) => (\r\n
\r\n {pef_rg || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Endereço',\r\n render: ({ log_logradouro, pee_numero, bai_nome, cep_cep, cid_descricao, est_sigla }) => (\r\n
\r\n {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n editarVendedor(record)} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluirRegistro(record)} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]}\r\n expandir={({ pem_email }) => {\r\n return (\r\n
\r\n \r\n
\r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Popover, notification, Modal } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, CloseCircleOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerTributacaoIcms from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir } from \"../../components\";\r\n\r\nexport default function TributacaoIcms() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+icm_descricao' } }), []);\r\n\r\n function excluirRegistro(item) {\r\n setCarregando(true);\r\n api.delete(`tributacaoIcms/Excluir/${item.icm_id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Os dados do ICMS foram excluídos com sucesso!\" });\r\n dispatch({ type: listagemActions.CHANGE, data: { label: \"Nome Z - A\", ordem: '+icm_descricao' } })\r\n }).catch(err => {\r\n modalInativarConta(item);\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+icm_descricao' } });\r\n });\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarConta = (dados) => {\r\n Modal.confirm({\r\n title: `Não foi possível excluir a Tributação ICMS ${dados.icm_descricao}!`,\r\n icon: ,\r\n content: `Deve conter referências com outros registros!`,\r\n okText: 'Inativar Registro',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n console.log(dados);\r\n dados.inativar = 1;\r\n dados.icm_ativo = false;\r\n api.put(`tributacaoIcms/editar`, dados).then((res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Tributação inativada com sucesso!\" });\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { label: \"Nome Z - A\", ordem: '+icm_descricao' } })\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+icm_descricao' } });\r\n });\r\n }\r\n });\r\n };\r\n\r\n const modalDuplicarDados = (dados) => {\r\n Modal.confirm({\r\n title: 'Duplicar?',\r\n icon: ,\r\n content: `Deseja duplicar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n dados.duplicar = true;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {icm_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Tributações do ICMS',\r\n render: ({ icm_descricao }) => (\r\n
\r\n {icm_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluir(record)} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Tag, Popover, Divider, Modal, notification } from \"antd\";\r\nimport { EditOutlined, ExclamationCircleOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport DrawerTributacaoPisCofins from './drawer';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir } from \"../../components\";\r\n\r\nexport default function TributacaoPisCofins() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function excluirRegistro(id) {\r\n setCarregando(true);\r\n api.delete(`TributacaoPisCofins/Excluir/${id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Registro excluído com sucesso!\" });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, erro => {\r\n modalInativarRegistro(id);\r\n })\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n const modalInativarRegistro = (id) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir a Tributação Pis/Cofins. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(id);\r\n }\r\n });\r\n };\r\n\r\n function inativarRegistro(id) {\r\n api.put(`TributacaoPisCofins/Inativar/${id}`).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Tributação Pis/Cofins inativada com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pis_descricao' } });\r\n }\r\n )\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {pis_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Tributação do PIS e COFINS',\r\n render: ({ pis_descricao }) => (\r\n
\r\n \r\n
\r\n {pis_descricao}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n render: ({ nat_descricao }) => (\r\n
\r\n \r\n {nat_descricao}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n fixed: 'right',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n let item = { ...record };\r\n item.cpc_saidacstpis = { cpc_id: record.cpc_saidacstpis };\r\n item.cpc_saidacstcofins = { cpc_id: record.cpc_saidacstcofins };\r\n item.cpc_entradacstpispj = { cpc_id: record.cpc_entradacstpispj };\r\n item.cpc_entradacstpispf = { cpc_id: record.cpc_entradacstpispf };\r\n item.cpc_entradacstcofinspj = { cpc_id: record.cpc_entradacstcofinspj };\r\n item.cpc_entradacstcofinspf = { cpc_id: record.cpc_entradacstcofinspf };\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: item } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluir(record.pis_id)} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n }\r\n expandir={(record) => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Tributação PIS\r\n \r\n \r\n \r\n \r\n CST Saída: {record.cpc_saidacstpis || 'Não Informado'} \r\n \r\n \r\n Perc.Redução BC: {record.pis_saidapercredbcpis || 'Não Informado'}\r\n \r\n \r\n Alíquota: {record.pis_saidapercpis || 'Não Informado'}\r\n \r\n \r\n \r\n CST Entrada Pessoa Física: {record.cpc_entradacstpispf || 'Não Informado'}\r\n \r\n \r\n Perc.Redução BC: {record.pis_entradapercredbcpispf || 'Não Informado'} \r\n \r\n \r\n Alíquota: {record.pis_entradapercpispf || 'Não Informado'}\r\n \r\n \r\n \r\n CST Entrada Pessoa Jurídica: {record.cpc_entradacstpispj || 'Não Informado'}\r\n \r\n \r\n Perc.Redução BC: {record.pis_entradapercredbcpispj || 'Não Informado'}\r\n \r\n \r\n Alíquota: {record.pis_entradapercpispj || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tributação COFINS\r\n \r\n \r\n \r\n \r\n CST Saída: {record.cpc_saidacstcofins || 'Não Informado'}\r\n \r\n \r\n Perc.Redução BC: {record.pis_saidapercredbccofins || 'Não Informado'}\r\n \r\n \r\n Alíquota: {record.pis_saidaperccofins || 'Não Informado'}\r\n \r\n \r\n \r\n CST Entrada Pessoa Física: {record.cpc_entradacstcofinspf || 'Não Informado'}\r\n \r\n \r\n Perc.Redução BC: {record.pis_entradapercredbccofinspf || 'Não Informado'} \r\n \r\n \r\n Alíquota: {record.pis_entradaperccofinspf || 'Não Informado'} \r\n \r\n \r\n \r\n CST Entrada Pessoa Jurídica: {record.cpc_entradacstcofinspj || 'Não Informado'} \r\n \r\n \r\n Perc.Redução BC: {record.pis_entradapercredbccofinspj || 'Não Informado'} \r\n \r\n \r\n Alíquota: {record.pis_entradaperccofinspj || 'Não Informado'} \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, notification, Table, Form, Modal } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { ModalNcm } from \"../../components/modals/\";\r\n\r\nexport default function TabDadosOrigemDestino({ formulario }) {\r\n\r\n const [formModal] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openModal, setOpenModal] = useState(false);\r\n const [listaNcm, setListaNcm] = useState([]);\r\n const [dadosNcm, setDadosNcm] = useState(null);\r\n\r\n const modalExcluir = (item, index) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n removerRegistro(item, index);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.mvaorigemdestinos) {\r\n setListaNcm(manutencao.dados.mvaorigemdestinos);\r\n }\r\n }, [manutencao.dados])\r\n\r\n function fecharModal() {\r\n setOpenModal(false);\r\n if (dadosNcm.mvaorigemdestinos) {\r\n let listTemp = [...dadosNcm.mvaorigemdestinos];\r\n setListaNcm(listTemp);\r\n }\r\n }\r\n\r\n function removerRegistro(item, index) {\r\n let listTemp = [...manutencao.dados.mvaorigemdestinos];\r\n if (index !== -1) {\r\n if (index > -1) {\r\n listTemp.splice(index, 1)\r\n }\r\n setListaNcm(listTemp);\r\n manutencao.dados.mvaorigemdestinos = listTemp\r\n }\r\n }\r\n function editarRegistro(item, index) {\r\n setOpenModal(true);\r\n setDadosNcm(manutencao.dados);\r\n formModal.setFieldsValue(item);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \"Dados Dados de Origem e Destino (OPCIONAL)\r\n \r\n \r\n Defina as Informações de Origem e Destino referente a Substituição Tributário.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n {mva_uforigem}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Destino',\r\n align: 'center',\r\n width: 80,\r\n render: ({ mva_ufdestino }) => (\r\n
\r\n {mva_ufdestino}\r\n
\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: 'Redução da Base de Cálculo',\r\n align: 'center',\r\n render: ({ mva_percaliquotaicmsreducao }) => (\r\n
\r\n {mva_percaliquotaicmsreducao}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Alíquota ICMS ST',\r\n align: 'center',\r\n render: ({ mva_percaliquotaicms }) => (\r\n
\r\n {mva_percaliquotaicms}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'MVA',\r\n align: 'center',\r\n width: 100,\r\n render: ({ mva_percmva }) => (\r\n
\r\n {mva_percmva}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'MVA Ajustado',\r\n align: 'center',\r\n render: ({ mva_ajustado }) => (\r\n
\r\n {mva_ajustado}%\r\n
\r\n ),\r\n },\r\n {\r\n title: ' MVA Interestadual',\r\n align: 'center',\r\n render: ({ mva_simplesnacional }) => (\r\n
\r\n {mva_simplesnacional}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 75,\r\n render: (item, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({cip.cip_id} - {cip.cip_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n ({cip.cip_id} - {cip.cip_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoNcmSubtituicaoTributaria from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerNcmSubtituicaoTributaria() {\r\n\r\n const [formNCM] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null)\r\n formNCM.setFieldsValue(manutencao.dados);\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n function fecharDrawer() {\r\n formNCM.resetFields();\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ncm_id' } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n return (\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Button, Tag, Modal, notification, Radio, Form, Popover, Spin } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport DrawerNcmSubtituicaoTributaria from './drawer';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, TabelaDados, Editar, Excluir, BotaoIncluirDados, BotaoAbrirChamado, BreadcrumbPage } from \"../../components\";\r\nimport { func } from \"prop-types\";\r\nimport { ModalCarregando } from \"../../components/modals\";\r\n\r\nexport default function NcmSubtituicaoTributaria() {\r\n\r\n const [{ manutencao, listagem }, dispatch] = useStateValue();\r\n const [formPesquisaAvancada] = Form.useForm();\r\n\r\n const atualizarSiscomex = () => {\r\n return api.post('Ncm/AtualizarSiscomex')\r\n .finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ncm_id' } });\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let _ativo = !!!formPesquisaAvancada.getFieldsValue().ncmAtivo ? 1 : formPesquisaAvancada.getFieldsValue().ncmAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: '', outrosFiltros: `&Ativo=${_ativo}`, ordem: '+ncm_id' } });\r\n formPesquisaAvancada.setFieldsValue({ ncmAtivo: 1 });\r\n }, [])\r\n\r\n function retornoPesquisaAvancada(expressao) {\r\n listagem.outrosFiltros = '';\r\n expressao = !!expressao ? expressao : '';\r\n let filtrosTela = popularFiltrosTela();\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: !!listagem.filtro ? listagem.filtro : '', outrosFiltros: `${filtrosTela}&filtroAdicional=${btoa(expressao)}`, ordem: '+ncm_id' } })\r\n };\r\n\r\n function popularFiltrosTela() {\r\n let filtrosTela = '';\r\n filtrosTela += `&Ativo=${formPesquisaAvancada.getFieldsValue().ncmAtivo}`\r\n\r\n return filtrosTela;\r\n }\r\n\r\n function excluirNcm(record) {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(record);\r\n }\r\n });\r\n };\r\n\r\n function excluirRegistro(record) {\r\n api.delete(`Ncm/Excluir/${record.ncm_id}`).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do NCM foram salvos com sucesso!\" });\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ncm_id' } });\r\n });\r\n };\r\n\r\n function duplicarNcm(record) {\r\n record.ncm_id = null;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function atualizarNcm() {\r\n ModalCarregando({\r\n title: 'Atualizar?',\r\n titleModalLoading: 'Atualizando NCMs ...',\r\n confirmContent: 'Deseja atualizar os NCMs conforme a última atualização realizada com base na tabela Siscomex?',\r\n apiCall: atualizarSiscomex,\r\n successMessage: 'Os dados do NCM foram salvos com sucesso!',\r\n errorMessage: 'Ocorreu um erro ao atualizar os NCMs',\r\n successCallback: () => console.log('Atualização bem-sucedida'),\r\n errorCallback: () => console.log('Falha na atualização'),\r\n });\r\n }\r\n //Criado um componente ModalCarregando\r\n // Modal.confirm({\r\n // title: 'Atualizar?',\r\n // icon: ,\r\n // content: 'Deseja atualizar os NCMs conforme a última atualização realizada com base na tabela Siscomex?',\r\n // okText: 'Sim',\r\n // cancelText: 'Não',\r\n // centered: true,\r\n // onOk() {\r\n // // Exibe uma modal de \"Atualizando...\"\r\n // const loadingModal = Modal.info({\r\n // title: 'Atualizando...',\r\n // content: (\r\n //
\r\n // \r\n //

Por favor, aguarde enquanto os NCMs estão sendo atualizados.

\r\n //
\r\n // ),\r\n // okButtonProps: { disabled: true },\r\n // closable: false,\r\n // centered: true,\r\n // });\r\n\r\n // // Chama a função de atualização\r\n // atualizarSiscomex()\r\n // .then(() => {\r\n // // Fecha a modal de \"Atualizando...\" e exibe uma confirmação\r\n // loadingModal.destroy();\r\n // Modal.success({\r\n // title: 'Atualização Completa',\r\n // content: 'Os NCMs foram atualizados com sucesso!',\r\n // });\r\n // })\r\n // .catch((error) => {\r\n // // Fecha a modal de \"Atualizando...\" e exibe uma mensagem de erro\r\n // loadingModal.destroy();\r\n // Modal.error({\r\n // title: 'Erro na Atualização',\r\n // content: `Ocorreu um erro durante a atualização dos NCMs: ${error.message}`,\r\n // });\r\n // });\r\n // }\r\n // });\r\n // }\r\n\r\n // function atualizarSiscomex() {\r\n // return api.post('Ncm/AtualizarSiscomex')\r\n // .then(res => {\r\n // notification.success({\r\n // message: 'Operação concluída',\r\n // description: \"Os dados do NCM foram salvos com sucesso!\"\r\n // });\r\n // })\r\n // .catch(error => {\r\n // console.error(error);\r\n // throw new Error('Ocorreu um erro ao atualizar os NCMs');\r\n // })\r\n // .finally(() => {\r\n // dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ncm_id' } });\r\n // });\r\n // }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {ncm_codigo.codigoNcm ? ncm_codigo.codigoNcm : ncm_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ ncm_descricao }) => (\r\n
\r\n {ncm_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 95,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true, editItem: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => { excluirNcm(record) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } expandir={({ cip_entrada, cip_saida, ncm_percentual, ncm_extipi }) => {\r\n return (\r\n
\r\n \r\n
\r\n CST IPI para Entrada: {cip_entrada || 'Não Informado'}\r\n \r\n \r\n CST IPI para Saída: {cip_saida || 'Não Informado'}\r\n \r\n \r\n Alíquota do IPI: {ncm_percentual || 'Não Informado'}\r\n \r\n \r\n Exceção do IPI: {ncm_extipi || 'Não Informado'}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form, Drawer } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport ManutencaoMarca from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerMarca({cadMarca, openDrawer, setOpenDrawer, retornoSalvar}) {\r\n\r\n const [formMarca] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (manutencao.dados !== null) {\r\n formMarca.setFieldsValue(manutencao.dados);\r\n }\r\n else {\r\n //formMarca.resetFields();\r\n formMarca.setFieldsValue({mar_ativa:true});\r\n }\r\n\r\n function salvandoDados(retorno) {\r\n if(!!retornoSalvar){\r\n retornoSalvar(retorno);\r\n } \r\n fecharDrawer();\r\n }\r\n\r\n function fecharDrawer() {\r\n formMarca.resetFields();\r\n if (!!openDrawer) {\r\n setOpenDrawer(false);\r\n }\r\n else {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n } \r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n onClose={() => onClose()}\r\n \r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Popover, Modal, notification } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport DrawerMarca from './drawer';\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir, Duplicar } from \"../../components\";\r\n\r\nexport default function Marca() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+mar_nome' } }), []);\r\n\r\n function excluirRegistro(dados) {\r\n api.delete(`Marca/Excluir/${dados.mar_id}`).then(\r\n (res) => {\r\n notification.success({ message: `Sucesso!`, description: `Marca excluida com sucesso!` });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }).catch(\r\n (erro) => {\r\n modalInativarRegistro(dados);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+mar_nome' } });\r\n });\r\n }\r\n\r\n function inativarRegistro(dados) {\r\n dados.mar_ativa = false;\r\n api.put(`Marca/Editar`, dados).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Marca inativada com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+mar_nome' } });\r\n }\r\n )\r\n }\r\n\r\n const modalInativarRegistro = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir a marca ${dados.mar_nome}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a Marca: ${dados.mar_nome}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalDuplicarDados = (dados) => {\r\n Modal.confirm({\r\n title: 'Duplicar?',\r\n icon: ,\r\n content: `Deseja duplicar a Marca: ${dados.mar_nome}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n duplicarDados(dados);\r\n }\r\n });\r\n };\r\n\r\n function duplicarDados(dados) {\r\n let valores = { ...dados };\r\n valores.mar_id = null;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {mar_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Marca',\r\n render: ({ mar_nome }) => (\r\n
\r\n {mar_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n } onClick={() => { modalDuplicarDados(dados) }} />\r\n \r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={}\r\n />\r\n \r\n \r\n } onClick={() => { modalExcluir(record) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoMarcaVeiculo({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const salvarManutencao = (values) => {\r\n carregando(true);\r\n let retorno;\r\n let enderecoUrl = 'marcaVeiculo/';\r\n\r\n if (values.mav_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: \"Operação concluída\", description: \"Os dados da Marca foram salvos com sucesso!\" });\r\n retorno = res.data;\r\n }\r\n }, err => {\r\n notification.error({ message: \"Erro ao processar a requisição.\", description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: \"Operação concluída\", description: \"Os dados da Marca foram salvos com sucesso!\" });\r\n retorno = res.data;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: res.data } });\r\n }\r\n }, err => {\r\n notification.error({ message: \"Erro ao processar a requisição.\", description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n };\r\n }\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: \"+mav_descricao\" } });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Marca Ativa\r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form, Drawer } from 'antd';\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from '@ant-design/icons';\r\n\r\nimport ManutencaoMarcaVeiculo from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerMarcaVeiculo({ cadMarcaVeiculo, openDrawer, setOpenDrawer, retornoSalvar }) {\r\n\r\n const [formMarcaVeiculo] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formMarcaVeiculo.setFieldsValue(manutencao.dados);\r\n }\r\n else {\r\n formMarcaVeiculo.setFieldsValue({ mav_ativa: true });\r\n }\r\n\r\n function salvandoDados(retorno) {\r\n if (!!retornoSalvar) {\r\n retornoSalvar(retorno);\r\n }\r\n fecharDrawer();\r\n }\r\n\r\n function fecharDrawer() {\r\n formMarcaVeiculo.resetFields();\r\n if (!!openDrawer) {\r\n setOpenDrawer(false);\r\n }\r\n else {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: \"Cancelar?\",\r\n icon: ,\r\n content: \"Deseja cancelar a operação e ignorar o que foi realizado até o momento?\",\r\n okText: \"Sim\",\r\n cancelText: \"Não\",\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n\r\n return (\r\n }\r\n onClose={() => onClose()}\r\n\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Popover, Modal, notification } from \"antd\";\r\n\r\nimport DrawerMarcaVeiculo from \"./drawer\";\r\nimport api from '../../services/api';\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir, Duplicar } from \"../../components\";\r\nimport { CopyOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport { DeleteOutline } from \"@material-ui/icons\";\r\n\r\nexport default function MarcaVeiculo() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+mav_descricao' } }), []);\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a Marca ${dados.mav_descricao}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirMarca(dados);\r\n }\r\n });\r\n };\r\n\r\n function excluirMarca(dados) {\r\n api.delete(`MarcaVeiculo/Excluir/${dados.mav_id}`).then(\r\n (res) => {\r\n notification.success({ message: 'Sucesso!', description: 'Marca excluída com sucesso!' });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }).catch(\r\n (erro) => {\r\n modalInativarMarca(dados);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+mav_descricao' } });\r\n });\r\n }\r\n\r\n const modalInativarMarca = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir a marca ${dados.mav_descricao}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarMarca(dados);\r\n }\r\n });\r\n };\r\n\r\n function inativarMarca(dados) {\r\n dados.mav_ativa = false;\r\n api.put(`MarcaVeiculo/Editar`, dados).then(\r\n res => {\r\n notification.success({ message: 'Sucesso!', description: 'Marca inativada com sucesso!' })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+mav_descricao' } });\r\n }\r\n )\r\n }\r\n\r\n const modalDuplicarDados = (dados) => {\r\n Modal.confirm({\r\n title: 'Duplicar?',\r\n icon: ,\r\n content: `Deseja duplicar a Marca ${dados.mav_descricao}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n duplicarDados(dados);\r\n }\r\n })\r\n }\r\n\r\n function duplicarDados(dados) {\r\n let valores = { ...dados };\r\n valores.mav_id = null;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {mav_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Marca de Veículo',\r\n render: ({ mav_descricao }) => (\r\n
\r\n {mav_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n } onClick={() => { modalDuplicarDados(dados) }} />\r\n \r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={}\r\n />\r\n \r\n \r\n } onClick={() => { modalExcluir(record) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, notification, Select, message } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW, SelectPaginacao, Data } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { validarIE } from \"../../services/funcoesIE\";\r\nimport { MaskFormat } from \"../../ValueObjects\";\r\n\r\nexport default function ManutencaoVeiculo({ formulario, carregando, aoSalvar, editando }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [controleTipoRodado, setControleTipoRodado] = useState([]);\r\n const [controleTipoCarroceria, setControleTipoCarroceria] = useState([]);\r\n const [controleTipoProprietario, setControleTipoProprietario] = useState([]);\r\n const [controleTipoTransporte, setControleTipoTransporte] = useState([]);\r\n const [listaCidades, setListaCidades] = useState(false);\r\n const [filtroCdd, setFiltroCdd] = useState(null);\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=TipoRodado`).then(res => {\r\n if (res.status === 200) {\r\n setControleTipoRodado(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=TipoCarroceria`).then(res => {\r\n if (res.status === 200) {\r\n setControleTipoCarroceria(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=TipoProprietario`).then(res => {\r\n if (res.status === 200) {\r\n setControleTipoProprietario(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=TipoTransporte`).then(res => {\r\n if (res.status === 200) {\r\n setControleTipoTransporte(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, [])\r\n\r\n const salvarManutencao = (values) => {\r\n carregando(true);\r\n let retorno;\r\n let enderecoUrl = 'veiculo/';\r\n\r\n if (values.vei_inscricaoestadual_numeroInscricaoEstadual === undefined) {\r\n values.vei_inscricaoestadual_numeroInscricaoEstadual = \"\";\r\n }\r\n if (values.vei_inscricaoestadual_ufestado === undefined) {\r\n values.vei_inscricaoestadual_ufestado = \"\";\r\n }\r\n\r\n if (!!values.vei_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: \"Operação concluída\", description: \"Os dados do Veículo foram salvos com sucesso!\" });\r\n retorno = res.data;\r\n }\r\n }, err => {\r\n notification.error({ message: \"Erro ao processar a requisição.\", description: \"Ocorreu um erro ao tentar salvar os dados do Veículo. Por favor, tente novamente.\" });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: \"Operação concluída\", description: \"Os dados do Veículo foram salvos com sucesso!\" });\r\n retorno = res.data;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: res.data } });\r\n }\r\n }, err => {\r\n notification.error({ message: \"Erro ao processar a requisição.\", description: \"Ocorreu um erro ao tentar salvar os dados do Veículo. Por favor, tente novamente.\" });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n };\r\n if (!!values.vei_inscricaoestadual_numeroInscricaoEstadual && !validarIE(values.vei_inscricaoestadual_numeroInscricaoEstadual, values.vei_inscricaoestadual_ufestado)) {\r\n notification.warning({ message: 'Aviso', description: 'Inscrição Estadual informada é inválida' });\r\n return false;\r\n } else if (!!!values.vei_inscricaoestadual_numeroInscricaoEstadual) {\r\n values.vei_inscricaoestadual_numeroInscricaoEstadual = \"\";\r\n }\r\n }\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: \"+vei_descricao\" } });\r\n }\r\n\r\n function carregarCidades(UfEstado) {\r\n if (!!UfEstado) {\r\n setListaCidades(true);\r\n setFiltroCdd(`&UfEstado=${UfEstado}`);\r\n formulario.setFieldsValue({ cid_id: undefined });\r\n }\r\n else {\r\n setListaCidades(false);\r\n formulario.setFieldsValue({ cid_id: undefined });\r\n }\r\n }\r\n\r\n const validatorInput = (_, value) => {\r\n if (!value || /^[0-9]+$/.test(value)) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('Insira apenas números'));\r\n };\r\n\r\n function validarPlaca(event) {\r\n const placa = event.target.value;\r\n const placaConfirm = /^[a-z]{3}[0-9]{4}$|^[a-z]{3}[0-9]{1}[a-z]{1}[0-9]{2}$|^[A-Z]{3}[0-9]{4}$|^[A-Z]{3}[0-9]{1}[A-Z]{1}[0-9]{2}$/;\r\n\r\n if (!placaConfirm.test(placa)) {\r\n notification.warning({ description: \"Formato de placa inválido. Insira uma placa no formato AAA0000 ou AAA0A00.\", message: \"Atenção!\" });\r\n formulario.setFieldsValue({ vei_placa: \"\" });\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarCidades(UfEstado)} onChangeFunction={(UfEstado) => carregarCidades(UfEstado)}\r\n conteudo={\r\n est => ({est.est_sigla} - {est.est_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n ({cid.cid_id} = {cid.cid_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.vei_tipoproprietario !== currentValues.vei_tipoproprietario}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue().vei_tipoproprietario !== 0 && getFieldValue().vei_tipoproprietario !== undefined) return (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n \r\n \r\n \r\n Veículo Ativo?\r\n \r\n \r\n \r\n \r\n Veículo de Reboque?\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form, Drawer } from 'antd';\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from '@ant-design/icons';\r\n\r\nimport ManutencaoVeiculo from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\nimport { setClienteCatalogo } from '../../services/auth';\r\n\r\nexport default function DrawerVeiculo({ cadVeiculo, openDrawer, setOpenDrawer, retornoSalvar, editando }) {\r\n\r\n const [formVeiculo] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados && editando.editando) {\r\n formVeiculo.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function salvandoDados(retorno) {\r\n if (!!retornoSalvar) {\r\n retornoSalvar(retorno);\r\n }\r\n fecharDrawer();\r\n }\r\n\r\n function fecharDrawer() {\r\n formVeiculo.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n editando.setEditando(false);\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: \"Cancelar?\",\r\n icon: ,\r\n content: \"Deseja cancelar a operação e ignorar o que foi realizado até o momento?\",\r\n okText: \"Sim\",\r\n cancelText: \"Não\",\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n onClose={() => onClose()}\r\n\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Popover, Modal, notification } from \"antd\";\r\n\r\nimport DrawerVeiculo from \"./drawer\";\r\nimport api from '../../services/api';\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir, Duplicar } from \"../../components\";\r\nimport { CopyOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nexport default function Veiculo() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [editando, setEditando] = useState(false);\r\n const [primeiroRender, setPrimeiroRender] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+vei_descricao' } })\r\n }, []);\r\n\r\n function editarVeiculo(record) {\r\n setEditando(true);\r\n record.vei_dataaquisicao = moment(record.vei_dataaquisicao);\r\n record.vei_datavenda = moment(record.vei_datavenda);\r\n let listaTemp = { ...record.vei_inscricaoestadual }\r\n\r\n record.vei_inscricaoestadual_ufestado = listaTemp.ufEstado;\r\n record.vei_inscricaoestadual_numeroInscricaoEstadual = listaTemp.numeroInscricaoEstadual;\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n setPrimeiroRender(false);\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o Veículo ${dados.vei_descricao}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirVeiculo(dados);\r\n }\r\n });\r\n };\r\n\r\n function excluirVeiculo(dados) {\r\n api.delete(`Veiculo/Excluir/${dados.vei_id}`).then(\r\n (res) => {\r\n notification.success({ message: 'Sucesso!', description: 'Veículo excluído com sucesso!' });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }).catch(\r\n (erro) => {\r\n modalInativarVeiculo(dados);\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vei_descricao' } });\r\n });\r\n }\r\n\r\n const modalInativarVeiculo = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir o veículo ${dados.vei_descricao}. Deseja inativar este veículo?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarVeiculo(dados);\r\n }\r\n });\r\n };\r\n\r\n function inativarVeiculo(dados) {\r\n dados.vei_ativo = false;\r\n api.put(`Veiculo/Editar`, dados).then(\r\n res => {\r\n notification.success({ message: 'Sucesso!', description: 'Veículo inativado com sucesso!' })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vei_descricao' } });\r\n }\r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {vei_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Nome',\r\n render: ({ vei_descricao }) => (\r\n
\r\n {vei_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Modelo',\r\n render: ({ vei_modelo }) => (\r\n
\r\n {vei_modelo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Placa',\r\n render: ({ vei_placa }) => (\r\n
\r\n {vei_placa}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n {\r\n editarVeiculo(record);\r\n }} icon={}\r\n />\r\n \r\n \r\n } onClick={() => { modalExcluir(record) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Divider, Row, Col, Typography, Table, Button, notification } from \"antd\";\r\nimport { CheckOutlined, ReloadOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function TabPercursoMDF({ estadoInicio, estadoFinal, listaPercurso, setListaPercurso, setPercursoOk }) {\r\n const [percurso, setPercurso] = useState([estadoInicio]);\r\n const [ufInicial] = useState(estadoInicio);\r\n const [ufFinal] = useState(estadoFinal);\r\n\r\n const vizinhosUF = {\r\n AC: ['AM', 'RO'],\r\n AL: ['SE', 'PE', 'BA'],\r\n AP: ['PA'],\r\n AM: ['RR', 'PA', 'MT', 'RO', 'AC'],\r\n BA: ['SE', 'AL', 'PE', 'PI', 'TO', 'GO', 'MG', 'ES'],\r\n CE: ['PI', 'PE', 'PB', 'RN'],\r\n ES: ['BA', 'MG', 'RJ'],\r\n GO: ['MS', 'MG', 'BA', 'TO', 'MT', 'DF'],\r\n MA: ['PA', 'TO', 'PI'],\r\n MT: ['RO', 'AM', 'PA', 'TO', 'GO', 'MS'],\r\n MS: ['MT', 'GO', 'SP', 'MG', 'PR'],\r\n MG: ['SP', 'RJ', 'ES', 'BA', 'GO', 'MS', 'DF'],\r\n PA: ['AP', 'RR', 'AM', 'MT', 'TO', 'MA'],\r\n PB: ['PE', 'CE', 'RN'],\r\n PR: ['SC', 'SP', 'MS'],\r\n PE: ['BA', 'AL', 'PB', 'CE', 'PI'],\r\n PI: ['BA', 'PE', 'CE', 'MA', 'TO'],\r\n RJ: ['SP', 'MG', 'ES'],\r\n RN: ['PB', 'CE'],\r\n RS: ['SC'],\r\n RO: ['MT', 'AM', 'AC'],\r\n RR: ['AM', 'PA'],\r\n SC: ['RS', 'PR'],\r\n SP: ['PR', 'MS', 'MG', 'RJ'],\r\n SE: ['BA', 'AL'],\r\n TO: ['GO', 'BA', 'PI', 'MA', 'PA', 'MT'],\r\n DF: ['GO', 'MG']\r\n }\r\n\r\n const estadoId = { AC: 1, AL: 2, AP: 4, AM: 3, BA: 5, CE: 6, DF: 7, ES: 8, GO: 9, MA: 10, MT: 13, MS: 12, MG: 11, PA: 14, PB: 15, PR: 18, PE: 16, PI: 17, RJ: 19, RN: 20, RS: 23, RO: 21, RR: 22, SC: 25, SP: 26, SE: 25, TO: 27 }\r\n\r\n const iconeUf = (uf) => {\r\n if (uf === ufInicial) {\r\n return \"UF\r\n }\r\n if (uf === ufFinal) {\r\n return \"UF\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let listaTemp = [...listaPercurso]\r\n if (listaTemp.length > 0) {\r\n redefinirPercurso();\r\n }\r\n if (ufInicial === ufFinal || vizinhosUF[ufInicial].includes(ufFinal)) {\r\n notification.success({ message: 'Atenção!', description: 'Não é necessário definir um percurso.' })\r\n setPercursoOk(true)\r\n }\r\n }, [])\r\n\r\n function estadoClick(uf) {\r\n if (ufInicial === ufFinal || vizinhosUF[ufInicial].includes(ufFinal)) {\r\n notification.warning({ message: 'Atenção!', description: 'Não é necessário definir um percurso.' })\r\n setPercursoOk(true)\r\n return\r\n }\r\n if (percurso.includes(uf) || uf === ufInicial || uf === ufFinal) return;\r\n\r\n let ultimaUF = percurso[percurso.length - 1];\r\n let ufVizinha = vizinhosUF[ultimaUF].includes(uf);\r\n\r\n if (ufVizinha) {\r\n setPercurso([...percurso, uf]);\r\n } else {\r\n notification.warning({ message: 'Alerta!', description: `Não é possível adicionar ${uf} sem passar por uma UF vizinha.` })\r\n }\r\n }\r\n\r\n function redefinirPercurso() {\r\n setPercurso([ufInicial]);\r\n setListaPercurso([]);\r\n notification.info({ message: 'Aviso!', description: 'Percurso redefinido!' })\r\n }\r\n\r\n function salvarPercurso() {\r\n if (ufInicial === ufFinal) {\r\n notification.warning({ message: 'Alerta!', description: 'Não é possível definir um percurso' })\r\n return\r\n }\r\n let percursoFinal = [...percurso];\r\n if (!percursoFinal.includes(ufFinal)) {\r\n percursoFinal.push(ufFinal);\r\n }\r\n\r\n let percursoValido = true;\r\n for (let i = 0; i < percursoFinal.length - 1; i++) {\r\n let ufAtual = percursoFinal[i];\r\n let ufProximo = percursoFinal[i + 1];\r\n\r\n if (!vizinhosUF[ufAtual]?.includes(ufProximo)) {\r\n percursoValido = false;\r\n notification.warning({ message: 'Alerta!', description: `O percurso é inválido: ${ufAtual} não é vizinho de ${ufProximo}` });\r\n break\r\n }\r\n }\r\n\r\n if (percursoValido) {\r\n percursoFinal = percursoFinal.slice(1, -1);\r\n\r\n const listaPercursoAtt = percursoFinal.map((uf, index) => ({\r\n est_id: estadoId[uf],\r\n per_sequencia: index + 1\r\n }));\r\n\r\n setListaPercurso(listaPercursoAtt);\r\n notification.success({ message: 'Aviso!', description: `O percurso de ${ufInicial} para ${ufFinal} foi salvo com sucesso.` });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Percurso\" Percurso\r\n \r\n Selecione no mapa o percurso percorrido (Clique em todas as UFs necessárias) \r\n \r\n \r\n \r\n \r\n
\r\n {['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP', 'SE', 'TO', 'DF'].map((uf) => (\r\n estadoClick(uf)}\r\n >\r\n {uf} {iconeUf(uf)}\r\n
\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \"UFUF Inicial:{ufInicial}\r\n \r\n \r\n Percurso\r\n UF\r\n }\r\n ]}\r\n dataSource={percurso.filter(uf => uf !== ufInicial).map(uf => ({ uf }))}\r\n pagination={false}\r\n scroll={{ y: 300 }}\r\n />\r\n \r\n \r\n \"UFUF Final:{ufFinal ? ufFinal : 'Não Informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Divider, Input, Select, Button, Table, Tag, notification } from \"antd\";\r\nimport { InputCep, SelectPaginacao } from \"../../components\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\r\nimport api from \"../../services/api\";\r\nimport { DeleteOutlined, PlusOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function TabDadosManifestos({ formManifesto, listaDocs, tipoEmitente, setEstadoInicio, setEstadoFinal, listaMotorista, setListaMotorista }) {\r\n const [veiculoSelecionado, setVeiculoSelecionado] = useState(false);\r\n const [reboque1Selecionado, setReboque1Selecionado] = useState(null);\r\n const [reboque2Selecionado, setReboque2Selecionado] = useState(null);\r\n const [cpfCnpj, setCpfCnpj] = useState(null);\r\n const [listaCidadesCarregamento, setListaCidadesCarregamento] = useState(false);\r\n const [listaCidadesDescarrega, setListaCidadesDescarrega] = useState(false);\r\n const [filtroCddCarregamento, setFiltroCddCarregamento] = useState(null);\r\n const [filtroCddDescarrega, setFiltroCddDescarrega] = useState(null);\r\n const [listaEstados, setListaEstados] = useState([]);\r\n const [listaVeiculos, setListaVeiculos] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const [estadosRes, veiculosRes] = await Promise.all([\r\n api.get(`estado/listar?PageSize=50&Order=est_id`),\r\n api.get(`Veiculo/listar`)\r\n ]);\r\n\r\n setListaEstados(estadosRes.data.items);\r\n setListaVeiculos(veiculosRes.data.items);\r\n if (listaDocs.length > 0) {\r\n const dadosDoc = listaDocs[0];\r\n if (dadosDoc.numero && listaDocs.length === 1) {\r\n if (dadosDoc.cepDestino) {\r\n api.get(`Cidade/BuscaCidadeCep?cep=${dadosDoc.cepDestino}`).then(\r\n res => {\r\n let dadosDestino = res.data[0];\r\n formManifesto.setFieldsValue({\r\n pme_cepcarrega: dadosDestino.cep_cep,\r\n mca_id: dadosDestino.cid_descricao,\r\n mdf_ufinicio: dadosDestino.est_descricao\r\n });\r\n setEstadoFinal(dadosDestino.est_sigla);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n if (dadosDoc.cepOrigem) {\r\n api.get(`Cidade/BuscaCidadeCep?cep=${dadosDoc.cepOrigem}`).then(\r\n res => {\r\n let dadosOrigem = res.data[0];\r\n formManifesto.setFieldsValue({\r\n pme_cepdescarrega: dadosOrigem.cep_cep,\r\n mdf_uffim: dadosOrigem.est_descricao,\r\n mde_id: dadosOrigem.cid_descricao\r\n });\r\n setEstadoInicio(dadosOrigem.est_sigla);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n fetchData();\r\n\r\n if (listaDocs[0].doc_modelodoc === \"55\") {\r\n formManifesto.setFieldsValue({\r\n mdf_tipoemitente: 2\r\n })\r\n }\r\n\r\n }, [listaDocs])\r\n\r\n function reboque1(value) {\r\n setReboque1Selecionado(value);\r\n setReboque2Selecionado(null)\r\n formManifesto.setFieldsValue({ vei_id_reboque2: undefined, vei_id_reboque3: undefined })\r\n };\r\n\r\n function reboque2(value) {\r\n setReboque2Selecionado(value);\r\n formManifesto.setFieldsValue({ vei_id_reboque3: undefined })\r\n };\r\n\r\n function validarCpfCnpj(cpfCnpj) {\r\n if (cpfCnpj) {\r\n if (cpfCnpj.length !== 14 && cpfCnpj.length !== 11) {\r\n notification.warning({ message: 'Aviso!', description: 'O CPF/CNPJ informado é inválido. Deve conter 11 ou 14 dígitos' });\r\n formManifesto.setFieldsValue({\r\n rod_cpfcnpjciot: \"\"\r\n })\r\n }\r\n }\r\n }\r\n\r\n function verificaCepCarregamento(cep) {\r\n const cepNumeros = cep.match(/\\d+/g)?.join('');\r\n\r\n if (cepNumeros && cepNumeros.length === 8) {\r\n api.get(`Cidade/BuscaCidadeCep?cep=${cepNumeros}`).then(\r\n res => {\r\n let dadosOrigem = res.data[0]\r\n formManifesto.setFieldsValue({\r\n mdf_ufinicio: dadosOrigem.est_descricao,\r\n mca_id: dadosOrigem.cid_descricao\r\n });\r\n setEstadoInicio(dadosOrigem.est_sigla);\r\n }\r\n ).catch(error => {\r\n notification.warning({ message: 'Atenção!', description: 'Erro ao buscar o CEP' });\r\n console.error(error);\r\n })\r\n } else {\r\n notification.warning({ message: 'Atenção!', description: 'CEP inválido' });\r\n formManifesto.setFieldsValue({\r\n mdf_ufinicio: '',\r\n mca_id: ''\r\n });\r\n setEstadoInicio('');\r\n }\r\n }\r\n\r\n function verificaCepDescarrega(cep) {\r\n const cepNumeros = cep.match(/\\d+/g)?.join('');\r\n\r\n if (cepNumeros && cepNumeros.length === 8) {\r\n api.get(`Cidade/BuscaCidadeCep?cep=${cepNumeros}`).then(\r\n res => {\r\n let dadosDestino = res.data[0]\r\n formManifesto.setFieldsValue({\r\n mdf_uffim: dadosDestino.est_descricao,\r\n mde_id: dadosDestino.cid_descricao\r\n });\r\n setEstadoFinal(dadosDestino.est_sigla);\r\n }\r\n ).catch(error => {\r\n notification.warning({ message: 'Atenção!', description: 'Erro ao buscar o CEP' });\r\n console.error(error);\r\n })\r\n } else {\r\n notification.warning({ message: 'Atenção!', description: 'CEP inválido' });\r\n formManifesto.setFieldsValue({\r\n mdf_uffim: '',\r\n mde_id: ''\r\n });\r\n setEstadoFinal('');\r\n }\r\n }\r\n\r\n function removeMotorista(record) {\r\n let index = listaMotorista.findIndex(mot => mot.sequencia_motorista === record.sequencia_motorista)\r\n let dadosTemp = [...listaMotorista];\r\n dadosTemp.splice(index, 1)\r\n\r\n dadosTemp.forEach((item, index) => {\r\n item.sequencia_motorista = index + 1;\r\n })\r\n\r\n setListaMotorista(dadosTemp);\r\n }\r\n\r\n function adicionarMotorista() {\r\n let motorista = formManifesto.getFieldValue().fun_id;\r\n\r\n let listaTemp = [...listaMotorista];\r\n if (motorista !== undefined) {\r\n api.get(`Funcionario/BuscarFuncionario/${motorista}`).then(\r\n res => {\r\n let retorno = res.data;\r\n\r\n listaTemp.push({\r\n fun_id: motorista,\r\n sequencia_motorista: listaMotorista.length + 1,\r\n nome: retorno.pes_nome || 'Não informado',\r\n cpf: retorno.pef_cpf || 'Não informado',\r\n numeroTelefone: retorno.telefones[0].psc_numero || 'Não informado'\r\n })\r\n\r\n setListaMotorista(listaTemp);\r\n formManifesto.setFieldsValue({ fun_id: undefined });\r\n notification.success({ message: 'Atenção', description: 'Motorista adicionado com sucesso' });\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n notification.error({ message: 'Atenção!', description: 'Dados do motorista não encontrado' });\r\n }\r\n )\r\n } else {\r\n notification.warning({ message: 'Alerta!', description: 'É necessário selecionar o motorista' });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n verificaCepCarregamento(cep.target.value)} rules={[{ required: true }]} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n verificaCepDescarrega(cep.target.value)} rules={[{ required: true }]} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n validarCpfCnpj(valor.currentTarget.value.replace(/\\D/g, '')) }\r\n onChange={(event) => {\r\n setCpfCnpj(event.target.value);\r\n }}\r\n />\r\n \r\n \r\n \r\n Veículo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Motorista\r\n \r\n \r\n \r\n ({fun.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n \r\n {sequencia_motorista}\r\n \r\n )\r\n },\r\n {\r\n title: 'ID',\r\n align: 'center',\r\n width: 80,\r\n render: ({ fun_id }) => (\r\n {fun_id}\r\n )\r\n },\r\n {\r\n title: 'Nome',\r\n align: 'left',\r\n width: 400,\r\n render: ({ nome }) => (\r\n {nome}\r\n )\r\n },\r\n {\r\n title: 'CPF',\r\n align: 'center',\r\n width: 150,\r\n render: ({ cpf }) => (\r\n {cpf}\r\n )\r\n },\r\n {\r\n title: 'Telefone',\r\n align: 'center',\r\n width: 150,\r\n render: ({ numeroTelefone }) => (\r\n {numeroTelefone}\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n align: 'center',\r\n fixed: 'right',\r\n dataIndex: '',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {editando ?\r\n :\r\n \r\n }\r\n \r\n \r\n {editando &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Divider, Form, Table, Tag, Button, Modal, Input, Select } from \"antd\";\r\nimport { DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport FiltroSeguroMDF from \"../../components/filtroSeguroMDF\";\r\nimport { InputPreco, SelectPaginacao } from \"../../components\";\r\nimport InputNumber from \"rc-input-number\";\r\n\r\nexport default function TabSegEProdPredominante({ formManifesto, listaSeguro, setListaSeguro, responsavelSeguro, tipoCarga, unidadePeso, listaDocs }) {\r\n const [form] = Form.useForm();\r\n const [editando, setEditando] = useState(false);\r\n\r\n useEffect(() => {\r\n let dadosDocs = [...listaDocs];\r\n let totalValor = dadosDocs.reduce((vlr, item) => { let valor = parseFloat(item.doc_valortotal) || 0; return vlr + valor; }, 0);\r\n let totalPeso = dadosDocs.reduce((vlr, item) => { let peso = parseFloat(item.doc_pesobruto) || 0; return vlr + peso; }, 0);\r\n\r\n formManifesto.setFieldsValue({\r\n valorTotal: totalValor,\r\n pesoBruto: totalPeso\r\n });\r\n\r\n if (dadosDocs[0].doc_modelodoc === \"55\") {\r\n formManifesto.setFieldsValue({\r\n totalNfe: dadosDocs.length\r\n });\r\n } else if (dadosDocs[0].doc_modelodoc === \"57\") {\r\n formManifesto.setFieldsValue({\r\n totalCte: dadosDocs.length\r\n });\r\n }\r\n }, [])\r\n\r\n function editarSeguro(record) {\r\n setEditando(true);\r\n form.setFieldsValue(record);\r\n }\r\n\r\n function modalRemove(record) {\r\n const index = listaSeguro.findIndex(seg => seg.seg_sequencia === record.seg_sequencia)\r\n Modal.confirm({\r\n title: 'Excluir',\r\n icon: ,\r\n content: 'Deseja excluir a Seguradora?',\r\n okText: 'Escluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n removeSeguro(index);\r\n }\r\n })\r\n }\r\n\r\n function removeSeguro(index) {\r\n let dadosTemp = [...listaSeguro];\r\n dadosTemp.splice(index, 1)\r\n\r\n dadosTemp.forEach((item, index) => {\r\n item.seg_sequencia = index + 1;\r\n })\r\n\r\n setListaSeguro(dadosTemp);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n Produto Predominante\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({ncm.ncm_codigo.codigoNcm} - {ncm.ncm_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Dados Seguradora\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
(\r\n \r\n {seg_sequencia}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Responsável',\r\n render: ({ seg_responsavel }) => (\r\n {seg_responsavel}\r\n )\r\n },\r\n {\r\n title: 'Seguradora',\r\n render: ({ seg_nomeseguradora }) => (\r\n {seg_nomeseguradora}\r\n )\r\n },\r\n {\r\n title: 'Nº Apólice',\r\n align: 'center',\r\n width: 100,\r\n render: ({ seg_numeroapolice }) => (\r\n {seg_numeroapolice}\r\n )\r\n },\r\n {\r\n title: 'Nº Averbação',\r\n align: 'center',\r\n width: 100,\r\n render: ({ seg_numeroaverbacao }) => (\r\n {seg_numeroaverbacao}\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n align: 'center',\r\n width: 65,\r\n dataIndex: '',\r\n key: 'x',\r\n fixed: 'right',\r\n render: (record) => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ y: 100 }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Modal, Input, notification, Tabs, Select, Button, Table, Tag } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, PlusOutlined, SaveOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport InputPreco from \"../../inputPreco\";\r\nimport Data from \"../../data\";\r\nimport api from \"../../../services/api\";\r\nimport moment from \"moment\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalDocsFiscais({ form, exibirModal, fecharModal, listaDocs, setListaDocs }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [listaDocsTab1, setListaDocsTab1] = useState([]);\r\n const [selectedRowKeys1, setSelectedRowKeys1] = useState([]);\r\n const [listaDocsTab2, setListaDocsTab2] = useState([]);\r\n const [selectedRowKeys2, setSelectedRowKeys2] = useState([]);\r\n const [serie, setSerie] = useState([]);\r\n\r\n useEffect(() => {\r\n setAbaSelecionada(\"1\");\r\n definirCamposTab1();\r\n definirCamposTab2();\r\n setListaDocsTab2([]);\r\n carregarDados();\r\n }, [exibirModal]);\r\n\r\n const docsSelecionados1 = (newSelectedRowKeys) => {\r\n setSelectedRowKeys1(newSelectedRowKeys);\r\n };\r\n\r\n const rowSelection1 = {\r\n selectedRowKeys1,\r\n onChange: docsSelecionados1,\r\n };\r\n\r\n const docsSelecionados2 = (newSelectedRowKeys) => {\r\n setSelectedRowKeys2(newSelectedRowKeys)\r\n };\r\n\r\n const rowSelection2 = {\r\n selectedRowKeys2,\r\n onChange: docsSelecionados2,\r\n }\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n async function carregarDados() {\r\n let listaSerie = await api.get('SerieFiscal/Listar?CodigoModeloDocFiscal=55&EmitenteDocumento=0&SomenteAtivos=true');\r\n let serie = [];\r\n if (listaSerie.status === 200) {\r\n serie = listaSerie.data.items;\r\n setSerie(serie);\r\n }\r\n }\r\n\r\n async function definirCamposTab1() {\r\n form.setFieldsValue({\r\n Filtro: null,\r\n DataInicial: moment(new Date()),\r\n DataFinal: moment(new Date())\r\n });\r\n setListaDocsTab1([]);\r\n }\r\n\r\n async function definirCamposTab2() {\r\n form.setFieldsValue({\r\n doc_chaveacesso: undefined,\r\n doc_modelodoc: undefined,\r\n destino: null,\r\n doc_pesobruto: 0,\r\n doc_valortotal: 0\r\n })\r\n }\r\n\r\n async function buscarDoc() {\r\n let dados = form.getFieldValue();\r\n let Filtro = dados.Filtro || null;\r\n let DataInicial = Filtro === null && dados.DataInicial ? moment(dados.DataInicial).format('YYYY-MM-DD') : null;\r\n let DataFinal = Filtro === null && dados.DataFinal ? moment(dados.DataFinal).format('YYYY-MM-DD') : null;\r\n\r\n const filtros = { Filtro, DataInicial, DataFinal };\r\n\r\n await api.get(`ManifestoEletronico/ListarDocumentos`, { params: filtros }).then(\r\n res => {\r\n let retorno = res.data.items;\r\n if (retorno.length === 0) {\r\n retornoNull();\r\n } else {\r\n adicionarDoc(retorno);\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n retornoNull()\r\n console.log(error)\r\n }\r\n )\r\n }\r\n\r\n async function adicionarDoc(retorno) {\r\n if (abaSelecionada === \"1\") {\r\n let listaTemp = [];\r\n let sequencia = listaTemp.length;\r\n\r\n retorno.forEach((doc, index) => {\r\n doc.sequencia = sequencia + 1 + index;\r\n listaTemp.push(doc);\r\n });\r\n\r\n setListaDocsTab1(listaTemp);\r\n form.setFieldsValue({ Filtro: null })\r\n\r\n } else if (abaSelecionada === \"2\") {\r\n let dados = form.getFieldValue();\r\n\r\n if (dados.doc_chaveacesso && dados.destino && dados.doc_modelodoc && dados.doc_valortotal > 0) {\r\n if (!validarCampos(dados)) return;\r\n let listaTemp = [...listaDocsTab2];\r\n\r\n listaTemp.push({\r\n doc_sequencia: listaDocsTab2.length + 1,\r\n doc_chaveacesso: dados.doc_chaveacesso,\r\n destino: dados.destino,\r\n doc_modelodoc: dados.doc_modelodoc,\r\n doc_valortotal: dados.doc_valortotal,\r\n doc_pesobruto: dados.doc_pesobruto\r\n })\r\n\r\n setListaDocsTab2(listaTemp);\r\n notification.success({ message: 'Atenção!', description: 'Documento Fiscal adicionado.' });\r\n definirCamposTab2();\r\n } else {\r\n notification.warning({ message: 'Atenção!', description: 'Preencha todos os campos obrigatórios' });\r\n }\r\n }\r\n }\r\n\r\n function validarCampos(dados) {\r\n if (dados.doc_chaveacesso.length !== 44) {\r\n notification.warning({ message: 'Atenção!', description: 'Chave de Acesso deve possuir 44 digítos' });\r\n return false;\r\n }\r\n if (dados.doc_modelodoc !== \"55\" && dados.doc_modelodoc !== \"57\") {\r\n notification.warning({ message: 'Atenção!', description: 'Deve ser informado um modelo 55 ou 57' });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n async function retornoNull() {\r\n notification.warning({ message: 'Aviso!', description: 'Não foi encontrado nenhum Documento.' })\r\n }\r\n\r\n function salvarDocs() {\r\n const chavesExistentes = listaDocs.map((doc) => doc.doc_chaveacesso);\r\n if (abaSelecionada === \"1\") {\r\n const docsSelecionados1 = listaDocsTab1.filter((doc) => selectedRowKeys1.includes(doc.sequencia));\r\n if (docsSelecionados1.length === 0) {\r\n notification.warning({ message: 'Atenção!', description: 'É necessário selecionar pelo menos um documento para vinculá-lo' })\r\n } else {\r\n const docsDuplicados = docsSelecionados1.filter((doc) => chavesExistentes.includes(doc.chave));\r\n\r\n if (docsDuplicados.length > 0) {\r\n notification.warning({ message: 'Atenção!', description: 'Já existe um documento com a mesma chave vinculado.' });\r\n } else {\r\n const docsAtualizados = docsSelecionados1.map((doc, index) => ({\r\n doc_sequencia: listaDocs.length + index + 1,\r\n doc_chaveacesso: doc.chave,\r\n doc_modelodoc: doc.modelo,\r\n doc_pesobruto: doc.peso,\r\n doc_valortotal: doc.valorTotal,\r\n numero: doc.numero,\r\n dataEmissao: doc.dataEmissao,\r\n destinatario: doc.destinatario,\r\n idCidadeOrigem: doc.idCidadeOrigem,\r\n cidadeOrigem: doc.cidadeOrigem,\r\n ufOrigem: doc.ufOrigem,\r\n idCidadeDestino: doc.idCidadeDestino,\r\n cid_id: doc.idCidadeDestino,\r\n cidadeDestino: doc.cidadeDestino,\r\n ufDestino: doc.ufDestino,\r\n cepDestino: doc.cepDestino,\r\n cepOrigem: doc.cepOrigem\r\n }))\r\n setListaDocs((prevListaDocs) => [...prevListaDocs, ...docsAtualizados]);\r\n fecharModal();\r\n }\r\n }\r\n } else if (abaSelecionada === \"2\") {\r\n const docsSelecionados2 = listaDocsTab2.filter((doc) => selectedRowKeys2.includes(doc.doc_sequencia));\r\n if (docsSelecionados2.length === 0) {\r\n notification.warning({ message: 'Atenção!', description: 'É necessário selecionar pelo menos um documento para vinculá-lo' })\r\n } else {\r\n const docsDuplicados = docsSelecionados2.filter((doc) => chavesExistentes.includes(doc.doc_chaveacesso));\r\n if (docsDuplicados.length > 0) {\r\n notification.warning({ message: 'Atenção!', description: 'Já existe um documento com a mesma chave vinculado.' });\r\n } else {\r\n const docsAtualizados = docsSelecionados2.map((doc, index) => ({\r\n doc_sequencia: listaDocs.length + index + 1,\r\n destino: doc.destino,\r\n cid_id: doc.destino,\r\n doc_chaveacesso: doc.doc_chaveacesso,\r\n doc_modelodoc: doc.doc_modelodoc,\r\n doc_pesobruto: doc.doc_pesobruto,\r\n doc_valortotal: doc.doc_valortotal\r\n }));\r\n setListaDocs((prevListaDocs) => [...prevListaDocs, ...docsAtualizados]);\r\n fecharModal();\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n Vincular Documentos\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n setAbaSelecionada(tab)} >\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
record.sequencia} columns={\r\n [\r\n {\r\n title: 'Sequência',\r\n width: 30,\r\n align: 'center',\r\n render: ({ sequencia }) => (\r\n \r\n {sequencia}\r\n \r\n )\r\n },\r\n {\r\n title: 'Chave de Acesso',\r\n align: 'left',\r\n render: ({ chave }) => (\r\n {chave}\r\n )\r\n },\r\n {\r\n title: 'Data Emissão',\r\n align: 'center',\r\n width: 200,\r\n render: ({ dataEmissao }) => (\r\n {dataEmissao}\r\n )\r\n },\r\n {\r\n title: 'Modelo',\r\n align: 'center',\r\n width: 10,\r\n render: ({ modelo }) => (\r\n {modelo}\r\n )\r\n },\r\n {\r\n title: 'Número',\r\n align: 'center',\r\n width: 100,\r\n render: ({ numero }) => (\r\n {numero}\r\n )\r\n },\r\n {\r\n title: 'Destinatário',\r\n align: 'left',\r\n render: ({ destinatario }) => (\r\n {destinatario}\r\n )\r\n },\r\n {\r\n title: 'Valor Total (R$)',\r\n fixed: 'right',\r\n align: 'right',\r\n width: 100,\r\n render: ({ valorTotal }) => (\r\n
\r\n R$ {FormatNumber(valorTotal, true)}\r\n
\r\n )\r\n }\r\n ]\r\n } rowSelection={rowSelection1}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n \r\n {cid.cid_id} - {cid.cid_descricao} - {cid.estado.est_sigla}\r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
record.doc_sequencia} columns={\r\n [\r\n {\r\n title: 'Sequência',\r\n width: 30,\r\n align: 'center',\r\n render: ({ doc_sequencia }) => (\r\n \r\n {doc_sequencia}\r\n \r\n )\r\n },\r\n {\r\n title: 'Chave de Acesso',\r\n width: 300,\r\n align: 'left',\r\n render: ({ doc_chaveacesso }) => (\r\n {doc_chaveacesso}\r\n )\r\n },\r\n {\r\n title: 'Destino',\r\n align: 'center',\r\n width: 100,\r\n render: ({ destino }) => (\r\n {destino}\r\n )\r\n },\r\n {\r\n title: 'Peso',\r\n width: 100,\r\n align: 'center',\r\n render: ({ doc_pesobruto }) => (\r\n {doc_pesobruto}\r\n )\r\n },\r\n {\r\n title: 'Valor Total (R$)',\r\n fixed: 'right',\r\n align: 'right',\r\n width: 100,\r\n render: ({ doc_valortotal }) => (\r\n {doc_valortotal}\r\n )\r\n }\r\n ]\r\n } rowSelection={rowSelection2}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Data, FormGW } from \"../../components\";\r\nimport { Row, Col, Form, Select, Steps, Input, Divider, notification, Typography, Button, Modal, Table, Tag } from 'antd';\r\n\r\nimport api from \"../../services/api\";\r\nimport { validaForm } from \"../../services/funcoes\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { TabDadosManifestos, TabPercursoMDF, TabSegEProdPredominante } from \"./tabPage\";\r\nimport moment from \"moment\";\r\nimport ModalDocsFiscais from \"../../components/modals/modalDocsFiscais\";\r\nimport { DeleteOutlined, ExclamationCircleOutlined, PlusOutlined } from \"@ant-design/icons\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function ManutencaoManifestoEletronico({ formManifesto, carregando, aoSalvar, pages, proximaPag }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [permiteValidar, setPermiteValidar] = useState(true);\r\n const [percursoOk, setPercursoOk] = useState(false);\r\n const [openModal, setOpenModal] = useState(false);\r\n const [estadoInicioSelect, setEstadoInicioSelect] = useState(null);\r\n const [estadoFinalSelect, setEstadoFinalSelect] = useState(null);\r\n const [serie, setSerie] = useState([]);\r\n const [listaPercurso, setListaPercurso] = useState([]);\r\n const [listaSeguro, setListaSeguro] = useState([]);\r\n const [listaDocs, setListaDocs] = useState([]);\r\n const [listaMotorista, setListaMotorista] = useState([]);\r\n const [tipoEmitente, setTipoEmitente] = useState([]);\r\n const [tipoCarga, setTipoCarga] = useState([]);\r\n const [unidadePeso, setUnidadePeso] = useState([]);\r\n const [responsavelSeguro, setResponsavelSeguro] = useState([]);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n carregarDados();\r\n if (!formManifesto.getFieldValue().mdf_dataemissao) {\r\n formManifesto.setFieldsValue({ mdf_dataemissao: moment(new Date()) });\r\n }\r\n }\r\n }, [ui.showDrawer])\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=TipoEmitente`).then(res => {\r\n if (res.status === 200) {\r\n setTipoEmitente(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=ResponsavelSeguro`).then(res => {\r\n if (res.status === 200) {\r\n setResponsavelSeguro(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=TipoCarga`).then(res => {\r\n if (res.status === 200) {\r\n setTipoCarga(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=CodigoUnidadePeso`).then(res => {\r\n if (res.status === 200) {\r\n setUnidadePeso(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, [])\r\n\r\n useEffect(() => {\r\n if ((!!proximaPag.proximaPag || proximaPag.proximaPag === 0) && permiteValidar) {\r\n validarTrocaPg(proximaPag.proximaPag);\r\n } else {\r\n setPermiteValidar(true);\r\n }\r\n }, [proximaPag.proximaPag])\r\n\r\n async function carregarDados() {\r\n let listaSerie = await api.get('SerieFiscal/Listar?CodigoModeloDocFiscal=58&EmitenteDocumento=0&SomenteAtivos=true');\r\n let serie = [];\r\n if (listaSerie.status === 200) {\r\n serie = listaSerie.data.items;\r\n setSerie(serie);\r\n if (serie.length > 0) {\r\n formManifesto.setFieldsValue({ ser_id: serie[0].ser_id });\r\n }\r\n }\r\n }\r\n\r\n async function validarTrocaPg(pagina) {\r\n let paginaAtual = pages.tagPages;\r\n let listaValidacoes = [];\r\n switch (paginaAtual) {\r\n case 0:\r\n if (paginaAtual < pagina) {\r\n if (listaDocs.length === 0) {\r\n notification.warning({ message: 'Atenção!', description: 'Para prosseguir, deve ter pelo menos um Documento Fiscal.' })\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n case 1:\r\n if (paginaAtual < pagina) {\r\n let f = form.getFieldValue();\r\n if (f.pme_cepcarrega === undefined || f.mca_id === undefined || f.mdf_ufinicio === undefined || f.pme_cepdescarrega === undefined || f.mde_id === undefined ||\r\n f.mdf_uffim === undefined || f.vei_id === undefined\r\n ) {\r\n notification.warning({ message: 'Atenção!', description: 'Preencha todos os campos obrigatórios.' })\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n if (listaMotorista.length === 0) {\r\n notification.warning({ message: 'Atenção!', description: 'Informe pelo menos um motorista' });\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n case 2:\r\n if (paginaAtual < pagina) {\r\n if (listaPercurso.length === 0 && !percursoOk) {\r\n notification.warning({ message: 'Atenção!', description: 'Para prosseguir, um percurso deve ser definido.' })\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n }\r\n if (validaForm(formManifesto, listaValidacoes)) {\r\n pages.setTagPages(pagina);\r\n } else {\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n }\r\n }\r\n\r\n const modalExcluir = (record) => {\r\n const index = listaDocs.findIndex(doc => doc.doc_sequencia === record.doc_sequencia)\r\n Modal.confirm({\r\n title: 'Excluir',\r\n icon: ,\r\n content: 'Deseja excluir o Documento Fiscal?',\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n removerDoc(index)\r\n }\r\n });\r\n }\r\n\r\n const removerDoc = (index) => {\r\n let dadosTemp = [...listaDocs];\r\n dadosTemp.splice(index, 1)\r\n\r\n dadosTemp.forEach((item, index) => {\r\n item.doc_sequencia = index + 1;\r\n })\r\n\r\n setListaDocs(dadosTemp);\r\n }\r\n\r\n async function emitirMDFe() {\r\n debugger;\r\n carregando(true)\r\n const formManifes = formManifesto.getFieldValue();\r\n const dadosNewForm = form.getFieldValue();\r\n if (dadosNewForm.pme_descricao !== undefined && dadosNewForm.pme_tipocarga !== undefined && dadosNewForm.mdf_unidadepeso !== undefined) {\r\n let dados = {\r\n ser_id: formManifes.ser_id,\r\n mdf_infadicionalfisco: dadosNewForm.mdf_infadicionalfisco || null,\r\n mdf_infcomplentar: dadosNewForm.mdf_infcomplentar || null,\r\n mdf_ufinicio: estadoInicioSelect,\r\n mdf_uffim: estadoFinalSelect,\r\n mdf_tipoemitente: dadosNewForm.mdf_tipoemitente,\r\n mdf_unidadepeso: dadosNewForm.mdf_unidadepeso,\r\n\r\n produtopredominantemdfe: {\r\n pme_ncm: dadosNewForm.pme_ncm,\r\n pme_descricao: dadosNewForm.pme_descricao,\r\n pme_ean: dadosNewForm.pme_ean,\r\n pme_tipocarga: dadosNewForm.pme_tipocarga,\r\n pme_cepcarrega: dadosNewForm.pme_cepcarrega,\r\n pme_cepdescarrega: dadosNewForm.pme_cepdescarrega\r\n },\r\n modalrodoviariomdfe: {\r\n vei_id: dadosNewForm.vei_id,\r\n rod_ciot: dadosNewForm.rod_ciot,\r\n rod_cpfcnpjciot: dadosNewForm.rod_cpfcnpjciot,\r\n vei_id_reboque1: dadosNewForm.vei_id_reboque1 || null,\r\n vei_id_reboque2: dadosNewForm.vei_id_reboque2 || null,\r\n vei_id_reboque3: dadosNewForm.vei_id_reboque3 || null\r\n },\r\n\r\n motoristasmdfe: listaMotorista.map(motorista => ({ fun_id: motorista.fun_id })),\r\n seguromdfe: [...listaSeguro],\r\n percursomdfe: [...listaPercurso],\r\n docreferenciadomdfe: [...listaDocs],\r\n };\r\n\r\n api.post(`ManifestoEletronico/Incluir`, dados).then(\r\n res => {\r\n let teste = res;\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro)\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar()\r\n }\r\n )\r\n } else {\r\n notification.warning({ message: 'Atenção!', description: 'Preencha os campos obrigatórios' });\r\n carregando(false);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n proximaPag.setProximaPag(e);\r\n }} current={pages.tagPages}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.tagPages === 0 &&\r\n
\r\n \r\n
\r\n \r\n \"Adicione\r\n Adicione os Documentos Fiscais do Manifesto\r\n \r\n Adicione os Documentos Fiscais do Manifesto\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
(\r\n \r\n {doc_sequencia}\r\n \r\n )\r\n },\r\n {\r\n title: 'Chave',\r\n render: ({ doc_chaveacesso }) => (\r\n {doc_chaveacesso}\r\n )\r\n },\r\n {\r\n title: 'Modelo',\r\n width: 75,\r\n align: 'center',\r\n render: ({ doc_modelodoc }) => (\r\n {doc_modelodoc}\r\n )\r\n },\r\n {\r\n title: 'Peso',\r\n width: 100,\r\n align: 'center',\r\n render: ({ doc_pesobruto }) => (\r\n {doc_pesobruto}\r\n )\r\n },\r\n {\r\n title: 'Valor Total',\r\n width: 130,\r\n align: 'right',\r\n render: ({ doc_valortotal }) => (\r\n
\r\n R$ {FormatNumber(doc_valortotal, true)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n setOpenModal(false)} listaDocs={listaDocs} setListaDocs={setListaDocs} />\r\n \r\n }\r\n {pages.tagPages === 1 &&\r\n \r\n }\r\n {pages.tagPages === 2 &&\r\n \r\n }\r\n {pages.tagPages === 3 &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Drawer, Row, Col, Button, Modal, Form } from 'antd';\r\nimport { useStateValue } from \"../../state\";\r\nimport { MinusOutlined, CloseOutlined, ExclamationCircleOutlined, RightOutlined, LeftOutlined, SaveOutlined } from '@ant-design/icons';\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport ManutencaoManifestoEletronico from \"./manutencao\";\r\n\r\nexport default function DrawerManifestoEletronico({ }) {\r\n const [formManifesto] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [tagPages, setTagPages] = useState(null);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n\r\n const onCloseDrawer = () => {\r\n Modal.confirm({\r\n title: \"Cancelar?\",\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n })\r\n }\r\n\r\n function fecharDrawer() {\r\n formManifesto.resetFields();\r\n setTagPages(0);\r\n setProximaPag(null);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n setCarregando(false);\r\n }\r\n\r\n return (\r\n }\r\n onClose={() => onCloseDrawer()}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Form, Input, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, CloudUploadOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { HasValue, novaAbaNavegador } from \"../../../services/funcoes\";\r\nimport { MaskFormat, FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalReenviarMdfeSefaz({ dados, exibirModalReenviarMdfeSefaz, fecharModalReenviarMdfeSefaz, titleModal, textoBotao }) {\r\n const [form] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModalReenviarMdfeSefaz();\r\n }\r\n });\r\n };\r\n\r\n const realizarReenvioMdfeSefaz = () => {\r\n setCarregando(true);\r\n let _link = `ManifestoEletronico/ReenviarMdfeSefaz/${dados.mdf_id}`;\r\n\r\n api.post(_link).then(\r\n (retornoNF) => {\r\n if (retornoNF.status === 200) {\r\n if (retornoNF.data.mdf_status === 1 && !!retornoNF.data.mdf_chavemdfe) {\r\n notification.success({ message: 'Sucesso', description: `MDF-e Autorizada com sucesso!` });\r\n //novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${retornoNF.data.mdf_chavemdfe}`);\r\n } else {\r\n notification.error({ description: 'Não foi possível Autorizar Manifesto Eletrônico!', message: `Aviso` });\r\n }\r\n } else {\r\n notification.error({ description: 'Não foi possível Autorizar Manifesto Eletrônico!', message: `Aviso` });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n if (!!erro.response && !!erro.response.data) {\r\n notification.error({ description: erro.response.data, message: `Aviso` });\r\n } else {\r\n notification.error({ description: 'Não foi possível Autorizar Manifesto Eletrônico!', message: `Aviso` });\r\n }\r\n setCarregando(false);\r\n }\r\n ).finally(() => {\r\n setCarregando(false);\r\n form.resetFields();\r\n fecharModalReenviarMdfeSefaz();\r\n });\r\n console.log(dados)\r\n }\r\n return (\r\n \r\n Reenviar MDF-e Sefaz\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n destroyOnClose\r\n >\r\n
\r\n \r\n \r\n {dados.mdf_numero}\r\n \r\n \r\n \r\n \r\n {dados.mdf_chavemdfe} \r\n \r\n \r\n \r\n \r\n {dados.vei_descricao + ' - ' + dados.vei_placa}\r\n \r\n \r\n \r\n \r\n {dados.mdf_serie}\r\n \r\n \r\n {dados.mdf_modelo}\r\n \r\n \r\n \r\n \r\n {moment(dados.mdf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n {FormatNumber(dados.valortotalmdfe, true)} \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Form, Input, Select, Collapse, Menu, Tag, Dropdown, Popover, notification } from \"antd\";\r\nimport { BotaoAbrirChamado, BreadcrumbPage, ComboData, Data, Imprimir, TabelaDados } from \"../../components\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, CloseOutlined, CloudUploadOutlined, EyeOutlined, MoreOutlined, PlusOutlined, PrinterOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions, listagemActions } from \"../../actions\";\r\nimport DrawerManifestoEletronico from \"./drawer\";\r\nimport moment from \"moment\";\r\nimport api from '../../services/api';\r\nimport { formatarCpfCnpj, novaAbaNavegador } from \"../../services/funcoes\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport ModalReenviarMdfeSefaz from \"../../components/modals/modalReenviarMdfeSefaz\";\r\n\r\nexport default function ManifestoEletronico({ }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [open, setOpen] = useState(false);\r\n const [formParam] = Form.useForm();\r\n const [dados, setDados] = useState({});\r\n const [listaStatus, setListaStatus] = useState([]);\r\n const [openModalReenviarMdfeSefaz, setModalReenviarMdfeSefaz] = useState(false);\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n useEffect(() => {\r\n form.setFieldsValue({ dataFinal: moment(new Date()) });\r\n form.setFieldsValue({ dataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n filtrosAvancados();\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-mdf_dataemissao' } });\r\n carregarDados();\r\n }, []);\r\n\r\n function filtrosAvancados(value) {\r\n let sql = \"\";\r\n sql += !!formParam.getFieldValue().status ? `&StatusMDFe=${formParam.getFieldValue().status}` : \"\";\r\n sql += !!form.getFieldValue().dataInicial ? `&DataInicial=${moment(form.getFieldValue().dataInicial).format('YYYY-MM-DD')}` : `&dataInicial=${moment(new Date()).format('YYYY-MM-DD')}`;\r\n sql += !!form.getFieldValue().dataFinal ? `&DataFinal=${moment(form.getFieldValue().dataFinal).format('YYYY-MM-DD')}` : `&dataFinal=${moment(new Date).format('YYYY-MM-DD')}`;\r\n //sql += !!form.getFieldValue().ser_serie ? `&SerieFiscal=${form.getFieldValue().ser_serie}`: \"\";\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: `${!!value ? value : !!formParam.getFieldValue().filtroPor ? formParam.getFieldValue().filtroPor : ''}${sql}`, pagina: 1 } });\r\n };\r\n\r\n function exibirDrawer() {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n\r\n function retornaDescricaoStatus(mdf_status) {\r\n if (!!listaStatus) {\r\n let status = listaStatus.filter((status) => (status.key === mdf_status))[0];\r\n return !!status ? status.value : \"\";\r\n }\r\n };\r\n\r\n function autorizarMdfe(record) {\r\n setDados(record);\r\n setModalReenviarMdfeSefaz(true);\r\n };\r\n\r\n function encerrarMdfe(record) {\r\n api.post(`ManifestoEletronico/EncerrarMdfe/${record.mdf_id}`).then(\r\n (retornoNF) => {\r\n if (retornoNF.status === 200) {\r\n if (retornoNF.data.mdf_status === 7) {\r\n notification.success({ message: 'Sucesso', description: `MDF-e Encerrada com sucesso!` });\r\n } else {\r\n notification.error({ description: 'Não foi possível Encerrar Manifesto Eletrônico!', message: `Aviso` });\r\n }\r\n } else {\r\n notification.error({ description: 'Não foi possível Encerrar Manifesto Eletrônico!', message: `Aviso` });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n if (!!erro.response && !!erro.response.data) {\r\n notification.error({ description: erro.response.data, message: `Aviso` });\r\n } else {\r\n notification.error({ description: 'Não foi possível Encerrar Manifesto Eletrônico!', message: `Aviso` });\r\n }\r\n }\r\n ).finally(() => {\r\n\r\n });\r\n console.log(dados)\r\n };\r\n\r\n function exportarXML(chaveMdfe) {\r\n api.get(`ManifestoEletronico/ExportarXml?chaveMdfe=${chaveMdfe}`).then(\r\n res => {\r\n let linkOculto = document.createElement('a');\r\n linkOculto.href = 'data:text/xml,' + encodeURIComponent(atob(res.data));\r\n linkOculto.download = 'MDFe-' + chaveMdfe + '.xml';\r\n document.body.appendChild(linkOculto);\r\n linkOculto.click();\r\n linkOculto.remove();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n function imprimirDamdfe(dados) {\r\n if (dados.mdf_status == 1 && !!dados.mdf_chavemdfe) {\r\n novaAbaNavegador(`Danfe/GerarDamdfe?chaveMdfe=${dados.mdf_chavemdfe}`)\r\n }\r\n };\r\n\r\n function recarregarLista() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-mdf_dataemissao' } });\r\n };\r\n\r\n function carregarDados() {\r\n retornaStatus();\r\n };\r\n\r\n function retornaStatus() {\r\n api.get('Enum/Listar?nome=StatusMDFe').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setListaStatus(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n {(record.mdf_status === 4 || record.mdf_status === 0) &&\r\n \r\n }\r\n {(record.mdf_status === 1) &&\r\n \r\n }\r\n \r\n )\r\n };\r\n function menuTableOutros(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n filtrosAvancados(valor)} allowClear />\r\n \r\n \r\n \r\n {\r\n form.setFieldsValue({ DataFinal: moment(new Date()) });\r\n form.setFieldsValue({ DataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n form.setFieldsValue({ dataFinal: moment(new Date()) });\r\n form.setFieldsValue({ dataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n filtrosAvancados();\r\n }} />\r\n \r\n \r\n \r\n filtrosAvancados()}\r\n mode=\"multiple\"\r\n placeholder=\"Status Nota\"\r\n >\r\n {listaStatus.map((status) => (\r\n {status.value}\r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n filtrosAvancados()} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {mdf_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Status',\r\n width: 100,\r\n render: ({ mdf_status }) => (\r\n
\r\n \r\n
\r\n \r\n \r\n {retornaDescricaoStatus(mdf_status)}\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Veículo',\r\n render: ({ vei_descricao }) => (\r\n
\r\n \r\n
\r\n {vei_descricao}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Placa',\r\n width: 150,\r\n render: ({ vei_placa }) => (\r\n
\r\n \r\n
\r\n {vei_placa}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Emissão',\r\n width: 140,\r\n render: ({ mdf_dataemissao }) => (\r\n
\r\n {moment(mdf_dataemissao).format('DD/MM/YYYY HH:mm')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Modelo',\r\n width: 80,\r\n align: 'center',\r\n render: ({ mdf_modelo, ser_serie }) => (\r\n
\r\n \r\n
\r\n {mdf_modelo}\r\n \r\n \r\n -\r\n \r\n \r\n {ser_serie}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde Docs',\r\n align: 'right',\r\n width: 100,\r\n render: ({ quantidadedocs }) => (\r\n
\r\n {quantidadedocs}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Peso Carga',\r\n align: 'right',\r\n width: 100,\r\n render: ({ pesobruto }) => (\r\n
\r\n {pesobruto}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 200,\r\n render: ({ valortotalmdfe }) => (\r\n
\r\n {FormatNumber(valortotalmdfe, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Rejeição: {mdf_cstat}{!!(mdf_xmotivo) ? (', ' + mdf_xmotivo) : ''}\r\n }\r\n \r\n \r\n \r\n Chave:\r\n \r\n {!!mdf_chavemdfe === false && \r\n NF-e não gerada\r\n }\r\n {!!mdf_chavemdfe && \r\n { }}>Clique para visualizar o Danfe}>\r\n {mdf_chavemdfe}\r\n \r\n }\r\n {mdf_status === 1 && mdf_status === 7 && \r\n { }} target=\"_blank\">\r\n Consultar Sefaz\r\n \r\n }\r\n \r\n \r\n \r\n Série: {(!!mdf_serie > 0 ? mdf_serie : 'Não Informada')}\r\n \r\n \r\n\r\n \r\n )\r\n }} />\r\n \r\n \r\n { setModalReenviarMdfeSefaz(false); recarregarLista() }} />\r\n \r\n )\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form, Drawer } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, RetweetOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoGrupoProduto from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerGrupoProduto({openDrawerGrupo, setOpenDrawerGrupo, cadGrupo, retornoSalvar}) {\r\n\r\n const [formGrupoProduto] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (manutencao.dados !== null) {\r\n formGrupoProduto.setFieldsValue(manutencao.dados);\r\n }\r\n else {\r\n formGrupoProduto.setFieldsValue({gru_ativo:true});\r\n }\r\n\r\n function salvandoDados(retorno) {\r\n if(!!retornoSalvar){\r\n retornoSalvar(retorno);\r\n } \r\n fecharDrawer();\r\n }\r\n\r\n function fecharDrawer() {\r\n formGrupoProduto.resetFields();\r\n\r\n if(!!openDrawerGrupo) {\r\n setOpenDrawerGrupo(false);\r\n }\r\n else {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n }\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n \r\n return (\r\n\r\n }\r\n onClose={() => onClose()}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Popover, notification, Modal } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport DrawerGrupoProduto from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir, Duplicar } from \"../../components\";\r\n\r\nexport default function GrupoProduto() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+gru_nome'}}), []);\r\n\r\n function excluirRegistro(id) {\r\n api.delete(`GrupoProduto/Excluir/${id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Registro excluído com sucesso!\" });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n }, erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+gru_nome' } });\r\n });\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n }; \r\n\r\n const modalDuplicarDados = (dados) => {\r\n Modal.confirm({\r\n title: 'Duplicar?',\r\n icon: ,\r\n content: `Deseja duplicar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n dados.duplicar = true;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados }});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true }});\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {gru_id}\r\n \r\n \r\n ),\r\n },\r\n { \r\n title: 'Grupos de Produtos', \r\n render: ({gru_nome}) => (\r\n
\r\n {gru_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center', \r\n fixed: 'right',\r\n width: 95,\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n } onClick={() => {modalDuplicarDados(dados)}}/>\r\n \r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record }});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true }});\r\n }} icon={}/>\r\n \r\n \r\n } onClick={() => {modalExcluir(dados.gru_id)}} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n );\r\n \r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form, Drawer } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport ManutencaoSubGrupo from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerSubGrupo({editando, openDrawerSubGp, setOpenDrawerSubGp, cadSubGp, retornoSalvar, gruId}) {\r\n\r\n const [ formSubGrupo ] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (manutencao.dados !== null ) {\r\n formSubGrupo.setFieldsValue(manutencao.dados);\r\n }\r\n else {\r\n formSubGrupo.setFieldsValue({sgb_ativo:true})\r\n }\r\n\r\n function salvandoDados(retorno) {\r\n if(!!retornoSalvar){\r\n retornoSalvar(retorno);\r\n }\r\n \r\n fecharDrawer();\r\n }\r\n function fecharDrawer() {\r\n formSubGrupo.resetFields();\r\n\r\n if(!!openDrawerSubGp){\r\n setOpenDrawerSubGp(false);\r\n }\r\n else {\r\n editando.setEditando(false);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+sgp_nome' } });\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n onClose={() => onClose()}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Popover, Modal, notification } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerSubGrupo from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir } from \"../../components\";\r\n\r\nexport default function SubGrupo() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [editando, setEditando] = useState(false);\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+sgp_nome' } }), []);\r\n\r\n function excluirRegistro(id) {\r\n api.delete(`SubGrupo/Excluir/${id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Registro excluído com sucesso!\" });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+sgp_nome' } });\r\n });\r\n }\r\n\r\n function editar(record) {\r\n setEditando(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n \r\n return (\r\n
\r\n \r\n \r\n\r\n
\r\n (\r\n \r\n \r\n {sgp_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Subgrupos de Produtos',\r\n render: ({ sgp_nome }) => (\r\n
\r\n {sgp_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Grupo',\r\n width: '50%',\r\n render: ({ grupo }) => (\r\n
\r\n {grupo?.gru_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n editar(record)\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => { modalExcluir(record.sgp_id) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n\r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Typography, Divider, Input, Select, notification } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { InputPercentual, InputPreco, SelectPaginacao, SelectPaginado } from \"../../components\";\r\nimport { selectPaginadoActions, manutencaoActions } from \"../../actions\";\r\nimport { getRegimeTributario } from \"../../services/auth\";\r\nimport { debounce } from \"@material-ui/core\";\r\n\r\nexport default function TabProdutoTributacao({ formulario }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [listaCest, setListaCest] = useState([]);\r\n const [regimeTrib, setRegimeTrib] = useState(parseInt(getRegimeTributario()));\r\n const [listaCstOrigem, setListaCstOrigem] = useState([]);\r\n const [hiddenFci, setHiddenFci] = useState(true);\r\n const [showGas, setShowGas] = useState(false);\r\n const [listaAnp, setlistaAnp] = useState([]);\r\n const [listaTipoProdutosSped, setListaTipoProdutoSped] = useState([]);\r\n const [listaNcm, setListaNcm] = useState([]);\r\n\r\n useEffect(() => carregarDados(), []);\r\n\r\n useEffect(() => {\r\n if (listaTipoProdutosSped.length > 0) {\r\n if (!!!formulario.getFieldValue().tpi_id) {\r\n formulario.setFieldsValue({ tpi_id: listaTipoProdutosSped[0].tpi_id });\r\n }\r\n }\r\n }, [listaTipoProdutosSped])\r\n\r\n function carregarDados() {\r\n if (!!manutencao.dados?.ncm_codigo) {\r\n api.get(`produto/BuscarCest?CodigoNcm=${manutencao.dados.ncm_codigo}`).then(res => {\r\n if (res.status === 200) setListaCest(res.data);\r\n }).catch((erro) => console.error(erro));\r\n }\r\n\r\n api.get(`CstOrigemMercadoria/ListarTodos`).then(res => {\r\n if (res.status === 200) {\r\n setListaCstOrigem(res.data);\r\n if (!!manutencao.dados?.orm_id) {\r\n let number = parseInt(manutencao.dados.orm_id)\r\n formulario.setFieldsValue({ orm_id: res.data[number].orm_id });\r\n } else {\r\n formulario.setFieldsValue({ orm_id: res.data[0].orm_id });\r\n }\r\n checkMarcadores();\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`tipoprodutosped/listar`).then(res => {\r\n if (!!formulario.getFieldValue().tpi_id && res.data.length > 0 && !res.data?.find((tp) => { return tp.tpi_id === formulario.getFieldValue().tpi_id })) {\r\n formulario.setFieldsValue({ tpi_id: null });\r\n }\r\n setListaTipoProdutoSped(res.data);\r\n\r\n }).catch((erro) => console.error(erro));\r\n\r\n let lista = [];\r\n if (!!manutencao.dados?.ncm_id)\r\n lista.push({ name: \"ncm_id\", campo: \"IdNcm\", value: manutencao.dados?.ncm_id });\r\n\r\n if (!!manutencao.dados?.icm_id)\r\n lista.push({ name: \"icm_id\", campo: \"Codigo\", value: manutencao.dados?.icm_id })\r\n\r\n if (!!manutencao.dados?.pis_id)\r\n lista.push({ name: \"pis_id\", campo: \"Id\", value: manutencao.dados?.pis_id });\r\n\r\n if (!!manutencao.dados?.anp_id) {\r\n lista.push({ name: \"anp_id\", campo: \"IdAnp\", value: manutencao.dados?.anp_id });\r\n if (manutencao.dados?.anp_codigo === 210203001)\r\n setShowGas(true);\r\n }\r\n if (!!manutencao.dados?.cbf_id && regimeTrib === 3)\r\n lista.push({ name: \"cbf_id\", campo: \"Id\", value: manutencao.dados?.cbf_id });\r\n\r\n if (lista.length > 0) {\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n };\r\n\r\n\r\n function checkMarcadores() {\r\n if (formulario.getFieldValue(['orm_id']) == 0 || formulario.getFieldValue(['orm_id']) == 4)\r\n setHiddenFci(true);\r\n else\r\n setHiddenFci(false);\r\n };\r\n function checkAnp(anp) {\r\n // conforme NT\r\n if (!!anp && anp.anp_codigo === 210203001) {\r\n formulario.setFieldsValue({ anp_codigo: anp.anp_codigo });\r\n setShowGas(true);\r\n }\r\n else {\r\n if (anp)\r\n formulario.setFieldsValue({ anp_codigo: anp.anp_codigo });\r\n else\r\n formulario.setFieldsValue({ anp_codigo: null });\r\n setShowGas(false);\r\n }\r\n };\r\n\r\n\r\n function buscarCest(ncm) {\r\n if (listaNcm.length > 0) {\r\n let _lista = [...listaNcm]\r\n if (!!formulario.getFieldValue().ncm_id) {\r\n let ncm = _lista.find(c => c.ncm_id == formulario.getFieldValue().ncm_id)\r\n formulario.setFieldsValue({ ncm_ativo: ncm.ncm_ativo });\r\n console.log(ncm);\r\n if (ncm.ncm_ativo === false)\r\n notification.warn({ message: 'Atenção', description: \"NCM está inativo na base de dados do SEFAZ! Certifique-se de que o NCM que você está usando está correto na aba Dados Tributários\" });\r\n }\r\n }\r\n if (!!ncm) {\r\n api.get(`produto/BuscarCest?IdNcm=${ncm}`).then(res => {\r\n if (res.status === 200) setListaCest(res.data);\r\n formulario.setFieldsValue({ cen_id: null });\r\n }).catch((erro) => console.error(erro));\r\n }\r\n };\r\n\r\n\r\n const onFinish = values => {\r\n console.log('values trib', values);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Dados Dados Tributários\r\n \r\n \r\n Defina as Tributações do Produto.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTipoProdutosSped.map((tp) => ({tp.tpi_id} - {tp.tpi_descricao} ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaCstOrigem.map((ori) => ({ori.orm_id} - {ori.orm_descricao}))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n buscarCest(ncm)} onChangeFunction={(ncm) => buscarCest(ncm)}\r\n conteudo={\r\n ncm => ({ncm.ncm_codigo.codigoNcm} - {ncm.ncm_descricao})}\r\n />\r\n \r\n \r\n prevValues.hiddenCest !== currentValues.hiddenCest}>\r\n {listaCest.length > 0 &&\r\n \r\n 0 ? [{ required: true, message: 'Selecione a Classificação do CEST' }] : null}>\r\n { return { label: `${cest.cet_id} - ${cest.cet_descricao}`, value: cest.cen_id } })}>\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n ({icms.icm_id} - {icms.icm_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n ({pis.pis_id} - {pis.pis_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n checkAnp(listaAnp.find(l => l.anp_id == anp));\r\n }}\r\n onClearFunction={(anp) => checkAnp(anp)}\r\n placeholder=\"Selecione o Código ANP(Caso For combustível)\"\r\n conteudo={\r\n anp => ({anp.anp_codigo} - {anp.anp_descricao})\r\n }\r\n />\r\n \r\n \r\n {regimeTrib === 3 && \r\n \r\n ({v.cbf_codigo} - {v.cbf_descricao} )\r\n } />\r\n \r\n }\r\n {showGas && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Table, Form, Tag, Modal } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { ModalListaPreco } from \"../../components/modals/\";\r\n\r\nexport default function TabListaPreco({ listaDePrecos, setListaDePrecos, listaPrecoExclusao }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [openModal, setOpenModal] = useState(false);\r\n\r\n const modalConfirmaExclusao = (record) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir a lista de preço ${record.ltp_id}-${record.ltp_nome} ?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n removeLista(record);\r\n }\r\n });\r\n };\r\n\r\n const removeLista = (record) => {\r\n let ltp_id = record.ltp_id;\r\n const newData = [...listaDePrecos];\r\n const index = newData.findIndex((item) => record.key === item.key);\r\n let listaExclusao = [...listaPrecoExclusao.listaPrecoExclusao];\r\n if (!!ltp_id){\r\n listaExclusao.push(newData.find(i => i.ltp_id === ltp_id));\r\n listaPrecoExclusao.setListaPrecoExclusao(listaExclusao);\r\n } \r\n newData.splice(index, 1);\r\n setListaDePrecos(newData.map((x, idx) => ({ key: idx, ...x })));\r\n };\r\n\r\n const editarLista = (record, indice) => {\r\n form.setFieldsValue(record);\r\n setOpenModal(true);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Demais Demais Listas de Preços Deste Produto\r\n \r\n Demais Listas de Preços deste Produto. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{return !lista.ltp_principal})} columns={[\r\n {\r\n title: 'Código',\r\n width: 75,\r\n align: 'center',\r\n render: ({ ltp_id }) => (\r\n \r\n {ltp_id}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição da Lista de Preço',\r\n render: ({ ltp_nome }) => (\r\n {ltp_nome}\r\n ),\r\n },\r\n\r\n {\r\n title: 'Valor (R$)',\r\n editable: true,\r\n align: 'right',\r\n render: ({ lpi_valorvenda }) => (\r\n
\r\n {FormatNumber(lpi_valorvenda, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{x: 900}}/>\r\n \r\n \r\n setOpenModal(false)} />\r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Typography, Divider, Checkbox, Select, Button, Tag, Popover, Table, Upload, Input, InputNumber, Modal, Collapse } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { PlusOutlined, AppstoreOutlined, FileImageOutlined, DeleteOutlined, DownloadOutlined, CheckOutlined, ExclamationCircleOutlined, SyncOutlined, SearchOutlined, EyeOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { arredonda, info, validarEan } from \"../../services/funcoes\";\r\n\r\nexport default function TabGrade({ gerarEANProduto, formulario, formGrade, listaDeGrades, setListaDeGrades }) {\r\n\r\n const [{ ui, manutencao, parametrosEmpresa }, dispatch] = useStateValue();\r\n const [listaModalidadesGrades, setModalidadesGrades] = useState([]);\r\n const [listaModalidadeItens, setListaModalidadeItens] = useState([]);\r\n const [criarGrade, setCriarGrade] = useState(false);\r\n const [openModalImgGrade, setOpenModalImgGrade] = useState(false);\r\n const [dadosImgGrade, setDadosImgGrade] = useState([]);\r\n const [detalhesModalImg, setDetalhesModalImg] = useState({});\r\n const [itensGradeSelecionados, setItensGradeSelecionados] = useState([]);\r\n const [modalidadesAdicionadas, setModalidadesAdicionadas] = useState([]);\r\n const [previewImage, setPreviewImage] = useState(\"\");\r\n const [previewVisible, setPreviewVisible] = useState(false);\r\n const inputPesquisa = React.createRef();\r\n const [open, setOpen] = useState(false);\r\n useEffect(() => carregarDados(), []);\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n useEffect(() => {\r\n if (open) {\r\n setTimeout(() => {\r\n if (!!inputPesquisa && !!inputPesquisa.current) {\r\n inputPesquisa.current.focus();\r\n }\r\n }, 200);\r\n }\r\n }, [open]);\r\n\r\n function carregarDados() {\r\n api.get(`ModalidadeGrade/ListarModalidade?PageSize=500`).then(res => {\r\n if (res.status === 200) setModalidadesGrades(res.data.items);\r\n }).catch((erro) => console.error(erro));\r\n };\r\n\r\n useEffect(() => {\r\n setItensGradeSelecionados([]);\r\n setModalidadesAdicionadas([]);\r\n }, [manutencao.dados]);\r\n\r\n function atualizarFormGrade(listaGrades = [...listaDeGrades]) {\r\n formGrade.resetFields();\r\n listaGrades.forEach((item, indice) => {\r\n item.key = indice + 1;\r\n formGrade.setFieldsValue({\r\n ['prg_ean' + item.key]: item.prg_ean,\r\n ['pre_custoultimacompra' + item.key]: (!!item.pre_custoultimacompra ? arredonda(item.pre_custoultimacompra, 2) : null),\r\n ['prg_markup' + item.key]: (!!item.prg_markup ? arredonda(item.prg_markup, 2) : null),\r\n ['lpi_valorvenda' + item.key]: (!!item.lpi_valorvenda ? arredonda(item.lpi_valorvenda, 2) : null),\r\n ['prg_codigoetiqueta' + item.key]: item.prg_codigoetiqueta\r\n });\r\n });\r\n setListaDeGrades(listaGrades);\r\n };\r\n\r\n function buscarModalidadeItem(modalidade) {\r\n if (modalidade) {\r\n api.get(`ModalidadeGrade/BuscarModalidade/${modalidade}`).then(res => {\r\n if (res.status === 200) {\r\n setListaModalidadeItens(res.data.map((x, idx) => ({ filtrado: true, checked: false, ...x })));\r\n }\r\n }).catch((error) => console.error(error));\r\n } else {\r\n setListaModalidadeItens([]);\r\n }\r\n setItensGradeSelecionados([]);\r\n };\r\n\r\n function abrirModalImgGrade(record) {\r\n let detalhesModal = {};\r\n let dadosImg = [];\r\n detalhesModal.descricao = '';\r\n detalhesModal.key = record.key;\r\n record.modalidadesgrade.forEach((atributo, indice) => {\r\n detalhesModal.descricao += atributo.mgp_descricao + (indice + 1 === record.modalidadesgrade.length ? '' : ' / ');\r\n });\r\n setDetalhesModalImg(detalhesModal);\r\n if (record.imagens.length === 0) {\r\n setDadosImgGrade(dadosImg);\r\n } else {\r\n record.imagens.forEach((img, indice) => {\r\n dadosImg.push({ uid: indice + 1, url: (!!img.url ? img.url : img.conteudoImagem), principal: img.principal });\r\n if (indice + 1 === record.imagens.length) {\r\n setDadosImgGrade(dadosImg);\r\n }\r\n });\r\n }\r\n setOpenModalImgGrade(true);\r\n };\r\n\r\n const onChange = ({ fileList: newFileList }) => {\r\n setDadosImgGrade(newFileList);\r\n };\r\n\r\n function getBase64(file) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n\r\n const handlePreview = async file => {\r\n if (!file.url && !file.preview) {\r\n file.preview = await getBase64(file.originFileObj);\r\n }\r\n setPreviewImage(file.url || file.preview);\r\n setPreviewVisible(true);\r\n };\r\n\r\n function salvarDadosImgGrade() {\r\n let dadosGrade = [...listaDeGrades];\r\n let grade = dadosGrade.filter((item) => { return item.key === detalhesModalImg.key })[0];\r\n grade.imagens = [];\r\n if (dadosImgGrade.length === 0) {\r\n setListaDeGrades(dadosGrade);\r\n } else {\r\n dadosImgGrade.forEach((img, indice) => {\r\n let imgTemp = img;\r\n if (!(!!imgTemp.url)) {\r\n imgTemp.url = imgTemp.thumbUrl;\r\n }\r\n if (!(!!imgTemp.principal)) {\r\n imgTemp.principal = false;\r\n }\r\n grade.imagens.push(imgTemp);\r\n if (indice + 1 === dadosImgGrade.length) {\r\n setListaDeGrades(dadosGrade);\r\n }\r\n });\r\n }\r\n setOpenModalImgGrade(false);\r\n };\r\n\r\n function calcularValorVendaPorMarkup(key) {\r\n let valorVenda = retornaPrecoPorMarkup(formGrade.getFieldValue(['pre_custoultimacompra' + key]), formGrade.getFieldValue(['prg_markup' + key]));\r\n formGrade.setFieldsValue({ ['lpi_valorvenda' + key]: valorVenda });\r\n };\r\n\r\n function retornaPrecoPorMarkup(custo, markup) {\r\n if (parseFloat(custo) > 0 && parseFloat(markup) > 0) return (parseFloat(custo) * parseFloat(markup)).toFixed(2);\r\n else return null;\r\n };\r\n\r\n function recalcularMarkupDoProduto(key) {\r\n if (parseFloat(formGrade.getFieldValue(['pre_custoultimacompra' + key])) > 0 && parseFloat(formGrade.getFieldValue(['lpi_valorvenda' + key])) > 0) {\r\n let markupCalculado = (parseFloat(formGrade.getFieldValue(['lpi_valorvenda' + key])) / parseFloat(formGrade.getFieldValue(['pre_custoultimacompra' + key]))).toFixed(2);\r\n formGrade.setFieldsValue({ ['prg_markup' + key]: markupCalculado })\r\n } else {\r\n formGrade.setFieldsValue({ ['prg_markup' + key]: parametrosEmpresa.markupProduto });\r\n }\r\n };\r\n\r\n function verificaEanExiste(key) {\r\n let ean = formGrade.getFieldValue(['prg_ean' + key]);\r\n if (!!ean) {\r\n let produto = (!!formulario.getFieldValue('pro_id') ? `&IdProduto=${formulario.getFieldValue('pro_id')}` : '');\r\n api.get(`Produto/verificaEanExistente?CodigoEan=${ean}${produto}`).then(res => {\r\n if (res.status === 200) {\r\n if (!!res.data && res.data.existe == true) {\r\n info(\"Este EAN já existe em outro produto!\", \"EAN já informado!\");\r\n formGrade.setFieldsValue({ ['prg_ean' + key]: null });\r\n } else {\r\n for (let campo in formGrade.getFieldsValue()) {\r\n if (formGrade.getFieldsValue()[campo] === ean && campo !== ('prg_ean' + key)) {\r\n info(\"Este EAN já existe em outro produto!\", \"EAN já informado!\");\r\n formGrade.setFieldsValue({ ['prg_ean' + key]: null });\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n validaEanGrade();\r\n }).catch((erro) => console.error(erro));\r\n }\r\n };\r\n function validaEanGrade() {\r\n let key = 0;\r\n for (let campo in listaDeGrades) {\r\n key++;\r\n let codEan = formGrade.getFieldValue(['prg_ean' + key]);\r\n if (codEan !== \"\") {\r\n if (codEan.startsWith(\"7\") && codEan.length === 13)\r\n formulario.setFieldsValue({ pro_eaninvalido: false });\r\n else {\r\n formulario.setFieldsValue({ pro_eaninvalido: true });\r\n break\r\n }\r\n }\r\n }\r\n }\r\n\r\n const modalExcluirGrade = (grade) => {\r\n Modal.confirm({\r\n title: 'Remover Grade do Produto?',\r\n icon: ,\r\n content: `Você deseja realmente remover esta grade do produto?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirGrade(grade);\r\n }\r\n });\r\n };\r\n\r\n function excluirGrade(grade) {\r\n if (!!grade.prg_id) {\r\n api.delete(`ProdutoGrade/ExcluirGrade/${grade.prg_id}`).then((res) => {\r\n if (res.data) {\r\n Modal.success({\r\n content: 'A Grade do produto foi removida com sucesso!',\r\n });\r\n atualizarGrade();\r\n } else {\r\n modalInativarGrade(grade.prg_id);\r\n }\r\n }, (erro) => {\r\n modalInativarGrade(grade.prg_id);\r\n });\r\n } else {\r\n let listaGrades = [...listaDeGrades];\r\n let index = listaGrades.findIndex(i => i.key === grade.key);\r\n listaGrades.splice(index, 1);\r\n listaGrades.map((item, indice) => {\r\n item.key = indice + 1;\r\n });\r\n setListaDeGrades(listaGrades);\r\n\r\n Modal.success({\r\n content: 'A Grade do produto foi removida com sucesso!',\r\n });\r\n atualizarFormGrade(listaGrades);\r\n }\r\n };\r\n\r\n const modalInativarGrade = (codigoGrade) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir a grade!',\r\n icon: ,\r\n content: `A Grade deve conter referências com outros registros!`,\r\n okText: 'Inativar registro',\r\n cancelText: 'Não fazer nada',\r\n centered: true,\r\n onOk() {\r\n ativarInativarItemGrade(codigoGrade, false);\r\n }\r\n });\r\n\r\n };\r\n\r\n function ativarInativarItemGrade(codigoGrade, status) {\r\n api.put(`ProdutoGrade/ativarInativar?codigoGrade=${codigoGrade}&status=${status}`).then(\r\n (res) => {\r\n Modal.success({\r\n content: `A Grade do produto foi ${status ? 'ativada' : 'inativada'} com sucesso!`,\r\n });\r\n validarGrade();\r\n atualizarGrade();\r\n }\r\n ).catch(\r\n (erro) => {\r\n error(`Não foi possivel ${status ? 'ativar' : 'inativar'} item da grade!`);\r\n }\r\n );\r\n };\r\n\r\n function validarGrade() {\r\n api.put(`ProdutoGrade/VerificarProdutoPossuiGradeAtiva?IdProduto=${formulario.getFieldsValue().pro_id}`).then(\r\n res => {\r\n formulario.setFieldsValue({ pro_ativo: res.data });\r\n if (res.data == false) {\r\n api.put(`produto/AtivarInativar?IdProduto=${formulario.getFieldsValue().pro_id}&Ativo=false`).then((res) => {\r\n })\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n\r\n function atualizarGrade() {\r\n api.get(`produto/ListarGrades?IdProduto=${formulario.getFieldsValue().pro_id}`).then(res => {\r\n if (res.status === 200) {\r\n let lista = res.data;\r\n if (lista.length > 0) {\r\n lista.forEach((grade, index) => {\r\n grade.key = index + 1;\r\n });\r\n }\r\n setListaDeGrades(lista);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n };\r\n\r\n function error(mensagem, title = 'Atenção!') {\r\n Modal.error({\r\n title: title,\r\n content: (\r\n
\r\n

{mensagem}

\r\n
\r\n )\r\n });\r\n };\r\n\r\n function adicionaGradeProduto() {\r\n if (itensGradeSelecionados.length > 0) {\r\n let listaTemp = [...modalidadesAdicionadas];\r\n let modalidade = listaModalidadesGrades.filter((item) => { return item.mgp_id === formGrade.getFieldValue('mgp_id') })[0];\r\n if (modalidadesAdicionadas.filter((modalidade) => { return modalidade.mgp_id === formGrade.getFieldValue('mgp_id') }).length > 0) {\r\n info(\"A Grade '\" + modalidade.mgp_descricao + \"' já está adicionada ao produto.\", \"Grade já adicionada!\");\r\n } else {\r\n let itens = [];\r\n listaModalidadeItens.map((item) => {\r\n if (itensGradeSelecionados.indexOf(item.mgp_id.toString()) >= 0) {\r\n itens.push(item);\r\n }\r\n });\r\n listaTemp.push({ mgp_id: modalidade.mgp_id, mgp_descricao: modalidade.mgp_descricao, itensGrade: itens });\r\n listaTemp.map((item, indice) => {\r\n item.key = indice + 1;\r\n });\r\n\r\n setModalidadesAdicionadas(listaTemp);\r\n formGrade.setFieldsValue({ mgp_id: undefined });\r\n }\r\n } else {\r\n info(\"Para adicionar a grade ao produto você deve selecionar ao menos um item de grade.\", \"Selecione ao menos um Item da Grade!\");\r\n }\r\n };\r\n\r\n function excluirModalidade(itemGrade) {\r\n Modal.confirm({\r\n title: 'Remover Grade do Produto?',\r\n icon: ,\r\n content: `Você deseja realmente remover a grade ${itemGrade.mgp_descricao} do produto?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n let lista = [...modalidadesAdicionadas];\r\n let index = lista.findIndex(i => i.key === itemGrade.key);\r\n lista.splice(index, 1);\r\n lista.map((item, indice) => {\r\n item.key = indice + 1;\r\n });\r\n setModalidadesAdicionadas(lista);\r\n Modal.success({\r\n content: 'A Grade do produto foi removida com sucesso.',\r\n });\r\n }\r\n });\r\n };\r\n\r\n function gerarGrade() {\r\n let listaGrade = [];\r\n let modalidades = [...modalidadesAdicionadas];\r\n let totalModalidadesSelecionadas = modalidades.length;\r\n let posicaoGradeProduto;\r\n if (totalModalidadesSelecionadas > 1) {\r\n let primeiraModalidade = modalidades.shift();\r\n let totalOcorrencias = 0;\r\n modalidades.forEach((value, key) => {\r\n if (totalOcorrencias === 0) {\r\n totalOcorrencias = value.itensGrade.length;\r\n } else {\r\n totalOcorrencias = totalOcorrencias * value.itensGrade.length;\r\n }\r\n });\r\n totalOcorrencias = totalOcorrencias * primeiraModalidade.itensGrade.length;\r\n for (let i = 1; i <= totalOcorrencias; i++) {\r\n listaGrade.push({\r\n prg_ean: '',\r\n prg_codigoetiqueta: '',\r\n pre_custoultimacompra: formulario.getFieldValue().pre_custoultimacompra,\r\n prg_markup: parseFloat(formulario.getFieldValue().pro_markup),\r\n lpi_valorvenda: formulario.getFieldValue().lpi_valorvenda,\r\n pre_qtde: null,\r\n prg_ativa: true,\r\n modalidadesgrade: [],\r\n imagens: []\r\n });\r\n }\r\n posicaoGradeProduto = 0;\r\n for (let i = 0; i < primeiraModalidade.itensGrade.length; i++) {\r\n let itemModalidade = primeiraModalidade.itensGrade[i];\r\n for (let x = 0; x < (totalOcorrencias / primeiraModalidade.itensGrade.length); x++) {\r\n listaGrade[posicaoGradeProduto].modalidadesgrade.push(itemModalidade);\r\n posicaoGradeProduto++;\r\n }\r\n }\r\n let totalItensGradeAnterior = primeiraModalidade.itensGrade.length;\r\n let totalOcorrenciasGrade = 0;\r\n while (modalidades.length > 1) {\r\n let modalidadeDistribuicao = modalidades.shift();\r\n modalidades.forEach((value, key) => {\r\n if (totalOcorrenciasGrade == 0) {\r\n totalOcorrenciasGrade = value.itensGrade.length;\r\n } else {\r\n totalOcorrenciasGrade = totalOcorrenciasGrade * value.itensGrade.length;\r\n }\r\n });\r\n posicaoGradeProduto = 0;\r\n for (let z = 0; z < totalItensGradeAnterior; z++) {\r\n for (let i = 0; i < modalidadeDistribuicao.itensGrade.length; i++) {\r\n let itemModalidade = modalidadeDistribuicao.itensGrade[i];\r\n for (let x = 0; x < totalOcorrenciasGrade; x++) {\r\n listaGrade[posicaoGradeProduto].modalidadesgrade.push(itemModalidade);\r\n posicaoGradeProduto++;\r\n }\r\n }\r\n }\r\n totalItensGradeAnterior = modalidadeDistribuicao.itensGrade.length;\r\n }\r\n posicaoGradeProduto = 0;\r\n for (let i = 0; i < (totalOcorrencias / modalidades[0].itensGrade.length); i++) {\r\n modalidades[0].itensGrade.forEach((value, key) => {\r\n listaGrade[posicaoGradeProduto].modalidadesgrade.push(value);\r\n posicaoGradeProduto++;\r\n });\r\n }\r\n } else {\r\n modalidades[0].itensGrade.forEach((value, key) => {\r\n listaGrade.push({\r\n prg_ean: '',\r\n prg_codigoetiqueta: '',\r\n pre_custoultimacompra: formulario.getFieldValue().pre_custoultimacompra,\r\n prg_markup: parseFloat(formulario.getFieldValue().pro_markup),\r\n lpi_valorvenda: formulario.getFieldValue().lpi_valorvenda,\r\n pre_qtde: null,\r\n prg_ativa: true,\r\n modalidadesgrade: [value],\r\n imagens: []\r\n });\r\n });\r\n }\r\n\r\n listaDeGrades.forEach((item, indice) => {\r\n listaGrade.push(item);\r\n });\r\n listaGrade.map((item, indice) => {\r\n item.key = indice + 1;\r\n });\r\n setListaDeGrades(listaGrade);\r\n setCriarGrade(false);\r\n setModalidadesAdicionadas([]);\r\n setItensGradeSelecionados([]);\r\n atualizarFormGrade(listaGrade);\r\n };\r\n\r\n function adicionarItensSelecionados(selecionados) {\r\n let listaSel = [];\r\n let listaTemp = [...listaModalidadeItens];\r\n let filtrados = listaTemp.filter((item) => { return item.filtrado });\r\n filtrados.map((item) => {\r\n item.checked = selecionados.indexOf(item.mgp_id.toString()) >= 0;\r\n });\r\n listaTemp.map((item) => {\r\n if (item.checked) {\r\n listaSel.push(item.mgp_id.toString());\r\n }\r\n });\r\n setItensGradeSelecionados(listaSel);\r\n setListaModalidadeItens(listaTemp);\r\n };\r\n\r\n const autoTabProd = (event) => {\r\n if ((event.keyCode === 13 || event.keyCode === 9) || (!!event.which && (event.which === 13 || event.which === 9))) {\r\n if (!!event.target.form) {\r\n let elementos = event.target.form.querySelectorAll('[id^=\"prg_ean\"]');\r\n for (let key in elementos) {\r\n if (!!elementos[key].setAttribute && parseInt(key) >= 0) {\r\n elementos[key].setAttribute('index2', key);\r\n }\r\n }\r\n setTimeout(() => {\r\n let index = parseInt(event.target.getAttribute('index2'));\r\n if (!!elementos[index + 1]) {\r\n elementos[index + 1].focus();\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \"Dados Dados da Grade\r\n \r\n \r\n \r\n {!criarGrade && listaDeGrades.length === 0 &&\r\n \r\n \r\n O recurso de Grades permite o controle dos produtos que podem ser comercializados contendo atributos semelhantes e/ou variáveis. Através deste recurso no sistema, é possível realizar o controle das vendas e estoque levando em consideração características específicas dos produtos, possibilitando a distinção de um mesmo produto através de atributos como cor, tamanho, tipo, voltagem, etc.\r\n Para realizar a configuração dos possíveis atributos vá para a tela de \r\n \r\n Modalidades de Grade de Produtos.\r\n \r\n \r\n \r\n }\r\n {!criarGrade && listaDeGrades.length === 0 &&\r\n \r\n \r\n \r\n }\r\n {listaDeGrades.length > 0 &&\r\n \r\n \r\n {!criarGrade &&\r\n \r\n \r\n \r\n }\r\n {criarGrade &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n }\r\n \r\n {criarGrade &&\r\n
\r\n \r\n
\r\n \r\n {\r\n buscarModalidadeItem(mod);\r\n }}\r\n options={listaModalidadesGrades.map((mod) => { return { label: `${mod.mgp_id} - ${mod.mgp_descricao}`, value: mod.mgp_id } })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (e.target.checked) {\r\n let lista = [];\r\n listaModalidadeItens.map(item => { lista.push(item.mgp_id.toString()) });\r\n setItensGradeSelecionados(lista);\r\n } else {\r\n setItensGradeSelecionados([]);\r\n }\r\n }} valuePropName=\"checked\"> Selecionar Todos \r\n \r\n \r\n \r\n prevValues.mgp_id !== currentValues.mgp_id}>\r\n {({ getFieldValue }) => {\r\n if (!!getFieldValue('mgp_id') && listaModalidadeItens.length > 0) return (\r\n \r\n \r\n \r\n } onClick={togglePesquisa}>Buscar\r\n }>\r\n \r\n {\r\n let value = e.target.value;\r\n let listaTemp = [...listaModalidadeItens];\r\n listaTemp.map((item) => {\r\n if (!!value) {\r\n item.filtrado = item.mgp_descricao.toLowerCase().indexOf(value.toLowerCase()) >= 0;\r\n } else {\r\n item.filtrado = true;\r\n }\r\n });\r\n setListaModalidadeItens(listaTemp);\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n { adicionarItensSelecionados(lista) }} value={itensGradeSelecionados} options={listaModalidadeItens.filter((item) => { return item.filtrado || !!!formGrade.getFieldValue().pesquisaGrade }).map((mod) => {\r\n return { label: `${mod.mgp_descricao}`, value: `${mod.mgp_id}` }\r\n })} />\r\n \r\n \r\n \r\n );\r\n if (!!getFieldValue('mgp_id') && listaModalidadeItens.length === 0) return (\r\n
\r\n \r\n
\r\n \r\n Não existem itens cadastrados para essa modalidade de grade!\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n para cadastrar itens para essa modalidade.\r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n prevValues.mgp_id !== currentValues.mgp_id}>\r\n {({ getFieldValue }) => {\r\n if (!!getFieldValue('mgp_id') && listaModalidadeItens.length > 0) return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n \r\n }\r\n {modalidadesAdicionadas.length > 0 &&\r\n
\r\n \r\n
\r\n
\r\n
(\r\n \r\n {key}\r\n \r\n ),\r\n }, {\r\n render: ({ mgp_descricao }) => (\r\n {mgp_descricao}\r\n ),\r\n }, {\r\n render: ({ itensGrade }) => (\r\n itensGrade.map((item) => (\r\n \r\n {item.mgp_descricao}\r\n \r\n ))\r\n ),\r\n }, {\r\n title: '',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 40,\r\n fixed: 'right',\r\n render: (itemGrade) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Adicionar etiquetas automaticamente de acordo com as quantidades de estoque da grade ao salvar o produto?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {listaDeGrades.length > 0 && !criarGrade &&\r\n
\r\n
(\r\n \r\n \r\n {key}\r\n \r\n \r\n ),\r\n }, {\r\n title: 'Itens da Grade',\r\n width: 130,\r\n render: ({ modalidadesgrade }) => (\r\n modalidadesgrade.map((item) => (\r\n \r\n {item.mgp_descricao}\r\n \r\n ))\r\n ),\r\n }, {\r\n title: '',\r\n width: 100,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'EAN/GTIN',\r\n render: ({ prg_ean, key }) => (\r\n \r\n \r\n \r\n verificaEanExiste(key)} />\r\n \r\n \r\n \r\n \r\n Custo:\r\n \r\n \r\n calcularValorVendaPorMarkup(key)} placeholder=\"Informe o custo R$\" name={'pre_custoultimacompra' + key} />\r\n \r\n \r\n \r\n \r\n Markup:\r\n \r\n \r\n calcularValorVendaPorMarkup(key)} cifrao={false} placeholder=\"Informe o Markup R$\" name={'prg_markup' + key} />\r\n \r\n \r\n \r\n \r\n Valor Venda:\r\n \r\n \r\n recalcularMarkupDoProduto(key)} placeholder=\"Informe o valor R$\" name={'lpi_valorvenda' + key} />\r\n \r\n \r\n \r\n \r\n Cód. Etiqueta:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!formulario.getFieldValue('pro_id') &&\r\n \r\n \r\n Estoque:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n ),\r\n }, {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (grade) => (\r\n
\r\n \r\n
\r\n {grade.prg_ativa &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n setPreviewVisible(false)}\r\n >\r\n \"Imagem\r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Upload, Row, Col, Typography, Divider, Button, message, Modal } from \"antd\";\r\nimport { DownloadOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function TabImagem({ listaImagens, setListaImagens, uploadPeca }) {\r\n\r\n const [previewImage, setPreviewImage] = useState('');\r\n const [previewVisible, setPreviewVisible] = useState(false);\r\n\r\n const onChange = ({ fileList: newFileList }) => {\r\n setListaImagens(newFileList);\r\n };\r\n\r\n const onPreview = async file => {\r\n if (!file.url && !file.preview) {\r\n file.preview = await getBase64(file.originFileObj);\r\n }\r\n\r\n setPreviewImage(file.url || file.preview);\r\n setPreviewVisible(true);\r\n };\r\n\r\n function getBase64(file) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n\r\n function beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n if (!isJpgOrPng) {\r\n message.error('Você só pode fazer upload de arquivos JPG/PNG!');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('A imagem deve ter menos de 2 MB!');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Imagens Imagens dos Produtos\r\n \r\n {\r\n uploadPeca ? \r\n \r\n Adicione a imagem do produto aqui. \r\n : \r\n Adicione as imagens do produto aqui. \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {listaImagens.length < uploadPeca ? 1 : 5 && 'Arraste a Imagem ou'}\r\n
\r\n \r\n \r\n \r\n \r\n setPreviewVisible(false)}\r\n >\r\n \"Imagem\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Form, Table, Tag, Modal } from \"antd\";\r\nimport { PlusOutlined, ExclamationCircleOutlined, EditOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\n\r\nimport { ModalLoteProduto } from \"../../components/modals\";\r\nimport moment from \"moment\";\r\n\r\nexport default function TabLote({ listaLote, setListaLote, casaDecimaisUnd }) {\r\n const [form] = Form.useForm();\r\n const [openModal, setOpenModal] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [sequencial, setSequencial] = useState(0);\r\n\r\n useEffect(() => {\r\n const novaListaLote = [...listaLote];\r\n novaListaLote.forEach((item, index) => {\r\n item.ordem = index + 1;\r\n });\r\n\r\n setListaLote(novaListaLote);\r\n }, [])\r\n\r\n const editarLote = (sequencia) => {\r\n setSequencial(sequencia);\r\n setEditando(true);\r\n setOpenModal(true);\r\n }\r\n\r\n const modalExcluir = (record) => {\r\n const index = listaLote.findIndex(item => item.ordem === record.ordem);\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: 'Deseja realmente excluir o lote?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n removerLote(index);\r\n }\r\n });\r\n }\r\n\r\n const removerLote = (index) => {\r\n const novaListaLote = [...listaLote];\r\n novaListaLote.splice(index, 1);\r\n\r\n novaListaLote.forEach((item, index) => {\r\n item.ordem = index + 1;\r\n });\r\n\r\n setListaLote(novaListaLote);\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Cadastro Cadastro de Lotes do Produto\r\n \r\n Cadastro de Lotes do Produto \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
(\r\n \r\n {ordem}\r\n \r\n )\r\n },\r\n {\r\n title: 'Número',\r\n width: 180,\r\n align: 'center',\r\n render: ({ prl_numerolote }) => (\r\n {prl_numerolote}\r\n )\r\n },\r\n {\r\n title: 'Qtde',\r\n width: 75,\r\n align: 'center',\r\n render: ({ prl_qtde }) => (\r\n {prl_qtde}\r\n )\r\n },\r\n {\r\n title: 'Data Entrada',\r\n render: ({ prl_dataentrada }) => (\r\n {moment(prl_dataentrada).format('DD/MM/YYYY')}\r\n )\r\n },\r\n {\r\n title: 'Data Fabricação',\r\n render: ({ prl_datafabricacao }) => (\r\n {moment(prl_datafabricacao).format('DD/MM/YYYY')}\r\n )\r\n },\r\n {\r\n title: 'Data Validade',\r\n render: ({ prl_datavencimento }) => (\r\n {moment(prl_datavencimento).format('DD/MM/YYYY')}\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n (setOpenModal(false), setEditando(false))} editando={editando} \r\n setEditando={setEditando} sequencia={sequencial} casaDecimaisUnd={casaDecimaisUnd} />\r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tabs, Row, Col, Form, Input, InputNumber, Select, Checkbox, Switch, Tooltip, Button, Modal, notification, Alert } from \"antd\";\r\nimport { QuestionCircleOutlined, BarcodeOutlined, ExclamationCircleOutlined, RestFilled } from \"@ant-design/icons\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions, selectPaginadoActions, drawerActions } from \"../../actions\";\r\nimport { calculaDigitoVerificadorEAN, isNotNullOrEmpty, validarCnpj, validarEan, ajustarTamanhoImagemBase64, resizeImageToMB } from \"../../services/funcoes\";\r\nimport { TabListaPreco, TabProdutoTributacao, TabGrade, TabImagem, TabLote } from './tabPage';\r\nimport { FormGW, FormularioDinamico, InputPreco, SelectIncluir, SelectPaginacao, Data } from \"../../components\";\r\nimport { trataRetornoFormularioDinamico, trataSetaDadosFormularioDinamico } from \"../../services/funcoes\";\r\nimport moment from \"moment\";\r\nimport DrawerMarca from \"../../pages/marca/drawer\";\r\nimport DrawerGrupoProduto from \"../../pages/grupoProdutos/drawer\";\r\nimport DrawerSubGrupo from \"../../pages/subGrupo/drawer\";\r\n\r\nexport default function ManutencaoProdutos({ formulario, nameForm, salvandoDados, aoSalvar, validarAoIniciar, editando }) {\r\n const [{ ui, manutencao, parametrosEmpresa }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [formGrade] = Form.useForm();\r\n const [listaDePrecos, setListaDePrecos] = useState([]);\r\n const [listaDeGrades, setListaDeGrades] = useState([]);\r\n const [listaImagens, setListaImagens] = useState([]);\r\n const [listaLote, setListaLote] = useState([]);\r\n const [filtroGrupo, setFiltroGrupo] = useState(null);\r\n const [listaPrecoExclusao, setListaPrecoExclusao] = useState([]);\r\n const [produtoCamposPersonalizados, setProdutoCamposPersonalizados] = useState([]);\r\n const [listaUnidadeMedida, setListaUnidadeMedida] = useState([]);\r\n const [elementosFormulario, setElementosFormulario] = useState([]);\r\n const [possuiCusto, setPossuiCusto] = useState(false);\r\n const [openDrawerMarca, setOpenDrawerMarca] = useState(false);\r\n const [openDrawerGrupo, setOpenDrawerGrupo] = useState(false);\r\n const [openDrawerSubGp, setOpenDrawerSubGp] = useState(false);\r\n const [grupoSelect, setGrupoSelect] = useState([]);\r\n const [foundGroup, setFoundGroup] = useState([]);\r\n const [casaDecimaisUnd, setCasaDecimaisUnd] = useState(0);\r\n const [exibeLote, setExibeLote] = useState(false);\r\n\r\n const trocaAbas = (pag) => {\r\n setAbaSelecionada(pag);\r\n };\r\n\r\n const listaValidacoes = [\r\n { nome: 'pro_descricao', obrigatorio: true, label: 'Descrição' },\r\n { nome: 'tpi_id', obrigatorio: true, label: 'Tipo de Produto - SPED' },\r\n { nome: 'ump_id', obrigatorio: true, label: 'Unidade de Medida' },\r\n { nome: 'orm_id', obrigatorio: true, label: 'Código Situação Tributária Origem' },\r\n { nome: 'ncm_id', obrigatorio: true, label: 'NCM - Nomenclatura Comum do Mercosul' },\r\n { nome: 'icm_id', obrigatorio: true, label: 'Classificação ICMS' }\r\n ];\r\n\r\n useEffect(() => { if (!!elementosFormulario && elementosFormulario.length) carregaDadosCamposAdicionais(); }, [elementosFormulario]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!editando.editando) {\r\n let lista = [];\r\n if (!!manutencao.dados?.mar_id) {\r\n lista.push({ name: \"mar_id\", campo: \"Codigo\", value: manutencao.dados.mar_id });\r\n }\r\n if (!!manutencao.dados?.gru_id) {\r\n lista.push({ name: \"gru_id\", campo: \"CodigoGrupo\", value: manutencao.dados.gru_id });\r\n }\r\n if (!!manutencao.dados?.sgp_id) {\r\n lista.push({ name: \"sgp_id\", campo: \"Codigo\", value: manutencao.dados.sgp_id });\r\n }\r\n if (!!manutencao.dados?.ncm_id) {\r\n lista.push({ name: \"ncm_id\", campo: \"IdNcm\", value: manutencao.dados.ncm_id });\r\n }\r\n if (!!manutencao.dados?.icm_id) {\r\n lista.push({ name: \"icm_id\", campo: \"Codigo\", value: manutencao.dados.icm_id });\r\n }\r\n if (!!manutencao.dados?.pis_id) {\r\n lista.push({ name: \"pis_id\", campo: \"Id\", value: manutencao.dados.pis_id });\r\n }\r\n if (!!manutencao.dados?.anp_id) {\r\n lista.push({ name: \"anp_id\", campo: \"IdAnp\", value: manutencao.dados.anp_id });\r\n }\r\n if (lista.length > 0) {\r\n editando.setEditando(false);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!ui.showDrawer && !!validarAoIniciar && !!formulario.getFieldValue().pro_ean) {\r\n buscarEanExistente(formulario.getFieldValue().pro_ean);\r\n }\r\n }, [ui.showDrawer])\r\n\r\n useEffect(() => {\r\n if (listaUnidadeMedida.length > 0 && !formulario.getFieldValue().ump_id) {\r\n formulario.setFieldsValue({ ump_id: listaUnidadeMedida.find(un => un.ump_id === 'UN').ump_id });\r\n }\r\n if (listaUnidadeMedida.length > 0) {\r\n checkCasaDecimalUnidadeMedida();\r\n }\r\n }, [listaUnidadeMedida]);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n carregarListas();\r\n carregarParametros();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const found = grupoSelect.find(element => element.gru_id === formulario.getFieldValue(['gru_id']));\r\n\r\n if (!!found) {\r\n setFoundGroup(found);\r\n carregarSubGrupos(found.gru_id);\r\n }\r\n }, [formulario.getFieldValue(['gru_id'])]);\r\n\r\n async function carregarParametros() {\r\n let markupLoc = await api.get(`/ParametroLocal/BuscarParametros`);\r\n if (!!markupLoc.data.par_markupproduto) {\r\n formulario.setFieldsValue({ pro_markup: markupLoc.data.par_markupproduto });\r\n } else {\r\n let markupEmp = await api.get(`/ParametroEmpresa/BuscarParametros`);\r\n if (!!markupEmp.data.par_markupproduto) {\r\n formulario.setFieldsValue({ pro_markup: markupEmp.data.par_markupproduto });\r\n }\r\n };\r\n }\r\n\r\n async function carregarListas() {\r\n let unidade = await api.get(`unidademedida/listar?PageSize=100&PageNumber=1`);\r\n if (!!formulario.getFieldValue().ump_id && unidade.data?.items.length > 0 && !unidade.data?.items?.find((un) => { return un.ump_id === formulario.getFieldValue().ump_id })) {\r\n formulario.setFieldsValue({ ump_id: null });\r\n }\r\n setListaUnidadeMedida(unidade.data?.items);\r\n\r\n carregaCamposPersonalizados();\r\n }\r\n function checkCasaDecimalUnidadeMedida() {\r\n if (!!formulario.getFieldValue().emb_ump_id) {\r\n let und = listaUnidadeMedida.find(un => un.ump_id === formulario.getFieldValue().emb_ump_id);\r\n if (und) {\r\n setCasaDecimaisUnd(und.ump_casasdecimais);\r\n }\r\n else {\r\n setCasaDecimaisUnd(0);\r\n }\r\n } else {\r\n setCasaDecimaisUnd(0);\r\n }\r\n }\r\n\r\n function carregarSubGrupos(CodigoGrupo) {\r\n if (!!CodigoGrupo) {\r\n setFiltroGrupo(`&CodigoGrupo=${CodigoGrupo}`);\r\n let lista = [];\r\n if (!!formulario.getFieldValue().gru_id) {\r\n lista.push({ name: \"sgp_id\", campo: \"CodigoGrupo\", value: formulario.getFieldValue().gru_id });\r\n }\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }\r\n function validarForm(values, listaValidacoes) {\r\n let retorno = false;\r\n if (!!listaValidacoes) {\r\n let msgRetorno = [];\r\n listaValidacoes.forEach(\r\n (validacao) => {\r\n if (validacao.obrigatorio && (!!values[validacao.nome] === false && values[validacao.nome] !== 0)) {\r\n msgRetorno.push('O campo ' + validacao.label + ' é obrigatório!');\r\n }\r\n }\r\n );\r\n if (listaDeGrades.length > 0) {\r\n let gradeValida = true;\r\n let validaValorVenda = true;\r\n listaDeGrades.forEach((grade) => {\r\n if (!!!formGrade.getFieldValue(['prg_ean' + grade.key])) {\r\n gradeValida = false;\r\n }\r\n // if (grade.lpi_valorvenda == 0 || grade.lpi_valorvenda == null && grade.prg_valorvenda != null && grade.prg_valorvenda != 0) {\r\n // grade.lpi_valorvenda = grade.prg_valorvenda;\r\n // }\r\n if (grade.prg_valorvenda == null || grade.prg_valorvenda == 0) {\r\n validaValorVenda = false;\r\n }\r\n });\r\n if (!gradeValida) {\r\n msgRetorno.push(\"Favor informar o EAN para a grade do produto!\");\r\n }\r\n if (!validaValorVenda) {\r\n msgRetorno.push(\"Valor de Venda deve ser diferente de Zero!\");\r\n }\r\n }\r\n if (values.anp_codigo === 210203001) {\r\n let val = (parseFloat(values.prc_percglp) + parseFloat(values.prc_percglpnacional) + parseFloat(values.prc_percglpimportado));\r\n if ((parseFloat(values.prc_percglp) + parseFloat(values.prc_percglpnacional) + parseFloat(values.prc_percglpimportado)) !== 100)\r\n msgRetorno.push(\"Somatorio percentuais de GLP derivado do petroleo, GLGNn e GLGNi diferente de 100!\");\r\n }\r\n if (values.emb_ump_id && (values.pru_quantidade == null || values.pru_quantidade === 0)) {\r\n msgRetorno.push(\"Quantidade da embalagem deve ser informado quando existir unidade de medida(Embalagem)\");\r\n }\r\n if (values.ncm_ativo == false) {\r\n msgRetorno.push(\"NCM está inativo na base de dados do SEFAZ! Certifique-se de que o NCM que você está usando está correto na aba Dados Tributários\");\r\n }\r\n\r\n if (msgRetorno.length > 0) {\r\n notification.warning({ message: 'Aviso', description: msgRetorno.join('\\n') })\r\n } else {\r\n retorno = true;\r\n }\r\n\r\n }\r\n return retorno;\r\n };\r\n\r\n function salvarDadosCombustivel(dadosProd) {\r\n let dadosComb = {};\r\n if (dadosProd.anp_id && dadosProd.anp_codigo === 210203001) {// Gas\r\n dadosComb.prc_percgasnatural = dadosProd.prc_percgasnatural;\r\n dadosComb.prc_percglp = dadosProd.prc_percglp;\r\n dadosComb.prc_percglpnacional = dadosProd.prc_percglpnacional;\r\n dadosComb.prc_percglpimportado = dadosProd.prc_percglpimportado;\r\n dadosComb.prc_valorpartida = dadosProd.prc_valorpartida;\r\n dadosComb.prc_qtdetemperatura = dadosProd.prc_qtdetemperatura;\r\n return dadosComb;\r\n }\r\n return null;\r\n };\r\n function salvarProdutosUnidadeMedida(dadosProd) {\r\n let dadosUnidadeMedida = [];\r\n if (dadosProd.emb_ump_id) {\r\n dadosUnidadeMedida.push({ pru_id: dadosProd.pru_id, ump_id: dadosProd.emb_ump_id, pru_quantidade: dadosProd.pru_quantidade });\r\n return dadosUnidadeMedida;\r\n }\r\n return null;\r\n };\r\n\r\n\r\n async function salvarDados(values) {\r\n let dadosProd = {};\r\n dadosProd = { ...values, ...formulario.getFieldValue() };\r\n dadosProd.orm_id = (dadosProd.orm_id).toString();\r\n dadosProd.pro_kitcomposicao = !!dadosProd.pro_kitcomposicao ? dadosProd.pro_kitcomposicao : false;\r\n dadosProd.lpi_valorvenda = parseFloat(dadosProd.lpi_valorvenda);\r\n dadosProd.listaPreco = listaDePrecos.filter(l => l.ltp_principal == false);\r\n dadosProd.produtocampopersonalizados = salvarCamposAdicionais(formulario.getFieldValue());\r\n dadosProd.pre_qtdeestoqueinicial = parseFloat(dadosProd.pre_qtde)\r\n dadosProd.pro_markup = parseFloat(dadosProd.pro_markup)\r\n dadosProd.produtoGrade = popularGrade();\r\n dadosProd.ProdutoCombustivel = salvarDadosCombustivel(dadosProd);\r\n dadosProd.ProdutoUnidades = salvarProdutosUnidadeMedida(dadosProd);\r\n dadosProd.imagens = await popularImagens();\r\n dadosProd.produtolotes = listaLote.map(item => {\r\n const { ordem, ...restante } = item;\r\n return restante;\r\n });\r\n if (validarForm(dadosProd, listaValidacoes)) {\r\n salvandoDados(true);\r\n if (dadosProd.pro_id) {\r\n editarManutencao(dadosProd);\r\n } else {\r\n incluirManutencao(dadosProd);\r\n }\r\n }\r\n };\r\n\r\n async function editarManutencao(dadosProd) {\r\n let retornoDrawer = [];\r\n api.put(`Produto/Editar`, dadosProd).then(\r\n res => {\r\n retornoDrawer = res.data;\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Produto foram salvos com sucesso!\" });\r\n aoSalvar(retornoDrawer);\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }).finally(\r\n () => {\r\n salvandoDados(false);\r\n }\r\n );\r\n }\r\n\r\n async function incluirManutencao(dadosProd) {\r\n let retornoDrawer = [];\r\n api.post(`Produto/Incluir`, dadosProd).then(\r\n res => {\r\n retornoDrawer = res.data;\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Produto foram salvos com sucesso!\" });\r\n aoSalvar(retornoDrawer);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n salvandoDados(false);\r\n }\r\n );\r\n }\r\n\r\n function salvandoDadosMarca(retorno) {\r\n let lista = [];\r\n\r\n if (retorno) {\r\n lista.push({ name: \"mar_id\", campo: \"Codigo\", value: retorno.mar_id });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }\r\n\r\n function salvandoDadosGrupo(retorno) {\r\n let lista = [];\r\n\r\n if (retorno) {\r\n lista.push({ name: \"gru_id\", campo: \"CodigoGrupo\", value: retorno });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }\r\n\r\n function salvandoDadosSubGrupo(retorno) {\r\n let lista = [];\r\n\r\n if (retorno) {\r\n lista.push({ name: \"sgp_id\", campo: \"Codigo\", value: retorno.sgp_id });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n\r\n }\r\n\r\n function popularGrade() {\r\n let dadosGrade = [...listaDeGrades];\r\n dadosGrade.forEach(\r\n (grade) => {\r\n grade.prg_ean = formGrade.getFieldValue(['prg_ean' + grade.key]);\r\n grade.prg_codigoetiqueta = formGrade.getFieldValue(['prg_codigoetiqueta' + grade.key]);\r\n grade.pre_custoultimacompra = !!parseFloat(formGrade.getFieldValue(['pre_custoultimacompra' + grade.key])) ? parseFloat(formGrade.getFieldValue(['pre_custoultimacompra' + grade.key])) : 0;\r\n grade.prg_markup = !!parseFloat(formGrade.getFieldValue(['prg_markup' + grade.key])) ? parseFloat(formGrade.getFieldValue(['prg_markup' + grade.key])) : 0;\r\n grade.prg_valorvenda = !!parseFloat(formGrade.getFieldValue(['lpi_valorvenda' + grade.key])) ? parseFloat(formGrade.getFieldValue(['lpi_valorvenda' + grade.key])) : 0;\r\n grade.pre_qtde = !!parseFloat(formGrade.getFieldValue(['pre_qtde' + grade.key])) ? parseFloat(formGrade.getFieldValue(['pre_qtde' + grade.key])) : 0;\r\n grade.prg_ativa = grade.prg_ativa;\r\n grade.imagens = popularImgGrade(grade.imagens);\r\n grade.modalidadeGrade = popularModalidades(grade.modalidadesgrade);\r\n }\r\n );\r\n return dadosGrade;\r\n };\r\n\r\n function popularImgGrade(imagens) {\r\n let imagensGrade = [];\r\n imagens.forEach(\r\n imgs => {\r\n let imagem = {};\r\n imagem.base64img = !!imgs.url ? imgs.url : imgs.thumbUrl;\r\n imagem.principal = imgs.principal;\r\n imagem.imagemComprimida = false;\r\n imagensGrade.push(imagem);\r\n }\r\n );\r\n return imagensGrade;\r\n };\r\n\r\n function popularModalidades(modalidadesgrade) {\r\n let modalidades = [];\r\n modalidadesgrade.forEach(\r\n atrib => {\r\n let mod = {\r\n mgp_id: atrib.mgp_id\r\n }\r\n modalidades.push(mod);\r\n }\r\n )\r\n return modalidades;\r\n };\r\n\r\n async function popularImagens() {\r\n let listaImg = [];\r\n let possuiPrincipal = false;\r\n let maxSize = 2 * 1024 * 1024;\r\n for (var img of listaImagens) {\r\n let imagem = {};\r\n if (img.size != null) {\r\n if ((img.size + 1) >= maxSize) {\r\n // 1200 equivale a resolução da imagem\r\n //imagem.base64img = await ajustarTamanhoImagemBase64((!!img.url ? img.url : img.thumbUrl), 1200, 1200, maxSize);\r\n //parametros para diminuir tamanho da imagem( imagem, tamanho em MB, dimensões)\r\n imagem.base64img = await resizeImageToMB((!!img.url ? img.url : img.thumbUrl), 2, 1200, 1200);\r\n imagem.imagemComprimida = false;\r\n //console.log('base64img:', imagem.base64img);\r\n imagem.principal = false;\r\n } else {\r\n imagem.base64img = !!img.url ? img.url : img.thumbUrl;\r\n imagem.imagemComprimida = false;\r\n imagem.principal = false;\r\n }\r\n } else {\r\n imagem.base64img = !!img.url ? img.url : img.thumbUrl;\r\n imagem.imagemComprimida = false;\r\n imagem.principal = false;\r\n }\r\n if (!!img.principal) {\r\n possuiPrincipal = true;\r\n imagem.principal = true;\r\n }\r\n listaImg.push(imagem);\r\n };\r\n if (!possuiPrincipal && listaImg.length > 0) {\r\n listaImg[0].principal = true;\r\n }\r\n return listaImg;\r\n };\r\n\r\n const salvarCamposAdicionais = (values) => {\r\n var camposAdicionais = [];\r\n elementosFormulario.map((elemento) => {\r\n values = trataRetornoFormularioDinamico(values, elemento);\r\n let proDados = produtoCamposPersonalizados.filter(f => f.cap_id == elemento.cap_id)[0];\r\n if (!!proDados && !!proDados.pcp_valor && !!proDados.pcp_id) {\r\n camposAdicionais.push({ pcp_id: proDados.pcp_id, pro_id: values.pro_id, cap_id: elemento.cap_id, pcp_valor: values[elemento.cap_nomeelemento] });\r\n } else if (!!values[elemento.cap_nomeelemento]) {\r\n if (!!Date.parse(values[elemento.cap_nomeelemento]) && typeof values[elemento.cap_nomeelemento] === \"object\") {\r\n camposAdicionais.push({ pcp_id: null, pro_id: values.pro_id, cap_id: elemento.cap_id, pcp_valor: moment(values[elemento.cap_nomeelemento]).format(\"YYYY/MM/DD\") });\r\n } else {\r\n camposAdicionais.push({ pcp_id: null, pro_id: values.pro_id, cap_id: elemento.cap_id, pcp_valor: values[elemento.cap_nomeelemento] });\r\n }\r\n }\r\n });\r\n return camposAdicionais;\r\n }\r\n\r\n function carregaCamposPersonalizados() {\r\n api.get(`CamposPersonalizados/ListarTodos?TipoEntidade=4&PageSize=500&Order=+cap_ordem`).then(res => {\r\n if (res.status === 200) {\r\n setElementosFormulario(res.data.items);\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function carregaDadosCamposAdicionais() { //Campos Adicionais\r\n if (!!formulario.getFieldValue().pro_id) {\r\n api.get(`ProdutoCampoPersonalizado/Listar?IdProduto=${formulario.getFieldValue().pro_id}`).then(res => {\r\n if (res.status === 200 && !!res.data) {\r\n setProdutoCamposPersonalizados(res.data);\r\n res.data.map(d => {\r\n let elemento = elementosFormulario.filter(f => f.cap_id === d.cap_id)[0];\r\n trataSetaDadosFormularioDinamico(formulario, elemento, d.pcp_valor);\r\n })\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n async function carregarDados() {\r\n if (!!formulario.getFieldsValue().pro_id) {\r\n if (!!formulario.getFieldValue().pro_controlelote) {\r\n setExibeLote(true);\r\n }\r\n\r\n let listaPreco = await api.get(`ListaPreco/ListarListaPrecoProduto?idProduto=${formulario.getFieldsValue().pro_id}`);\r\n setListaDePrecos(listaPreco.data.map((x, idx) => ({ key: idx, ...x })));\r\n\r\n let listaGrades = await api.get(`produto/ListarGrades?IdProduto=${formulario.getFieldsValue().pro_id}`);\r\n if (listaGrades.status === 200) {\r\n let lista = listaGrades.data;\r\n if (lista.length > 0) {\r\n lista.forEach((item, indice) => {\r\n item.key = indice + 1;\r\n formGrade.setFieldsValue({\r\n ['prg_ean' + item.key]: item.prg_ean,\r\n ['pre_custoultimacompra' + item.key]: (!!item.pre_custoultimacompra ? item.pre_custoultimacompra.toFixed(2) : null),\r\n ['prg_markup' + item.key]: (!!item.prg_markup ? item.prg_markup.toFixed(2) : null),\r\n ['lpi_valorvenda' + item.key]: (!!item.lpi_valorvenda ? item.lpi_valorvenda.toFixed(2) : null),\r\n ['prg_codigoetiqueta' + item.key]: item.prg_codigoetiqueta\r\n });\r\n });\r\n }\r\n setListaDeGrades(lista);\r\n }\r\n\r\n let listaImagens = await api.get(`produto/ListarImagens?IdProduto=${formulario.getFieldsValue().pro_id}`);\r\n if (listaImagens.status === 200) {\r\n let lista = [];\r\n if (listaImagens.data.length > 0) {\r\n listaImagens.data.forEach((imagem, index) => {\r\n lista.push({ url: imagem.conteudoImagem, uid: index + 1, principal: imagem.principal });\r\n });\r\n setListaImagens(lista);\r\n }\r\n }\r\n\r\n let custoProduto = await api.get(`estoque/BuscarCustosProdutos?codigoProduto=${formulario.getFieldsValue().pro_id}`);\r\n formulario.setFieldsValue({ pre_custoultimacompra: custoProduto.data.pre_custoultimacompra });\r\n setPossuiCusto(!!custoProduto.data.pre_custoultimacompra);\r\n\r\n let listaDoLote = await api.get(`ProdutoLote/Listar?IdProduto=${formulario.getFieldValue().pro_id}`);\r\n setListaLote(listaDoLote.data.items);\r\n\r\n } else {\r\n setListaDePrecos([]);\r\n setListaImagens([]);\r\n setListaDeGrades([]);\r\n }\r\n\r\n recalcularMarkupDoProduto();\r\n carregaCamposPersonalizados();\r\n };\r\n\r\n function buscarEanExistente(event) {\r\n let codEan;\r\n if (!!event.currentTarget) {\r\n codEan = event.currentTarget.value;\r\n } else {\r\n codEan = event;\r\n }\r\n if (isNaN(codEan)) {\r\n return;\r\n }\r\n api.get(`Produto/VerificaEanExistente?CodigoEan=${codEan}`).then(\r\n res => {\r\n if (!!res.data && res.data.existe == true) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: 'Produto já cadastrado - deseja alterá-lo?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n buscarProdutosEan(res.data.pro_id);\r\n\r\n }, onCancel() {\r\n //aoSalvar();\r\n formulario.resetFields();\r\n }\r\n });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro)\r\n }\r\n );\r\n };\r\n\r\n function buscarProdutosEan(IdProduto) {\r\n api.get(`produto/RetornaDadosProduto?ProdutoId=${IdProduto}`).then(\r\n res => {\r\n res.data.pro_datainclusao = !!res.data.pro_datainclusao ? moment(res.data.pro_datainclusao) : null;\r\n res.data.data_sincro = !!res.data.data_sincro ? moment(res.data.data_sincro) : null;\r\n formulario.setFieldsValue(res.data);\r\n editando.setEditando(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: res.data } });\r\n carregarDados();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n function gerarEANProdutoBalanca(e) {\r\n if (e.target.checked == true) {\r\n api.get(`produto/GerarCodigoProdutoBalanca`).then(\r\n res => {\r\n if (res.status == 200) {\r\n console.log(res.data)\r\n formulario.setFieldsValue({ pro_ean: res.data.toString(), pro_eaninvalido: true });\r\n }\r\n else {\r\n notification.warning({ message: `Aviso!`, description: res.data })\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n formulario.setFieldsValue({ pro_ean: \"\" });\r\n console.log(erro);\r\n if (!!erro.response && !!erro.response.data) {\r\n notification.warning({ message: `Aviso!`, description: erro.response.data })\r\n } else {\r\n notification.warning({ message: `Aviso!`, description: \"Não foi possível gerar código para balança\" })\r\n }\r\n }\r\n );\r\n } else {\r\n formulario.setFieldsValue({ pro_ean: \"\" });\r\n }\r\n }\r\n\r\n var eanAnterior = null;\r\n function gerarEANProduto(campo) {\r\n let primeiroNumero = \"6\";\r\n let EAN;\r\n let digitoVerificador;\r\n eanAnterior = primeiroNumero;\r\n for (let i = 0; i <= 10; i++) {\r\n eanAnterior += Math.floor((Math.random() * 9) + 1).toString();\r\n }\r\n EAN = eanAnterior;\r\n EAN = EAN.substr(0, 12);\r\n EAN = (parseInt(EAN) + 1).toString();\r\n eanAnterior = EAN;\r\n digitoVerificador = calculaDigitoVerificadorEAN(EAN);\r\n EAN = EAN + \"\" + digitoVerificador;\r\n\r\n if (!!campo) {\r\n formGrade.setFieldsValue({ [campo]: EAN });\r\n } else {\r\n formulario.setFieldsValue({ pro_ean: EAN });\r\n }\r\n formulario.setFieldsValue({ pro_eaninvalido: true });\r\n };\r\n\r\n function validaTipoMercadoria(campo) {\r\n if (campo === \"pro_produto\" && formulario.getFieldsValue().pro_produto) {\r\n formulario.setFieldsValue({ pro_servico: false });\r\n formulario.setFieldsValue({ pro_materiaprima: false });\r\n } else if (campo === 'pro_servico' && formulario.getFieldsValue().pro_servico) {\r\n formulario.setFieldsValue({ pro_produto: false });\r\n formulario.setFieldsValue({ pro_materiaprima: false });\r\n } else if (campo === 'pro_materiaprima' && formulario.getFieldsValue().pro_materiaprima) {\r\n formulario.setFieldsValue({ pro_produto: false });\r\n formulario.setFieldsValue({ pro_servico: false });\r\n } else {\r\n formulario.setFieldsValue({ pro_produto: true });\r\n }\r\n };\r\n\r\n function calcularValorVendaPorMarkup() {\r\n let valorVenda = retornaPrecoPorMarkup(formulario.getFieldsValue().pre_custoultimacompra, formulario.getFieldsValue().pro_markup);\r\n formulario.setFieldsValue({ lpi_valorvenda: valorVenda });\r\n };\r\n\r\n function retornaPrecoPorMarkup(custo, markup) {\r\n if (parseFloat(custo) > 0 && parseFloat(markup) > 0) {\r\n return (parseFloat(custo) * parseFloat(markup)).toFixed(2);\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n function recalcularMarkupDoProduto() {\r\n if (parseFloat(formulario.getFieldsValue().pre_custoultimacompra) > 0 && parseFloat(formulario.getFieldsValue().lpi_valorvenda) > 0) {\r\n let markupCalculado = (parseFloat(formulario.getFieldsValue().lpi_valorvenda) / parseFloat(formulario.getFieldsValue().pre_custoultimacompra)).toFixed(2);\r\n formulario.setFieldsValue({ pro_markup: markupCalculado })\r\n } else {\r\n formulario.setFieldsValue({ pro_markup: parametrosEmpresa.markupProduto });\r\n }\r\n };\r\n\r\n function verificaCnpj(record) {\r\n record = record.currentTarget.value.replace(/\\D/g, '');\r\n if (!validarCnpj(record)) {\r\n notification.warning({ message: `Aviso!`, description: `O CNPJ informado é inválido!` })\r\n }\r\n }\r\n\r\n function onBlurProEan(event) {\r\n let codEan = \"\";\r\n if (!!event.currentTarget) {\r\n codEan = event.currentTarget.value;\r\n } else {\r\n codEan = event;\r\n }\r\n if (codEan !== \"\") {\r\n if (validarEan(codEan)) {\r\n buscarEanExistente(codEan);\r\n if (codEan.startsWith(\"7\") && codEan.length === 13)\r\n formulario.setFieldsValue({ pro_eaninvalido: false });\r\n else\r\n formulario.setFieldsValue({ pro_eaninvalido: true });\r\n\r\n } else {\r\n formulario.setFieldsValue({ pro_eaninvalido: true });\r\n if (formulario.getFieldsValue().pro_usabalanca == false) {\r\n notification.warning({ description: 'EAN informado fora dos padrões GTIN, verifique o EAN antes de continuar!', message: 'Aviso' });\r\n }\r\n }\r\n }\r\n };\r\n\r\n function exibirLote() {\r\n setExibeLote(!exibeLote);\r\n };\r\n\r\n return (\r\n
\r\n salvarDados(values)} >\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {!!manutencao.dados?.pro_id && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n Código de Barras - EAN\r\n \r\n \r\n \r\n \r\n }>\r\n onBlurProEan(event)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n trocaAbas(tab)}>\r\n \r\n \r\n \r\n \r\n validaTipoMercadoria('pro_produto')}> Produto/Mercadoria? \r\n \r\n \r\n {/* \r\n \r\n validaTipoMercadoria('pro_servico')}> Serviço? \r\n \r\n */}\r\n {/* \r\n \r\n validaTipoMercadoria('pro_materiaprima')}> Matéria-Prima? \r\n \r\n */}\r\n \r\n \r\n Kit Composição? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Código de Referência\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n Código da Etiqueta\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setOpenDrawerMarca(true)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n carregarSubGrupos(IdGrupo)}\r\n onChangeFunction={(IdGrupo) => carregarSubGrupos(IdGrupo)}\r\n setListaDados={setGrupoSelect}\r\n funcaoIncluir={() => setOpenDrawerGrupo(true)}\r\n allowClear={true}\r\n />\r\n \r\n \r\n \r\n \r\n 0 && (() => setOpenDrawerSubGp(true))}\r\n allowClear={true}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {listaUnidadeMedida.map((um) => ({um.ump_id} - {um.ump_descricao}))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Embalagem\r\n \r\n \r\n \r\n \r\n }>\r\n checkCasaDecimalUnidadeMedida()}\r\n optionFilterProp=\"children\">\r\n {listaUnidadeMedida.map((um) => ({um.ump_id} - {um.ump_descricao}))}\r\n \r\n \r\n \r\n \r\n \r\n Qtde da Embalagem\r\n \r\n \r\n \r\n \r\n } name=\"pru_quantidade\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.pro_diasvalidade !== currentValues.pro_diasvalidade}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue().pro_usabalanca === true) return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n {listaDeGrades.length === 0 &&\r\n \r\n { calcularValorVendaPorMarkup() }} />\r\n \r\n }\r\n {listaDeGrades.length === 0 &&\r\n <>\r\n \r\n { calcularValorVendaPorMarkup() }} />\r\n \r\n \r\n {\r\n if (parseFloat(value) > 0) {\r\n return Promise.resolve();\r\n } else {\r\n return Promise.reject(new Error('Informe um valor de preço de venda!'))\r\n }\r\n }\r\n }]}\r\n placeholder=\"Informe a Margem de Lucro do Produto\" label=\"Preço de Venda (R$)\" name=\"lpi_valorvenda\" onChange={() => { recalcularMarkupDoProduto() }} />\r\n \r\n prevValues.pro_id !== currentValues.pro_id}>\r\n {({ getFieldValue }) => {\r\n if (!getFieldValue().pro_id && !getFieldValue().pre_qtde && !possuiCusto) return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Adicionar na Impressão de Etiquetas?\r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n }\r\n \r\n {listaDeGrades.length > 0 &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n Produto Ativo? \r\n \r\n \r\n \r\n \r\n gerarEANProdutoBalanca(e)}> Usa Balança? \r\n \r\n \r\n \r\n \r\n Não Gerar EAN em Documento Fiscal? \r\n \r\n \r\n \r\n \r\n Produto SEM escala relevante? \r\n \r\n \r\n \r\n \r\n Produto Fabricado? \r\n \r\n \r\n \r\n \r\n {exibirLote()}}> Controla Lotes? \r\n \r\n \r\n \r\n prevValues.pro_escalanaorelevante !== currentValues.pro_escalanaorelevante}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue().pro_escalanaorelevante === true) return (\r\n \r\n \r\n \r\n verificaCnpj(record)}\r\n />\r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!exibeLote &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoProdutos from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerProduto({ incluirMaisUm, editando }) {\r\n\r\n const nameForm = \"manutencaoProduto\"\r\n const [formProduto] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n //console.log(\"valores: \", formProduto.getFieldValue().anp_id);\r\n\r\n function verificarSalvar(produto) {\r\n Modal.confirm({\r\n title: 'Atenção',\r\n icon: ,\r\n content: 'Produto incluído com sucesso!',\r\n okText: 'Incluir mais um',\r\n cancelText: 'Ok',\r\n centered: true,\r\n onOk() {\r\n localStorage.removeItem(nameForm);\r\n formProduto.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pro_descricao' } });\r\n let dados = { pro_id: produto.pro_id };\r\n incluirMaisUm(dados);\r\n },\r\n onCancel() {\r\n fecharDrawer();\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pro_descricao' } });\r\n }\r\n });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n function fecharDrawer() {\r\n localStorage.removeItem(nameForm);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n editando.setEditando(false);\r\n formProduto.resetFields();\r\n };\r\n\r\n return (\r\n\r\n }\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Row, Col, Form, Button, Collapse, Tag, Popover, Modal, Menu, Dropdown, notification, Input, Radio } from \"antd\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined, CloudUploadOutlined, MoreOutlined, CopyOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerProduto from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber } from '../../ValueObjects/';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, TabelaDados, Editar, Excluir, BreadcrumbPage, BotaoAbrirChamado, BotaoIncluirDados, PesquisaAvancada, InputPreco } from \"../../components\";\r\nimport { ModalGradeEstoque } from \"../../components/modals\";\r\n\r\nexport default function Produto() {\r\n\r\n const [{ manutencao, listagem }, dispatch] = useStateValue();\r\n const [open, setOpen] = useState(false);\r\n const [formPesquisaAvancada] = Form.useForm();\r\n const [formPesquisaAdc] = Form.useForm();\r\n const [editando, setEditando] = useState(false);\r\n const [dadosProdutoGrade, setDadosProdutoGrade] = useState({});\r\n const [openModalEstoque, setOpenModalEstoque] = useState(false);\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n const menuOutros = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n useEffect(() => {\r\n let _ativo = !!!formPesquisaAvancada.getFieldsValue().produtoAtivo ? 1 : formPesquisaAvancada.getFieldsValue().produtoAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${_ativo}`, filtro: '', ordem: '+pro_descricao' } });\r\n formPesquisaAvancada.setFieldsValue({ produtoAtivo: 1 });\r\n }, [])\r\n\r\n function duplicarProduto(produto) {\r\n let dados = {};\r\n if (!!produto.pro_id) {\r\n api.get(`produto/RetornaDadosProduto?ProdutoId=${produto.pro_id}`).then(res => {\r\n if (res.status === 200) {\r\n dados = res.data;\r\n dados.pro_id = null;\r\n dados.pro_descricao = '';\r\n api.get(`tributacaoIcms/BuscarTributacaoPorCodigoProduto?IdProduto=${produto.pro_id}`).then(res => {\r\n if (res.status === 200) {\r\n dados.icm_id = res.data.icm_id;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n };\r\n\r\n function incluirMaisUm(produto) {\r\n let dados = {};\r\n if (!!produto.pro_id) {\r\n api.get(`produto/RetornaDadosProduto?ProdutoId=${produto.pro_id}`).then(res => {\r\n if (res.status === 200) {\r\n dados.pro_id = null;\r\n dados.pro_descricao = '';\r\n dados.gru_id = res.data.gru_id;\r\n dados.sgp_id = res.data.sgp_id;\r\n dados.mar_id = res.data.mar_id;\r\n dados.ncm_id = res.data.ncm_id;\r\n dados.orm_id = res.data.orm_id;\r\n dados.cen_id = res.data.cen_id;\r\n dados.pis_id = res.data.pis_id;\r\n dados.tpi_id = res.data.tpi_id;\r\n dados.ump_id = res.data.ump_id;\r\n dados.lpi_valorvenda = res.data.lpi_valorvenda;\r\n api.get(`tributacaoIcms/BuscarTributacaoPorCodigoProduto?IdProduto=${produto.pro_id}`).then(res => {\r\n if (res.status === 200) {\r\n dados.icm_id = res.data.icm_id;\r\n setEditando(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n };\r\n\r\n function showDrawer(produto) {\r\n let dados = {};\r\n if (!!produto.pro_id) {\r\n api.get(`produto/RetornaDadosProduto?ProdutoId=${produto.pro_id}`).then(res => {\r\n if (res.status === 200) {\r\n dados = res.data;\r\n dados.pro_datainclusao = !!dados.pro_datainclusao ? moment(dados.pro_datainclusao) : null;\r\n dados.data_sincro = !!dados.data_sincro ? moment(dados.data_sincro) : null;\r\n dados.orm_id = parseInt(dados.orm_id);\r\n // api.get(`tributacaoIcms/BuscarTributacaoPorCodigoProduto?IdProduto=${produto.pro_id}`).then(\r\n // res => {\r\n // if (res.status === 200) {\r\n // //dados.icm_id = res.data.icm_id;\r\n // }\r\n // }\r\n // ).catch(\r\n // (erro) => {\r\n // if (!!erro.response && !!erro.response.data && erro.response.data.Message) {\r\n // notification.error({ description: erro.response.data.Message, message: 'Aviso' });\r\n // } else {\r\n // console.error(erro);\r\n // }\r\n // }\r\n // ).finally(\r\n // () => {\r\n // dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n // dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n // }\r\n // );\r\n }\r\n }).catch((erro) => console.error(erro))\r\n .finally(\r\n () => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n );\r\n }\r\n };\r\n\r\n function aplicarFiltros() {\r\n let filtrosTela = popularFiltrosTela();\r\n\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtrosTela, filtro: (!!listagem.filtro ? listagem.filtro : '') } });\r\n }\r\n\r\n function excluirRegistro(produto) {\r\n api.delete(`produto/excluir/${produto.pro_id}`).then((res) => {\r\n if (res.data == true) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n } else {\r\n modalInativarProduto(produto);\r\n }\r\n }, (erro) => {\r\n console.error(erro);\r\n modalInativarProduto(produto);\r\n })\r\n };\r\n\r\n function inativarProduto(produto) {\r\n api.put(`produto/AtivarInativar?IdProduto=${produto.pro_id}&Ativo=false`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pro_descricao' } });\r\n })\r\n };\r\n\r\n const modalExcluirProduto = (produto) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o produto ${produto.pro_codigo}-${produto.pro_descricao} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(produto);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarProduto = (produto) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o produto!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o produto ${produto.pro_codigo}-${produto.pro_descricao} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarProduto(produto);\r\n }\r\n });\r\n };\r\n\r\n function popularFiltrosTela() {\r\n let filtrosTela = '';\r\n filtrosTela += `&Ativo=${formPesquisaAvancada.getFieldsValue().produtoAtivo}`\r\n if (parseFloat(formPesquisaAdc.getFieldsValue().precoMinimo) > 0.00) filtrosTela += `&precoMinimo=${formPesquisaAdc.getFieldsValue().precoMinimo}`;\r\n if (parseFloat(formPesquisaAdc.getFieldsValue().precoMaximo) > 0.00) filtrosTela += `&precoMaximo=${formPesquisaAdc.getFieldsValue().precoMaximo}`;\r\n\r\n return filtrosTela;\r\n }\r\n\r\n function retornoPesquisaAvancada(expressao) {\r\n listagem.outrosFiltros = '';\r\n expressao = !!expressao ? expressao : '';\r\n let filtrosTela = popularFiltrosTela();\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: !!listagem.filtro ? listagem.filtro : '', outrosFiltros: `${filtrosTela}&filtroAdicional=${btoa(expressao)}`, ordem: '+pro_descricao' } })\r\n };\r\n\r\n\r\n function limparFiltroPesquisa() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', ordem: '+pro_descricao' } })\r\n };\r\n\r\n function onClickEditar(produto) {\r\n setEditando(true);\r\n showDrawer(produto);\r\n };\r\n\r\n function listarGrades(record) {\r\n setDadosProdutoGrade(record);\r\n setOpenModalEstoque(true);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n retornoPesquisaAvancada(dados)} funcaoLimpar={() => { limparFiltroPesquisa() }} form={formPesquisaAvancada} telaFiltro={4} />\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada(dados)} funcaoLimpar={() => { limparFiltroPesquisa() }} form={formPesquisaAvancada} telaFiltro={2} />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {pro_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'EAN-13',\r\n align: 'center',\r\n width: 110,\r\n render: ({ pro_ean, pro_usagrade }, record) => (\r\n
\r\n \r\n
\r\n {pro_ean}\r\n \r\n {pro_usagrade &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição do Produto',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Un. Medida',\r\n width: 100,\r\n render: ({ ump_descricao }) => (\r\n
\r\n {ump_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Preço (R$)',\r\n width: 120,\r\n align: 'right',\r\n render: ({ precoVendaMinimo, precoVendaMaximo }) => (\r\n
\r\n {precoVendaMinimo === precoVendaMaximo &&\r\n {FormatNumber(precoVendaMinimo, true)}\r\n }\r\n {precoVendaMinimo !== precoVendaMaximo &&\r\n {FormatNumber(precoVendaMinimo, true)} até {FormatNumber(precoVendaMaximo, true)}\r\n }\r\n
\r\n ),\r\n },\r\n {\r\n width: 98,\r\n align: 'center',\r\n render: (produto) => (\r\n
\r\n { dispatch({ type: manutencaoActions.CHANGE, data: { dados: produto } }); }}>\r\n Mais Detalhes\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (produto) => (\r\n
\r\n \r\n
\r\n \r\n onClickEditar(produto)} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluirProduto(produto)} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} expandir={({\r\n pro_observacao, pro_datainclusao, gru_nome, sgp_nome, orm_id, orm_descricao, ncm_codigo, pro_fci, ump_descricao, tpi_descricao, pis_descricao, nat_descricao, mar_nome, pro_ean\r\n }) => {\r\n return (\r\n
\r\n \r\n
\r\n Grupo: {gru_nome || 'Não Informado'}\r\n \r\n \r\n Subgrupo: {sgp_nome || 'Não Informado'}\r\n \r\n \r\n Marca: {mar_nome || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n NCM: {ncm_codigo || 'Não Informado'}\r\n \r\n \r\n CST Origem: {orm_id} - {orm_descricao}\r\n \r\n \r\n FCI: {pro_fci || 'Não Informado'}\r\n \r\n \r\n {/* Unidade de Medida: {ump_descricao} */}\r\n \r\n \r\n Tipo de Produto para SPED: {tpi_descricao || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n Tributação Pis/Cofins: {pis_descricao || 'Não Informado'}\r\n \r\n \r\n Natureza da Receita Pis/Cofins: {nat_descricao || 'Não Informado'}\r\n \r\n \r\n Data Inclusão: {moment(pro_datainclusao).format(\"DD/MM/YYYY\")}\r\n \r\n \r\n {!!pro_observacao &&\r\n \r\n \r\n Observações: {pro_observacao}\r\n \r\n \r\n }\r\n \r\n )\r\n }} />\r\n \r\n \r\n setOpenModalEstoque(false)} />\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Button, Table, notification, Modal, Checkbox, Divider } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, CheckOutlined, ExclamationCircleOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { getEmpresa } from \"../../services/auth\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function TabItensGrade({ formulario, itensGrade, setItensGrade, atualizarDadosGrade }) {\r\n\r\n const [editandoRegistro, setEditandoRegistro] = useState(false);\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ descricaoItem: '' });\r\n setEditandoRegistro(false);\r\n }, [itensGrade]);\r\n\r\n function incluirItemGrade() {\r\n if (!!formulario.getFieldValue().descricaoItem) {\r\n if (itensGrade.filter((item) => { return item.mgp_descricao === formulario.getFieldValue().descricaoItem }).length > 0) {\r\n Modal.confirm({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: `Você já possui um item nessa modalidade de grade denominado ${formulario.getFieldValue().descricaoItem}. Deseja adicionar este novo item mesmo assim?`,\r\n okText: 'Sim, adicionar',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n adicionarItem();\r\n }\r\n });\r\n } else {\r\n adicionarItem();\r\n }\r\n }\r\n };\r\n\r\n function adicionarItem() {\r\n let itemAdd = {};\r\n itemAdd.emp_id = getEmpresa();\r\n itemAdd.mgp_descricao = formulario.getFieldValue().descricaoItem;\r\n itemAdd.mgp_imprimenaetiqueta = false;\r\n if (!!formulario.getFieldValue().mgp_id) {\r\n itemAdd.mgp_modalidade = formulario.getFieldValue().mgp_id;\r\n api.post(`ModalidadeGrade/Incluir`, JSON.stringify(itemAdd), { headers: { 'Content-Type': 'application/json;charset=utf-8' } }).then(res => {\r\n if (res.status === 200) {\r\n atualizarDadosGrade(formulario.getFieldValue().mgp_id);\r\n }\r\n }, erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n });\r\n } else {\r\n let itens = [...itensGrade];\r\n itemAdd.key = itens.length + 1;\r\n itens.push(itemAdd);\r\n setItensGrade(itens);\r\n }\r\n formulario.setFieldsValue({ descricaoItem: '' });\r\n };\r\n\r\n function editarRegistro(dados) {\r\n if (!!dados.key) {\r\n setEditandoRegistro(true);\r\n formulario.setFieldsValue({ descricaoItem: dados.mgp_descricao, keyItem: dados.key });\r\n }\r\n };\r\n\r\n function salvarItemGrade() {\r\n let itens = [...itensGrade];\r\n let itemEditar = itens.filter((item) => { return item.key === formulario.getFieldValue().keyItem })[0];\r\n itemEditar.mgp_descricao = formulario.getFieldValue().descricaoItem;\r\n\r\n /*if (!!formulario.getFieldValue().mgp_id) {\r\n api.post(`ModalidadeGrade/editar`, JSON.stringify(itemEditar), { headers: { 'Content-Type': 'application/json;charset=utf-8' } }).then(res => {\r\n if (res.status === 200) {\r\n atualizarDadosGrade(formulario.getFieldValue().mgp_id);\r\n }\r\n }, erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n });\r\n } else {*/\r\n setItensGrade(itens);\r\n //}\r\n };\r\n\r\n function excluirRegistro(dadosItem) {\r\n Modal.confirm({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: `Remover o item ${dadosItem.mgp_descricao} desta modalidade de grade?`,\r\n okText: 'Sim, quero remover',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n let mgp_id = formulario.getFieldValue().mgp_id;\r\n if (!!mgp_id) {\r\n api.delete(`ModalidadeGrade/Excluir?IdModalidade=${dadosItem.mgp_id}`).then(res => {\r\n if (res.data) {\r\n atualizarDadosGrade(mgp_id);\r\n } else {\r\n error('É provável que o item que você esta tentando remover esteja relacionado a algum produto cadastrado no sistema.', 'Não foi possível excluir o item da modalidade de grade!');\r\n }\r\n }, erro => {\r\n error('É provável que o item que você esta tentando remover esteja relacionado a algum produto cadastrado no sistema.', 'Não foi possível excluir o item da modalidade de grade!');\r\n });\r\n } else {\r\n let itens = [...itensGrade];\r\n let index = itens.findIndex(i => i.key === dadosItem.key);\r\n itens.splice(index, 1);\r\n itens.map((item, indice) => {\r\n item.key = indice + 1;\r\n });\r\n setItensGrade(itens);\r\n }\r\n }\r\n });\r\n };\r\n\r\n function error(mensagem, title = 'Atenção!') {\r\n Modal.error({\r\n title: title,\r\n content: (\r\n
\r\n

{mensagem}

\r\n
\r\n )\r\n });\r\n };\r\n\r\n function selecionarItemGrade(key) {\r\n let itens = [...itensGrade];\r\n let itemEditar = itens.filter((item) => { return item.key === key })[0];\r\n itemEditar.mgp_imprimenaetiqueta = !itemEditar.mgp_imprimenaetiqueta;\r\n setItensGrade(itens);\r\n };\r\n\r\n function selecionarTodos(checked){\r\n let itens = [...itensGrade];\r\n itens.map((item) => { \r\n item.mgp_imprimenaetiqueta = (checked ? true : false);\r\n });\r\n setItensGrade(itens);\r\n };\r\n\r\n return (\r\n
\r\n {editandoRegistro &&\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!editandoRegistro &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
{return
{ selecionarTodos(event.target.checked) }} /> Imprime na Etiqueta?
},\r\n align: 'left',\r\n width: 150,\r\n render: ({ mgp_imprimenaetiqueta, key }) => (\r\n
\r\n { selecionarItemGrade(key) }} />\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n align: 'left',\r\n render: ({ mgp_descricao }) => (\r\n
\r\n {mgp_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Tabs, Button, notification } from \"antd\";\r\nimport { EyeOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport TabItensGrade from './tabItens';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { validaForm } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoGradeProduto({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [itensGrade, setItensGrade] = useState([]);\r\n\r\n const salvarManutencao = (values) => {\r\n if (validaForm(formulario, listaValidacoes)) {\r\n carregando(true);\r\n\r\n let dadosEnviar = {};\r\n dadosEnviar.mgp_id = (!!values.mgp_id ? values.mgp_id : null);\r\n dadosEnviar.grade = itensGrade;\r\n dadosEnviar.mgp_modalidade = (!!values.mgp_modalidade ? values.mgp_modalidade : null) ;\r\n dadosEnviar.mgp_descricao = values.mgp_descricao;\r\n dadosEnviar.mgp_imprimenaetiqueta = (!!values.mgp_imprimenaetiqueta ? values.mgp_imprimenaetiqueta : null);\r\n let enderecoUrl = 'ModalidadeGrade/';\r\n \r\n if (values.mgp_id ){\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, dadosEnviar).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Modalidade da Grade salva com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Atenção!', description: \"Não foi possivel incluir os dados desta Modalidade da Grade!\" });\r\n }).finally(() => {\r\n aoSalvar();\r\n carregando(false);\r\n atualizarPagina();\r\n });\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, dadosEnviar).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Modalidade da Grade salva com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Atenção!', description: \"Não foi possivel incluir os dados desta Modalidade da Grade!\" });\r\n }).finally(() => {\r\n aoSalvar();\r\n carregando(false);\r\n atualizarPagina();\r\n });\r\n };\r\n }\r\n };\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+mgp_descricao' } });\r\n //listar();\r\n };\r\n\r\n const listaValidacoes = [\r\n { nome: 'mgp_descricao', obrigatorio: true, label: 'Descrição da Modalidade da Grade' }\r\n ];\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.mgp_id) {\r\n atualizarDadosGrade(manutencao.dados.mgp_id);\r\n setAbaSelecionada(\"1\");\r\n } else {\r\n setItensGrade([]);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function atualizarDadosGrade(mgp_id) {\r\n if (!!mgp_id) {\r\n api.get(`ModalidadeGrade/BuscarModalidade/${mgp_id}`).then(res => {\r\n if (res.status === 200) {\r\n let lista = res.data;\r\n lista.map((item, indice) => {\r\n item.key = indice + 1;\r\n });\r\n setItensGrade(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n };\r\n\r\n return (\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoGradeProduto from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerGradeProduto () {\r\n\r\n const [formGradeProduto] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (manutencao.dados !== null) formGradeProduto.setFieldsValue(manutencao.dados);\r\n else {\r\n //formGradeProduto.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formGradeProduto.resetFields();\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Modal, notification } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerGradeProduto from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir } from \"../../components\";\r\n\r\nexport default function GradeProduto() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+mgp_descricao' } }), []);\r\n\r\n function excluirRegistro(dados) {\r\n Modal.confirm({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: `Remover a modalidade de grade ${dados.mgp_descricao}?`,\r\n okText: 'Sim, quero remover',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.delete(`ModalidadeGrade/Excluir?IdModalidade=${dados.mgp_id}`).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: `Sucesso!`, description: `Modalidade Grade excluida com sucesso!` });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+mgp_descricao' } });\r\n } else {\r\n error('É provável que esta modalidade de grade possua um ou mais itens relacionados a algum produto cadastrado no sistema.', 'Não foi possível excluir esta modalidade de grade!');\r\n }\r\n }, erro => {\r\n error('É provável que esta modalidade de grade possua um ou mais itens relacionados a algum produto cadastrado no sistema.', 'Não foi possível excluir esta modalidade de grade!');\r\n });\r\n }\r\n });\r\n };\r\n\r\n function error(mensagem, title = 'Atenção!') {\r\n Modal.error({\r\n title: title,\r\n content: (\r\n
\r\n

{mensagem}

\r\n
\r\n )\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n {mgp_id}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Modalidade de Grades',\r\n render: ({ mgp_descricao }) => (\r\n
\r\n {mgp_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n fixed: 'right',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => { excluirRegistro(record) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Row, Col, Form, Select, Input, Button, Switch, Tag, Alert, Typography, Divider, Table, Modal, Tooltip, InputNumber } from \"antd\";\r\nimport { PlusOutlined, DownloadOutlined, BarcodeOutlined, SearchOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport CurrencyInput from 'react-currency-input';\r\n\r\nimport api from '../../services/api';\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { ModalGrade } from '../../components/modals';\r\nimport { InputPreco, SelectPaginacao, SelectPagination } from \"../../components\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { selectPaginadoActions } from \"../../actions\";\r\n\r\nexport default function TabItens({ formulario, listaItensExcluir, setListaItensExcluir, listaEditarItens, setListaEditarItens, setEditandoItens }) {\r\n\r\n const [formItens] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formImportItens] = Form.useForm();\r\n const [formTableItens] = Form.useForm();\r\n const [filtros, setFiltros] = useState([]);\r\n const [itemProduto, setItemProduto] = useState(false);\r\n const [importarProduto, setImportarProduto] = useState(false);\r\n const [editiItemId, setEditiItenId] = useState({});\r\n const [visibleModalGrade, setVisibleModalGrade] = useState(false);\r\n const [grades, setGrades] = useState([]);\r\n const [subgrupos, setSubgrupos] = useState(false);\r\n const [listaPrecoSelectd, setListaPrecoSelectd] = useState(null);\r\n const [itens, setItens] = useState(() => {\r\n if (formulario.getFieldValue('ltp_id')) {\r\n let list = formulario.getFieldValue('itens');\r\n return list ? list : [];\r\n }\r\n return []\r\n });\r\n const searchInput = useRef();\r\n const [productName, setProductName] = useState('');\r\n\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ itens: itens });\r\n }, [itens])\r\n\r\n const togglePesquisa = () => {\r\n setProductName('');\r\n setItemProduto(!itemProduto);\r\n };\r\n\r\n async function onPressEnterProCodigo(campo) {\r\n let codigoEan = campo.target.value.trim();\r\n let dadosRequisicao = await api.get(`Produto/ListaProdutoFiltro?filtro=${codigoEan}`);\r\n setProductName(dadosRequisicao.data.items[0].pro_descricao );\r\n \r\n let grade = dadosRequisicao.data.items[0].prg_id;\r\n if (dadosRequisicao.data.items[0].pro_usagrade) {\r\n let itenSelected = (await api.get(`Produto/RetornaDadosItem?ProdutoId=${dadosRequisicao.data.items[0].pro_id}`)).data;\r\n setGrades([]);\r\n api.get(`ProdutoGrade/RetornaGradesProduto?produtoId=${dadosRequisicao.data.items[0].pro_id}`).then((res) => {\r\n if (res.status === 200) {\r\n let array = [...res.data].filter(item => item.prg_id == grade);\r\n array = array.map((x) => ({ ...{ ...itenSelected, ...x }, lpi_valorvenda: x.prg_valorvenda, lpi_naocalculacomissao: false }));\r\n setGrades(array);\r\n setVisibleModalGrade(true);\r\n }\r\n }).catch((err) => {\r\n console.log('error ao buscar grades :>> ', err);\r\n });\r\n }\r\n else {\r\n onChangeProdutoFiltro(dadosRequisicao.data.items[0].pro_id, 2);\r\n formulario.setFieldsValue({ pro_id: dadosRequisicao.data.items[0].pro_id });\r\n }\r\n };\r\n\r\n async function onChangeProdutoFiltro(value, chamada) {\r\n let itenSelected = (await api.get(`Produto/RetornaDadosItem?ProdutoId=${value}`)).data;\r\n\r\n if (itenSelected.pro_usagrade) {\r\n setGrades([]);\r\n api.get(`ProdutoGrade/RetornaGradesProduto?produtoId=${value}`).then((result) => {\r\n if (result.status === 200) {\r\n let array = [...result.data];\r\n array = array.map((x) => ({ ...{ ...itenSelected, ...x }, lpi_valorvenda: x.prg_valorvenda, lpi_naocalculacomissao: false }));\r\n setGrades(array);\r\n setVisibleModalGrade(true);\r\n formItens.resetFields();\r\n }\r\n }).catch((err) => {\r\n console.log('error ao buscar grades :>> ', err);\r\n });\r\n } else\r\n api.get(`ListaPrecoItem/BuscaPrecoItem?CodigoListaPreco=${formulario.getFieldValue('ltp_id')}&CodigoProduto=${value}`).then((res) => {\r\n if (res.data) {\r\n formItens.setFieldsValue(res.data);\r\n } else {\r\n api.get(`ListaPrecoItem/BuscarPrecoPadraoItem?codigoProduto=${value}`).then((res) => {\r\n if (res.status === 200) {\r\n let valorVenda = 1;\r\n if (res.data)\r\n valorVenda = res.data;\r\n formItens.setFieldsValue({\r\n lpi_valorvenda: valorVenda,\r\n lpi_perccomissao: 0,\r\n lpi_naocalculacomissao: false\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n const onSaveGrades = () => {\r\n let array = [...itens];\r\n let verify = grades.filter(x => x.lpi_valorvenda !== null && parseFloat(x.lpi_valorvenda) !== 0);\r\n if (verify.length !== 0) {\r\n grades.forEach(element => {\r\n if (element.lpi_valorvenda !== null) {\r\n let index = array.findIndex(x => x.pro_id == element.pro_id && x.prg_ean == element.prg_ean);\r\n element.lpi_valorvenda = parseFloat(element.lpi_valorvenda.toString().replaceAll(`.`, ``).replaceAll(`,`, `.`));\r\n if (index !== -1) {\r\n array[index] = element;\r\n // console.log(\"editou ==>\")\r\n } else {\r\n array.push(element);\r\n }\r\n }\r\n });\r\n setItens(array);\r\n onCloseModal();\r\n } else {\r\n Modal.warning({\r\n title: 'Atenção',\r\n icon: ,\r\n content: `Existem itens da grade que não possuem valor informado, por favor verifique-os!`,\r\n okText: 'Ok',\r\n centered: true,\r\n });\r\n }\r\n }\r\n\r\n const getColumnSearchProps = dataIndex => ({\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, clearFilters }) => (\r\n
\r\n \r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => handleSearch(selectedKeys, dataIndex, clearFilters)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n filterIcon: filtered => ,\r\n onFilter: (value, record) =>\r\n record[dataIndex] ? record[dataIndex].toString().toLowerCase().includes(value.toLowerCase()) : '',\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => searchInput.current.focus());\r\n }\r\n },\r\n render: text => text\r\n });\r\n\r\n const handleSearch = (selectedKeys, dataIndex, clearFilters) => {\r\n let listaFiltros = [...filtros];\r\n let indice = listaFiltros.findIndex(f => f.campo === dataIndex);\r\n if (indice < 0) listaFiltros.push({ campo: dataIndex, valor: selectedKeys[0], clearFilters });\r\n else listaFiltros[indice].valor = selectedKeys[0];\r\n setFiltros(listaFiltros);\r\n };\r\n\r\n async function onFinishItens(values) {\r\n let produto = (await api.get(`Produto/RetornaDadosItem?ProdutoId=${formulario.getFieldValue().pro_id}`)).data;\r\n delete produto.lpi_valorvenda;\r\n delete values.produto;\r\n let array = [...itens];\r\n let index = array.findIndex(x => x.pro_id == produto.pro_id);\r\n values.pro_id = formulario.getFieldValue().pro_id;\r\n values.lpi_perccomissao = !!values.lpi_perccomissao ? values.lpi_perccomissao : 0;\r\n values.lpi_naocalculacomissao = !!values.lpi_naocalculacomissao ? values.lpi_naocalculacomissao : false;\r\n let obj = { ...produto, ...values };\r\n\r\n if (index !== -1) {\r\n array.splice(index, 1, { ...obj });\r\n setItens(array);\r\n } else\r\n setItens((prev) => ([...prev, { ...obj }]));\r\n\r\n formItens.resetFields();\r\n }\r\n\r\n function onDeleteItem(value) {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir o item selecionado?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n deleteItem(value);\r\n }\r\n });\r\n }\r\n\r\n function deleteItem(value) {\r\n let array = [...itens];\r\n let index = array.indexOf(value);\r\n if (index !== -1) {\r\n array.splice(index, 1);\r\n setItens(array);\r\n }\r\n let listaExcluir = [...listaItensExcluir];\r\n listaExcluir.push(value);\r\n setListaItensExcluir(listaExcluir);\r\n }\r\n\r\n const EditableCell = ({\r\n editing,\r\n dataIndex,\r\n title,\r\n inputType,\r\n record,\r\n index,\r\n children,\r\n required,\r\n ...restProps\r\n }) => {\r\n const inputNode = inputType === 'number' ? (\r\n \r\n ) : (\r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n );\r\n return (\r\n \r\n );\r\n };\r\n\r\n const editRow = (record) => {\r\n formTableItens.setFieldsValue({ ...record });\r\n setEditiItenId({ pro_id: record.pro_id, prg_ean: record.prg_ean });\r\n setEditandoItens(true);\r\n }\r\n\r\n const saveRow = async (data) => {\r\n try {\r\n const obj = await formTableItens.validateFields();\r\n if (typeof obj.lpi_valorvenda !== `number`) {\r\n obj.lpi_valorvenda = parseFloat(obj.lpi_valorvenda.toString().replaceAll(`.`, ``).replaceAll(`,`, `.`));\r\n }\r\n const array = [...itens];\r\n const index = array.findIndex(x => x === data);\r\n let reg = { ...array[index] };\r\n if (!!reg.lpi_id) {\r\n let listaEditarItensTemp = [...listaEditarItens];\r\n listaEditarItensTemp.push({ ...array[index], ...obj });\r\n setListaEditarItens(listaEditarItensTemp);\r\n }\r\n if (index !== -1) {\r\n array.splice(index, 1, { ...array[index], ...obj });\r\n setItens(array);\r\n }\r\n setEditiItenId({});\r\n setEditandoItens(false);\r\n } catch (error) {\r\n console.log('Valores inválidos ', error);\r\n }\r\n }\r\n const onCloseModal = () => setVisibleModalGrade(false);\r\n\r\n const cancelEdition = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: `Tem certeza que deseja cancelar?`,\r\n okText: 'OK',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n setEditandoItens(false);\r\n setEditiItenId({});\r\n }\r\n });\r\n }\r\n\r\n const isEditing = (record) => record.pro_id === editiItemId.pro_id && record.prg_ean === editiItemId.prg_ean;\r\n\r\n const columns = [\r\n {\r\n title: 'Código',\r\n width: 75,\r\n align: 'center',\r\n render: ({ pro_codigo }) => (\r\n \r\n {pro_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Produto',\r\n ...getColumnSearchProps('produto'),\r\n render: ({ pro_descricao, pro_ean, prg_ean, descricaoGrade }) => (\r\n
\r\n \r\n
\r\n {pro_descricao}\r\n \r\n \r\n \r\n EAN: {pro_ean}\r\n \r\n \r\n \r\n {prg_ean && \r\n \r\n \r\n EAN Grade: {prg_ean}\r\n \r\n \r\n \r\n \r\n Grade: {descricaoGrade}\r\n \r\n \r\n }\r\n \r\n ),\r\n },\r\n {\r\n title: 'Comissão',\r\n align: 'right',\r\n dataIndex: 'lpi_perccomissao',\r\n width: '25%',\r\n editable: true,\r\n render: text => {text}%\r\n },\r\n {\r\n title: 'Valor Item (R$)',\r\n dataIndex: 'lpi_valorvenda',\r\n width: '25%',\r\n align: 'right',\r\n required: true,\r\n editable: true,\r\n render: text => {FormatNumber(text, true)}\r\n },\r\n {\r\n title: 'Ações',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => {\r\n const editable = isEditing(record);\r\n return editable ? (\r\n
\r\n \r\n
\r\n saveRow(record)}\r\n icon={}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!importarProduto === false &&\r\n
\r\n
\r\n \r\n {itemProduto &&\r\n
\r\n \r\n { onPressEnterProCodigo(value) }}\r\n conteudo={\r\n pro => ({pro.pro_id} - {pro.pro_descricao})\r\n }\r\n />\r\n
\r\n {productName && (\r\n

Nome do Produto: {productName}

\r\n )}\r\n
\r\n
\r\n \r\n }\r\n {!itemProduto &&\r\n \r\n \r\n onChangeProdutoFiltro(value,1)}\r\n conteudo={\r\n pro => ({pro.pro_id} - {pro.pro_descricao})\r\n } />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n A lista abaixo está sendo filtrada por:\r\n \r\n {filtros.map((_filtro, indice) => (\r\n {\r\n filtros[indice].clearFilters();\r\n let _filtros = [...filtros];\r\n _filtros.splice(indice, 1);\r\n setFiltros(_filtros);\r\n }} className=\"m-l-5 text-uppercase\">\r\n {`${_filtro.valor}`}\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n { filtroItens(value) }} allowClear/>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {editing ? (\r\n \r\n {inputNode}\r\n \r\n ) : (\r\n children\r\n )}\r\n
\r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n }\r\n \r\n\r\n {!!importarProduto === true &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onChangeListaPreco(value)}\r\n showSearch={true}\r\n allowClear={true}\r\n conteudo={\r\n lp => ({lp.ltp_nome})\r\n } />\r\n \r\n \r\n \r\n {listaPrecoSelectd != null &&
\r\n \r\n
\r\n \r\n \"Filtrar Produtos\r\n \r\n \r\n Realize o filtro dos produtos da lista de preço selecionada para importar\r\n \r\n \r\n \r\n \r\n \r\n \r\n ({mar.mar_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n onChangeGrupo(value)}\r\n conteudo={\r\n gp => ({gp.gru_nome})\r\n }\r\n />\r\n \r\n \r\n {subgrupos &&\r\n \r\n \r\n ({sgp.sgp_nome})\r\n }\r\n />\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n Total de produtos à importar: 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Tag, Button, Table, Modal, Divider, Select } from \"antd\";\r\nimport { DeleteOutlined, PlusOutlined, ExclamationCircleOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\n\r\nimport { SelectPagination } from \"../../components\";\r\nimport { FormatFone, MaskFormat } from \"../../ValueObjects\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function TabCliente({ formulario }) {\r\n\r\n const [form] = Form.useForm();\r\n const [clientes, setClientes] = useState(() => {\r\n if (formulario.getFieldValue('ltp_id')) {\r\n let list = formulario.getFieldValue('clientes');\r\n return list ? list : [];\r\n }\r\n return []\r\n });\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ clientes: clientes });\r\n }, [clientes])\r\n\r\n async function onAddClienteList() {\r\n let cliente = (await api.get(`Cliente/BuscarCliente/${formulario.getFieldValue().cli_id}`)).data;\r\n cliente.ltp_id = formulario.getFieldValue('ltp_id');\r\n let array = [...clientes];\r\n let index = array.findIndex(x => x.cli_id == cliente.cli_id);\r\n if (index === -1)\r\n setClientes((prev) => ([...prev, { ...cliente }]));\r\n\r\n form.resetFields();\r\n }\r\n\r\n function onDelete(value) {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir o cliente selecionado?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n deleteCliente(value);\r\n }\r\n })\r\n }\r\n\r\n const deleteCliente = (value) => {\r\n let array = [...clientes];\r\n let index = array.findIndex(x => x.cli_id == value.cli_id);\r\n if (index !== -1) {\r\n array.splice(index, 1);\r\n setClientes(array);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n ({c.cli_id} - {c.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n \r\n {cli_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Nome',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n )\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 138,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n Endereço: {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n \r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n \r\n )\r\n }} expandIcon={({ record, expanded, onExpand }) => {\r\n return expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n );\r\n }} columnWidth={30} dataSource={clientes} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Modal, Tag, Button, Table, Divider, Select } from \"antd\";\r\nimport { DeleteOutlined, PlusOutlined, ExclamationCircleOutlined, } from \"@ant-design/icons\";\r\n\r\nimport { SelectPagination } from \"../../components\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function TabVendedor({ formulario }) {\r\n\r\n const [form] = Form.useForm();\r\n const [vendedores, setVendedores] = useState(() => {\r\n if (formulario.getFieldValue('ltp_id')) {\r\n let list = formulario.getFieldValue('vendedores');\r\n return list ? list : [];\r\n }\r\n return []\r\n });\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ vendedores: vendedores });\r\n }, [vendedores])\r\n\r\n async function onAddVendedorList() {\r\n let array = [...vendedores];\r\n let dadosVendedor = (await api.get(`Vendedor/RetornaVendedor?idVendedor=${formulario.getFieldValue().ven_id}`)).data;\r\n array.push(dadosVendedor);\r\n let key = 0;\r\n array.forEach(item => {\r\n item.key = key++;\r\n });\r\n setVendedores(array);\r\n form.resetFields();\r\n }\r\n\r\n function onDelete(value) {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir o vendedor selecionado?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n deleteVendedor(value);\r\n }\r\n })\r\n }\r\n\r\n const deleteVendedor = (value) => {\r\n let array = [...vendedores];\r\n let index = array.findIndex(x => x.ven_id == value.ven_id);\r\n if (index !== -1) {\r\n array.splice(index, 1);\r\n setVendedores(array);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n ({v.ven_id} - {v.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {ven_id}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Nome',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, Tabs, Alert, Button, Modal, notification } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, CheckCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { Data, FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { compararDatas, isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { TabItens, TabCliente, TabVendedor } from \"./tabPage\";\r\n\r\nexport default function ManutencaoPreco({ formulario, carregando, setExibeButtons, setCarregando, aoSalvar, onCancel }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [somenteCabecalho, setSomenteCabecalho] = useState(false);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [exibeItens, setExibeItens] = useState(false);\r\n const [dadosSalvos, setDadosSalvos] = useState({});\r\n const [listaItensExcluir, setListaItensExcluir] = useState([]);\r\n const [listaEditarItens, setListaEditarItens] = useState([]);\r\n const [editandoItens, setEditandoItens] = useState(false)\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n if (!!manutencao.dados) {\r\n setExibeButtons(true);\r\n setExibeItens(true);\r\n manutencao.dados.listaEmpresa = (manutencao.dados.loc_id === null);\r\n if (manutencao.dados.loc_id === null)\r\n formulario.setFieldsValue({ ltp_somenteestelocal: false });\r\n else\r\n formulario.setFieldsValue({ ltp_somenteestelocal: true });\r\n formulario.setFieldsValue(manutencao.dados);\r\n setListaEditarItens([]);\r\n setListaItensExcluir([]);\r\n } else {\r\n setExibeButtons(false);\r\n setExibeItens(false);\r\n formulario.setFieldsValue({\r\n ltp_ativa: true,\r\n listaEmpresa: true,\r\n ltp_somenteestelocal: false,\r\n ltp_consideradescontopgto: false,\r\n ltp_principal: false\r\n });\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n\r\n function modalInserirItem() {\r\n Modal.confirm({\r\n title: 'Lista de Preço Adicionada com sucesso!',\r\n icon: ,\r\n content: 'Deseja adicionar os itens na lista de preço?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n onOk() {\r\n setExibeItens(true);\r\n setExibeButtons(true);\r\n return false;\r\n },\r\n onCancel() {\r\n aoSalvar();\r\n }\r\n })\r\n }\r\n\r\n const salvar = () => {\r\n if (editandoItens) {\r\n notification.warning({ description: \"Favor finalizar as alterações dos itens antes de salvar\", message: \"Aviso\" });\r\n return;\r\n }\r\n let values = isObjetoDiffVazio(dadosSalvos) ? dadosSalvos : formulario.getFieldsValue();\r\n values.listaItemsExcluir = listaItensExcluir;\r\n values.listaEditarItens = listaEditarItens;\r\n if ((!!values.listaItemsExcluir && values.listaItemsExcluir.length > 0) || (!!values.listaEditarItens && values.listaEditarItens.length > 0)) {\r\n values.listaprecoitens = [];\r\n } else {\r\n values.listaprecoitens = formulario.getFieldsValue().itens;\r\n }\r\n values.listaprecoclientes = values.clientes;\r\n values.listaprecovendedores = values.vendedores;\r\n if (!!values.ltp_datainicial && values.ltp_datafinal) {\r\n if (compararDatas(values.ltp_datainicial, values.ltp_datafinal, '>')) {\r\n notification.warning({ message: `Aviso!`, description: `Data Final não pode ser menor que a data Inicial!` })\r\n return false;\r\n }\r\n }\r\n\r\n setCarregando(true);\r\n if (!!values.ltp_id) {\r\n editarLista(values);\r\n } else {\r\n incluirLista(values);\r\n }\r\n };\r\n\r\n function editarLista(values) {\r\n api.put(`ListaPreco/EditarAsync`, values).then(\r\n res => {\r\n setDadosSalvos(res.data);\r\n aoSalvar();\r\n }).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(() => {\r\n notification.success({ message: `Os dados da Lista de Preço foram editados com sucesso!` });\r\n setCarregando(false);\r\n });\r\n }\r\n\r\n function incluirLista(values) {\r\n api.post(`ListaPreco/IncluirAsync`, values).then(\r\n res => {\r\n setDadosSalvos(res.data);\r\n modalInserirItem();\r\n aoSalvar();\r\n }).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(() => {\r\n notification.success({ message: `Os dados da Lista de Preço foram incluídos com sucesso!` });\r\n setCarregando(false);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Lista de preço disponível apenas para esta filial \r\n \r\n \r\n \r\n \r\n Considerar os descontos na condição de pagamento \r\n \r\n \r\n \r\n \r\n Lista Principal \r\n \r\n \r\n \r\n \r\n Lista a Ativa \r\n \r\n \r\n \r\n \r\n prev.listaEmpresa !== current.listaEmpresa}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue(\"listaEmpresa\"))\r\n return (\r\n \r\n \r\n \r\n );\r\n else \r\n return (\r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n \r\n \r\n {!exibeItens &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {exibeItens &&\r\n \r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport ManutencaoPreco from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from \"../../components\";\r\nimport { drawerActions, manutencaoActions, listagemActions } from '../../actions';\r\n\r\nexport default function DrawerPreco() {\r\n\r\n const [formPreco] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [exibeButtons, setExibeButtons] = useState(false);\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ltp_id' } })\r\n formPreco.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n destroyOnClose={true}\r\n footer={exibeButtons &&\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Form, Input, Select, Table, Button, Modal, Card, Radio, InputNumber, Tag, Divider, notification } from \"antd\";\r\nimport { CloseOutlined, PlusOutlined, RedoOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { info } from \"../../services/funcoes\";\r\nimport { InputPreco, SelectPaginacao, SelectPaginado } from \"../../components\";\r\nimport { listagemActions, selectPaginadoActions } from \"../../actions\";\r\nimport { getEmpresa } from \"../../services/auth\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function AtualizarPreco({ formulario, carregando, aoSalvar }) {\r\n\r\n const [listaItens, setListaItens] = useState([]);\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [quantidadeEncontrados, setQuantidadeImportar] = useState(0);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawerExtra) {\r\n if (!!formulario.getFieldValue('itens')) {\r\n setListaItens(formulario.getFieldValue('itens'));\r\n } else {\r\n setListaItens([]);\r\n }\r\n buscarQuantidadeProdutos();\r\n if (!formulario.getFieldValue().tipoAtualizacaoPreco) {\r\n formulario.setFieldsValue({ tipoAtualizacaoPreco: 0 });\r\n }\r\n }\r\n }, [ui.showDrawerExtra]);\r\n\r\n function buscarQuantidadeProdutos() {\r\n let filtros = '';\r\n if (!!formulario.getFieldValue().mar_id) {\r\n filtros += `&idMarca=${formulario.getFieldValue().mar_id}`;\r\n }\r\n if (!!formulario.getFieldValue().gru_id) {\r\n filtros += `&idGrupo=${formulario.getFieldValue().gru_id}`;\r\n }\r\n if (!!formulario.getFieldValue().sgp_id) {\r\n filtros += `&idSubGrupo=${formulario.getFieldValue().sgp_id}`;\r\n }\r\n api.get(`ListaPreco/QuantidadeProdutosImportar?idListaOrigem=${formulario.getFieldValue().ltp_id}${filtros}`).then(res => {\r\n if (res.status === 200) {\r\n setQuantidadeImportar(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n };\r\n\r\n function limparFiltros() {\r\n formulario.setFieldsValue({ mar_id: null, gru_id: null, sgp_id: null });\r\n };\r\n\r\n function popularDadosSubGrupo(codigoGrupo) {\r\n let lista = [];\r\n lista.push({ name: \"sgp_id\", campo: \"CodigoGrupo\", value: codigoGrupo });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: {itens: lista} });\r\n };\r\n\r\n function atualizarPrecos(values) {\r\n if (parseFloat(values.reajustarValor) > 0) {\r\n let valuesEnviar = {};\r\n valuesEnviar.filtrosAdicional = null;//não implementado\r\n valuesEnviar.gru_id = !!values.gru_id ? values.gru_id : null;\r\n valuesEnviar.ltp_id = values.ltp_id;\r\n valuesEnviar.mar_id = !!values.mar_id ? values.mar_id : null;\r\n valuesEnviar.spg_id = !!values.sgp_id ? values.sgp_id : null;\r\n valuesEnviar.tipoAtualizacaoPreco = values.tipoAtualizacaoPreco;\r\n\r\n if (valuesEnviar.tipoAtualizacaoPreco === 2 || valuesEnviar.tipoAtualizacaoPreco === 4) {\r\n valuesEnviar.reajustarValor = parseFloat(values.reajustarValor) / 100;\r\n } else {\r\n valuesEnviar.reajustarValor = parseFloat(values.reajustarValor);\r\n }\r\n\r\n Modal.confirm({\r\n title: 'Confirmar atualização de preços?',\r\n icon: ,\r\n content: '',\r\n okText: 'Sim, atualizar preços',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.post('ListaPreco/AtualizarPrecosProdutos', valuesEnviar).then(res => {\r\n if (res.status === 200) {\r\n Modal.success({\r\n title: 'Preços atualizados com sucesso!',\r\n content: `Os preços dos ${listaItens.length} produtos localizados da lista ${formulario.getFieldValue().ltp_nome} foram atualizados com sucesso!`,\r\n });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ltp_id' } });\r\n aoSalvar();\r\n }\r\n }, err => {\r\n Modal.error({\r\n title: 'Atenção!',\r\n content: (\r\n
\r\n

Ocorreu um erro ao tentar realizar o reajuste de preços!

\r\n
\r\n ),\r\n });\r\n });\r\n }\r\n });\r\n } else {\r\n info('Você deve informar o valor ou percentual para realizar o reajuste de preços!');\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Atualização Atualização de Preços de Produtos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Lista de Preços: {formulario.getFieldValue().ltp_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Para realizar a atualização dos preços configure os filtros abaixo:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n {marca.mar_nome}\r\n )} onClearFunction={() => { formulario.setFieldsValue({ \"mar_id\": null }) }} />\r\n \r\n \r\n \r\n \r\n popularDadosSubGrupo(value)}\r\n conteudo={\r\n (grupo) => (\r\n {grupo.gru_nome}\r\n )} onClearFunction={() => { formulario.setFieldsValue({ \"gru_id\": null }) }} />\r\n \r\n \r\n \r\n \r\n (\r\n {subGrupo.sgp_nome}\r\n )} onClearFunction={() => { formulario.setFieldsValue({ \"sgp_id\": null }) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Definir um novo valor especifico para os produtos nesta lista de preços\r\n
\r\n Aumentar o preço de venda atual, aplicando um aumento fixo em reais (R$)\r\n
\r\n Aumentar o preço de venda atual, aplicando um aumento percentual sobre o valor de venda atual (%)\r\n
\r\n Diminuir o preço de venda atual, aplicando uma redução fixa em reais (R$)\r\n
\r\n Diminuir o preço de venda atual, aplicando uma redução percentual sobre o valor de venda atual (%)\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Produtos Encontrados\r\n \r\n \r\n \r\n \r\n \r\n \r\n {quantidadeEncontrados}\r\n \r\n \r\n \r\n \r\n \r\n prevValues.tipoAtualizacaoPreco !== currentValues.tipoAtualizacaoPreco}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('tipoAtualizacaoPreco') === 0) return (\r\n \r\n );\r\n if (getFieldValue('tipoAtualizacaoPreco') === 1) return (\r\n \r\n );\r\n if (getFieldValue('tipoAtualizacaoPreco') === 3) return (\r\n \r\n );\r\n else return (\r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')} />\r\n \r\n );\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n \r\n {pro_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Item (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ lpi_valorvenda }) => (\r\n
\r\n {FormatNumber(lpi_valorvenda, true)}\r\n
\r\n ),\r\n }\r\n ]\r\n } expandedRowRender={({ pro_ean, descricaoGrade }) => {\r\n return (\r\n
\r\n \r\n
\r\n Código de Barras (EAN): {pro_ean}\r\n \r\n \r\n Grade: {descricaoGrade}\r\n \r\n \r\n \r\n )\r\n }} expandIconColumnIndex={-1} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { DrawerNav } from \"../../components\";\r\nimport AtualizarPreco from './atualizarPreco';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerAtualizarPreco() {\r\n\r\n const [formAtualizar] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) formAtualizar.setFieldsValue(manutencao.dados);\r\n else {\r\n //formAtualizar.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerExtra: false } });\r\n formAtualizar.resetFields();\r\n\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Button, Collapse, Tag, Popover } from \"antd\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, SearchOutlined, EditOutlined, SyncOutlined, PrinterOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatDate } from '../../ValueObjects';\r\nimport { DrawerPreco, DrawerAtualizarPreco } from \"./drawerPage\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacaoData, TabelaDados, Editar, Imprimir, Data, PesquisaAvancada } from \"../../components\";\r\n\r\nexport default function Preco() {\r\n\r\n const [open, setOpen] = useState(false);\r\n const [loadingEdit, setLoadingEdit] = useState(false);\r\n const [itemEdit, setItemEdit] = useState(null);\r\n const [dataAtual] = useState(new Date());\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formulario] = Form.useForm();\r\n const [clientes, setClientes] = useState([]);\r\n const [vendedores, setVendedores] = useState([]);\r\n const [formPesquisaAvancada] = Form.useForm();\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ltp_id' } });\r\n formulario.setFieldsValue({ dataInicial: moment(new Date()), dataFinal: moment(new Date()) });\r\n\r\n api.get('Cliente/Listar?filtro=&ordem=%2Bpes_nome').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setClientes(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n\r\n api.get('Vendedor/ListarVendedor').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setVendedores(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }, []);\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n const loadDada = async (data) => {\r\n setItemEdit(data.ltp_id);\r\n if (!!data.ltp_datafinal) {\r\n data.ltp_datafinal = !!data.ltp_datafinal ? moment(data.ltp_datafinal) : null;\r\n }\r\n if (!!data.ltp_datainicial) {\r\n data.ltp_datainicial = !!data.ltp_datainicial ? moment(data.ltp_datainicial) : null;\r\n }\r\n if (data.loc_id == null) {\r\n data.ltp_todaempresa = true;\r\n }\r\n setLoadingEdit(true);\r\n data.itens = await getList(`ListaPrecoItem/ListarItens?codigoLista=${data.ltp_id}`);\r\n data.clientes = await getList(`ListaPrecoCliente/ListarTodos?CodigoLista=${data.ltp_id}`);\r\n data.vendedores = await getList(`ListaPrecoVendedor/ListarTodos?codigoLista=${data.ltp_id}`);\r\n setLoadingEdit(false);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: data } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n\r\n const openAtualizarPrecos = async (data) => {\r\n data.itens = await getList(`ListaPrecoItem/ListarItens?codigoLista=${data.ltp_id}`);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: data } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerExtra: true } });\r\n }\r\n\r\n const getList = async (url) => {\r\n return await api.get(url).then((result) => {\r\n if (result.status === 200)\r\n return result.data;\r\n return [];\r\n }).catch((err) => {\r\n console.log('err request :>> ', err);\r\n return [];\r\n });\r\n };\r\n\r\n function aplicarFiltros() {\r\n let dataInicial = (!!formulario.getFieldValue().dataInicial ? FormatDate(formulario.getFieldValue().dataInicial._d.toLocaleDateString()) : moment(formulario.getFieldValue().dataPesquisa).format('YYYY-MM-DD'));\r\n let dataFinal = (!!formulario.getFieldValue().dataFinal ? FormatDate(formulario.getFieldValue().dataFinal._d.toLocaleDateString()) : FormatDate(dataAtual.toLocaleDateString()));\r\n let cliente = (!!formulario.getFieldValue().cli_id ? `&idCliente=${formulario.getFieldValue().cli_id}` : '');\r\n let vendedor = (!!formulario.getFieldValue().ven_id ? `&idVendedor=${formulario.getFieldValue().ven_id}` : '');\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ltp_id', outrosFiltros: `&dataFinal=${dataFinal}&dataInicial=${dataInicial}${cliente}${vendedor}` } });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataFinal=${FormatDate(dataAtual.toLocaleDateString())}&dataInicial=${moment(formulario.getFieldValue().dataPesquisa).format('YYYY-MM-DD')}` } });\r\n }} />\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n {\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {ltp_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ ltp_nome }) => (\r\n
\r\n {ltp_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Padrão?',\r\n width: 100,\r\n align: 'center',\r\n render: ({ ltp_principal }) => (\r\n
\r\n {ltp_principal ? 'SIM' : 'NÃO'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Inicial',\r\n align: 'center',\r\n width: 100,\r\n render: ({ ltp_datainicial }) => (\r\n
\r\n {(ltp_datainicial ? moment(ltp_datainicial).format(\"DD/MM/YYYY\") : '')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Final',\r\n align: 'center',\r\n width: 100,\r\n render: ({ ltp_datafinal }) => (\r\n
\r\n {(ltp_datafinal ? moment(ltp_datafinal).format(\"DD/MM/YYYY\") : '')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n fixed: 'right',\r\n align: 'center',\r\n width: 158,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n } loading={record.ltp_id === itemEdit ? loadingEdit : false} onClick={() => {\r\n loadDada(record)\r\n }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Row, Col, Form, Select, Input, Button, Table, Tag, Modal, notification, Switch, InputNumber, Card, Checkbox, Tooltip } from \"antd\";\r\nimport { BarcodeOutlined, CloseOutlined, CopyOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined, PlusOutlined, PrinterOutlined, SearchOutlined, TableOutlined } from \"@ant-design/icons\";\r\nimport jsreports from \"jsreports/jsreports-all\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions } from \"../../actions\";\r\nimport { getEmpresa } from \"../../services/auth\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { FormGW, SelectProduto } from \"../../components\";\r\nimport { ModalProdutoGrade } from \"../../components/modals\"\r\nimport { isNotNullOrEmpty, isObjetoDiffVazio, retornaSoNumeros, validaForm } from \"../../services/funcoes\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function ImprimirEtiqueta({ formulario }) {\r\n const [{ manutencao, listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [listaPreco, setListaPreco] = useState([]);\r\n const [listaItens, setListaItens] = useState([]);\r\n const [dadosAdicionais, setDadosAdicionais] = useState(false);\r\n const [dadosEmpresa, setDadosEmpresa] = useState({});\r\n const [multiplosReg, setMultiplosReg] = useState(false);\r\n const [listaSubGrupo, setListaSubGrupo] = useState([]);\r\n const [dadosProduto, setDadosProduto] = useState({});\r\n const [filtroProd, setFiltroProd] = useState(\"\");\r\n const [atualizarListaProd, setAtualizarListaProd] = useState(false);\r\n const [consultaProduto, setConsultaProduto] = useState(true);\r\n const [recordEditando, setRecordEditando] = useState({});\r\n const [possuiGrade, setPossuiGrade] = useState(false);\r\n const [abrirModalGrade, setAbrirModalGrade] = useState(false);\r\n const codBarras = useRef();\r\n const squemaEtiquetaProduto = [\r\n {\r\n nome: 'Codigo_Empresa',\r\n tipo: 'number'\r\n },\r\n {\r\n nome: 'Empresa',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Produto',\r\n tipo: 'number'\r\n },\r\n {\r\n nome: 'Produto',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Grade',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Marca',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Preco',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Ean',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Etiqueta',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Referencia',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Observacao',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Quantidade_Parcela',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Valor_Parcelado',\r\n tipo: 'string'\r\n }\r\n ];\r\n\r\n const listaValidacao = [\r\n { nome: 'modelo', obrigatorio: true, label: 'Modelo de Etiqueta' }\r\n ];\r\n\r\n const modalExcluirItem = (record) => {\r\n Modal.confirm({\r\n title: 'Remover?',\r\n icon: ,\r\n content: `Deseja realmente remover o item selecionado?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n removerItem(record);\r\n }\r\n });\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setConsultaProduto(!consultaProduto);\r\n };\r\n\r\n useEffect(() => {\r\n buscarListaPreco();\r\n buscarDadosEmpresa();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!recordEditando && isObjetoDiffVazio(recordEditando)) {\r\n let dados = listaSelectPaginacao?.itens?.filter((item) => item.pro_id === recordEditando.pro_id && ((!!recordEditando.prg_id && recordEditando.prg_id === item.prg_id) || !!!recordEditando.prg_id))[0];\r\n if (!!dados) {\r\n prepararDadosEditar(recordEditando, dados);\r\n }\r\n setRecordEditando({});\r\n }\r\n }, [listaSelectPaginacao.itens]);\r\n\r\n\r\n function buscarListaPreco() {\r\n api.get('ListaPreco/ListarTodasListaPreco').then(\r\n res => {\r\n setListaPreco(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function buscarDadosEmpresa() {\r\n api.get(`Empresa/Buscar/${getEmpresa()}`).then(\r\n res => {\r\n setDadosEmpresa(res.data)\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function buscarSubGrupo(grupo) {\r\n api.get(`SubGrupo/ListarSemPaginacao?&Ativo=true&CodigoGrupo=${grupo}`).then(\r\n res => {\r\n setListaSubGrupo(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n async function popularDadosProdutonew(key, editando = false) {\r\n if (!isNotNullOrEmpty(key)) {\r\n setAtualizarListaProd(true);\r\n return;\r\n }\r\n let prod = {};\r\n if (!editando) {\r\n prod = listaSelectPaginacao?.itens?.filter(item => key === item.key)[0];\r\n } else {\r\n prod = listaItens.filter(item => item.key === key)[0];\r\n if (!!!prod || !isObjetoDiffVazio(prod)) {\r\n prod = listaSelectPaginacao?.itens?.filter(item => key === item.key)[0];\r\n prod = listaItens.filter(item => item.pro_id === prod.pro_id && item.prg_id === prod.prg_id)[0];\r\n }\r\n }\r\n formulario.setFieldsValue({ ltp_id: null });\r\n let listaPrecosProduto = await api.get(`ListaPreco/ListarListaPrecoProduto?idProduto=${prod.pro_id}${!!prod.prg_id ? '&idProdutoGrade=' + prod.prg_id : ''}`);\r\n let listaPadraoProduto = await api.get(`ListaPreco/ListarListaPrecoProduto?idProduto=${prod.pro_id}${!!prod.prg_id ? '&idProdutoGrade=' + prod.prg_id : ''}`);\r\n if (!!prod.prg_id) {\r\n setPossuiGrade(true);\r\n }\r\n let idx = 0;\r\n listaPrecosProduto.data.forEach(item => item.key = idx++);\r\n setListaPreco(listaPrecosProduto.data);\r\n setDadosProduto(prod);\r\n setRecordEditando({});\r\n formulario.setFieldsValue({ ltp_id: listaPadraoProduto.data[0].ltp_id });\r\n };\r\n\r\n function adicionarItem(lstPreco = listaPreco, prod = dadosProduto) {\r\n let dados = [...listaItens];\r\n let obj = {};\r\n let editando = true;\r\n if (!multiplosReg) {\r\n obj = dados.find((item) => (prod.pro_id === item.pro_id && prod.prg_id === item.prg_id));\r\n if (!!!obj) {\r\n obj = prod;\r\n obj.sequencia = !!dados.length > 0 ? dados[dados.length - 1].sequencia + 1 : 1;\r\n editando = false;\r\n } else {\r\n setAtualizarListaProd(true);\r\n setFiltroProd(\"\");\r\n }\r\n obj.quantidade = parseInt(formulario.getFieldValue().quantidade);\r\n if (!!lstPreco && lstPreco.length > 0) {\r\n obj.lpi_valorvenda = lstPreco.filter((preco) => (preco.ltp_id === formulario.getFieldValue().ltp_id))[0].lpi_valorvenda;\r\n obj.observacao = formulario.getFieldValue().observacao;\r\n obj.pro_ean = !!obj.pro_ean ? obj.pro_ean : obj.prg_ean;\r\n if (parseFloat(obj.lpi_valorvenda) > 0) {\r\n if (!editando) {\r\n dados.push(obj);\r\n }\r\n setListaItens(dados);\r\n setPossuiGrade(false);\r\n limparCampos();\r\n } else {\r\n notification.warning({ description: 'Tabela de preço sem valor para o produto atual', message: 'Aviso' });\r\n return false;\r\n }\r\n }\r\n } else {\r\n let filtros = '';\r\n filtros += !!formulario.getFieldValue().ltp_id ? `&listaPrecoId=${formulario.getFieldValue().ltp_id}` : '';\r\n filtros += !!formulario.getFieldValue().pro_id ? `&produtoId=${formulario.getFieldValue().pro_id}` : '';\r\n filtros += !!formulario.getFieldValue().mar_id ? `&marcaId=${formulario.getFieldValue().mar_id}` : '';\r\n filtros += !!formulario.getFieldValue().gru_id ? `&grupoId=${formulario.getFieldValue().gru_id}` : '';\r\n filtros += !!formulario.getFieldValue().sgp_id ? `&subGrupoId=${formulario.getFieldValue().sgp_id}` : '';\r\n api.get(`RelatorioModeloEtiqueta/DadosEtiquetaProduto?${filtros}`).then(\r\n res => {\r\n let qtd = 0;\r\n res.data.forEach((item) => {\r\n if (parseFloat(item.listaPrecoProduto) > 0) {\r\n item.sequencia = !!dados.length > 0 ? dados[dados.length - 1].sequencia + 1 : 1;\r\n item.quantidade = 1;\r\n item.lpi_valorvenda = item.listaPrecoProduto;\r\n item.observacao = formulario.getFieldValue().observacao;\r\n qtd++;\r\n dados.push(item);\r\n }\r\n });\r\n if (qtd === 0) {\r\n notification.warning({ description: 'Produtos sem preço de venda', message: 'Aviso' });\r\n return false;\r\n }\r\n setListaItens(dados);\r\n setPossuiGrade(false);\r\n limparCampos()\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n };\r\n\r\n function editarItem(record) {\r\n setFiltroProd(record.pro_ean);\r\n let dados = listaSelectPaginacao?.itens?.filter((item) => item.pro_id === recordEditando.pro_id && ((!!recordEditando.prg_id && recordEditando.prg_id === item.prg_id) || !!!recordEditando.prg_id))[0];\r\n if (!!!dados || !isObjetoDiffVazio(dados)) {\r\n setRecordEditando(record);\r\n } else {\r\n prepararDadosEditar(record, dados);\r\n }\r\n };\r\n\r\n function prepararDadosEditar(record, dados) {\r\n formulario.setFieldsValue({ pro_id: dados.key, prg_id: record.prg_id, quantidade: record.quantidade, observacao: record.observacao });\r\n setMultiplosReg(false);\r\n popularDadosProdutonew(dados.key, true);\r\n };\r\n\r\n function removerItem(record) {\r\n let dados = listaItens.filter((item) => item.pro_id !== record.pro_id || (item.pro_id === record.pro_id && item.prg_id !== record.prg_id));\r\n setListaItens(dados);\r\n };\r\n\r\n function limparCampos() {\r\n formulario.setFieldsValue({ pro_id: null, pro_codigo: null, quantidade: null, ltp_id: null, observacao: '', mar_id: null, gru_id: null, sgp_id: null });\r\n };\r\n\r\n\r\n function imprimir() {\r\n\r\n let idModelo = formulario.getFieldValue().modelo;\r\n api.get(`RelatorioModeloEtiqueta/Listar?id=${idModelo}`).then(\r\n res => {\r\n montarEtiqueta(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validarFormulario() {\r\n if (validaForm(formulario, listaValidacao)) {\r\n imprimir();\r\n }\r\n }\r\n\r\n function retornaObjeto(listaObj) {\r\n var objRetorno = {};\r\n for (var i = 0; i < listaObj.length; i++) {\r\n for (var attrname in listaObj[i]) {\r\n objRetorno[attrname] = listaObj[i][attrname];\r\n }\r\n }\r\n return objRetorno;\r\n }\r\n\r\n function montarEtiqueta(dadosRel) {\r\n let qtd = dadosRel.quantidadeColuna;\r\n let qtdTot = 0;\r\n let campos = [];\r\n let dadosCampos = [];\r\n let listaDadosImpressora = [];\r\n let dadosImpressora = {\r\n id: \"etiqueta\",\r\n name: \"etiqueta\",\r\n };\r\n listaItens.forEach((itens) => {\r\n qtdTot += itens.quantidade;\r\n });\r\n squemaEtiquetaProduto.forEach((squema) => {\r\n for (let i = 1; i <= qtd; i++) {\r\n campos.push({ name: `${squema.nome}_Coluna_${i}`, type: squema.tipo })\r\n }\r\n });\r\n let numeroColuna = 1;\r\n let dadosAux = [];\r\n listaItens.forEach((produto) => {\r\n for (let idx = 1; idx <= produto.quantidade; idx++) {\r\n let valorParcelado = 0;\r\n let quantidadeParcela = '';\r\n if (dadosAdicionais) {\r\n let qtdParcelas = !!formulario.getFieldValue().numeroParcelas ? formulario.getFieldValue().numeroParcelas : 1;\r\n if (!!formulario.getFieldValue().possuiEntrada) {\r\n quantidadeParcela = `${qtdParcelas}x(1+${qtdParcelas - 1})`;\r\n } else {\r\n quantidadeParcela = qtdParcelas + 'x';\r\n }\r\n\r\n valorParcelado = FormatNumber(produto.lpi_valorvenda / qtdParcelas, true);\r\n }\r\n dadosAux.push({\r\n ['Codigo_Empresa_Coluna_' + numeroColuna]: getEmpresa(),\r\n ['Empresa_Coluna_' + numeroColuna]: dadosEmpresa.emp_nomefantasia,\r\n ['Codigo_Produto_Coluna_' + numeroColuna]: produto.pro_codigo,\r\n ['Produto_Coluna_' + numeroColuna]: produto.pro_descricao,\r\n ['Grade_Coluna_' + numeroColuna]: produto.descricaograde,\r\n ['Marca_Coluna_' + numeroColuna]: produto.mar_nome,\r\n ['Preco_Coluna_' + numeroColuna]: FormatNumber(produto.lpi_valorvenda, true),\r\n ['Ean_Coluna_' + numeroColuna]: produto.pro_ean,\r\n ['Codigo_Etiqueta_Coluna_' + numeroColuna]: produto.pro_codigoetiqueta,\r\n ['Codigo_Referencia_Coluna_' + numeroColuna]: produto.pro_referencia,\r\n ['Observacao_Coluna_' + numeroColuna]: produto.observacao,\r\n ['Quantidade_Parcela_Coluna_' + numeroColuna]: quantidadeParcela,\r\n ['Valor_Parcelado_Coluna_' + numeroColuna]: valorParcelado\r\n });\r\n\r\n if (numeroColuna === qtd || (qtdTot < qtd && qtdTot === numeroColuna)) {\r\n if (qtdTot < qtd) {\r\n numeroColuna++;\r\n for (let idx = numeroColuna; idx <= qtd; idx++) {\r\n dadosAux.push(retornaEtiquetaEmBranco(idx));\r\n }\r\n }\r\n dadosCampos.push(retornaObjeto(dadosAux));\r\n qtdTot = qtdTot - qtd;\r\n dadosAux = [];\r\n numeroColuna = 1;\r\n } else {\r\n numeroColuna++;\r\n }\r\n }\r\n });\r\n dadosImpressora.data = dadosCampos;\r\n dadosImpressora.schema = {\r\n fields: campos\r\n };\r\n\r\n listaDadosImpressora.push(dadosImpressora);\r\n jsreports.export({\r\n report_def: JSON.parse(dadosRel.jsonRelatorio),\r\n datasets: listaDadosImpressora,\r\n format: 'pdf',\r\n outputHandler: function (dados) {\r\n window.open(URL.createObjectURL(dados), '_blank');\r\n }\r\n })\r\n };\r\n\r\n function retornaEtiquetaEmBranco(numeroColuna) {\r\n return {\r\n ['Codigo_Empresa_Coluna_' + numeroColuna]: null,\r\n ['Empresa_Coluna_' + numeroColuna]: '',\r\n ['Codigo_Produto_Coluna_' + numeroColuna]: null,\r\n ['Produto_Coluna_' + numeroColuna]: '',\r\n ['Grade_Coluna_' + numeroColuna]: '',\r\n ['Marca_Coluna_' + numeroColuna]: '',\r\n ['Preco_Coluna_' + numeroColuna]: null,\r\n ['Ean_Coluna_' + numeroColuna]: '',\r\n ['Codigo_Etiqueta_Coluna_' + numeroColuna]: null,\r\n ['Codigo_Referencia_Coluna_' + numeroColuna]: '',\r\n ['Observacao_Coluna_' + numeroColuna]: '',\r\n ['Quantidade_Parcela_Coluna_' + numeroColuna]: null,\r\n ['Valor_Parcelado_Coluna_' + numeroColuna]: null\r\n }\r\n };\r\n\r\n function limparItens() {\r\n setListaItens([]);\r\n };\r\n\r\n async function buscarProdutoCodBarra(codigoBarras) {\r\n let dados = [...listaItens];\r\n let res = await api.get(`Produto/ListaProdutoComGradeFiltro?Filtro=${codigoBarras}`);\r\n codBarras.current.focus();\r\n if (!!res.data && res.data.items.length > 0) {\r\n let prod = res.data.items[0];\r\n let obj = dados.filter((item) => item.pro_id === prod.pro_id && ((!!prod.prg_id && prod.prg_id === item.prg_id) || !!!prod.prg_id))[0];\r\n let qtd = 1;\r\n if (!!obj && isObjetoDiffVazio(obj)) {\r\n qtd = obj.quantidade + 1;\r\n }\r\n setDadosProduto(prod);\r\n \r\n let listaPrecosProduto = await api.get(`ListaPreco/ListarListaPrecoProduto?idProduto=${prod.pro_id}${!!prod.prg_id ? '&idProdutoGrade=' + prod.prg_id : ''}`);\r\n let listaPadraoProduto = await api.get(`ListaPreco/ListaPrecoPadraoProduto?idProduto=${prod.pro_id}${!!prod.prg_id ? '&IdProdutoGrade=' + prod.prg_id : ''}`);\r\n let idx = 0;\r\n listaPrecosProduto.data.forEach(item => item.key = idx++);\r\n setListaPreco(listaPrecosProduto.data);\r\n formulario.setFieldsValue({ ltp_id: listaPadraoProduto.data[0]?.ltp_id, quantidade: qtd });\r\n adicionarItem(listaPrecosProduto.data, prod);\r\n } else {\r\n notification.warning({ description: 'Produto não localizado', message: 'Atenção!' })\r\n }\r\n\r\n };\r\n\r\n function exibirTodasGrades() {\r\n setAbrirModalGrade(true);\r\n };\r\n\r\n function aoFecharModalGrade(dados) {\r\n if (!!dados && dados.length > 0) {\r\n adicionarItensGrade(dados);\r\n }\r\n setAbrirModalGrade(false);\r\n };\r\n\r\n function adicionarItensGrade(listaGrade) {\r\n let dados = [...listaItens];\r\n let obj = {};\r\n if (!!!listaGrade || listaGrade.length === 0) {\r\n return false;\r\n }\r\n listaGrade.forEach((grade, indice) => {\r\n obj = dados.find((item) => (grade.pro_id === item.pro_id && grade.prg_id === item.prg_id));\r\n if (!!!obj) {\r\n obj = grade;\r\n obj.sequencia = !!dados.length > 0 ? dados[dados.length - 1].sequencia + 1 : 1;\r\n obj.observacao = \"\";\r\n obj.pro_ean = !!obj.prg_ean ? obj.prg_ean : obj.pro_ean;\r\n }\r\n obj.quantidade = parseInt(grade.quantidade);\r\n dados.push(obj);\r\n\r\n if (indice === listaGrade.length - 1) {\r\n setListaItens(dados);\r\n setPossuiGrade(false);\r\n limparCampos();\r\n }\r\n });\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n { adicionarItem() }}>\r\n \r\n \r\n \r\n (\r\n {modelo.nome}\r\n )} />\r\n \r\n \r\n \r\n {!multiplosReg &&\r\n \r\n {!!consultaProduto && \r\n \r\n { popularDadosProdutonew(formulario.getFieldValue().pro_id) }} ordem={\"pro_id\"} filtroPesq={filtroProd} atualizaComponente={atualizarListaProd} />\r\n \r\n \r\n }\r\n {!!!consultaProduto && \r\n \r\n {\r\n const value = e.target.value;\r\n if (value.trim()) {\r\n buscarProdutoCodBarra(value)\r\n } else {\r\n notification.warning({ description: 'Informe o código do Produto', message: 'Atenção!' })\r\n }\r\n }} \r\n placeholder=\"Informe o Produto/Mercadoria\" \r\n />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n {!multiplosReg &&\r\n \r\n \r\n {!!consultaProduto && possuiGrade && \r\n \r\n }\r\n {!!consultaProduto &&\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n }\r\n \r\n {multiplosReg &&
\r\n \r\n
\r\n \r\n (\r\n {listaPre.ltp_nome}\r\n )} />\r\n \r\n \r\n \r\n \r\n ({marca.mar_nome})} />\r\n \r\n \r\n \r\n \r\n ({grupo.gru_nome})} onChangeFunction={(rec) => { buscarSubGrupo(rec) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {listaItens.length > 0 &&
(\r\n
\r\n \r\n
\r\n \r\n {sequencia}\r\n \r\n \r\n \r\n {pro_codigo} - {pro_descricao}\r\n \r\n \r\n \r\n \r\n EAN: {pro_ean}\r\n \r\n {!!descricaograde && \r\n Grade: {descricaograde}\r\n }\r\n \r\n \r\n )\r\n }, {\r\n title: 'Valor Unit. (R$)',\r\n align: 'right',\r\n width: 150,\r\n align: 'center',\r\n render: ({ lpi_valorvenda }) => (\r\n
\r\n {FormatNumber(lpi_valorvenda, true)}\r\n
\r\n )\r\n }, {\r\n title: 'Quant. Etiqueta',\r\n width: 120,\r\n align: 'center',\r\n render: ({ quantidade }) => (\r\n
\r\n {quantidade}\r\n
\r\n )\r\n }, {\r\n title: 'Ações',\r\n fixed: 'right',\r\n width: 65,\r\n align: 'center',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n { setDadosAdicionais(!dadosAdicionais) }} />\r\n \r\n \r\n \r\n {dadosAdicionais && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Possui Entrada?\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n { aoFecharModalGrade(dados) }} />\r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Form } from \"antd\";\r\nimport { MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\nimport ImprimirEtiqueta from './manutencao';\r\nimport { DrawerNav } from '../../components';\r\n\r\nexport default function DrawerImprimirEtiqueta() {\r\n\r\n const [formImprimirEtiqueta] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formImprimirEtiqueta.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n return (\r\n\r\n }\r\n fecharDrawer={() => {\r\n formImprimirEtiqueta.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }}\r\n >\r\n \r\n \r\n\r\n )\r\n}","import React, { useState } from 'react';\r\nimport { Form } from \"antd\";\r\nimport { MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions } from '../../actions';\r\nimport ServidorImpressao from './servidorImpressao';\r\n\r\nexport default function DrawerServidorImpressao({ servidor }) {\r\n\r\n const [formImprimirEtiqueta] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n if (!!manutencao.dados) formImprimirEtiqueta.setFieldsValue(manutencao.dados);\r\n else {\r\n //formImprimirEtiqueta.resetFields();\r\n }\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formImprimirEtiqueta.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerExtra: false } });\r\n }\r\n\r\n return (\r\n\r\n }\r\n fecharDrawerExtra={() => {\r\n formImprimirEtiqueta.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerExtra: false } });\r\n }}>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Button, Card, notification } from \"antd\";\r\nimport { PrinterOutlined } from \"@ant-design/icons\";\r\n\r\nimport \"./index.less\";\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions } from '../../actions';\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { BreadcrumbPage, BotaoAbrirChamado } from \"../../components\";\r\nimport { DrawerImprimirEtiqueta, DrawerServidorImpressao } from './drawerPages';\r\nimport { carregarConfiguracoes, ServidorImpressoraOnline } from \"../../services/servidorImpressora\";\r\n\r\nexport default function Etiqueta() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [servidorOn, setServidorOn] = useState(true);\r\n \r\n useEffect(() => {\r\n verificarServidor();\r\n }, []);\r\n\r\n async function verificarServidor() {\r\n let servidorOn = await ServidorImpressoraOnline();\r\n if (servidorOn.online) {\r\n let conf = await carregarConfiguracoes();\r\n if (!!conf) {\r\n if (!!!conf.impressoraEtiqueta || !isObjetoDiffVazio(conf.impressoraEtiqueta)) {\r\n notification.warn({ description: 'Você deve configurar a impressora de etiquetas a ser utilizada nesse computador!', message: 'Aviso' });\r\n //setServidorOn(false);\r\n } else if (!!!conf.modeloEtiqueta || !isObjetoDiffVazio(conf.modeloEtiqueta)) {\r\n notification.warn({ description: 'Você deve configurar o modelo de etiquetas padrão a ser utilizado nesse computador!', message: 'Aviso' });\r\n //setServidorOn(false);\r\n }\r\n\r\n }\r\n } else {\r\n notification.warn({ description: 'O Servidor de impressão não esta em execução nesse computador, para utilizar impressoras de etiquetas verifique as configurações!', message: 'Aviso' });\r\n setServidorOn(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Selecione a impressora que deseja imprimir as etiquetas.\r\n \r\n \r\n \r\n \r\n \r\n
{\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }}>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
{\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerExtra: true } });\r\n }}>\r\n } size=\"large\" type=\"primary\">\r\n Servidor de Impressão\r\n \r\n }>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Card, Typography, Select, Button, Radio, Table, Modal, Tag, Divider } from \"antd\";\r\nimport { EditOutlined, CloseOutlined, ArrowUpOutlined, ArrowDownOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { arredonda, isNotNullOrEmpty } from \"../../services/funcoes\";\r\nimport { FormatDate, FormatNumber } from \"../../ValueObjects\";\r\nimport { BreadcrumbAbrirChamado, Data } from \"../../components\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { Link } from \"@material-ui/core\";\r\nimport { ModalGradeEstoque } from \"../../components/modals\";\r\n\r\nexport default function ResumoProduto() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaProdutos, setListaProdutos] = useState([]);\r\n const [dadosProdutoGrade, setDadosProdutoGrade] = useState({});\r\n const [openGradeProduto, setOpenGradeProduto] = useState(false);\r\n const [openProduto, setOpenProduto] = useState(false);\r\n const [dadosProduto, setDadosProduto] = useState({});\r\n const [dadosUltimaVenda, setDadosUltimaVenda] = useState({});\r\n const [dadosUltimaCompra, setDadosUltimaCompra] = useState({});\r\n const [dadosUltimosCustos, setDadosUltimosCustos] = useState({});\r\n const [listaNotasVenda, setListaNotasVenda] = useState([]);\r\n const [listaNotasCompra, setListaNotasCompra] = useState([]);\r\n const [dadosCondicionais, setDadosCondicionais] = useState([]);\r\n const [listaOrdemCompra, setListaOrdemCompra] = useState([]);\r\n const [listaPedidos, setListaPedidos] = useState([]);\r\n const [listaMovimentacoes, setListaMovimentacoes] = useState([]);\r\n const [listaPreco, setListaPreco] = useState([]);\r\n const [dadosEstoque, setDadosEstoque] = useState([]);\r\n const [formulario] = Form.useForm(); const [totalEstoque, setTotalEstoque] = useState(0);\r\n const [totalPedido, setTotalPedido] = useState(0);\r\n const [totalCondicional, setTotalCondicional] = useState(0);\r\n const [totalPrevisoes, setTotalPrevisoes] = useState(0);\r\n const [openModalEstoque, setOpenModalEstoque] = useState(false);\r\n\r\n const alterarProduto = () => {\r\n setOpenProduto(!openProduto);\r\n };\r\n\r\n const footer = () => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n Totalizador: \r\n \r\n \r\n \r\n {totalEstoque}\r\n \r\n \r\n \r\n {totalPedido}\r\n \r\n \r\n \r\n {totalCondicional}\r\n \r\n \r\n \r\n {totalPrevisoes}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n useEffect(() => {\r\n api.get(`Produto/ListaProdutoFiltro?filtro=&ordem=%2Bpro_descricao`).then(res => {\r\n if (res.status === 200) {\r\n setListaProdutos(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, []);\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ periodo: 2 });\r\n montarFiltro(false);\r\n if (!!manutencao.dados && !!manutencao.dados.pro_id) {\r\n setDadosProduto(manutencao.dados);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (JSON.stringify(dadosProduto) !== '{}' && !!dadosProduto.pro_id) {\r\n listarDados(dadosProduto);\r\n }\r\n }, [dadosProduto]);\r\n\r\n function onChangeProId(value) {\r\n api.get(`Produto/RetornaDadosProduto?ProdutoId=${value}`).then(\r\n res => {\r\n if (!!res.data) {\r\n setDadosProduto(res.data);\r\n }\r\n }\r\n ).catch(\r\n err => {\r\n console.log(err);\r\n }\r\n );\r\n };\r\n\r\n function listarDados(produto = dadosProduto) {\r\n let dataInicial;\r\n let dataFinal;\r\n if (!!!formulario.getFieldValue().dataInicial || !!!formulario.getFieldValue().dataFinal) {\r\n let dataInicial = retornaDataInicial();\r\n\r\n dataInicial = FormatDate(moment(dataInicial).toDate().toLocaleDateString());\r\n dataFinal = FormatDate(moment(new Date()).toDate().toLocaleDateString());\r\n } else {\r\n dataInicial = FormatDate(formulario.getFieldValue().dataInicial.toDate().toLocaleDateString());\r\n dataFinal = FormatDate(formulario.getFieldValue().dataFinal.toDate().toLocaleDateString());\r\n }\r\n if (JSON.stringify(produto) !== '{}') {\r\n api.get(`NotaFiscal/RetornaDadosUltimaCompraVendaCRM?IdProduto=${produto.pro_id}&tiponota=0`).then(res => {\r\n if (res.status === 200 && !!res.data) {\r\n setDadosUltimaVenda(res.data);\r\n } else {\r\n setDadosUltimaVenda({});\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`NotaFiscal/RetornaDadosUltimaCompraVendaCRM?IdProduto=${produto.pro_id}&tiponota=1`).then(res => {\r\n if (res.status === 200 && !!res.data) {\r\n setDadosUltimaCompra(res.data);\r\n } else {\r\n setDadosUltimaCompra({});\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Produto/BuscarUltimoCustoProduto?idProduto=${produto.pro_id}`).then(res => {\r\n if (res.status === 200 && !!res.data) {\r\n setDadosUltimosCustos(res.data);\r\n } else {\r\n setDadosUltimosCustos({});\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`ListaPreco/ListarListaPrecoProduto?idProduto=${produto.pro_id}`).then(res => {\r\n if (res.status === 200) {\r\n setListaPreco(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Estoque/Listar?CodProduto=${produto.pro_id}&TipoLista=5`).then(res => {\r\n if (res.status === 200) {\r\n console.log(\"dadosestoque\", res.data.items);\r\n setDadosEstoque(res.data.items);\r\n setTotalEstoque(res.data.items[0].totalEstoque);\r\n setTotalPedido(res.data.items[0].totalPedido);\r\n setTotalCondicional(res.data.items[0].totalCondicional);\r\n setTotalPrevisoes(res.data.items[0].totalPrevisoes);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`NotaFiscal/RetornaDadosCompraVendaCRMProduto?idProduto=${produto.pro_id}&dataFinal=${dataFinal}&dataInicial=${dataInicial}&tiponota=0`).then(res => {\r\n if (res.status === 200) {\r\n setListaNotasVenda(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get(`NotaFiscal/RetornaDadosCompraVendaCRMProduto?idProduto=${produto.pro_id}&dataFinal=${dataFinal}&dataInicial=${dataInicial}&tiponota=1`).then(res => {\r\n if (res.status === 200) {\r\n setListaNotasCompra(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get(`VendaCondicional/RetornaDadosCondicionaisCRMProduto?idProduto=${produto.pro_id}&dataFinal=${dataFinal}&dataInicial=${dataInicial}`).then(res => {\r\n if (res.status === 200) {\r\n setDadosCondicionais(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get(`VendaCondicional/RetornaDadosCondicionaisCRMProduto?idProduto=${produto.pro_id}&dataFinal=${dataFinal}&dataInicial=${dataInicial}`).then(res => {\r\n if (res.status === 200) {\r\n setDadosCondicionais(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get(`OrdemCompra/RetornaDadosOrdemCompraCRMProduto?idProduto=${produto.pro_id}&dataFinal=${dataFinal}&dataInicial=${dataInicial}`).then(res => {\r\n if (res.status === 200) {\r\n setListaOrdemCompra(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get(`Pedido/RetornaDadosPedidoCRMProduto?IdProduto=${produto.pro_id}&dataFinal=${dataFinal}&dataInicial=${dataInicial}`).then(res => {\r\n if (res.status === 200) {\r\n setListaPedidos(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get(`Estoque/RetornaDadosMovimentacaoEstoqueCRMProduto?CodigoProduto=${produto.pro_id}&dataFinal=${dataFinal}&dataInicial=${dataInicial}`).then(res => {\r\n if (res.status === 200) {\r\n res.data.map((movimento) => {\r\n movimento.key = movimento.codigoMovimento;\r\n });\r\n setListaMovimentacoes(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n };\r\n\r\n function filtrarProduto(pro_id) {\r\n api.get(`Produto/RetornaDadosProduto?ProdutoId=${pro_id}`).then(res => {\r\n if (res.status === 200) {\r\n setDadosProduto(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n };\r\n\r\n function montarFiltro(listar = true) {\r\n let dataInicial = retornaDataInicial();\r\n\r\n formulario.setFieldsValue({ dataInicial: moment(dataInicial), dataFinal: moment(new Date()) });\r\n\r\n if (listar) {\r\n listarDados();\r\n }\r\n };\r\n\r\n function retornaDataInicial() {\r\n let periodo = isNotNullOrEmpty(formulario.getFieldValue().periodo) ? formulario.getFieldValue().periodo : 2;\r\n\r\n let dataInicial = new Date();\r\n switch (periodo) {\r\n case 0:\r\n dataInicial = new Date(new Date().getFullYear() - 1, new Date().getMonth(), new Date().getDate());\r\n break;\r\n case 1:\r\n dataInicial = new Date(new Date().getFullYear(), new Date().getMonth() - 6, new Date().getDate());\r\n break;\r\n case 2:\r\n dataInicial = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 30);\r\n break;\r\n };\r\n return dataInicial;\r\n };\r\n\r\n function listarGrades(record) {\r\n setDadosProdutoGrade(record);\r\n setOpenModalEstoque(true);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n { montarFiltro() }}>\r\n 1 Ano\r\n 6 Meses\r\n Últimos 30 dias\r\n \r\n \r\n \r\n \r\n \r\n \r\n { listarDados() }} label=\"Data Inicial\" name=\"dataInicial\" />\r\n \r\n \r\n { listarDados() }} label=\"Data Final\" name=\"dataFinal\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n alterarProduto()} icon={openProduto ? : } />\r\n }>\r\n {!!openProduto === true &&\r\n \r\n \r\n \r\n onChangeProId(cod)} conteudo={\r\n pro => ({pro.pro_id} - {pro.pro_descricao}\r\n {(!!pro.pro_ean ?
EAN/GTIN: {pro.pro_ean}
: \"\")}\r\n {(!!pro.descricaograde ?
Grade: {pro.descricaograde}
: \"\")}\r\n {(!!pro.pro_codigoetiqueta ?
Cód. Etiqueta: {pro.pro_codigoetiqueta}
: \"\")}\r\n
)\r\n }\r\n />\r\n
\r\n \r\n \r\n }\r\n \r\n \r\n \r\n {!!dadosProduto && !!dadosProduto.pro_descricao ? dadosProduto.pro_descricao : 'Não localizado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
(\r\n
\r\n {loc_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n width: 98,\r\n align: 'center',\r\n render: (dadosEstoque) => (\r\n dadosEstoque.possuiGrade ? (\r\n
\r\n listarGrades(dadosEstoque)}>\r\n Estoque Grade\r\n \r\n
\r\n ) : null\r\n ),\r\n },\r\n {\r\n title: 'Un. Medida',\r\n align: 'center',\r\n width: 120,\r\n render: ({ ump_id }) => (\r\n
\r\n {ump_id}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Preço (R$)',\r\n align: 'right',\r\n render: ({ precoVendaMinimo, precoVendaMaximo }) => (\r\n
\r\n {parseFloat(precoVendaMaximo) > parseFloat(precoVendaMinimo) ?
\r\n {FormatNumber(precoVendaMinimo, true)} \r\n até {FormatNumber(precoVendaMaximo, true)} \r\n
:
\r\n {FormatNumber(precoVendaMinimo, true)} \r\n
}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Estoque',\r\n align: 'center',\r\n width: 120,\r\n render: ({ pre_qtde,ump_casasdecimais }) => (\r\n
\r\n {arredonda(pre_qtde,ump_casasdecimais)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Pedido',\r\n align: 'center',\r\n width: 120,\r\n render: ({ pre_qtdePedido ,ump_casasdecimais}) => (\r\n
\r\n {arredonda(pre_qtdePedido,ump_casasdecimais)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Condicional',\r\n align: 'center',\r\n width: 120,\r\n render: ({ pre_qtdeCondicional ,ump_casasdecimais}) => (\r\n
\r\n {arredonda(pre_qtdeCondicional,ump_casasdecimais)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Previsão',\r\n align: 'center',\r\n width: 120,\r\n render: ({ pre_qtde, pre_qtdePedido, pre_qtdeCondicional,ump_casasdecimais }) => (\r\n
\r\n {arredonda(parseFloat(pre_qtde) - parseFloat(pre_qtdePedido) - parseFloat(pre_qtdeCondicional),ump_casasdecimais)}\r\n
\r\n ),\r\n },\r\n ]}\r\n locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nº Nota\r\n \r\n \r\n {!!dadosUltimaVenda.ntf_numero ? dadosUltimaVenda.ntf_numero : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Data\r\n \r\n \r\n {!!dadosUltimaVenda.ntf_dataemissao ? moment(dadosUltimaVenda.ntf_dataemissao).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Qtde\r\n \r\n \r\n {!!dadosUltimaVenda.nfi_qtde ? dadosUltimaVenda.nfi_qtde : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n R$\r\n \r\n \r\n {FormatNumber(!!dadosUltimaVenda.totalItem ? dadosUltimaVenda.totalItem : 0, true, false)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nº Nota\r\n \r\n \r\n {!!dadosUltimaCompra.ntf_numero ? dadosUltimaCompra.ntf_numero : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Data\r\n \r\n \r\n {!!dadosUltimaCompra.ntf_dataemissao ? moment(dadosUltimaCompra.ntf_dataemissao).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Qtde\r\n \r\n \r\n {!!dadosUltimaCompra.nfi_qtde ? dadosUltimaCompra.nfi_qtde : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n R$\r\n \r\n \r\n {FormatNumber(!!dadosUltimaCompra.totalItem ? dadosUltimaCompra.totalItem : 0, true, false)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Última Compra (R$)\r\n \r\n \r\n {FormatNumber(!!dadosUltimosCustos.pre_custoultimacompra ? dadosUltimosCustos.pre_custoultimacompra : 0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Custo Médio (R$)\r\n \r\n \r\n {FormatNumber(!!dadosUltimosCustos.pre_valorcustomedio ? dadosUltimosCustos.pre_valorcustomedio : 0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Com ICMS (R$)\r\n \r\n \r\n {FormatNumber(!!dadosUltimosCustos.pre_custocomicms ? dadosUltimosCustos.pre_custocomicms : 0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Sem ICMS (R$)\r\n \r\n \r\n {FormatNumber(!!dadosUltimosCustos.pre_custosemicms ? dadosUltimosCustos.pre_custosemicms : 0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Informado (R$)\r\n \r\n \r\n {FormatNumber(!!dadosUltimosCustos.pre_valorcustoinformado ? dadosUltimosCustos.pre_valorcustoinformado : 0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n {ser_serie}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº',\r\n width: 85,\r\n align: 'center',\r\n render: ({ numeroNota }) => (\r\n
\r\n {numeroNota}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Cliente',\r\n width: 450,\r\n render: ({ pessoaNome }) => (\r\n
\r\n {pessoaNome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 95,\r\n render: ({ dataEmissao }) => (\r\n
\r\n {moment(dataEmissao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde',\r\n align: 'right',\r\n width: 95,\r\n render: ({ quantidade }) => (\r\n
\r\n {FormatNumber(quantidade, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Unit.',\r\n align: 'right',\r\n width: 95,\r\n render: ({ valorTotal, quantidade }) => (\r\n
\r\n {FormatNumber(valorTotal / quantidade, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n width: 120,\r\n render: ({ valorTotal }) => (\r\n
\r\n {FormatNumber(valorTotal, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n {numeroNota}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Fornecedor',\r\n render: ({ pessoaNome }) => (\r\n
\r\n {pessoaNome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 95,\r\n render: ({ dataEmissao }) => (\r\n
\r\n {moment(dataEmissao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ valorTotal }) => (\r\n
\r\n {FormatNumber(valorTotal, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n {codigoCondicional}\r\n \r\n
\r\n ),\r\n },{\r\n title: 'Situação',\r\n width: 125,\r\n render: ({ situacao }) => (\r\n
\r\n {situacao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Cliente',\r\n render: ({ nomeCliente }) => (\r\n
\r\n {nomeCliente}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 95,\r\n render: ({ dataCondicional }) => (\r\n
\r\n {moment(dataCondicional).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde Dev.',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ qtdeDevol }) => (\r\n
\r\n {qtdeDevol}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ qtde }) => (\r\n
\r\n {qtde}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ valorTotal }) => (\r\n
\r\n {FormatNumber(valorTotal, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n {codigoOrdemCompra}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Fornecedor',\r\n render: ({ nomeFornecedor }) => (\r\n
\r\n {nomeFornecedor}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 95,\r\n render: ({ dataOrdemCompra }) => (\r\n
\r\n {moment(dataOrdemCompra).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ valorTotal }) => (\r\n
\r\n {FormatNumber(valorTotal, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n {numeroPedido}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Cliente/Fornecedor',\r\n render: ({ pessoaNome }) => (\r\n
\r\n {pessoaNome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 95,\r\n render: ({ dataPedido }) => (\r\n
\r\n {moment(dataPedido).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ valorTotal }) => (\r\n
\r\n {FormatNumber(valorTotal, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n {ser_serie}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Operação',\r\n width: 200,\r\n render: ({ ope_descricao }) => (\r\n
\r\n {ope_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº Nota',\r\n width: 120,\r\n render: ({ numeroNota }) => (\r\n
\r\n {numeroNota}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Cliente',\r\n width: 450,\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 95,\r\n render: ({ dataPosicao }) => (\r\n
\r\n {moment(dataPosicao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Unit.',\r\n align: 'right',\r\n width: 95,\r\n render: ({ vlrUnitario }) => (\r\n
\r\n {FormatNumber(vlrUnitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde',\r\n align: 'right',\r\n width: 95,\r\n render: ({ quantidade }) => (\r\n
\r\n {FormatNumber(quantidade, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 120,\r\n render: ({ vlrTotalItem }) => (\r\n
\r\n {FormatNumber(vlrTotalItem, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Status',\r\n align: 'right',\r\n width: 120,\r\n render: ({ tipoRegistro }) => (\r\n
\r\n {tipoRegistro}\r\n
\r\n ),\r\n },\r\n ]}\r\n //]} expandedRowRender={({ ope_descricao, quantidade, vlrUnitario, vlrCustoUltimaCompra }) => {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // Operação: {ope_descricao}\r\n // \r\n // \r\n // Quant.: {quantidade}\r\n // \r\n // \r\n // Valor Unitário (R$): {FormatNumber(vlrUnitario, true)} \r\n // \r\n // \r\n // Custo Atual (R$): {FormatNumber(vlrCustoUltimaCompra, true)}\r\n // \r\n // \r\n // \r\n // )\r\n // }} expandIcon={({ record, expanded, onExpand }) => {\r\n // return expanded ? (\r\n // onExpand(record, e)} />\r\n // ) : (\r\n // onExpand(record, e)} />\r\n // );\r\n //}} \r\n locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} columnWidth={30} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n {ltp_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ lpi_valorvenda }) => (\r\n
\r\n {FormatNumber(lpi_valorvenda, true)}\r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setOpenModalEstoque(false)} />\r\n \r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Form, Row, Col, Input, Button, notification } from \"antd\";\r\nimport { EditOutlined, PrinterOutlined } from \"@ant-design/icons\";\r\nimport jsreports from \"jsreports/jsreports-all\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { delay } from \"../../services/funcoes\";\r\nimport { listagemActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoRelatorioEtiqueta({ formulario, carregando, aoSalvar, exibeModelo }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n definirDadosPadrao();\r\n }, []);\r\n\r\n const squemaEtiquetaProduto = [\r\n {\r\n nome: 'Codigo_Empresa',\r\n tipo: 'number'\r\n },\r\n {\r\n nome: 'Empresa',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Produto',\r\n tipo: 'number'\r\n },\r\n {\r\n nome: 'Produto',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Grade',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Marca',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Preco',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Ean',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Etiqueta',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Referencia',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Observacao',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Quantidade_Parcela',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Valor_Parcelado',\r\n tipo: 'string'\r\n }\r\n ];\r\n\r\n const salvarManutencao = (record) => {\r\n record.jsonRelatorio = JSON.stringify(record.jsonRelatorio)\r\n carregando(true);\r\n if (!!record.id) {\r\n api.put(`RelatorioModeloEtiqueta/Editar`, record).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Etiqueta foram salvos com sucesso!\" });\r\n aoSalvar(res.data);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: ' ', filtro: ' ', ordem: 'Nome' } })\r\n }\r\n );\r\n } else {\r\n api.post(`RelatorioModeloEtiqueta/Incluir`, record).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Etiqueta foram salvos com sucesso!\" });\r\n aoSalvar(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: ' ', filtro: ' ', ordem: 'Nome' } })\r\n }\r\n );\r\n }\r\n };\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n api.get(`RelatorioModeloEtiqueta/Listar?id=${manutencao.dados.id}`).then(\r\n res => {\r\n formulario.setFieldsValue(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function definirDadosPadrao() {\r\n let json = { \"title\": \"Relatório\", \"id\": \"rtpRelatorioEtiqueta\", \"default_format\": \"html\", \"version\": \"1.4.122\", \"page\": { \"units\": \"mm\", \"paper_size\": { \"name\": \"A4\", \"inches\": [\"8.5\", \"11.69\"], \"mm\": [\"210\", \"297\"], \"id\": \"a4\" }, \"margins\": { \"top\": 0, \"left\": 0, \"right\": 0, \"bottom\": 0 } }, \"filters\": [], \"inputs\": [], \"header\": { \"visible\": false, \"height\": 27, \"elements\": [] }, \"body\": { \"data_source\": \"etiqueta\", \"show_detail\": true, \"height\": 16.897356568410437, \"elements\": [], \"sublevels\": [], \"column_count\": 1, \"pivot_enabled\": false, \"pivot_column_left\": 84.5, \"pivot_column_right\": 105.50000000000001, \"pivot_area_right\": 137, \"visible\": \"\", \"shrinkToFit\": false, \"order_detail_by\": \"\" }, \"footer\": { \"visible\": false, \"height\": 6, \"elements\": [] }, \"page_header\": { \"visible\": false, \"elements\": [], \"height\": 54.39344262295082 }, \"page_footer\": { \"visible\": false, \"elements\": [], \"height\": 5.0000034679066045 }, \"type\": \"hierarchical\", \"defaultFont\": { \"name\": \"Arial\", \"css\": \"Arial, \\\"Helvetica Neue\\\", Helvetica, sans-serif\" }, \"defaultFontSize\": 8 };\r\n formulario.setFieldsValue({ jsonRelatorio: json });\r\n }\r\n\r\n function imprimirEtiqueta(modelo) {\r\n if (!!!formulario.getFieldValue().jsonRelatorio) {\r\n api.get(`RelatorioModeloEtiqueta/Listar?id=${formulario.getFieldValue().id}`).then(\r\n res => {\r\n exibeModelo(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n } else {\r\n exibeModelo(formulario.getFieldValue());\r\n }\r\n };\r\n\r\n function abrirMontarRelatorio() {\r\n let data_sources = [];\r\n let dataSource = {\r\n id: 'etiqueta',\r\n name: 'Etiqueta',\r\n data: []\r\n }\r\n let atributosSquema = [];\r\n squemaEtiquetaProduto.forEach((squema) => {\r\n for (let i = 1; i <= formulario.getFieldValue().quantidadeColuna; i++) {\r\n atributosSquema.push({ name: squema.nome + \"_Coluna_\" + i, type: squema.tipo });\r\n }\r\n });\r\n\r\n dataSource.schema = {\r\n fields: atributosSquema\r\n }\r\n\r\n data_sources.push(dataSource);\r\n\r\n let designer = new jsreports.Designer({\r\n data_sources: data_sources,\r\n report_def: formulario.getFieldValue().jsonRelatorio\r\n\r\n });\r\n let outPutReport = document.getElementsByClassName('report-output');\r\n\r\n delay(function () {\r\n designer.on(\"save\", function (reportdef) {\r\n let reportDef = JSON.parse(reportdef);\r\n if (!!reportDef.body.data_source) {\r\n formulario.setFieldsValue({ jsonRelatorio: reportDef });\r\n jsreports.render({\r\n report_def: (formulario.getFieldValue().jsonRelatorio),\r\n target: outPutReport,\r\n datasets: data_sources,\r\n showToolbar: false\r\n });\r\n } else {\r\n notification.warn({ description: 'Data Source não foi selecionado!', message: 'Aviso' });\r\n }\r\n }, 100);\r\n })\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\nimport ManutencaoRelatorioEtiqueta from './manutencao';\r\nimport { DrawerNav } from '../../components';\r\n\r\nexport default function DrawerRelatorioEtiqueta({ exibeModelo }) {\r\n\r\n const [formularioEtiquetas] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n if (!!manutencao.dados) {\r\n formularioEtiquetas.setFieldsValue(manutencao.dados);\r\n } else {\r\n formularioEtiquetas.resetFields();\r\n }\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formularioEtiquetas.resetFields();\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from 'react';\r\nimport { Row, Col, Button } from \"antd\";\r\nimport { EditOutlined, PrinterOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { TabelaDados } from \"../../components\";\r\nimport DrawerRelatorioEtiqueta from './drawer';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\n\r\nexport default function TabModeloFixo({ exibeModelo }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: ' ', filtro: ' ', ordem: 'Nome' } })\r\n }, []);\r\n\r\n function imprimirEtiqueta(modelo) {\r\n if (!!!modelo.jsonRelatorio) {\r\n api.get(`RelatorioModeloEtiqueta/Listar?id=${modelo.id}`).then(\r\n res => {\r\n exibeModelo(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n } else {\r\n exibeModelo(modelo);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n { return campo.emp_id === null && campo.loc_id === null }} colunas={\r\n [\r\n {\r\n title: 'Modelo',\r\n render: ({ nome }) => (\r\n
\r\n {nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n return (\r\n
\r\n
\r\n { return campo.emp_id !== null }} colunas={\r\n [\r\n {\r\n title: 'Modelo',\r\n render: ({ nome }) => (\r\n
\r\n {nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Form, Row, Col, Typography, Divider, Input, InputNumber } from \"antd\";\r\n\r\nexport default function TabAgenciaBancaria() {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Dados Dados da Agência Bancária\r\n \r\n \r\n Informe os dados da Agência Bancária\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}`}\r\n parser={value => value.replace('', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Form, Row, Col, Typography, Divider, Input } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { InputCep } from \"../../components\";\r\n\r\nexport default function TabEndereco({ formulario }) {\r\n\r\n const verificaCep = () => {\r\n if (!!formulario.getFieldValue(\"ctc_cepagencia\")) {\r\n api.get(`Cidade/BuscaCidadeCep?cep=${formulario.getFieldValue(\"ctc_cepagencia\").match(/\\d+/g).join('')}`).then(res => {\r\n if (res.status === 200) {\r\n formulario.setFieldsValue({ ctc_cidadeagencia: res.data.length > 0 ? res.data[0].cid_descricao : '' });\r\n formulario.setFieldsValue({ ctc_ufagencia: res.data.length > 0 ? res.data[0].est_sigla : '' });\r\n formulario.setFieldsValue({ ctc_bairroagencia: res.data.length > 0 ? res.data[0].bai_nome : '' });\r\n formulario.setFieldsValue({ ctc_enderecoagencia: res.data.length > 0 ? res.data[0].log_logradouro : '' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Endereço\" Endereço\r\n \r\n \r\n Defina o Endereço da Agência\r\n \r\n \r\n \r\n \r\n \r\n verificaCep()} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Form, Row, Col, Typography, Divider, Input } from \"antd\";\r\n\r\nimport { InputPhone } from \"../../components\";\r\n\r\nexport default function TabGerente() {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Dados Dados do Gerente\r\n \r\n Informe os Dados do Gerente \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tabs, Row, Col, Form, Input, Select, Checkbox, notification, Button, Table } from \"antd\";\r\nimport { PlusOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { info } from \"../../services/funcoes\";\r\nimport { listagemActions, selectPaginadoActions } from \"../../actions\";\r\nimport { Data, FormGW, InputPreco, SelectPaginado } from \"../../components\";\r\nimport { TabAgenciaBancaria, TabEndereco, TabGerente } from './tabPage';\r\nexport default function ManutencaoContaCorrente({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [listaTipoContaCorrente, setListaTipoContaCorrente] = useState([]);\r\n const [listaUsuarios, setListaUsuarios] = useState([]);\r\n const [contaBancaria, setContaBancaria] = useState(false);\r\n const [listaUsuariosPermitidos, setListaUsuariosPermitidos] = useState([]);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n const onFinishFailed = errorInfo => {\r\n console.log('Failed:', errorInfo);\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`TipoContaCorrente/Listar`).then(res => {\r\n setListaTipoContaCorrente(res.data);\r\n });\r\n api.get(`Usuario/RetornaUsuariosLocal?PageSize=500`).then(res => {\r\n setListaUsuarios(res.data.items);\r\n });\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?Ativo=true&CodReceitaDespesa=1`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && manutencao.dados.ctc_id > 0 && ui.showDrawer) {\r\n api.get(`ContaCorrente/UsuariosPermissaoSaldo?idContaCorrente=${manutencao.dados.ctc_id}`).then(res => {\r\n setListaUsuariosPermitidos(res.data);\r\n if (res.data.length > 0) {\r\n formulario.setFieldsValue({ limitarSaldoUsuarios: true });\r\n }\r\n });\r\n\r\n let lista = [];\r\n if (!!manutencao.dados.ban_id) {\r\n lista.push({ name: \"ban_id\", campo: \"CodigoBanco\", value: manutencao.dados.ban_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n formulario.setFieldsValue(manutencao.dados);\r\n\r\n setContaBancaria(manutencao.dados.tcc_id === 2);\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n function setAbaTipoContaCorrente(tc){\r\n setContaBancaria(tc === 2);\r\n }\r\n\r\n function adicionarUsuario() {\r\n let usu_id = formulario.getFieldValue().usu_id;\r\n let lista = [...listaUsuariosPermitidos];\r\n if (listaUsuariosPermitidos.length > 0 && listaUsuariosPermitidos.filter(usuario => { return usuario.usu_id === usu_id }).length > 0) {\r\n info(\"Este usuário já foi adicionado!\");\r\n return;\r\n } else {\r\n var user = listaUsuarios.find(usuario => { return usuario.usu_id === usu_id })\r\n lista.push(user);\r\n }\r\n setListaUsuariosPermitidos(lista);\r\n };\r\n\r\n function excluirRegistro(id) {\r\n let lista = [...listaUsuariosPermitidos];\r\n let index = lista.findIndex(i => i.key === id);\r\n lista.splice(index, 1);\r\n setListaUsuariosPermitidos(lista);\r\n }\r\n\r\n function salvarManutencao(valores) {\r\n let values = { ...manutencao.dados, ...valores };\r\n let idRetorno;\r\n values.contacorrenteusuarios = listaUsuariosPermitidos;\r\n values.ban_id = !!values.ban_id ? values.ban_id.toString() : '';\r\n values.ctc_saldoinicial = values.ctc_saldoinicial > 0 ? values.ctc_saldoinicial : 0;\r\n values.ctc_operacao = values.ctc_operacaoconta;\r\n values.contacorrentelocal = true;\r\n values.ctc_unidadeatendimento = values.ctc_unidadeatendimento == \"\" ? null : values.ctc_unidadeatendimento\r\n if (!!values.ctc_fonegerente) {\r\n values.ctc_fonegerente = values.ctc_fonegerente.replace(/\\D/g, '');\r\n }\r\n carregando(true);\r\n if (!!values.ctc_id) {\r\n editarManutencao(values, idRetorno);\r\n } else {\r\n incluirManutencao(values, idRetorno);\r\n }\r\n\r\n };\r\n\r\n function editarManutencao(values, idRetorno) {\r\n api.put(`ContaCorrente/Editar`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Conta Corrente foram salvos com sucesso!\" });\r\n idRetorno = res.data.ctc_id;\r\n\r\n }).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '' } });\r\n carregando(false);\r\n aoSalvar(idRetorno);\r\n });\r\n }\r\n\r\n function incluirManutencao(values, idRetorno) {\r\n api.post(`ContaCorrente/Incluir`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Conta Corrente foram salvos com sucesso!\" });\r\n idRetorno = res.data.ctc_id;\r\n\r\n }).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '' } });\r\n carregando(false);\r\n aoSalvar(idRetorno);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n prevValues.tcc_id !== currentValues.tcc_id}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue(['tcc_id']) === 2)\r\n return (\r\n \r\n \r\n ({ban.ban_id} - {ban.ban_descricao})\r\n } />\r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n 0)}>\r\n \r\n \r\n prevValues.ctc_saldoinicial !== currentValues.ctc_saldoinicial}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue(['ctc_saldoinicial']) > 0)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n prevValues.ctc_saldoinicial !== currentValues.ctc_saldoinicial}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue(['ctc_saldoinicial']) > 0)\r\n return (\r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0))}>\r\n \r\n Conta Corrente Ativa?\r\n \r\n \r\n \r\n \r\n Limitar visualização do saldo por usuários/grupo de usuários?\r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.limitarSaldoUsuarios !== currentValues.limitarSaldoUsuarios}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue(['limitarSaldoUsuarios']) === true)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n {!!listaUsuariosPermitidos && listaUsuariosPermitidos.length > 0 &&\r\n
\r\n
(\r\n
\r\n Usuário: {usu_nome}\r\n
\r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 42,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Button, Tag, Popover, Menu, Dropdown, notification, Modal, Radio, Form } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, MoreOutlined, ExclamationCircleOutlined, CloseCircleOutlined, FileSearchOutlined, ArrowLeftOutlined, ArrowRightOutlined, RetweetOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { Link } from \"react-router-dom\";\r\nimport DrawerContaCorrente from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, DrawerLancamentoTransferencia, DrawerManutencaoCaixa, Excluir, Editar, LancamentoEntrada, LancamentoSaida, LancamentoTransferencia } from \"../../components\";\r\n\r\nexport default function ContaCorrente() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [formPesquisa] = Form.useForm();\r\n\r\n useEffect(() => {\r\n let _ativo = !!!formPesquisa.getFieldsValue().statusAtivo ? 1 : formPesquisa.getFieldsValue().statusAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${_ativo}`, filtro: '', ordem: '+ctc_descricao' } });\r\n formPesquisa.setFieldsValue({ statusAtivo: 1 });\r\n }, [])\r\n\r\n\r\n const modalInativarConta = (dados) => {\r\n Modal.confirm({\r\n title: `Não foi possível excluir a Conta Corrente ${dados.ctc_descricao}!`,\r\n icon: ,\r\n content: `Deve conter referências com outros registros!`,\r\n okText: 'Inativar Registro',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n api.put(`ContaCorrente/InativarContaCorrente?idContaCorrente=${dados.ctc_id}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${formPesquisa.getFieldsValue().statusAtivo}`, ordem: '+ctc_descricao' } })\r\n notification.success({ message: 'Operação concluída', description: \"Conta inativada com sucesso!\" });\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a Conta Corrente: ${dados.ctc_id}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n function aplicarFiltros() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${formPesquisa.getFieldsValue().statusAtivo}`, ordem: '+ctc_descricao' } });\r\n }\r\n\r\n function abrirLancamentoEntradaSaida(operacao, record) {\r\n record.operacao = operacao;\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerManutencaoCaixa: true } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n };\r\n\r\n function abrirLancamentoTransferencia(record) {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerTransferencia: true } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n };\r\n\r\n function abrirLancamentoCaixa(record) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record.ctc_id } });\r\n }\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n \r\n abrirLancamentoCaixa(record)}> Consultar Movimentação\r\n \r\n \r\n } onClick={() => abrirLancamentoEntradaSaida(\"2\", record)}> Lançamento de Entrada\r\n \r\n \r\n } onClick={() => abrirLancamentoEntradaSaida(\"1\", record)}> Lançamento de Saída\r\n \r\n \r\n } onClick={() => {\r\n abrirLancamentoTransferencia(record);\r\n }}> Lançamento de Transferência\r\n \r\n \r\n )\r\n };\r\n\r\n function excluirRegistro(dados) {\r\n Modal.confirm({\r\n title: 'Deseja deletar esta conta corrente?',\r\n icon: ,\r\n onOk() {\r\n setCarregando(true);\r\n api.post(`ContaCorrente/Excluir?codigoContaCorrente=${dados.ctc_id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Os dados da Conta Corrente foram excluídos com sucesso!\" });\r\n }, err => {\r\n modalInativarConta(dados);\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${formPesquisa.getFieldsValue().statusAtivo}`,ordem: '+ctc_descricao' } });\r\n });\r\n }\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n aplicarFiltros()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {ctc_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ ctc_descricao }) => (\r\n
\r\n {ctc_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Tipo de Conta',\r\n render: ({ tcc_descricao }) => (\r\n
\r\n {tcc_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Agência',\r\n width: 120,\r\n render: ({ ctc_numeroagencia }) => (\r\n
\r\n {(!!ctc_numeroagencia) ? (ctc_numeroagencia) : 'Não Informada'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Conta Bancária',\r\n width: 150,\r\n render: ({ ctc_numeroconta }) => (\r\n
\r\n {(!!ctc_numeroconta) ? (ctc_numeroconta) : 'Não Informada'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Abertura',\r\n align: 'center',\r\n width: 120,\r\n render: ({ ctc_datasaldoinicial }) => (\r\n
\r\n {(!!ctc_datasaldoinicial) ? moment(ctc_datasaldoinicial).format('DD/MM/YYYY') : 'Não Informada'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Saldo Atual (R$)',\r\n align: 'right',\r\n render: ({ saldo }) => (\r\n
\r\n {(!!saldo) ? FormatNumber(saldo, true) : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n {/* \r\n excluirRegistro(record)} icon={}/>\r\n */}\r\n \r\n } onClick={() => modalExcluir(record)} />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \"Configura Configuração da Conta Gerencial - (OPCIONAL)\r\n \r\n \r\n Adicione a(s) configuração(ões) da Conta Gerencial aqui.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n {cgc_descricaoTipo} - {cgc_descricaocontadestino}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} pagination={false} dataSource={listaConfigContaGerencial} scroll={{x: 900}}/>\r\n \r\n setOpenModalContaGerencial(false)} listaConfigContaGerencial={listaConfigContaGerencial}/>\r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tabs, Row, Col, Form, Input, Select, Checkbox, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW, SelectPaginacao } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { TabConfigConta } from './tabPage.js';\r\nimport { listagemActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoContaGerencial({ formulario, carregando, aoSalvar }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [listarContaDRE, setListarContaDRE] = useState([]);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaConfigContaGerencial, setListaConfigContaGerencial] = useState([]);\r\n\r\n useEffect(() => {\r\n api.get(`Dre/ListarTodas`).then(res => {\r\n setListarContaDRE(res.data);\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.conta) {\r\n let index = 1;\r\n let dados = manutencao.dados.conta;\r\n dados.map((item) => {\r\n item.key = index;\r\n index++;\r\n });\r\n setListaConfigContaGerencial(dados);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function salvarContaGerencial(values) {\r\n values.conta = listaConfigContaGerencial;\r\n carregando(true);\r\n if (!!values.ctg_id) {\r\n editarManutencao(values);\r\n } else {\r\n incluirManutencao(values);\r\n }\r\n };\r\n\r\n function editarManutencao(values) {\r\n api.put(`ContaGerencial/Editar`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Conta Gerencial foram salvos com sucesso!\" });\r\n\r\n }).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '' } });\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n function incluirManutencao(values) {\r\n api.post(`ContaGerencial/Incluir`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Conta Gerencial foram salvos com sucesso!\" });\r\n }).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '' } });\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoContaGerencial from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerContaGerencial({ filtrarConta, formPesquisa }) {\r\n\r\n const [formContaGerencial] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formContaGerencial.setFieldsValue(manutencao.dados);\r\n } else {\r\n //formContaGerencial.resetFields();\r\n formContaGerencial.setFieldsValue({ ctg_ativo: true });\r\n }\r\n\r\n function fecharDrawer() {\r\n formContaGerencial.resetFields();\r\n filtrarConta(formPesquisa.getFieldValue().pesquisa);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Button, Table, Collapse, notification, Modal, Popover, Tag, Input, Divider } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, PlusOutlined, ArrowUpOutlined, ArrowDownOutlined, MinusOutlined, ExclamationCircleOutlined, PrinterOutlined, CloseCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport DrawerContaGerencial from './drawer';\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, Adicionar, Excluir, Imprimir } from \"../../components\";\r\n\r\nexport default function ContaGerencial() {\r\n\r\n const [formPesquisa] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n\r\n // useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '' } }), []);\r\n\r\n useEffect(() => {\r\n filtrarConta('');\r\n }, [])\r\n\r\n function excluirRegistro(dados) {\r\n Modal.confirm({\r\n title: 'Deseja deletar esta conta gerencial?',\r\n icon: ,\r\n onOk() {\r\n setCarregando(true);\r\n api.post(`ContaGerencial/Excluir?idContaGerencial=${dados.ctg_id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Os dados da Conta Gerencial foram excluídos com sucesso!\" });\r\n }, err => {\r\n modalInativarConta(dados);\r\n }).finally(() =>{\r\n filtrarConta(formPesquisa.getFieldValue().pesquisa);\r\n });\r\n }\r\n });\r\n }\r\n\r\n const modalInativarConta = (dados) => {\r\n Modal.confirm({\r\n title: `Não foi possível excluir a Conta Gerencial ${dados.ctg_descricao}!`,\r\n icon: ,\r\n content: `Deve conter referências com outros registros!`,\r\n okText: 'Inativar Registro',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n api.post(`ContaGerencial/AtivarInativar?idConta=${dados.ctg_id}`).then(\r\n res => {\r\n if (res.status === 200){\r\n filtrarConta(formPesquisa.getFieldValue().pesquisa);\r\n notification.success({ message: 'Operação concluída', description: \"Conta inativada com sucesso!\" });\r\n } \r\n });\r\n }\r\n });\r\n };\r\n\r\n function filtrarConta(filtro){\r\n if (!(!!filtro)){\r\n filtro = '';\r\n }else{\r\n\r\n }\r\n api.get(`ContaGerencial/ListarTodos?filtro=${filtro}`).then(res => {\r\n let index = 0;\r\n res.data.map((item) => {\r\n item.contasGerenciais.map(conta => {\r\n conta.key = index;\r\n index++; \r\n });\r\n });\r\n setListaContaGerencial(res.data);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n filtrarConta(valor) } allowClear/>\r\n \r\n \r\n \r\n \r\n
\r\n isActive ? : }>\r\n {listaContaGerencial.map(conta => (\r\n \r\n
(\r\n \r\n \r\n {ctg_descricao}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'right',\r\n width: 98,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n }/>\r\n \r\n \r\n \r\n } onClick={() => excluirRegistro(record.dados)} /> \r\n \r\n \r\n \r\n ),\r\n },\r\n ]} expandable={{\r\n expandedRowRender: ({dre_descricao}) => \r\n
\r\n \r\n
\r\n DRE: {dre_descricao || 'Não Informado'}\r\n \r\n \r\n ,\r\n expandIcon: ({ expanded, onExpand, record }) =>\r\n expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n )\r\n }} dataSource={conta.contasGerenciais} columnWidth={30}\r\n />\r\n \r\n \r\n \r\n } size=\"middle\" onClick={() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true}});\r\n }}>\r\n Adicionar\r\n \r\n \r\n \r\n\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Button, Divider, Tag, Form, Table, Modal } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { ModalCfop } from \"../../components/modals/\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function ManutencaoOperacaoFiscal({ listaCfop, setListaCfop }) {\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n const [formulario] = Form.useForm();\r\n const [listaDestinoOperacao, setListaDestinoOperacao] = useState([]);\r\n const [listaCategoriaOperacao, setListaCategoriaOperacao] = useState([]);\r\n\r\n const selecionarOpcao = (checked, key) => {\r\n let listaTemp = [...listaCfop];\r\n listaTemp.filter(item => { return item.key === key })[0].opc_ativo = checked;\r\n\r\n setListaCfop(listaTemp);\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=DestinoOperacao`).then(res => {\r\n setListaDestinoOperacao(res.data);\r\n });\r\n api.get(`Enum/Listar?nome=Categoria`).then(res => {\r\n setListaCategoriaOperacao(res.data);\r\n });\r\n\r\n }, []);\r\n\r\n function adicionarCfop(values) {\r\n let listaTemp = [...listaCfop];\r\n if (!!values.key) {\r\n let index = listaTemp.findIndex(i => i.key === values.key);\r\n listaTemp.splice(index, 1);\r\n } else {\r\n values.key = listaTemp.length + 1;\r\n }\r\n values.opc_ativo = true;\r\n listaTemp.push(values);\r\n listaTemp.sort((a, b) => a.opc_destinooperacao - b.opc_destinooperacao)\r\n setListaCfop(listaTemp);\r\n setOpenModal(false);\r\n };\r\n\r\n function excluirRegistro(id) {\r\n Modal.confirm({\r\n title: 'Deseja deletar este registro?',\r\n icon: ,\r\n onOk() {\r\n let lista = [...listaCfop];\r\n let index = lista.findIndex(i => i.key === id);\r\n lista.splice(index, 1);\r\n setListaCfop(lista);\r\n }\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Código Código Fiscal de Operação - CFOP\r\n \r\n \r\n Adicione os CFOPs relacionados aqui.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n
\r\n {cfo_cfop} - {cfo_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Destino',\r\n align: 'center',\r\n width: 75,\r\n render: ({ opc_destinooperacao }) => (\r\n
\r\n {listaDestinoOperacao.filter(x => x.key === opc_destinooperacao)[0]?.value}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Categoria',\r\n align: 'center',\r\n width: 75,\r\n render: ({ opc_categoria }) => (\r\n
\r\n {listaCategoriaOperacao.filter(x => x.key === opc_categoria)[0]?.value}\r\n
\r\n )\r\n },\r\n {\r\n title: '',\r\n align: 'center',\r\n width: 65,\r\n render: ({ opc_ativo, key }) => (\r\n
\r\n selecionarOpcao(checked, key)}\r\n >\r\n {opc_ativo ? 'Ativo' : 'Inativo'}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, Select, Tooltip, Tabs, Typography, notification, Divider, Button } from \"antd\";\r\nimport { QuestionCircleOutlined, PlusOutlined } from \"@ant-design/icons\";\r\n\r\nimport TabCfop from \"./tabCfop\";\r\nimport api from \"../../services/api\";\r\nimport { FormGW, SelectPaginacao } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions, selectPaginadoActions } from \"../../actions\";\r\nimport DrawerContaGerencial from './drawerContaGerencial';\r\n\r\nexport default function ManutencaoOperacaoFiscal({ formulario, carregando, aoSalvar }) {\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [hiddenFlagsCompra, setHiddenFlagsCompra] = useState(true);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaCfop, setListaCfop] = useState([]);\r\n const [listaIndicadorPresenca, setListaIndicadorPresenca] = useState([]);\r\n const [listaNaturezaOperacao, setListaNaturezaOperacao] = useState([]);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n const [listaTipoPreco, setListaTipoPreco] = useState([]);\r\n const [listaTributacaoPisCofins, setListaTributacaoPisCofins] = useState([]);\r\n const [listaTributacaoIcms, setListaTributacaoIcms] = useState([]);\r\n const [openDrawerContaGerencial, setOpenDrawerContaGerencial] = useState(false);\r\n const [codigoContaGerencial, setCodigoContaGerencial] = useState(null);\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=IndicadorPresenca`).then(res => {\r\n setListaIndicadorPresenca(res.data);\r\n });\r\n api.get(`TipoOperacao/Listar?filtro=`).then(res => {\r\n setListaNaturezaOperacao(res.data);\r\n });\r\n carregarContasGerenciais();\r\n api.get(`Enum/Listar?nome=TipoPrecoUtilizar`).then(res => {\r\n setListaTipoPreco(res.data);\r\n });\r\n api.get(`TributacaoPisCofins/ListarAtivos`).then(res => {\r\n setListaTributacaoPisCofins(res.data);\r\n });\r\n api.get(`TributacaoIcms/Listar`).then(res => {\r\n setListaTributacaoIcms(res.data.items);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados?.cfop) {\r\n let key = 0;\r\n manutencao.dados.cfop.forEach(\r\n (item) => {\r\n item.key = key++;\r\n }\r\n )\r\n manutencao.dados.cfop.sort((a, b) => a.opc_destinooperacao - b.opc_destinooperacao)\r\n setListaCfop(manutencao.dados.cfop);\r\n if (manutencao.dados.tip_id == 2)\r\n setHiddenFlagsCompra(false);\r\n }\r\n }, [manutencao.dados])\r\n\r\n useEffect(() => {\r\n if (!!codigoContaGerencial) {\r\n carregarContasGerenciais();\r\n }\r\n }, [codigoContaGerencial]);\r\n\r\n function carregarContasGerenciais() {\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?filtro=`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n }).finally(\r\n formulario.setFieldsValue({ ctg_id: codigoContaGerencial })\r\n );\r\n }\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ope_descricao' } });\r\n };\r\n\r\n function salvarOperacaoFiscal(values) {\r\n if (!!listaCfop && listaCfop.length > 0) {\r\n values.operacaocfops = listaCfop;\r\n } else {\r\n notification.warning({ message: `Aviso!`, description: `É Obrigatório informar pelo menos um CFOP na operação` })\r\n return false;\r\n }\r\n values.ope_calculacomissao = false;\r\n values.ope_alteracontagerencial = false;\r\n carregando(true);\r\n\r\n if (!!values.ope_id) {\r\n editarManutencao(values);\r\n } else {\r\n incluirManutencao(values);\r\n };\r\n };\r\n\r\n function editarManutencao(values) {\r\n api.put(`OperacaoFiscal/Editar`, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Operação Fiscal foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n function incluirManutencao(values) {\r\n api.post(`OperacaoFiscal/Incluir`, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Operação Fiscal foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n function checkMarcadores() {\r\n if (formulario.getFieldValue(['tip_id']) == 2)\r\n setHiddenFlagsCompra(false);\r\n else\r\n setHiddenFlagsCompra(true);\r\n };\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n Selecione o Tipo de Imposto a Calcular\r\n \r\n \r\n \r\n \r\n \r\n \r\n ICMS?\r\n \r\n \r\n \r\n \r\n IPI?\r\n \r\n \r\n \r\n \r\n ICMS ST?\r\n \r\n \r\n \r\n \r\n PIS/COFINS?\r\n \r\n \r\n \r\n \r\n ISSQN?\r\n \r\n \r\n \r\n \r\n Retenção?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tipo Preço\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n Código Tributação para PIS/COFINS\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n Código Tributação para ICMS\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n (\r\n {item.icm_descricao}\r\n )} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n ({v.cbf_codigo} - {v.cbf_descricao} )\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danfe Rascunho antes envio Sefaz?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoOperacaoFiscal from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerOperacaoFiscal() {\r\n\r\n const [formOperacaoFiscal] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n formOperacaoFiscal.setFieldsValue(manutencao.dados);\r\n }\r\n }, [manutencao.dados])\r\n\r\n function fecharDrawer() {\r\n formOperacaoFiscal.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { Tag, Popover, notification } from 'antd';\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW, TabelaDados } from \"../../components\";\r\n\r\nexport default function ImportarOperacao({ formulario, carregando, aoSalvar }) {\r\n\r\n const[ operacao, setOperacao ] = useState(null);\r\n\r\n function salvarOperacoes() {\r\n api.post(`OperacaoFiscal/ImportarOperacao`, operacao).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Operações Fiscais importadas com Sucesso!\" });\r\n }\r\n ).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n };\r\n\r\n function populaOperacaoSel(keys, linhas) {\r\n let operacao = [];\r\n // Extrai os ope_id das linhas selecionadas e cria um array de objetos\r\n operacao = linhas.map(linha => ({ope_id: linha.ope_id}));\r\n // Armazena o array de objetos diretamente\r\n setOperacao(operacao);\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n (\r\n \r\n \r\n {ope_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Operação Fiscal',\r\n render: ({ ope_descricao }) => (\r\n
\r\n {ope_descricao}\r\n
\r\n ),\r\n }\r\n ]\r\n } parametrosSelecionarItens={\r\n {\r\n tipo: \"change\",\r\n funcao: populaOperacaoSel\r\n }\r\n }\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { DrawerNav } from '../../components';\r\nimport ImportarOperacao from './importarOperacao';\r\n\r\nexport default function DrawerOperacaoFiscalImportar({ showDrawer, onClose }) {\r\n\r\n const [formOperacaoFiscal] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const {showImportar, setShowImportar } = showDrawer;\r\n\r\n function fecharDrawer() {\r\n formOperacaoFiscal.resetFields();\r\n onClose(); \r\n };\r\n\r\n const handleOnClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Popover, notification, Modal, Button, Dropdown, Menu } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, CloseCircleOutlined, MoreOutlined, CloudUploadOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport DrawerOperacaoFiscal from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, Editar, Excluir, PesquisaOrdenacao, TabelaDados, BreadcrumbPage, BotaoAbrirChamado, BotaoIncluirDados } from \"../../components\";\r\nimport DrawerOperacaoFiscalImportar from \"./drawerImportar\";\r\n\r\nexport default function OperacaoFiscal() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [showImportar, setShowImportar] = useState(false);\r\n const [refreshKey, setRefreshKey] = useState(0);\r\n\r\n const modalInativarRegistro = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir a Opecação Fiscal ${dados.ope_descricao}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a Operação Fiscal: ${dados.ope_descricao}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n function excluirRegistro(dados) {\r\n api.delete(`OperacaoFiscal/Excluir/${dados.ope_id}`).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ope_descricao' } });\r\n }).catch(\r\n (erro) => {\r\n modalInativarRegistro(dados);\r\n }\r\n );\r\n }\r\n\r\n function inativarRegistro(dados) {\r\n api.put(`OperacaoFiscal/Inativar?id=${dados.ope_id}`).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Operação Fiscal inativada com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ope_descricao' } });\r\n }\r\n )\r\n }\r\n\r\n function editarRegistro(record) {\r\n console.log(record);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n\r\n function menuOutros() {\r\n return (\r\n \r\n \r\n }\r\n onClick={() => { setShowImportar(true); }} block >\r\n Importar Operação Fiscal\r\n \r\n \r\n \r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n editarRegistro(record);\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluir(record)} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } expandir={(record) => {\r\n return (\r\n record.cfop.map(item => (\r\n \r\n \r\n Cfop: {item.cfo_cfop} - {item.cfo_descricao}\r\n \r\n \r\n ))\r\n )\r\n }} />\r\n \r\n \r\n { setShowImportar(false); setRefreshKey(prevKey => prevKey + 1); // Incrementa a key para forçar a recriação do componente\r\n }} />\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Select, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { selectPaginadoActions } from \"../../actions\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoOperacaoDebitoCredito({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao ,ui}, dispatch] = useStateValue();\r\n const [listaTipoImposto, setlistaTipoImposto] = useState([]);\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=TipoNotaDebitoCredito`).then(res => {\r\n setlistaTipoImposto(res.data);\r\n })\r\n }, []);\r\n \r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.odc_id) {\r\n let lista = [];\r\n if (!!manutencao.dados.cfo_cfop) {\r\n lista.push({ name: \"cfo_cfop\", campo: \"Cfop\", value: manutencao.dados.cfo_cfop });\r\n } \r\n if (!!manutencao.dados.taj_id) {\r\n lista.push({ name: \"taj_id\", campo: \"Id\", value: manutencao.dados.taj_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: {itens: lista} });\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [ui.showDrawer, manutencao.dados]);\r\n\r\n const salvarOperacaoDebitoCredito = (values) => {\r\n values.odc_cfop = values.cfo_cfop;\r\n carregando(true);\r\n if (values.odc_id) {\r\n api.put(`operacaoDebitoCredito/Alterar` , values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Operação Fiscal foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n } else {\r\n api.post(`operacaoDebitoCredito/Incluir`, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Operação Fiscal foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n };\r\n };\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+odc_id' } });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({c.cfo_cfop} - {c.cfo_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({t.taj_codigoajuste} - {t.taj_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoOperacaoDebitoCredito from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerOperacaoDebitoCredito() {\r\n\r\n const [formOperacaoDebitoCredito] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (manutencao.dados !== null) formOperacaoDebitoCredito.setFieldsValue(manutencao.dados);\r\n else {\r\n //formOperacaoDebitoCredito.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formOperacaoDebitoCredito.resetFields();\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não', \r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Modal, notification } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, PrinterOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport DrawerOperacaoDebitoCredito from './drawer';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Excluir, Imprimir, Editar } from \"../../components\";\r\n\r\nexport default function OperacaoDebitoCredito() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+odc_descricao'}}), []);\r\n\r\n function excluirRegistro(dados){\r\n setCarregando(true);\r\n api.delete(`OperacaoDebitoCredito/Excluir?id=${dados.odc_id}`).then(\r\n (res) => {\r\n notification.success({ message: 'Operação concluída', description: \"Registro excluído com sucesso!\" }); \r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n },(erro) => {\r\n notification.error({ message: 'Atenção', description: \"Não foi possível excluír o registro!\" }); \r\n //modalInativarRegistro(dados)\r\n }\r\n ).finally(() => {dispatch({ type: listagemActions.CHANGE, data: { ordem: '+odc_descricao'}})\r\n }\r\n );\r\n };\r\n\r\n function inativarRegistro(dados) {\r\n dados.mar_ativa = false;\r\n api.put(`operacaoDebitoCredito/Alterar`, dados).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Operação inativada com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+odc_descricao' } });\r\n }\r\n )\r\n }\r\n\r\n const modalInativarRegistro = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir a marca ${dados.odc_descricao}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a operação: ${dados.odc_descricao}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n {odc_id}\r\n \r\n ),\r\n },\r\n { \r\n title: 'Operações para Nota Fiscal de Ajuste', \r\n render: ({odc_descricao}) => (\r\n
\r\n {odc_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95, \r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record }});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true }});\r\n }} icon={}/>\r\n \r\n \r\n } onClick={() => modalExcluir(dados)}/>\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n );\r\n \r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Table } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\n\r\nexport default function TabCondicaoPagamento({ listaCondPag }) {\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n const [condicaoPagamento, setCondicaoPagamento] = useState([]);\r\n\r\n useEffect(() => {\r\n popularCondicao();\r\n }, []);\r\n\r\n function popularCondicao() {\r\n api.get('CondicaoPagamento/Ativos?PageSize=500').then(\r\n res => {\r\n let sequencia = 0;\r\n res.data.items.forEach((cond) => {\r\n cond.key = sequencia;\r\n sequencia++;\r\n })\r\n setCondicaoPagamento(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n const configSelecionarItem =\r\n {\r\n selectedRowKeys,\r\n onChange: (selectedRowKeys, selectedRows) => {\r\n setSelectedRowKeys(selectedRowKeys);\r\n popularCondicaoPgto(selectedRowKeys, selectedRows);\r\n }\r\n };\r\n\r\n function popularCondicaoPgto(key, rows) {\r\n listaCondPag.setListaCondPag(rows);\r\n };\r\n\r\n useEffect(() => {\r\n if (!!listaCondPag.listaCondPag.length > 0) {\r\n let listIndex = [];\r\n condicaoPagamento.forEach((condPgto, index, array) => {\r\n listaCondPag.listaCondPag.forEach((condPag) => {\r\n if (condPgto.cpg_id === condPag.cpg_id) {\r\n listIndex.push(index);\r\n }\r\n });\r\n });\r\n setSelectedRowKeys(listIndex);\r\n }\r\n }, [condicaoPagamento]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Condições Condições de Pagamento\r\n \r\n \r\n Defina as condições de pagamento. Pode ser selecionadas uma ou mais na tabela abaixo.\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n {cpg_descricao}\r\n
\r\n ),\r\n },\r\n ]\r\n } locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Form, Input, Select, InputNumber } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { getEmpresa } from \"../../services/auth\";\r\n\r\nexport default function TabBoleto({ formulario, dadosBoleto }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaJuroMora, setListaJuroMora] = useState([]);\r\n const [listaRegistro, setListaRegistro] = useState([]);\r\n const [listaFormaEmissao, setListaFormaEmissao] = useState([]);\r\n const [listaEspecieDocumento, setListaEspecieDocumento] = useState([]);\r\n const [listaTipoAceite, setListaTipoAceite] = useState([]);\r\n const [listaCodigoProtesto, setListaCodigoProtesto] = useState([]);\r\n const [listaDistribuicao, setListaDistribuicao] = useState([]);\r\n const [listaCodigoMulta, setListaCodigoMulta] = useState([]);\r\n const [listaCodigoBaixa, setListaCodigoBaixa] = useState([]);\r\n const [listaConvenio, setListaConvenio] = useState([]);\r\n const [listaCarteira, setListaCarteira] = useState([]);\r\n const [listaPadraoArq, setListaPadraoArq] = useState([]);\r\n const [contemProtesto, setContemProtesto] = useState(true);\r\n const [ehBaixa, setEhBaixa] = useState(true);\r\n const [modeloImpressao, setModeloImpressao] = useState([]);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, []);\r\n\r\n async function carregarDados() {\r\n let _banco = \"\";\r\n if (!!manutencao.dados && !!manutencao.dados.ban_id) {\r\n _banco = manutencao.dados.ban_id;\r\n }\r\n let jurosMora = await api.get('Enum/Listar?nome=BoletoTipoJuroMora');\r\n setListaJuroMora(jurosMora.data);\r\n let BoletoRegistro = await api.get('Enum/Listar?nome=BoletoRegistro');\r\n setListaRegistro(BoletoRegistro.data);\r\n let boletoFormaEmissao = await api.get('Enum/Listar?nome=BoletoFormaEmissao');\r\n setListaFormaEmissao(boletoFormaEmissao.data);\r\n let boletoEspecieDocumento = await api.get('Enum/Listar?nome=TipoEspecieDocumento');\r\n setListaEspecieDocumento(boletoEspecieDocumento.data);\r\n let boletoTipoAceite = await api.get('Enum/Listar?nome=BoletoTipoAceite');\r\n setListaTipoAceite(boletoTipoAceite.data);\r\n let boletoDistribuicao = await api.get('Enum/Listar?nome=BoletoDistribuicao');\r\n setListaDistribuicao(boletoDistribuicao.data)\r\n let boletoCodigoMulta = await api.get('Enum/Listar?nome=BoletoCodigoMulta');\r\n setListaCodigoMulta(boletoCodigoMulta.data);\r\n let boletoCodigoProtesto = await api.get('Enum/Listar?nome=BoletoCodigoProtesto');\r\n setListaCodigoProtesto(boletoCodigoProtesto.data);\r\n let boletoCodigoBaixa = await api.get('Enum/Listar?nome=BoletoCodigoBaixa');\r\n setListaCodigoBaixa(boletoCodigoBaixa.data);\r\n let boletoConvenio = await api.get(`BoletoConvenio/Listar?CodigoBanco=${_banco}&PageSize=500&filtro=`);\r\n setListaConvenio(boletoConvenio.data.items);\r\n let boletoCarteira = await api.get(`BoletoCarteira/Listar?filtro=&CodigoBanco=${_banco}&PageSize=500&Order=%2Bcrt_descricao`);\r\n setListaCarteira(boletoCarteira.data.items);\r\n let padraoArquivoRemessa = await api.get('Enum/Listar?nome=PadraoArquivoRemessa');\r\n setListaPadraoArq(padraoArquivoRemessa.data);\r\n let modeloImpresaoBoleto = await api.get('Enum/Listar?nome=BoletoModeloImpressao');\r\n setModeloImpressao(modeloImpresaoBoleto.data);\r\n };\r\n\r\n useEffect(() => {\r\n if (!!listaPadraoArq && listaPadraoArq.length > 0) {\r\n popularDadosBoleto();\r\n }\r\n }, [listaPadraoArq]);\r\n\r\n function popularDadosBoleto() {\r\n if (!!formulario.getFieldValue()) {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n if (!!formulario.getFieldValue().crt_id) {\r\n let crt_id = parseInt(formulario.getFieldValue().crt_id);\r\n dados.crt_id = listaCarteira.filter((carteira) => (carteira.crt_id === crt_id))[0];\r\n }\r\n if (!!formulario.getFieldValue().dbl_tipojuromora) {\r\n let dbl_tipojuromora = parseInt(formulario.getFieldValue().dbl_tipojuromora);\r\n dados.dbl_tipojuromora = listaJuroMora.filter((juroMora) => (juroMora.key === dbl_tipojuromora))[0].key;\r\n }\r\n if (!!formulario.getFieldValue().dbl_formatonossonumero) {\r\n let dbl_formatonossonumero = parseInt(formulario.getFieldValue().dbl_formatonossonumero);\r\n dados.dbl_formatonossonumero = listaConvenio.filter((listaConvenio) => (listaConvenio.cvn_id === dbl_formatonossonumero))[0];\r\n }\r\n if (!!formulario.getFieldValue().dbl_formaemissao) {\r\n let dbl_formaemissao = parseInt(formulario.getFieldValue().dbl_formaemissao);\r\n dados.dbl_formaemissao = listaFormaEmissao.filter((formaEmissao) => (formaEmissao.key === dbl_formaemissao))[0].key;\r\n }\r\n if (!!formulario.getFieldValue().dbl_especiedocumento) {\r\n let dbl_especiedocumento = parseInt(formulario.getFieldValue().dbl_especiedocumento);\r\n dados.dbl_especiedocumento = listaEspecieDocumento.filter((EspecieDocumento) => (EspecieDocumento.key === dbl_especiedocumento))[0].key;\r\n }\r\n if (!!formulario.getFieldValue().dbl_aceite) {\r\n let dbl_aceite = formulario.getFieldValue().dbl_aceite;\r\n dados.dbl_aceite = listaTipoAceite.filter((tipoAceite) => (tipoAceite.key === dbl_aceite))[0].key;\r\n }\r\n if (!!formulario.getFieldValue().dbl_distribuicao) {\r\n let dbl_distribuicao = parseInt(formulario.getFieldValue().dbl_distribuicao);\r\n dados.dbl_distribuicao = listaDistribuicao.filter((distribuicao) => (distribuicao.key === dbl_distribuicao))[0].key;\r\n }\r\n if (!!formulario.getFieldValue().dbl_codigoprotesto) {\r\n let dbl_codigoprotesto = parseInt(formulario.getFieldValue().dbl_codigoprotesto);\r\n if (!!dbl_codigoprotesto && dbl_codigoprotesto !== 3) {\r\n setContemProtesto(true);\r\n } else {\r\n setContemProtesto(false);\r\n }\r\n dados.dbl_codigoprotesto = listaCodigoProtesto.filter((codigoProtesto) => (codigoProtesto.key === dbl_codigoprotesto))[0].key;\r\n }\r\n if (!!formulario.getFieldValue().dbl_codigomulta) {\r\n let dbl_codigomulta = parseInt(formulario.getFieldValue().dbl_codigomulta);\r\n dados.dbl_codigomulta = listaCodigoMulta.filter((codigoMulta) => (codigoMulta.key === dbl_codigomulta))[0].key;\r\n }\r\n if (!!formulario.getFieldValue().dbl_codigobaixa) {\r\n let dbl_codigobaixa = parseInt(formulario.getFieldValue().dbl_codigobaixa);\r\n if (!!dbl_codigobaixa && dbl_codigobaixa !== 2) {\r\n setEhBaixa(true);\r\n } else {\r\n setEhBaixa(false);\r\n }\r\n dados.dbl_codigobaixa = listaCodigoBaixa.filter((codigoBaixa) => (codigoBaixa.key === dbl_codigobaixa))[0].key;\r\n }\r\n if (!!formulario.getFieldValue().dbl_padraoarquivoremessa) {\r\n let dbl_padraoarquivoremessa = parseInt(formulario.getFieldValue().dbl_padraoarquivoremessa);\r\n dados.dbl_padraoarquivoremessa = listaPadraoArq.filter((padraoArq) => (padraoArq.key === dbl_padraoarquivoremessa))[0].key;\r\n }\r\n if (JSON.stringify(dados) !== \"{}\") {\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n }\r\n\r\n };\r\n\r\n function popularDadosCarteira() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let crt_id = parseInt(formulario.getFieldValue().crt_id);\r\n if (crt_id) {\r\n dados.crt_id = listaCarteira.filter((carteira) => (carteira.crt_id === crt_id))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularJurosMora() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_tipojuromora = parseInt(formulario.getFieldValue().dbl_tipojuromora);\r\n if (dbl_tipojuromora) {\r\n dados.dbl_tipojuromora = listaJuroMora.filter((juroMora) => (juroMora.key === dbl_tipojuromora))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularFormatoNossoNum() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_formatonossonumero = parseInt(formulario.getFieldValue().dbl_formatonossonumero);\r\n if (dbl_formatonossonumero) {\r\n dados.dbl_formatonossonumero = listaConvenio.filter((listaConvenio) => (listaConvenio.cvn_id === dbl_formatonossonumero))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularFormaEmissao() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_formaemissao = parseInt(formulario.getFieldValue().dbl_formaemissao);\r\n if (dbl_formaemissao) {\r\n dados.dbl_formaemissao = listaFormaEmissao.filter((formaEmissao) => (formaEmissao.key === dbl_formaemissao))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularEspecieDocumento() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_especiedocumento = parseInt(formulario.getFieldValue().dbl_especiedocumento);\r\n if (dbl_especiedocumento) {\r\n dados.dbl_especiedocumento = listaEspecieDocumento.filter((EspecieDocumento) => (EspecieDocumento.key === dbl_especiedocumento))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n }\r\n\r\n function popularIdentificacaoTitulo() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_aceite = formulario.getFieldValue().dbl_aceite;\r\n if (dbl_aceite) {\r\n dados.dbl_aceite = listaTipoAceite.filter((tipoAceite) => (tipoAceite.key === dbl_aceite))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularFormaDistribuicao() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_distribuicao = parseInt(formulario.getFieldValue().dbl_distribuicao);\r\n if (dbl_distribuicao) {\r\n dados.dbl_distribuicao = listaDistribuicao.filter((distribuicao) => (distribuicao.key === dbl_distribuicao))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularProtestoTitulo() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_codigoprotesto = parseInt(formulario.getFieldValue().dbl_codigoprotesto);\r\n if (dbl_codigoprotesto) {\r\n if (!!dbl_codigoprotesto && dbl_codigoprotesto !== 3) {\r\n setContemProtesto(true);\r\n } else {\r\n setContemProtesto(false);\r\n }\r\n dados.dbl_codigoprotesto = listaCodigoProtesto.filter((codigoProtesto) => (codigoProtesto.key === dbl_codigoprotesto))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularMultaTitulo() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_codigomulta = parseInt(formulario.getFieldValue().dbl_codigomulta);\r\n if (dbl_codigomulta) {\r\n dados.dbl_codigomulta = listaCodigoMulta.filter((codigoMulta) => (codigoMulta.key === dbl_codigomulta))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularBaixaDevTitulo() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_codigobaixa = parseInt(formulario.getFieldValue().dbl_codigobaixa);\r\n if (dbl_codigobaixa) {\r\n if (!!dbl_codigobaixa && dbl_codigobaixa !== 2) {\r\n setEhBaixa(true);\r\n } else {\r\n setEhBaixa(false);\r\n }\r\n dados.dbl_codigobaixa = listaCodigoBaixa.filter((codigoBaixa) => (codigoBaixa.key === dbl_codigobaixa))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n function popularPadraoArquivoRemessa() {\r\n let dados = { ...dadosBoleto.dadosBoleto };\r\n let dbl_padraoarquivoremessa = parseInt(formulario.getFieldValue().dbl_padraoarquivoremessa);\r\n if (dbl_padraoarquivoremessa) {\r\n dados.dbl_padraoarquivoremessa = listaPadraoArq.filter((padraoArq) => (padraoArq.key === dbl_padraoarquivoremessa))[0].key;\r\n dadosBoleto.setDadosBoleto(dados);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Boleto\" Boleto\r\n \r\n \r\n Informe abaixo os dados para que seja possível emitir boletos.\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.dbl_tipojuromora !== currentValues.dbl_tipojuromora}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('dbl_tipojuromora') === 1) return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n if (getFieldValue('dbl_tipojuromora') === 2) return (\r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {contemProtesto &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {contemProtesto &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.dbl_codigomulta !== currentValues.dbl_codigomulta}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('dbl_codigomulta') === 1) return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n if (getFieldValue('dbl_codigomulta') === 2) return (\r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ehBaixa &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Select, Checkbox, Tooltip, Tabs, notification } from \"antd\";\r\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\r\nimport CurrencyInput from 'react-currency-input';\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormGW, SelectPaginacao } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { TabCondicaoPagamento, TabBoleto } from \"./tabPage\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { selectPaginadoActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoFormaPagamento({ formulario, carregando, aoSalvar }) {\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [tipoPagamento, setTipoPagamento] = useState([]);\r\n const [tipoIntegracao, setTipoIntegracao] = useState([]);\r\n const [funcaoTef, setFuncaoTef] = useState([]);\r\n const [tpFuncao, setTpIntegracao] = useState(0);\r\n const [showItegracao, setShowItegracao] = useState(false);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [contaCorrente, setContaCorrente] = useState([]);\r\n const [listaCondPag, setListaCondPag] = useState([]);\r\n const [isBoleto, setIsBoleto] = useState(false);\r\n const [definirDadosBoletos, setDefinirDadosBoletos] = useState(false);\r\n const [isCarne, setIsCarne] = useState(false);\r\n const [isValePresente, setIsValePresente] = useState(false);\r\n const [mostrarCondicao, setMostarCondicao] = useState(false);\r\n const [dadosBoleto, setDadosBoleto] = useState({});\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.fpg_id) {\r\n let lista = [];\r\n if (!!manutencao.dados.ctc_id) {\r\n lista.push({ name: \"ctc_id\", campo: \"Filtro\", value: manutencao.dados.ctc_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [ui.showDrawer, manutencao.dados]);\r\n\r\n const salvarManutencao = values => {\r\n let retorno;\r\n carregando(true);\r\n var dados = {};\r\n dados.ctc_id = formulario.getFieldValue().ctc_id;\r\n dados.fpg_id = formulario.getFieldValue().fpg_id;\r\n dados.fpg_descricao = formulario.getFieldValue().fpg_descricao;\r\n dados.fpg_ativo = formulario.getFieldValue().fpg_ativo;\r\n dados.fpg_emiteboleto = formulario.getFieldValue().fpg_emiteboleto;\r\n dados.fpg_tipopagamento = formulario.getFieldValue().fpg_tipopagamento;\r\n dados.fpg_imprimecarne = formulario.getFieldValue().fpg_imprimecarne;\r\n dados.fpg_padraosistema = formulario.getFieldValue().fpg_padraosistema;\r\n dados.fpg_tipointegracao = formulario.getFieldValue().fpg_tipointegracao;\r\n dados.fpg_codigofuncaotef = !!formulario.getFieldValue().fpg_codigofuncaotef ? formulario.getFieldValue().fpg_codigofuncaotef : 0;\r\n dados.fpg_descontopadrao = !!formulario.getFieldValue().fpg_descontopadrao ? calcPercent(formulario.getFieldValue().fpg_descontopadrao) : null;\r\n dados.formacondicaopagamentos = listaCondPag.length > 0 ? listaCondPag : [];\r\n dados.definicaoboleto = {};\r\n if (isBoleto) {\r\n dados.definicaoboleto.dbl_id = formulario.getFieldValue().dbl_id;\r\n dados.definicaoboleto.dbl_boletosfaltantes = 1;//parseInt(valores.dbl_boletosfaltantes); VERIFICAR\r\n dados.definicaoboleto.dbl_codigomulta = !!formulario.getFieldValue().dbl_codigomulta ? parseInt(formulario.getFieldValue().dbl_codigomulta) : null;\r\n dados.definicaoboleto.dbl_tipojuromora = !!formulario.getFieldValue().dbl_tipojuromora ? parseInt(formulario.getFieldValue().dbl_tipojuromora) : 0;\r\n dados.definicaoboleto.dbl_percjuromora = !!formulario.getFieldValue().dbl_percjuromora ? calcPercent(formulario.getFieldValue().dbl_percjuromora) : null;\r\n dados.definicaoboleto.dbl_formatonossonumero = !!formulario.getFieldValue().dbl_formatonossonumero ? parseInt(formulario.getFieldValue().dbl_formatonossonumero) : null;\r\n dados.definicaoboleto.dbl_diasaplicarmulta = !!formulario.getFieldValue().dbl_diasaplicarmulta ? parseInt(formulario.getFieldValue().dbl_diasaplicarmulta) : null;\r\n dados.definicaoboleto.dbl_codigobaixa = !!formulario.getFieldValue().dbl_codigobaixa ? parseInt(formulario.getFieldValue().dbl_codigobaixa) : null;\r\n dados.definicaoboleto.dbl_modeloimpressao = !!formulario.getFieldValue().dbl_modeloimpressao ? parseInt(formulario.getFieldValue().dbl_modeloimpressao) : 1;\r\n dados.definicaoboleto.dbl_formaemissao = !!formulario.getFieldValue().dbl_formaemissao ? parseInt(formulario.getFieldValue().dbl_formaemissao) : 1;\r\n dados.definicaoboleto.dbl_distribuicao = !!formulario.getFieldValue().dbl_distribuicao ? parseInt(formulario.getFieldValue().dbl_distribuicao) : 1;\r\n dados.definicaoboleto.dbl_codigoprotesto = !!formulario.getFieldValue().dbl_codigoprotesto ? parseInt(formulario.getFieldValue().dbl_codigoprotesto) : 1;\r\n dados.definicaoboleto.dbl_diasbaixa = !!formulario.getFieldValue().dbl_diasbaixa ? parseInt(formulario.getFieldValue().dbl_diasbaixa) : null;\r\n dados.definicaoboleto.dbl_diasparaprotestar = !!formulario.getFieldValue().dbl_diasparaprotestar ? parseInt(formulario.getFieldValue().dbl_diasparaprotestar) : null;\r\n dados.definicaoboleto.dbl_valorminimoprotesto = !!formulario.getFieldValue().dbl_valorminimoprotesto ? parseFloat(formulario.getFieldValue().dbl_valorminimoprotesto) : null;\r\n dados.definicaoboleto.dbl_valormulta = parseFloat(formulario.getFieldValue().dbl_valormulta);\r\n dados.definicaoboleto.dbl_aceite = formulario.getFieldValue().dbl_aceite;\r\n dados.definicaoboleto.dbl_padraoarquivoremessa = formulario.getFieldValue().dbl_padraoarquivoremessa;\r\n dados.definicaoboleto.crt_id = formulario.getFieldValue().crt_id;\r\n dados.definicaoboleto.dbl_nomearquivoremessa = formulario.getFieldValue().dbl_nomearquivoremessa;\r\n dados.definicaoboleto.dbl_padraoarquivoremessa = formulario.getFieldValue().dbl_padraoarquivoremessa;\r\n dados.definicaoboleto.dbl_extensaoarquivoremessa = formulario.getFieldValue().dbl_extensaoarquivoremessa;\r\n dados.definicaoboleto.dbl_nossonumeroinicial = !!formulario.getFieldValue().dbl_nossonumeroinicial ? formulario.getFieldValue().dbl_nossonumeroinicial : '';\r\n dados.definicaoboleto.dbl_nossonumerofinal = !!formulario.getFieldValue().dbl_nossonumerofinal ? formulario.getFieldValue().dbl_nossonumerofinal : '';\r\n dados.definicaoboleto.dbl_numeroconvenio = !!formulario.getFieldValue().dbl_numeroconvenio ? formulario.getFieldValue().dbl_numeroconvenio : '';\r\n dados.definicaoboleto.dbl_numerocontrato = !!formulario.getFieldValue().dbl_numerocontrato ? formulario.getFieldValue().dbl_numerocontrato : '';\r\n dados.definicaoboleto.dbl_msglocalpagamento = !!formulario.getFieldValue().dbl_msglocalpagamento ? formulario.getFieldValue().dbl_msglocalpagamento : '';\r\n dados.definicaoboleto.dbl_mensagem1 = !!formulario.getFieldValue().dbl_mensagem1 ? formulario.getFieldValue().dbl_mensagem1 : '';\r\n dados.definicaoboleto.dbl_mensagem2 = !!formulario.getFieldValue().dbl_mensagem2 ? formulario.getFieldValue().dbl_mensagem2 : '';\r\n dados.definicaoboleto.dbl_mensagem3 = !!formulario.getFieldValue().dbl_mensagem3 ? formulario.getFieldValue().dbl_mensagem3 : '';\r\n dados.definicaoboleto.dbl_mensagemmora = !!formulario.getFieldValue().dbl_mensagemmora ? formulario.getFieldValue().dbl_mensagemmora : '';\r\n dados.definicaoboleto.dbl_especiedocumento = !!formulario.getFieldValue().dbl_especiedocumento ? formulario.getFieldValue().dbl_especiedocumento : '';\r\n }\r\n\r\n let enderecoUrl = 'FormaPagamento/';\r\n if (dados.fpg_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, dados).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ description: `Forma de Pagamento editada com sucesso!`, message: 'Sucesso' });\r\n retorno = res.data;\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n resetarConstantes();\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n enderecoUrl += `Incluir`;\r\n api.post(enderecoUrl, dados).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ description: `Forma de Pagamento adicionada com sucesso!`, message: 'Sucesso' });\r\n retorno = res.data;\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n resetarConstantes();\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados) {\r\n resetarConstantes();\r\n if (manutencao.dados.fpg_emiteboleto || manutencao.dados.fpg_tipopagamento === 15) {\r\n setIsBoleto(true);\r\n carregarBoleto();\r\n }\r\n if (manutencao.dados.fpg_tipopagamento === 5) {\r\n setIsCarne(true);\r\n } else {\r\n setIsCarne(false);\r\n }\r\n if (manutencao.dados.fpg_tipopagamento !== 1 && manutencao.dados.fpg_tipopagamento !== 2 && manutencao.dados.fpg_tipopagamento !== 12) {\r\n setMostarCondicao(true);\r\n carregarCondicoes();\r\n } else if (manutencao.dados.fpg_tipopagamento === 12) {\r\n setIsValePresente(true);\r\n }\r\n if (manutencao.dados.fpg_tipopagamento == 3 || manutencao.dados.fpg_tipopagamento == 4 || manutencao.dados.fpg_tipopagamento == 17) {\r\n setShowItegracao(true)\r\n setTpIntegracao(manutencao.dados.fpg_tipointegracao);\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n function carregarDados() {\r\n popularFormas();\r\n };\r\n\r\n function popularFormas() {\r\n api.get('Enum/Listar?nome=FormaDePagamento').then(\r\n res => {\r\n setTipoPagamento(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n api.get('Enum/Listar?nome=IntegracaoPagamentos').then(\r\n res => {\r\n setTipoIntegracao(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n api.get('Enum/Listar?nome=TabelaCodigoFuncaoSitef').then(\r\n res => {\r\n setFuncaoTef(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function resetarConstantes() {\r\n setDadosBoleto([]);\r\n setListaCondPag([]);\r\n setAbaSelecionada(\"1\");\r\n };\r\n function alterarTpIntegracao(tpIntegracao) {\r\n setTpIntegracao(tpIntegracao);\r\n };\r\n\r\n function definirDadosBoleto(e) {\r\n if (e.target.checked == true) {\r\n setDefinirDadosBoletos(true);\r\n } else {\r\n setDefinirDadosBoletos(false);\r\n }\r\n }\r\n\r\n function alterarTpPagamento(tpPagamento) {\r\n tpPagamento = parseInt(tpPagamento);\r\n\r\n if (tpPagamento === 15) {\r\n setIsBoleto(true);\r\n } else {\r\n setIsBoleto(false);\r\n }\r\n if (tpPagamento === 5) {\r\n setIsCarne(true);\r\n } else {\r\n setIsCarne(false);\r\n }\r\n\r\n if (tpPagamento === 12) {\r\n setIsValePresente(true);\r\n } else {\r\n setIsValePresente(false);\r\n }\r\n\r\n if (!!tpPagamento && tpPagamento !== 1 && tpPagamento !== 2 && tpPagamento !== 12) {\r\n setMostarCondicao(true);\r\n } else {\r\n setMostarCondicao(false);\r\n }\r\n if (tpPagamento == 3 || tpPagamento == 4 || tpPagamento == 17) {\r\n setShowItegracao(true)\r\n }\r\n };\r\n\r\n function carregarBoleto() {\r\n if (!!manutencao.dados.fpg_id) {\r\n api.get(`DefinicaoBoleto/Listar?codigoFormaPagamento=${manutencao.dados.fpg_id}`).then(\r\n res => {\r\n setDadosBoleto(res.data);\r\n formulario.setFieldsValue(res.data);\r\n if (!!manutencao.dados.dadosBoleto) {\r\n manutencao.dados.dadosBoleto = res.data;\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n function carregarCondicoes() {\r\n if (!!manutencao.dados.fpg_id) {\r\n api.get(`FormaPagamento/ListarCondicaoPgtoRelacionadas?CodigoFormaPagamento=${manutencao.dados.fpg_id}`).then(\r\n res => {\r\n setListaCondPag(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n };\r\n\r\n const calcPercent = value => {\r\n let result = 0;\r\n if (value) {\r\n value = value.toString();\r\n if (value.includes(\"%\"))\r\n result = (parseFloat(value.toString().replace(\".\", \"\").replace(\",\", \".\").replace(\"%\", \"\")) / 100);\r\n else\r\n result = (value / 100);\r\n }\r\n return result;\r\n }\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Forma de Pagamento Ativa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isValePresente && \r\n \r\n ({cta.ctc_id} - {cta.ctc_descricao})\r\n }\r\n />\r\n \r\n }\r\n {!isValePresente &&\r\n \r\n prevValues.fpg_descontopadrao !== currentValues.fpg_descontopadrao}>\r\n {({ getFieldValue, setFieldsValue }) => {\r\n let value = getFieldValue(\"fpg_descontopadrao\");\r\n if (value && value !== \"\") {\r\n value = value.toString();\r\n if (value.includes(\"%\")) {\r\n value = value.replace(\".\", \"\").replace(\",\", \".\").replace(\"%\", \"\");\r\n if (parseFloat(value) > 100) {\r\n setFieldsValue({ fpg_descontopadrao: 100 });\r\n }\r\n }\r\n }\r\n return \r\n Desconto Padrão Aplicado\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n }}\r\n \r\n \r\n }\r\n {showItegracao && \r\n \r\n \r\n \r\n }\r\n {showItegracao && tpFuncao == 3 && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n {isBoleto && \r\n \r\n definirDadosBoleto(e)}>Emite Boleto?\r\n \r\n }\r\n {isCarne && \r\n \r\n Imprime Carnê?\r\n \r\n }\r\n \r\n \r\n {mostrarCondicao && \r\n \r\n }\r\n {definirDadosBoletos && \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoFormaPagamento from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerFormaPagamento() {\r\n\r\n const [formFormaPagamento] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados === null) {\r\n formFormaPagamento.setFieldsValue({ fpg_ativo: true });\r\n }\r\n\r\n function fecharDrawer() {\r\n formFormaPagamento.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+fpg_descricao' } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n fecharDrawer={fecharDrawer}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","export default function roundValue(num, places = 2) {\r\n if (!(\"\" + num).includes(\"e\")) {\r\n return +(Math.round(num + \"e+\" + places) + \"e-\" + places);\r\n } else {\r\n let arr = (\"\" + num).split(\"e\");\r\n let sig = \"\"\r\n if (+arr[1] + places > 0) {\r\n sig = \"+\";\r\n }\r\n\r\n return +(Math.round(+arr[0] + \"e\" + sig + (+arr[1] + places)) + \"e-\" + places);\r\n }\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Popover, notification, Modal } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerFormaPagamento from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir } from \"../../components\";\r\nimport roundValue from '../../ValueObjects/roundValue';\r\n\r\nexport default function FormaPagamento() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+fpg_descricao' } }), []);\r\n\r\n const modalInativarRegistro = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir a forma de pagamento ${dados.fpg_descricao}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(dados);\r\n }\r\n });\r\n };\r\n function excluirRegistro(dados) {\r\n api.delete(`FormaPagamento/Excluir/${dados.fpg_id}`).then(\r\n (res) => {\r\n notification.success({ message: `Sucesso!`, description: `Forma de Pagamento excluida com sucesso!` });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }).catch(\r\n (erro) => {\r\n modalInativarRegistro(dados);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+fpg_descricao' } });\r\n });\r\n }\r\n\r\n const modalExcluirCondicao = forma => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Excluir a forma de Pagamento ${forma.fpg_descricao} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(forma);\r\n }\r\n });\r\n };\r\n function inativarRegistro(dados) {\r\n dados.fpg_ativo = false;\r\n api.put(`FormaPagamento/Editar`, dados).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Forma de Pagamento inativada com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+fpg_descricao' } });\r\n }\r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {fpg_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Forma de Pagamento',\r\n render: ({ fpg_descricao, fpg_principal }) => (\r\n
\r\n \r\n
\r\n \r\n Principal\r\n \r\n \r\n \r\n {fpg_descricao}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Conta Corrente',\r\n render: ({ ctc_descricao }) => (\r\n
\r\n {(!!ctc_descricao) ? (ctc_descricao) : 'Não Informada'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desconto Padrão',\r\n align: 'right',\r\n render: ({ fpg_descontopadrao }) => (\r\n
\r\n {roundValue(fpg_descontopadrao * 100)}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n record.dadosBoleto = {};\r\n record.fpg_descontopadrao = (record.fpg_descontopadrao && record.fpg_descontopadrao > 0) ? (record.fpg_descontopadrao * 100) : 0;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => { modalExcluirCondicao(record) }}/>\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Table } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function TabFormaPagamento({ formasPagamento }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState([]);\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n\r\n useEffect(() => {\r\n carregarFormasPgto();\r\n }, []);\r\n\r\n function carregarFormasPgto() {\r\n api.get(`FormaPagamento/ListarAtivos?PageSize=200`).then(\r\n res => {\r\n if (!!res.data.items) {\r\n let index = 0;\r\n let dados = [...res.data.items];\r\n dados.sort((a, b) => (\r\n (a.fpg_descricao.charAt(0) + a.fpg_descricao.charAt(1) > b.fpg_descricao.charAt(0) + b.fpg_descricao.charAt(1)) ? 1 :\r\n ((b.fpg_descricao.charAt(0) + b.fpg_descricao.charAt(1)) > (a.fpg_descricao.charAt(0) + a.fpg_descricao.charAt(1))) ? -1 : 0\r\n ))\r\n dados.forEach(dados => {\r\n dados.key = index;\r\n index++;\r\n });\r\n setListaFormaPagamento(dados);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n useEffect(() => {\r\n if (formasPagamento.listaFormasPagamento.length > 0 && listaFormaPagamento.length > 0) {\r\n let listIndex = [];\r\n listaFormaPagamento.forEach((listaForma, index, array) => {\r\n formasPagamento.listaFormasPagamento.forEach((forma) => {\r\n if (forma.fpg_id === listaForma.fpg_id) {\r\n listIndex.push(index);\r\n }\r\n });\r\n });\r\n setSelectedRowKeys(listIndex);\r\n }\r\n }, [formasPagamento.listaFormasPagamento, listaFormaPagamento]);\r\n\r\n function popularFormasPgtoSelect(keys, linhas) {\r\n formasPagamento.setListaFormasPagamento(linhas);\r\n };\r\n\r\n const configSelecionarItem =\r\n {\r\n selectedRowKeys,\r\n onChange: (selectedRowKeys, selectedRows) => {\r\n setSelectedRowKeys(selectedRowKeys);\r\n popularFormasPgtoSelect(selectedRowKeys, selectedRows);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Forma Forma de Pagamento\r\n \r\n \r\n Defina as formas de pagamento. Pode ser selecionadas uma ou mais formas de pagamento na tabela abaixo.\r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {fpg_descricao}\r\n
\r\n ),\r\n },\r\n ]\r\n }\r\n rowSelection={configSelecionarItem}\r\n />\r\n
\r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Form, Button, Typography, Divider, InputNumber } from \"antd\";\r\nimport { RedoOutlined, PlusOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function TabParcelas({ formulario, listaParcelas }) {\r\n\r\n useEffect(() => {\r\n if (listaParcelas.parcelas.length > 0) {\r\n let parcelas = [...listaParcelas.parcelas];\r\n parcelas.forEach(\r\n (parcela) => {\r\n formulario.setFieldsValue({ ['perc' + parcela.pcl_numeroparcela]: parcela.pcl_percparcela });\r\n formulario.setFieldsValue({ ['dias' + parcela.pcl_numeroparcela]: parcela.pcl_numerodias });\r\n }\r\n );\r\n }\r\n }, [listaParcelas.parcelas]);\r\n\r\n\r\n function criarParcelas() {\r\n let qtdParcelas = parseInt(formulario.getFieldValue().pcl_numeroparcela);\r\n let dias = parseInt(formulario.getFieldValue().pcl_numerodias);\r\n let nDiasParcelas = 0;\r\n let somaPercentual = 0;\r\n let resto = 0;\r\n let nUltimaParcela = qtdParcelas - 1;\r\n let percParcela = (100 / qtdParcelas).toFixed(2);\r\n let dadosParcelamento = [];\r\n for (let i = 0; i < qtdParcelas; i++) {\r\n nDiasParcelas += dias;\r\n dadosParcelamento.push({\r\n pcl_numeroparcela: i + 1,\r\n pcl_numerodias: nDiasParcelas,\r\n pcl_percparcela: parseFloat(percParcela)\r\n });\r\n \r\n somaPercentual += parseFloat(percParcela);\r\n }\r\n resto = (100 - somaPercentual).toFixed(2);\r\n if (resto != 0) {\r\n resto = parseFloat(resto);\r\n dadosParcelamento[nUltimaParcela].pcl_percparcela = parseFloat((dadosParcelamento[nUltimaParcela].pcl_percparcela + resto).toFixed(2));\r\n }\r\n listaParcelas.setParcelas(dadosParcelamento);\r\n };\r\n\r\n function reorganizarParcelas() {\r\n listaParcelas.setParcelas([]);\r\n };\r\n\r\n function alterarParcela(campo, name) {\r\n let dados = [...listaParcelas.parcelas];\r\n let valor = parseFloat(formulario.getFieldValue()[name]);\r\n let posicao = parseInt(name.replace(campo, '').trim()) - 1;\r\n if (campo === 'dias') {\r\n dados[posicao].pcl_numerodias = valor;\r\n for (let i = posicao + 1; i < listaParcelas.parcelas.length; i++) {\r\n valor += parseInt(formulario.getFieldValue().pcl_numerodias);\r\n dados[i].pcl_numerodias = valor;\r\n }\r\n } else {\r\n if (valor > 100) {\r\n valor = 100;\r\n }\r\n let valorPerc = (100 - valor) / (dados.length - 1);\r\n let valorInteiro = valorPerc.toFixed(2).split('.');\r\n valorInteiro = parseInt(valorInteiro);\r\n let percValorInt = valorInteiro * (dados.length - 1) + valor;\r\n for (let i = 0; i < dados.length; i++) {\r\n if (posicao != i) {\r\n dados[i].pcl_percparcela = valorInteiro;\r\n } else {\r\n dados[i].pcl_percparcela = valor;\r\n }\r\n }\r\n let sobra = 100 - percValorInt;\r\n if (posicao === 0) {\r\n dados[1].pcl_percparcela += sobra;\r\n } else {\r\n dados[0].pcl_percparcela += sobra;\r\n }\r\n }\r\n listaParcelas.setParcelas(dados);\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Parcelas\" Parcelas\r\n \r\n Defina o número de parcelas e a quantidade de dias que as mesmas terão de intervalo. \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaParcelas.parcelas.map(parcela => (\r\n \r\n \r\n \r\n \r\n Parcela - {parcela.pcl_numeroparcela}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { alterarParcela('dias', 'dias' + parcela.pcl_numeroparcela) }}\r\n />\r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n onChange={() => { alterarParcela('perc', 'perc' + parcela.pcl_numeroparcela) }}\r\n parser={value => value.replace('%', '')} />\r\n \r\n \r\n \r\n \r\n ))}\r\n {listaParcelas.parcelas.length > 0 && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, Tooltip, Tabs, notification } from \"antd\";\r\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\r\nimport CurrencyInput from 'react-currency-input';\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { TabFormaPagamento, TabParcelas } from \"./tabPage\";\r\n\r\n\r\nexport default function ManutencaoCondicaoPagamento({ formulario, carregando, aoSalvar }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [exibeParcelas, setExibeParcelas] = useState(false);\r\n const [listaFormasPagamento, setListaFormasPagamento] = useState([]);\r\n const [parcelas, setParcelas] = useState([]);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaDadosForma, setListaDadoForma] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!formulario.getFieldValue().cpg_id) {\r\n let dados = manutencao.dados;\r\n dados.cpg_descontopadrao = (dados.cpg_descontopadrao && dados.cpg_descontopadrao > 0) ? (dados.cpg_descontopadrao * 100) : 0;\r\n dados.cpg_percentualjuros = (dados.cpg_percentualjuros && dados.cpg_percentualjuros > 0) ? (dados.cpg_percentualjuros * 100) : 0;\r\n formulario.setFieldsValue(dados);\r\n carregarDadosCondicao();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n buscarDadosFormasPgto();\r\n }, []);\r\n\r\n const salvarManutencao = async valores => {\r\n let dados = {};\r\n let retorno;\r\n carregando(true);\r\n if (!(await validarCondicaoCrediario(valores))) {\r\n return;\r\n }\r\n\r\n dados.cpg_ativo = valores.cpg_ativo;\r\n dados.cpg_descontopadrao = !!valores.cpg_descontopadrao ? calcPercent(valores.cpg_descontopadrao) : null;\r\n dados.cpg_descricao = valores.cpg_descricao;\r\n dados.cpg_id = valores.cpg_id;\r\n dados.cpg_percentualjuros = !!valores.cpg_percentualjuros ? calcPercent(valores.cpg_percentualjuros) : null;\r\n dados.formacondicaopagamentos = listaFormasPagamento;\r\n dados.mostraParcela = valores.mostraParcela;\r\n dados.parcelamentos = parcelas;\r\n\r\n let enderecoUrl = 'CondicaoPagamento/';\r\n if (dados.cpg_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, dados).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ description: `Condição de Pagamento editada com sucesso!`, message: 'Sucesso' });\r\n retorno = res.data;\r\n }\r\n }, err => {\r\n carregando(false);\r\n console.log(err);\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+cpg_descricao' } });\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n enderecoUrl += `Incluir`;\r\n api.post(enderecoUrl, dados).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ description: `Condição de Pagamento adicionada com sucesso!`, message: 'Sucesso' });\r\n retorno = res.data;\r\n }\r\n }, err => {\r\n carregando(false);\r\n console.log(err);\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+cpg_descricao' } });\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n };\r\n\r\n const calcPercent = value => {\r\n let result = 0;\r\n if (value) {\r\n value = value.toString();\r\n if (value.includes(\"%\"))\r\n result = (parseFloat(value.toString().replace(\".\", \"\").replace(\",\", \".\").replace(\"%\", \"\")) / 100);\r\n else\r\n result = (value / 100);\r\n }\r\n return result;\r\n };\r\n\r\n async function validarCondicaoCrediario(valores) {\r\n let lista = [...listaFormasPagamento];\r\n for (let forma of lista) {\r\n let formaPgto = listaDadosForma.find(f => f.fpg_id === forma.fpg_id);\r\n if (!!formaPgto && formaPgto.fpg_tipopagamento == 5 && parcelas.length <= 0) {\r\n notification.warning({ description: \"Condição com forma de pagamento do tipo crediario deve possuir parcelas!\", message: \"Aviso\" });\r\n carregando(false);\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n function buscarDadosFormasPgto() {\r\n api.get('FormaPagamento/Listar?filtro=&apenasAtivos=true&PageSize=200').then(\r\n (res) => {\r\n if (!!res.data) {\r\n setListaDadoForma(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n\r\n function defineParcelas() {\r\n setExibeParcelas(!exibeParcelas);\r\n };\r\n\r\n function carregarDadosCondicao() {\r\n let cpg_id = formulario.getFieldValue().cpg_id;\r\n api.get(`CondicaoPagamento/ListarParcelamento?codigoCondicaoPagamento=${cpg_id}`).then(\r\n res => {\r\n if (res.data.length > 0) {\r\n formulario.setFieldsValue({ mostraParcela: true });\r\n defineParcelas();\r\n res.data.sort((a, b) => (a.pcl_numeroparcela > b.pcl_numeroparcela) ? 1 : ((b.pcl_numeroparcela > a.pcl_numeroparcela) ? -1 : 0));\r\n setParcelas(res.data);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n api.get(`CondicaoPagamento/ListarFormaPagamentoRelacionadas?codigoCondicaoPagamento=${cpg_id}`).then(\r\n res => {\r\n setListaFormasPagamento(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n prevValues.cpg_descontopadrao !== currentValues.cpg_descontopadrao}>\r\n {({ getFieldValue, setFieldsValue }) => {\r\n let value = getFieldValue(\"cpg_descontopadrao\");\r\n if (value && value !== \"\") {\r\n value = value.toString();\r\n if (value.includes(\"%\")) {\r\n value = value.replace(\".\", \"\").replace(\",\", \".\").replace(\"%\", \"\");\r\n if (parseFloat(value) > 100) {\r\n setFieldsValue({ cpg_descontopadrao: 100 });\r\n }\r\n }\r\n }\r\n return \r\n Desconto Padrão Aplicado\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n }}\r\n \r\n \r\n \r\n prevValues.cpg_percentualjuros !== currentValues.cpg_percentualjuros}>\r\n {({ getFieldValue, setFieldsValue }) => {\r\n let value = getFieldValue(\"cpg_percentualjuros\");\r\n if (value && value !== \"\") {\r\n value = value.toString();\r\n if (value.includes(\"%\")) {\r\n value = value.replace(\".\", \"\").replace(\",\", \".\").replace(\"%\", \"\");\r\n if (parseFloat(value) > 100) {\r\n setFieldsValue({ cpg_percentualjuros: 100 });\r\n }\r\n }\r\n }\r\n return \r\n Percentual de Juros Aplicado\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n }}\r\n \r\n \r\n \r\n \r\n { defineParcelas() }}>Definir Parcelas\r\n \r\n \r\n \r\n \r\n Condição de Pagamento Ativa?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {exibeParcelas && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoCondicaoPagamento from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerCentroDistribuicao() {\r\n\r\n const [formCondicaoPagamento] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formCondicaoPagamento.setFieldsValue(manutencao.dados);\r\n } else {\r\n //formCondicaoPagamento.resetFields();\r\n formCondicaoPagamento.setFieldsValue({ cpg_ativo: true });\r\n };\r\n\r\n function fecharDrawer() {\r\n formCondicaoPagamento.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+cpg_descricao' } });\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n fecharDrawer={fecharDrawer}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Popover, Modal, notification } from \"antd\";\r\nimport { EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport DrawerCondicaoPagamento from './drawer';\r\nimport roundValue from '../../ValueObjects/roundValue';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir } from \"../../components\";\r\n\r\nexport default function CondicaoPagamento() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+cpg_descricao' } });\r\n }, []);\r\n\r\n function excluirCondicao(condicao) {\r\n api.post(`CondicaoPagamento/Excluir/${condicao.cpg_id}`).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: 'Condição de pagamento inativada com sucesso!' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+cpg_descricao' } });\r\n }\r\n );\r\n\r\n };\r\n\r\n const modalExcluirCondicao = condicao => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Excluir a Condição de Pagamento ${condicao.cpg_descricao} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirCondicao(condicao);\r\n }\r\n });\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {cpg_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Condição de Pagamento',\r\n render: ({ cpg_descricao }) => (\r\n
\r\n {cpg_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desconto Padrão',\r\n align: 'right',\r\n render: ({ cpg_descontopadrao }) => (\r\n
\r\n {roundValue(cpg_descontopadrao * 100)}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Percentual Juros',\r\n align: 'right',\r\n render: ({ cpg_percentualjuros }) => (\r\n
\r\n {roundValue(cpg_percentualjuros * 100)}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n {/* \r\n {\r\n modalExcluirCondicao(record);\r\n }} icon={} />\r\n */}\r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Checkbox, Input, Select, notification, Radio } from \"antd\";\r\n\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\n//import { listagemActions, manutencaoActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoSerieFiscal({ formulario, carregando, aoSalvar }) {\r\n\r\n const [listaModelo, setListaModelo] = useState([]);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [bloquearCampos, setBloquearCampos] = useState(false);\r\n\r\n useEffect(() => {\r\n api.get(`ModeloDocumentoFiscal/ListarTodos`).then(res => {\r\n setListaModelo(res.data);\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!!manutencao && isObjetoDiffVazio(manutencao.dados)) {\r\n setBloquearCampos(true);\r\n } else {\r\n setBloquearCampos(false);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ser_serie' } });\r\n };\r\n\r\n function salvarManutencao(values) {\r\n carregando(true);\r\n if (values.ser_id) {\r\n editarSerie(values);\r\n } else {\r\n incluirSerie(values);\r\n };\r\n }\r\n\r\n function incluirSerie(values) {\r\n api.post(`SerieFiscal/Incluir`, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Série Fiscal foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n function editarSerie(values) {\r\n api.put(`SerieFiscal/Editar`, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Série Fiscal foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Emissão Própria\r\n Emissão Terceiros\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Saída\r\n Entrada\r\n Extra-Caixa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoHistorico from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerHistorico() {\r\n\r\n const [formHistorico] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (manutencao.dados !== null){\r\n formHistorico.setFieldsValue(manutencao.dados);\r\n }\r\n else {\r\n formHistorico.setFieldsValue({his_ativo:true});\r\n }\r\n\r\n function fecharDrawer() {\r\n formHistorico.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Popover, notification, Modal } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerHistorico from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir, Duplicar } from \"../../components\";\r\n\r\nexport default function Historico() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+his_descricao' } }), []);\r\n\r\n function excluirRegistro(dados) {\r\n api.delete(`Historico/Excluir/${dados.his_id}`).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }).catch(\r\n (erro) => {\r\n modalInativarRegistro(dados);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+his_descricao' } });\r\n });\r\n }\r\n\r\n function inativarRegistro(dados) {\r\n dados.his_ativo = false;\r\n api.put(`Historico/Editar`,dados).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Status inativado com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+his_descricao' } });\r\n }\r\n )\r\n }\r\n\r\n const modalInativarRegistro = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir a Status ${dados.his_descricao}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a Status: ${dados.his_id} - ${dados.his_descricao}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalDuplicarDados = (dados) => {\r\n Modal.confirm({\r\n title: 'Duplicar?',\r\n icon: ,\r\n content: `Deseja duplicar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n dados.duplicar = true;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados }});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true }});\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {his_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Histórico',\r\n render: ({ his_descricao }) => (\r\n
\r\n {his_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95, \r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n } onClick={() => {modalDuplicarDados(dados)}}/>\r\n \r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => {modalExcluir(dados)}}/>\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, LeftOutlined, RightOutlined, FileDoneOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoNotaFiscal from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerNotaFiscal({ drawerExtra = { showDrawerExtra: false }, fecharDrawerNotaFiscal}) {\r\n\r\n const [formNotaFiscal] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [tagPages, setTagPages] = useState(null);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n const [salvarRascunho, setSalvarRascunho] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formNotaFiscal.resetFields();\r\n setTagPages(0);\r\n setProximaPag(null);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_numero' } });\r\n if (!!drawerExtra.showDrawerExtra) {\r\n drawerExtra.setShowDrawerExtra(false)\r\n }\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Form, Table, Tag, Checkbox, Input, Modal } from \"antd\";\r\nimport { PlusOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { info } from \"../../services/funcoes\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { ModalEditarItemDevolucao, ModalEditarCFOP } from \"../../components/modals/\";\r\nimport { calculoICMS, calculoICMSST, calculoIPI } from \"../../services/calculaImposto\";\r\n\r\nexport default function TabItens({ listaNotaDevolucao, adicionarNotas, dadosNfe }) {\r\n\r\n const [form] = Form.useForm();\r\n const [openModalEditarItemDevolucao, setOpenModalEditarItemDevolucao] = useState(false);\r\n const [openModalEditarCFOP, setOpenModalEditarCFOP] = useState(false);\r\n const [itemEditar, setItemEditar] = useState({});\r\n const [listaCFOP, setListaCFOP] = useState([]);\r\n\r\n function removeNotaFiscal(ntf_id) {\r\n Modal.confirm({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: 'Remover a Nota Fiscal Selecionada?',\r\n okText: 'Sim, quero remover',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let indice = lista.findIndex(nota => nota.ntf_id === ntf_id);\r\n lista.splice(indice, 1);\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n listarCFOP();\r\n }, []);\r\n\r\n function listarCFOP() {\r\n api.get(`Cfop/ListarCFOPDevolucao?tipoOperacao=${dadosNfe.dadosNfeDevolucao.ntf_tipooperacao}&ufDest=${dadosNfe.dadosNfeDevolucao.ntf_ufdest}&ufOrigem=${dadosNfe.dadosNfeDevolucao.ntf_ufdest}`).then(\r\n res => {\r\n setListaCFOP(res.data);\r\n }\r\n ).catch(\r\n erro => { console.log(erro); }\r\n );\r\n };\r\n\r\n function selecionarTodos(checked, ntf_id) {\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let nota = lista.find((nota) => { return nota.ntf_id === ntf_id });\r\n nota.checked = checked;\r\n nota.itens.forEach((item) => {\r\n item.checked = checked;\r\n });\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n };\r\n\r\n function selecionarItem(nfi_id, ntf_id) {\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let nota = lista.find((nota) => { return nota.ntf_id === ntf_id });\r\n let item = nota.itens.find((item) => { return item.nfi_id === nfi_id });\r\n item.checked = !item.checked;\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n };\r\n\r\n function excluirMarcados(ntf_id) {\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let nota = lista.find((nota) => { return nota.ntf_id === ntf_id });\r\n nota.itens = nota.itens.filter((item) => { return !item.checked });\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n };\r\n\r\n function excluirItem(ntf_id, nfi_id) {\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let nota = lista.find((nota) => { return nota.ntf_id === ntf_id });\r\n nota.itens = nota.itens.filter((item) => { return item.nfi_id !== nfi_id });\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n };\r\n\r\n async function salvarItemNota() {\r\n let quantidade = parseFloat(form.getFieldValue().nfi_qtde);\r\n if (itemEditar.qtdeOriginal < quantidade) {\r\n info(`Quantidade informada maior que quantidade disponível para devolução (${itemEditar.qtdeOriginal})!`);\r\n return;\r\n }\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let nota = lista.find((nota) => { return nota.ntf_id === itemEditar.ntf_id });\r\n let item = nota.itens.find((item) => { return item.nfi_id === itemEditar.nfi_id });\r\n item.qtdeRestante = quantidade;\r\n\r\n if (!!item.nfi_valorseguro) {\r\n item.valorSeguroRateio = (parseFloat(item.nfi_valorseguro) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n if (!!item.nfi_valorfrete) {\r\n item.valorFreteRateio = (parseFloat(item.nfi_valorfrete) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n if (!!item.nfi_valoroutros) {\r\n item.valorOutrosRateio = (parseFloat(item.nfi_valoroutros) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n if (!!item.nfi_valordesconto) {\r\n item.valorDescontoRateio = (parseFloat(item.nfi_valordesconto) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n\r\n if (!!item.bcIcms) {\r\n item.nig_valorbc = (parseFloat(item.bcIcms) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n if (!!item.valorIcms) {\r\n item.nig_valoricms = (parseFloat(item.valorIcms) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n if (!!item.bcIcmsSt) {\r\n item.nig_valorbcst = (parseFloat(item.bcIcmsSt) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n if (!!item.valorIcmsSt) {\r\n item.nig_valoricmsst = (parseFloat(item.valorIcmsSt) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n if (!!item.bcIpi) {\r\n item.npi_valorbcipi = (parseFloat(item.bcIpi) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n if (!!item.valorIpi) {\r\n item.npi_valoripi = (parseFloat(item.valorIpi) / itemEditar.nfi_qtde) * quantidade;\r\n }\r\n\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n setOpenModalEditarItemDevolucao(false);\r\n };\r\n\r\n function pesquisarItem(value, ntf_id) {\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let nota = lista.find((nota) => { return nota.ntf_id === ntf_id });\r\n nota.filtro = value;\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n };\r\n\r\n function selecionarCFOP(cfo_cfop) {\r\n if (!!cfo_cfop) {\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let nota = lista.find((nota) => { return nota.ntf_id === itemEditar.ntf_id });\r\n let item = nota.itens.find((item) => { return item.nfi_id === itemEditar.nfi_id });\r\n item.nfi_cfop = cfo_cfop;\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n setOpenModalEditarCFOP(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Itens Itens das Notas Fiscais Referenciadas\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n
\r\n {ntf_numero}\r\n \r\n \r\n \r\n ),\r\n }, {\r\n title: 'Outras Informações',\r\n render: ({ ser_serie, ntf_dataemissao, ntf_chavenfe }) => (\r\n
\r\n \r\n
\r\n Série: {(!!ser_serie ? ser_serie : '')}\r\n \r\n \r\n Emissão: {moment(ntf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n {!(!!ntf_chavenfe) && \r\n NF-e não gerada\r\n }\r\n {!!ntf_chavenfe && \r\n NF-e: {ntf_chavenfe}\r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Total',\r\n width: 220,\r\n render: ({ totalNfe }) => (\r\n
\r\n \r\n
\r\n Total da Nota\r\n \r\n \r\n \r\n \r\n {FormatNumber(totalNfe, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 75,\r\n render: ({ ntf_id }) => (\r\n
\r\n \r\n
\r\n \r\n selecionarTodos(e.target.checked, ntf_id)}>Selecionar Todos\r\n \r\n \r\n \r\n pesquisarItem(value, ntf_id)} allowClear />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{ return item.pro_descricao.toUpperCase().indexOf((filtro.trim()).toUpperCase()) >= 0 || item.pro_codigo.toString().indexOf((filtro.trim()).toUpperCase()) >= 0 }) : itens} columns={[\r\n {\r\n title: 'Itens da Nota',\r\n width: '48%',\r\n render: ({ checked, pro_codigo, pro_descricao, nfi_ean, grade, nfi_id }) => (\r\n
\r\n \r\n
\r\n { selecionarItem(nfi_id, ntf_id) }} />\r\n \r\n \r\n \r\n {pro_codigo}\r\n \r\n \r\n \r\n {pro_descricao}\r\n \r\n \r\n \r\n \r\n EAN: {nfi_ean}\r\n \r\n \r\n Grade: {grade}\r\n \r\n \r\n \r\n ),\r\n }, {\r\n title: 'CFOP',\r\n width: '4%',\r\n align: 'center',\r\n render: (record) => (\r\n \r\n ),\r\n }, {\r\n title: 'CST/CSOSN',//`${record.nis_csosn ? 'CSOSN' : 'CST'}`,\r\n align: 'center',\r\n width: '6%',\r\n render: ({ nig_origemmercadoria, nig_cst, nis_origemmercadoria, nis_csosn }) => (\r\n
\r\n
\r\n {nis_csosn ? nis_origemmercadoria + nis_csosn : nig_origemmercadoria + nig_cst}\r\n \r\n \r\n ),\r\n }, {\r\n title: 'Qtde',\r\n width: '7%',\r\n align: 'right',\r\n render: ({ qtdeRestante, nfi_unidademedida }) => (\r\n
\r\n {FormatNumber(qtdeRestante, true, false, 3)} {nfi_unidademedida}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Unit.(R$)',\r\n width: '8%',\r\n align: 'right',\r\n render: ({ nfi_valorunitario }) => (\r\n
\r\n {FormatNumber(nfi_valorunitario, true)}\r\n
\r\n ),\r\n }, {\r\n title: 'Desc.(R$)',\r\n width: '7%',\r\n align: 'right',\r\n render: ({ valorDescontoRateio }) => (\r\n
\r\n {FormatNumber(valorDescontoRateio, true)}\r\n
\r\n ),\r\n }, {\r\n title: 'Frete.(R$)',\r\n width: '7%',\r\n align: 'right',\r\n render: ({ nfi_valorfrete }) => (\r\n
\r\n {FormatNumber(nfi_valorfrete, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Total(R$)',\r\n align: 'right',\r\n width: '8%',\r\n render: ({ nfi_valorunitario, qtdeRestante, valorDescontoRateio }) => (\r\n
\r\n {FormatNumber((nfi_valorunitario * qtdeRestante) - valorDescontoRateio, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} pagination={false} scroll={{ x: 900 }} />\r\n \r\n \r\n ,\r\n defaultExpandAllRows: true,\r\n expandIconColumnIndex: -1\r\n }} />\r\n \r\n \r\n \r\n { selecionarCFOP(cfo_cfop) }} fecharModal={() => setOpenModalEditarCFOP(false)} listaCFOP={{ listaCFOP, setListaCFOP }} />\r\n { salvarItemNota() }} cancelar={() => setOpenModalEditarItemDevolucao(false)} itemEditar={itemEditar} />\r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Card, Form, Typography, Input, Divider } from \"antd\";\r\n\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { validarNumeros } from \"../../services/funcoes\";\r\n\r\nexport default function TabResumo({ form, listaNotaDevolucao, resumoNota }) {\r\n\r\n useEffect(() => {\r\n let formulario = form.getFieldValue();\r\n let resumo = {\r\n valorProduto: 0,\r\n valorFrete: 0,\r\n valorOutros: 0,\r\n valorSeguro: 0,\r\n valorBaseICMS: 0,\r\n valorICMS: 0,\r\n valorBaseST: 0,\r\n valorICMSST: 0,\r\n valorBaseIPI: 0,\r\n valorIPI: 0,\r\n valorDesconto: 0,\r\n valorTotalNotaFiscal: 0\r\n };\r\n\r\n listaNotaDevolucao.listaNotaDevolucao.forEach((nota) => {\r\n nota.itens.forEach((item) => {\r\n resumo.valorProduto += (item.nfi_valorunitario * item.qtdeRestante) || 0;\r\n resumo.valorFrete += (item.valorFreteRateio) || 0;\r\n resumo.valorOutros += (item.valorOutrosRateio) || 0;\r\n resumo.valorSeguro += (item.valorSeguroRateio) || 0;\r\n resumo.valorDesconto += (item.valorDescontoRateio) || 0;\r\n resumo.valorBaseICMS += (item.nig_valorbc) || 0;\r\n resumo.valorICMS += (item.nig_valoricms) || 0;\r\n resumo.valorBaseST += (item.nig_valorbcst) || 0;\r\n resumo.valorICMSST += (item.nig_valoricmsst) || 0;\r\n resumo.valorBaseIPI += (item.npi_valorbcipi) || 0;\r\n resumo.valorIPI += (item.npi_valoripi) || 0;\r\n });\r\n\r\n });\r\n resumo.valorFrete += validarNumeros(formulario.valorFrete);\r\n resumo.valorSeguro += validarNumeros(formulario.valorSeguro);\r\n resumo.valorTotalNotaFiscal = resumo.valorProduto + resumo.valorOutros + resumo.valorIPI + resumo.valorICMSST - resumo.valorDesconto + resumo.valorFrete + resumo.valorSeguro;\r\n\r\n resumoNota.setResumoNota(resumo);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Resumo da Nota Fiscal\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorProduto, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorFrete, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorSeguro, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorOutros, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorDesconto, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorBaseIPI, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorIPI, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorBaseICMS, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorICMS, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorBaseST, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorICMSST, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total da Nota\r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorTotalNotaFiscal, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Tag, Table, Modal } from \"antd\";\r\nimport { PlusOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function TabNotasFiscais({ listaNotaDevolucao, retornaDescricaoStatus, adicionarNotas }) {\r\n\r\n function removeNotaFiscal(ntf_id){\r\n Modal.confirm({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: 'Remover a Nota Fiscal Selecionada?',\r\n okText: 'Sim, quero remover',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n let lista = [...listaNotaDevolucao.listaNotaDevolucao];\r\n let indice = lista.findIndex(nota => nota.ntf_id === ntf_id);\r\n lista.splice(indice, 1);\r\n listaNotaDevolucao.setListaNotaDevolucao(lista);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Notas Notas Fiscais Referenciadas\r\n \r\n Referencie todas as notas que deseja devolver para o mesmo destinatário aqui! \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n \r\n {retornaDescricaoStatus(ntf_status)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {ntf_numero}\r\n \r\n \r\n \r\n ),\r\n }, {\r\n title: 'Outras Informações',\r\n render: ({ tip_descricao, ser_serie, ntf_dataemissao, ntf_finalidadeNfe, ntf_chavenfe, pes_nome }) => (\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n \r\n \r\n \r\n Série: {(!!ser_serie > 0 ? ser_serie : '')}\r\n \r\n \r\n Emissão: {moment(ntf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n Nota de: {tip_descricao}\r\n \r\n \r\n Finalidade: {ntf_finalidadeNfe}\r\n \r\n {!(!!ntf_chavenfe) && \r\n NF-e não gerada\r\n }\r\n {!!ntf_chavenfe && \r\n NF-e: {ntf_chavenfe}\r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 220,\r\n render: ({ totalNfe }) => (\r\n
\r\n {FormatNumber(totalNfe, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: ({ntf_id}) => (\r\n
\r\n \r\n
\r\n \r\n {ambiente === 2 &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n popularOperacaoFiscal(idOperacao)} nameValue=\"ope_id\" nameLabel=\"ope_descricao\" filtroExtra={filtroAdd}\r\n conteudo={\r\n op => ({op.ope_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n {!!dadosNfe.dadosNfeDevolucao.pes_id &&\r\n \r\n \r\n
{dadosNfe.dadosNfeDevolucao.ntf_nomedest}
\r\n
\r\n \r\n }\r\n {!!!dadosNfe.dadosNfeDevolucao.pes_id &&\r\n \r\n \r\n {\r\n validarFisicoJuridico(valor); listarClienteCpfCnpj(valor.currentTarget.value.replace(/\\D/g, ''));\r\n }}\r\n />\r\n \r\n \r\n }\r\n {!!!dadosNfe.dadosNfeDevolucao.pes_id &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {(!!!dadosNfe.dadosNfeDevolucao.pes_id && pages.tagPages === 0 && !possuiCliente) &&\r\n <>\r\n \r\n \r\n \r\n \r\n {!isEstrangeiro && \r\n verificaCep(cep.target.value)} onPressEnter={(cep) => verificaCep(cep.target.value)} />\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({tipoEnd.pse_nome})\r\n }\r\n />\r\n {/* \r\n {listaPais.map(pais => (\r\n {pais.pse_nome}\r\n ))}\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {(!!!dadosNfe.dadosNfeDevolucao.pes_id && pages.tagPages === 0 && !possuiCliente) &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({tipoEnd.tpe_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n ({tp.tpt_descricao})\r\n } />\r\n \r\n */}\r\n \r\n }\r\n {(!!!dadosNfe.dadosNfeDevolucao.pes_id && pages.tagPages === 0 && !possuiCliente) &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.tagPages === 0 &&\r\n \r\n }\r\n {pages.tagPages === 1 &&\r\n \r\n }\r\n {pages.tagPages === 2 &&\r\n \r\n }\r\n {pages.tagPages === 3 &&\r\n \r\n }\r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \"Notas Notas Fiscais\r\n \r\n \r\n \r\n \r\n \r\n listarNotasReferenciadas(value)} allowClear />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n {ntf_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Status',\r\n align: 'center',\r\n width: 100,\r\n render: ({ ntf_status }) => (\r\n
\r\n \r\n \r\n {retornaDescricaoStatus(ntf_status)}\r\n \r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Outras Informações',\r\n render: ({ ntf_tipooperacao, ser_serie, ntf_dataemissao, ntf_finalidade, ntf_chavenfe, ntf_nomedest }) => (\r\n
\r\n \r\n
\r\n {ntf_nomedest}\r\n \r\n \r\n \r\n \r\n Série: {(!!ser_serie ? ser_serie : '')}\r\n \r\n \r\n Emissão: {moment(ntf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n Nota de: {ntf_tipooperacao === 0 ? 'Entrada' : 'Saída'}\r\n \r\n \r\n Finalidade: {listaFinalidadeNota[ntf_finalidade - 1].value}\r\n \r\n {!(!!ntf_chavenfe) && \r\n NF-e não gerada\r\n }\r\n {!!ntf_chavenfe && \r\n NF-e: {ntf_chavenfe}\r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n width: 220,\r\n align: 'right',\r\n render: ({ valortotalnota }) => (\r\n
\r\n {FormatNumber(valortotalnota, true)}\r\n
\r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 35,\r\n render: ({ checked, key }) => (\r\n
\r\n \r\n
\r\n { selecionarNota(key) }} />\r\n \r\n \r\n \r\n ),\r\n }\r\n ]} scroll={{ x: 900 }} />\r\n \r\n \r\n \r\n \r\n }\r\n { setOpenDevolucaoSubstituicaoTributaria(false) }} aoSalvar={(dadosNotaDevSt) => { setOpenDevolucaoSubstituicaoTributaria(false); salvarNotaAjuste(dadosNotaDevSt) }} dadosNfe={dadosNfe} serieFiscal={serieFiscal} dadosNotaDevSt={dadosNotaDevSt} />\r\n { formulario.setFieldsValue({ antecipacaoEstorno: 1 }); setOpenModalAntecipacao(false) }} aoSalvar={() => { setOpenModalAntecipacao(false); salvarNotaDevolucao() }} />\r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, RightOutlined, LeftOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from \"../../components\";\r\nimport NotaDevolucao from '../notaFiscalDevolucao/index';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerDevolucao({ dadosNfeDevolucao }) {\r\n\r\n const [formDevolucao] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [tagPages, setTagPages] = useState(null);\r\n const [adicionarNotas, setAdicionarNotas] = useState(false);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n\r\n function fecharDrawer() {\r\n formDevolucao.resetFields();\r\n setProximaPag(null);\r\n setTagPages(0);\r\n setAdicionarNotas(false);\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerDevolucao: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_numero' } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Select, Input, Alert, Tooltip, notification, Modal } from \"antd\";\r\nimport { QuestionCircleOutlined, CheckCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { Data, InputPreco, SelectPaginacao } from \"../../components\";\r\nimport { novaAbaNavegador } from \"../../services/funcoes\";\r\nimport { getEmpresa, getLocal } from \"../../services/auth\";\r\nimport { MaskFormat } from '../../ValueObjects/index';\r\n\r\nexport default function NotaFiscalDebitoCredito({ formulario, carregando, aoSalvar }) {\r\n\r\n const [ambiente, setAmbiente] = useState([]);\r\n const [operacao, setOperacao] = useState([]);\r\n const [serieFiscal, setSerieFiscal] = useState([]);\r\n const [listaPessoas, setListaPessoas] = useState([]);\r\n const [exibeDestinatario, setExibeDestinatario] = useState(false);\r\n const [dadosContribuinte, setDadosContribuinte] = useState({});\r\n const [editando, setEditando] = useState(false);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n const salvarManutencao = (values) => {\r\n values.ntf_numero = !!values.ntf_numero ? values.ntf_numero : dadosContribuinte.ntf_numero;\r\n values.ntf_status = 1;\r\n values.baseCalculo = !!values.baseCalculo ? values.baseCalculo : 0;\r\n values.valorDebitoCredito = !!values.valorDebitoCredito ? values.valorDebitoCredito : 0;\r\n values.emitirNfe = true;\r\n values.dadosContribuinte = dadosContribuinte;\r\n values.dadosDestinatario = listaPessoas.find((pes) => { return pes.pes_id === values.pes_id });\r\n values.operacao = operacao.filter((odc) => odc.odc_id === values.odc_id)[0];\r\n\r\n carregando(true);\r\n if (values.ntf_id) {\r\n api.put('/NotaFiscalDebitoCredito/Alterar', values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados foram salvos com sucesso!\" });\r\n if (res.data.ntf_status === 1 && !!res.data.ntf_chavenfe) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${res.data.ntf_chavenfe}`);\r\n }\r\n }\r\n }, erro => {\r\n if (!!erro.response && !!erro.response.data && !!erro.response.data.Message) {\r\n Modal.warning({\r\n content: erro.response.data.Message,\r\n title: 'Aviso',\r\n onOk: () => {\r\n aoSalvar();\r\n }\r\n })\r\n }\r\n console.log(erro);\r\n // notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n api.post('/NotaFiscalDebitoCredito/Incluir', values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados foram salvos com sucesso!\" });\r\n if (res.data.ntf_status === 1 && !!res.data.ntf_chavenfe) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${res.data.ntf_chavenfe}`);\r\n }\r\n }).catch(\r\n erro => {\r\n if (!!erro.response && !!erro.response.data && !!erro.response.data.Message) {\r\n Modal.warning({\r\n content: erro.response.data.Message,\r\n title: 'Aviso',\r\n onOk: () => {\r\n aoSalvar();\r\n }\r\n })\r\n }\r\n console.log(erro);\r\n // notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`Nfe/VerificarAmbiente?codigoLocal=${getLocal()}`).then(retornoAmbiente => {\r\n if (!!retornoAmbiente.data) {\r\n setAmbiente(retornoAmbiente.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n\r\n api.get(`OperacaoDebitoCredito/Listar`).then(res => {\r\n if (res.status === 200) {\r\n setOperacao(res.data.items);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`SerieFiscal/Listar?EmitenteDocumento=0&CodigoModeloDocFiscal=55&SomenteAtivos=true`).then(res => {\r\n if (res.status === 200) {\r\n setSerieFiscal(res.data.items);\r\n if (res.data.items.length === 1) {\r\n formulario.setFieldsValue({ ser_id: res.data.items[0].ser_id });\r\n }\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n // api.get(`Pessoa/ListarPessoasAtivas`).then(\r\n // res => {\r\n // if (res.status === 200) {\r\n // setListaPessoas(res.data.items);\r\n // }\r\n // }).catch((erro) => console.error(erro));\r\n\r\n api.get(`dadosContribuinte/Buscar`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDadosContribuinte(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawerExtra && operacao.length > 0) {\r\n verificarOperacao();\r\n if (!!formulario.getFieldValue().pes_id) {\r\n verificarPessoaContribuinte(formulario.getFieldValue().pes_id);\r\n }\r\n }\r\n if (!!manutencao.dados) {\r\n setEditando(true);\r\n formulario.setFieldsValue(manutencao.dados);\r\n } else {\r\n formulario.setFieldsValue({ ntf_dataemissao: moment(new Date()) });\r\n }\r\n }, [ui.showDrawerExtra, operacao]);\r\n\r\n function verificarOperacao() {\r\n if (!!formulario.getFieldValue().odc_id) {\r\n let odc = operacao.find((odc) => { return odc.odc_id === formulario.getFieldValue().odc_id });\r\n if (odc.cfo_cfop > 5000) {\r\n setExibeDestinatario(true);\r\n }\r\n } else {\r\n setExibeDestinatario(false);\r\n }\r\n };\r\n\r\n function verificarPessoaContribuinte(id) {\r\n if (!!id && !listaPessoas.find((pes) => { return pes.pes_id === id }).pej_inscricaoestadual) {\r\n formulario.setFieldsValue({ pes_id: null });\r\n notification.error({ message: 'Destinatário inválido para este tipo de operação', description: \"Não é possível emitir NF-e de Débito ou Crédito de ICMS para não Contribuinte de ICMS - Verifique no cadastro do destinatário a informação da Inscrição Estadual!\" });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {ambiente === 2 &&\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n {!!editando && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {exibeDestinatario &&\r\n \r\n \r\n {\r\n verificarPessoaContribuinte(dados)\r\n }} conteudo={\r\n pc => ({pc.pes_id} - {pc.pes_nome}
\r\n {(!!pc.pej_cnpj ? `CNPJ.: ${MaskFormat(pc.pej_cnpj, '', true)}` : !!pc.pef_cpf ? `CPF.: ${MaskFormat(pc.pef_cpf, '', true)}` : '')}
\r\n {(!!pc.pej_inscricaoestadual ? ` IE.: ${pc.pej_inscricaoestadual}` : '')}\r\n
)\r\n } />\r\n
\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from \"../../components\";\r\nimport NotaFiscalDebitoCredito from './debitoCredito';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerDebitoCredito() {\r\n\r\n const [formDebitoCredito] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n if (manutencao.dados !== null) {\r\n formDebitoCredito.setFieldsValue(manutencao.dados);\r\n } else {\r\n ///formNotaFiscal.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formDebitoCredito.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerExtra: false } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_numero' } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n return (\r\n\r\n }\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React from 'react';\r\nimport { Modal } from \"antd\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { manutencaoActions } from '../../actions';\r\nimport { DetalheNotaFiscal } from \"../../components\";\r\n\r\nexport default function ModalDetalheNotaFiscal({ exibirModal, fecharModal, dadosModal }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n const onClose = () => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n fecharModal();\r\n };\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n\r\n )\r\n}","import { Col, Divider, Form, Input, Row, Select, Typography, notification } from 'antd';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { InputCep, InputCpfCnpj, SelectIncluir, SelectPaginacao } from '../../components';\r\nimport { MaskFormat } from '../../ValueObjects';\r\nimport { useStateValue } from '../../state';\r\nimport api from '../../services/api';\r\nimport { selectPaginadoActions } from '../../actions';\r\nimport { ModalTelefone } from '../../components/modals';\r\n\r\nexport default function FornecedorNFE({ form, dadosEndereco, setDadosFornecedor }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [openDrawerFornecedor, setOpenDrawerFornecedor] = useState(false);\r\n const [listaEndereco, setListaEndereco] = useState([]);\r\n const [listaEmail, setListaEmail] = useState([]);\r\n const [dadosTelefone, setDadosTelefone] = useState([]);\r\n const [abreModalTelefone, setAbreModalTelefone] = useState(false);\r\n const [pessoaFisica, setPessoaFisica] = useState(1);\r\n const [formularioTelefone] = Form.useForm();\r\n\r\n useEffect(() => {\r\n if (listaEndereco?.length > 0 && !!form.getFieldValue().ntf_endereco) {\r\n buscarDadosEndereco(form.getFieldValue().ntf_endereco);\r\n }\r\n }, [listaEndereco]);\r\n\r\n\r\n async function buscarDadosFornecedor(registro) {\r\n if (registro) {\r\n\r\n let fornecedor = (await api.get(`Fornecedor/BuscarFornecedor/${registro}`)).data;\r\n if (fornecedor) {\r\n\r\n if (fornecedor.pef_produtorrural) {\r\n form.setFieldsValue({ 'pej_inscricaoestadual': fornecedor?.endereco[0].pie_inscricaoestadual });\r\n } else {\r\n form.setFieldsValue({ 'pej_inscricaoestadual': fornecedor.pej_inscricaoestadual });\r\n }\r\n let enderecoP = fornecedor.enderecos?.find(e => e.pee_enderecoprincipal);\r\n if (!!enderecoP) {\r\n form.setFieldsValue({ 'ntf_endereco': enderecoP.pee_id });\r\n }\r\n let telefoneP = fornecedor.telefones?.find(t => t.psc_principal);\r\n if (!!telefoneP) {\r\n form.setFieldsValue({ 'telefoneDestinatario': telefoneP.psc_id });\r\n }\r\n let emailP = fornecedor.emails?.find(e => e.pem_emailprincipal);\r\n if (!!emailP) {\r\n form.setFieldsValue({ 'ntf_emaildestinatario': emailP.pem_id })\r\n }\r\n setDadosTelefone(fornecedor.telefones);\r\n setListaEndereco(fornecedor.enderecos);\r\n setListaEmail(fornecedor.emails);\r\n setarCpfCnpj(fornecedor);\r\n setDadosFornecedor(fornecedor);\r\n }\r\n }\r\n }\r\n\r\n function buscarDadosEndereco(pee_id) {\r\n let end = listaEndereco.filter((end) => (end.pee_id === pee_id))[0];\r\n if (!!end) {\r\n form.setFieldsValue({ pse_id: end.pse_id });\r\n if (end.pse_id) {\r\n let lista = [];\r\n lista.push({ name: \"pse_id\", campo: \"pse_id\", value: end.pse_id });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n if (end.pie_inscricaoestadual) {\r\n form.setFieldsValue({ 'pej_inscricaoestadual': end.pie_inscricaoestadual });\r\n }\r\n form.setFieldsValue({ cep_cep: end.cep_cep });\r\n buscarCep(end.cep_cep);\r\n dadosEndereco(end);\r\n form.setFieldsValue({ bai_nome: end.bai_nome });\r\n form.setFieldsValue({ pee_numero: end.pee_numero });\r\n form.setFieldsValue({ pee_complemento: end.pee_complemento });\r\n }\r\n }\r\n\r\n function buscarCep(cep) {\r\n fetch(`https://viacep.com.br/ws/${cep.replace(`-`, ``)}/json/`)\r\n .then(\r\n res => res.json()\r\n ).then(\r\n result => {\r\n form.setFieldsValue({ cidade: `${result.localidade} / ${result.uf}` });\r\n },\r\n erro => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n );\r\n };\r\n\r\n function adicionarTelefone() {\r\n if (!!form.getFieldValue().pes_id) {\r\n setAbreModalTelefone(true);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: \"Favor informar um cliente!\" });\r\n }\r\n };\r\n\r\n function onCloseModalTelefone() {\r\n setAbreModalTelefone(false);\r\n };\r\n\r\n function setarCpfCnpj(registro) {\r\n let cpfCnpj = '';\r\n if (registro.pes_fisicajuridica > 0) {\r\n setPessoaFisica(registro.pes_fisicajuridica)\r\n if (registro.pes_fisicajuridica === 1) {\r\n cpfCnpj = registro.pef_cpf;\r\n } else if (registro.pes_fisicajuridica === 2) {\r\n cpfCnpj = registro.pej_cnpj;\r\n } else if (registro.pes_fisicajuridica === 3) {\r\n cpfCnpj = registro.pes_idestrangeiro;\r\n }\r\n form.setFieldsValue({ ntf_cpfcnpj: cpfCnpj });\r\n } else {\r\n notification.warn(\"Fornecedor informado com cadastro de pessoa física/jurídica/estrangeira incorreto!\");\r\n form.setFieldsValue({ for_id: null });\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n setOpenDrawerFornecedor(true)}\r\n nameValue=\"for_id\" allowClear={true} onChangeFunction={(dados) => {\r\n buscarDadosFornecedor(dados)\r\n }} conteudo={\r\n pc => ({pc.for_codigo} - {pc.pes_nome}
\r\n {(!!pc.pej_cnpj ? `CNPJ.: ${MaskFormat(pc.pej_cnpj, '', true)}` : !!pc.pef_cpf ? `CPF.: ${MaskFormat(pc.pef_cpf, '', true)}` : '')}\r\n
)\r\n } />\r\n
\r\n \r\n \r\n {pessoaFisica === 1 &&\r\n \r\n }\r\n {pessoaFisica === 2 &&\r\n \r\n }\r\n {pessoaFisica === 3 &&\r\n \r\n } \r\n \r\n { adicionarTelefone() }}\r\n campoDescricao={'psc_numero'}\r\n campoValue={'psc_id'}\r\n campokey={'psc_id'}\r\n placeHolder={'Selecione o Telefone'}\r\n labelFormItem={'Telefone'}\r\n nameFormItem={'telefoneDestinatario'} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Endereço\" Endereço\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({pse.pse_nome})\r\n } />\r\n \r\n \r\n \r\n { buscarCep(event.currentTarget.value) }} />\r\n \r\n \r\n \r\n \r\n Não sei o CEP\r\n \r\n \r\n \r\n \r\n {\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { onCloseModalTelefone() }} />\r\n\r\n \r\n );\r\n}","import { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { Card, Col, Divider, Form, InputNumber, Modal, Row, Typography } from 'antd';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { FormasPagamento, InputPreco } from '../../components';\r\nimport { validarNumeros } from '../../services/funcoes';\r\nimport { useStateValue } from '../../state';\r\n\r\nexport default function FaturamentoNFE({ form, dadosItens, dadosOperacao }) {\r\n const [valorNota, setValorNota] = useState(0);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState(!!manutencao.dados && !!manutencao.dados.faturamento && manutencao.dados.faturamento.length > 0 ? manutencao.dados.faturamento : [])\r\n const [controlModal, setControlModal] = useState(false);\r\n useEffect(() => {\r\n calcularFaturamento();\r\n }, [manutencao.dados])\r\n\r\n function calcularFaturamento() {\r\n let formulario = form.getFieldValue();\r\n let subTotal = 0;\r\n dadosItens.forEach((item) => {\r\n subTotal += item.total;\r\n });\r\n form.setFieldsValue({ subTotalNotaFiscal: subTotal });\r\n form.setFieldsValue({ valorFrete: validarNumeros(formulario.valorFrete) });\r\n form.setFieldsValue({ valorSeguro: validarNumeros(formulario.valorSeguro) });\r\n\r\n setValorNota(parseFloat(subTotal) + parseFloat(formulario.valorFrete) + parseFloat(formulario.valorSeguro) + parseFloat(formulario.valorOutrasDespesas));\r\n };\r\n\r\n useEffect(() => {\r\n recalcularTotal();\r\n }, [valorNota]);\r\n\r\n function calcularDesconto(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorDesconto);\r\n let perc = validarNumeros(formulario.percentualDesconto);\r\n let tot = parseFloat(valorNota);\r\n let result = 0;\r\n\r\n if (listaFormaPagamento.length > 0 && !!!controlModal) {\r\n setControlModal(true);\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: 'Tem certeza que deseja adicionar desconto? As formas de pagamento terão que ser incluídas novamente.',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n setListaFormaPagamento([]);\r\n },\r\n onCancel() {\r\n form.setFieldsValue({ valorDesconto: 0, percentualDesconto: 0, valorTotal: listaFormaPagamento[0].pfp_valor });\r\n }\r\n });\r\n }\r\n\r\n\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorDesconto: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percentualDesconto: result.toFixed(2) });\r\n }\r\n\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function calcularAcrescimo(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorAcrescimo);\r\n let perc = validarNumeros(formulario.percentualAcrescimo);\r\n let tot = (!!valorNota ? parseFloat(valorNota) : 0);\r\n let result = 0;\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorAcrescimo: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percentualAcrescimo: result.toFixed(2) });\r\n }\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function recalcularTotal() {\r\n let formulario = form.getFieldValue();\r\n let valor = 0;\r\n if (!!formulario) {\r\n valor = valorNota - validarNumeros(formulario.valorDesconto) + validarNumeros(formulario.valorAcrescimo);\r\n form.setFieldsValue({ valorTotal: valor.toFixed(2) });\r\n let valorPago = 0;\r\n if (!!manutencao.dados && !!manutencao.dados.faturamento) {\r\n manutencao.dados.faturamento.forEach((dadosFat) => {\r\n valorPago += parseFloat(dadosFat.pfp_valor);\r\n if (listaFormaPagamento.length == 0 || form.getFieldValue().valorDesconto > 0);\r\n {\r\n valorPago = 0;\r\n }\r\n });\r\n }\r\n form.setFieldsValue({ pfp_valor: (valor - valorPago).toFixed(2) });\r\n }\r\n };\r\n\r\n function vendedorDescMaxFinal() {\r\n let totalDesconto = 0;\r\n let totalValorDescontoItens = 0;\r\n dadosItens.forEach((itens) => {\r\n totalValorDescontoItens += parseFloat(itens.nfi_valordesconto);\r\n });\r\n let percentualDescontoConcedido = parseFloat(((totalValorDescontoItens * 100) / parseFloat(form.getFieldsValue().subTotalNotaFiscal)).toFixed(2));\r\n totalDesconto = percentualDescontoConcedido + parseFloat(form.getFieldValue().percentualDesconto);\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Totais da Nota Fiscal\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onBlur={() => { vendedorDescMaxFinal(); }}\r\n onChange={() => { calcularDesconto('PERC'); }}\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n { vendedorDescMaxFinal(); }} onChange={() => { calcularDesconto('VALOR'); }} />\r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onChange={() => { calcularAcrescimo('PERC') }}\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n { calcularAcrescimo('VALOR') }} />\r\n \r\n \r\n \r\n \r\n IPI (R$): 0,00\r\n \r\n \r\n \r\n \r\n Substituição Tributária (R$): 0,00\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total da Nota (R$)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { Card, Col, Divider, Form, Input, InputNumber, Row, Typography } from 'antd';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { InputPreco } from '../../components';\r\n\r\n\r\nexport default function ResumoNFE({ form, itensNota }) {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Resumo da Nota Fiscal\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n disabled\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n disabled\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n IPI: R$ 0,00\r\n \r\n \r\n \r\n \r\n Substituição Tributária (R$): 0,00\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total de Itens da Nota: {itensNota.length}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total da Nota\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { FiltroProdutoNfi } from '../../components';\r\nimport { useStateValue } from '../../state';\r\nimport { Button, Col, Modal, Row, Table, Tag } from 'antd';\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\n\r\nexport default function ItensNFE({ form, dadosItens, dadosEndereco, dadosOperacao, carregarPagina }) {\r\n const [quantidadeItens, setQuantidadeItens] = useState(0);\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [editando, setEditando] = useState(false);\r\n const [dadosEditando, setDadosEditando] = useState({});\r\n\r\n useEffect(() => {\r\n if (dadosItens.dadosItens.length > 0) {\r\n let total = 0;\r\n setQuantidadeItens(dadosItens.dadosItens.length);\r\n dadosItens.dadosItens.forEach((item) => {\r\n total += parseFloat(item.total);\r\n });\r\n setValorTotal(total);\r\n } else {\r\n setQuantidadeItens(0);\r\n setValorTotal(0);\r\n }\r\n }, [dadosItens.dadosItens]);\r\n\r\n function editarItemNota(registro) {\r\n setDadosEditando(registro);\r\n setEditando(true);\r\n };\r\n\r\n function removerItemNota(record, indice) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: 'Deseja remover o item da nota?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n let dadosTemp = [...dadosItens.dadosItens];\r\n let dadosRet = dadosTemp.filter((item) => item.nfi_numeroitem !== record.nfi_numeroitem);\r\n dadosItens.setDadosItens(dadosRet);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n {!!dadosItens.dadosItens && dadosItens.dadosItens.length > 0 &&
(\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n {pro_descricao}\r\n \r\n \r\n \r\n \r\n EAN: {nfi_ean}\r\n \r\n \r\n Grade: {grade}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'CFOP',\r\n align: 'center',\r\n width: 30,\r\n render: ({ nfi_cfop }) => (\r\n
\r\n {nfi_cfop}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: 40,\r\n align: 'center',\r\n render: ({ nfi_qtde }) => (\r\n
\r\n {FormatNumber(nfi_qtde, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: 50,\r\n render: ({ nfi_valorunitario }) => (\r\n
\r\n {FormatNumber(nfi_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desc.',\r\n align: 'center',\r\n width: 40,\r\n render: ({ percdesc }) => (\r\n
\r\n {percdesc}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Acres.',\r\n align: 'center',\r\n width: 40,\r\n render: ({ percacresc }) => (\r\n
\r\n {percacresc}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: 60,\r\n render: ({ total }) => (\r\n
\r\n {FormatNumber(total, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 40,\r\n fixed: 'right',\r\n render: (record, e, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n ICMS Base de Cálculo: {nig_valorbc}\r\n \r\n \r\n Alíquota: {nig_percicms}\r\n \r\n \r\n Valor (R$): {nig_valoricms}\r\n \r\n \r\n \r\n \r\n IPI Base de Cálculo: {npi_valorbcipi}\r\n \r\n \r\n Alíquota: {npi_percaliquotaipi}\r\n \r\n \r\n Valor (R$): {npi_valoripi}\r\n \r\n \r\n \r\n \r\n ICMS ST Base de Cálculo: {nig_valorbcst}\r\n \r\n \r\n Alíquota: {nig_percmvast}\r\n \r\n \r\n Valor (R$): {nig_valoricmsst}\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }} />}\r\n \r\n
\r\n \r\n
\r\n Quantidade Itens:\r\n \r\n \r\n {quantidadeItens}\r\n \r\n \r\n \r\n \r\n Valor Total dos Itens (R$):\r\n \r\n \r\n {FormatNumber(valorTotal, true)}\r\n \r\n \r\n \r\n \r\n )\r\n}","import { Col, Form, Radio, Row, Select, Tabs, notification } from 'antd';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { SelectPaginacao } from '../../components';\r\nimport { TabValores, TabVeiculo, TabVolumes } from '../tabNotaFiscal';\r\nimport api from '../../services/api';\r\n\r\n\r\nexport default function TransportadorNFE({ form, veiculos, dadosTransp }) {\r\n \r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [mostrarTransportador, setMostrarTransportador] = useState(true);\r\n const [possuiTransportador, setPossuiTransportador] = useState(false);\r\n const [listaTransportadores, setListaTransportadores] = useState([]);\r\n const [dadosVeiculos, setDadosVeiculos] = useState({});\r\n\r\n useEffect(() => {\r\n buscarTransportadores();\r\n if (!!form.getFieldValue().trv_id && !!form.getFieldValue().trn_id) {\r\n setPossuiTransportador(true);\r\n }\r\n if (form.getFieldValue().ntf_modalidadefrete === 9) {\r\n setMostrarTransportador(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldValue().trn_id) {\r\n buscarDadosTransp(form.getFieldValue().trn_id);\r\n }\r\n }, [listaTransportadores]);\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldValue().trv_id) {\r\n popularDadosVeiculo(form.getFieldValue().trv_id);\r\n }\r\n }, [veiculos.listaVeiculos]);\r\n\r\n function alterarFrete(event) {\r\n if (event.target.value === 9) {\r\n form.setFieldsValue({ trn_id: null });\r\n form.setFieldsValue({ trv_id: null });\r\n form.setFieldsValue({ valorFrete: null });\r\n form.setFieldsValue({ valorSeguro: null });\r\n form.setFieldsValue({ trv_placa: null });\r\n form.setFieldsValue({ trv_uf: null });\r\n form.setFieldsValue({ trv_rntc: null });\r\n form.setFieldsValue({ trv_modelo: null });\r\n form.setFieldsValue({ trv_marca: null });\r\n form.setFieldsValue({ trv_observacao: null });\r\n form.setFieldsValue({ nvl_qtdevolumes: null });\r\n form.setFieldsValue({ nvl_especievolume: null });\r\n form.setFieldsValue({ nvl_numeracaovolume: null });\r\n form.setFieldsValue({ nvl_marcavolume: null });\r\n form.setFieldsValue({ nvl_pesoliquido: null });\r\n form.setFieldsValue({ nvl_pesobruto: null });\r\n setDadosVeiculos({});\r\n setMostrarTransportador(false);\r\n } else {\r\n setMostrarTransportador(true);\r\n }\r\n };\r\n\r\n function buscarTransportadores() {\r\n api.get('Transportador/ListarTodos?filtro=').then(\r\n (res) => {\r\n setListaTransportadores(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n async function buscarDadosTransp(trn_id) {\r\n if (!!trn_id) {\r\n await api.get(`Transportador/BuscarTransportador/${trn_id}`).then(\r\n res => {\r\n if (res.status === 200){\r\n dadosTransp.setDadosTransp(res.data);\r\n veiculos.setListaVeiculos(res.data.veiculos);\r\n setPossuiTransportador(true);\r\n }\r\n }\r\n ).catch( error => {\r\n console.log(error);\r\n notification.warning({message: 'Aviso!', description: 'Erro ao buscar dados do transportador!'});\r\n })\r\n } else {\r\n setPossuiTransportador(false);\r\n }\r\n };\r\n\r\n function popularDadosVeiculo(trv_id) {\r\n let veiculo = veiculos.listaVeiculos.filter((veiculo) => (veiculo.trv_id === trv_id))[0];\r\n setDadosVeiculos(veiculo);\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n { alterarFrete(dados) }}>\r\n 0 - Contratação do Frete por conta do Remetente (CIF)\r\n 1 - Contratação do Frete por conta do Destinatário (FOB)\r\n 2 - Contratação do Frete por conta de Terceiros\r\n 3 - Transporte Próprio por conta do Remetente\r\n 4 - Transporte Próprio por conta do Destinatário\r\n 9 - Sem Frete\r\n \r\n \r\n \r\n \r\n {mostrarTransportador && \r\n \r\n \r\n buscarDadosTransp(dados)} conteudo={\r\n tp => ({tp.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {(possuiTransportador && mostrarTransportador) &&
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
}\r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Data, FormGW, SelectPaginacao, SelectPaginado } from '../../components';\r\nimport { Col, Form, Input, Row, Select, Spin, Steps, notification } from 'antd';\r\nimport { useStateValue } from '../../state';\r\nimport moment from 'moment';\r\nimport api from '../../services/api';\r\nimport FornecedorNFE from './fornecedorNFE';\r\nimport FaturamentoNFE from './faturamentoNFE';\r\nimport ResumoNFE from './resumoNFE';\r\nimport { novaAbaNavegador, validaForm, validarNumeros } from '../../services/funcoes';\r\nimport ItensNFE from './itensNFE';\r\nimport TransportadorNFE from './transportadorNFE';\r\nimport { manutencaoActions } from '../../actions';\r\nimport NotasBlocoNFE from './notasBlocoNFE';\r\n\r\n\r\nexport default function NFEntrada({ form, showDrawer, carregando, aoSalvar, pages, proximaPag }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [editando, setEditando] = useState(false);\r\n const [carregarPagina, setCarregarPagina] = useState(false);\r\n const [listaSerie, setListaSerie] = useState([]);\r\n const [dadosItens, setDadosItens] = useState([]);\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState([]);\r\n const [dadosEndereco, setDadosEndereco] = useState({});\r\n const [operacaoFiscal, setOperacaoFiscal] = useState({});\r\n const [dadosFornecedor, setDadosFornecedor] = useState({});\r\n const [listaVeiculos, setListaVeiculos] = useState([]);\r\n const [dadosTransp, setDadosTransp] = useState({});\r\n const listaValidacoesForn = [\r\n { nome: 'ope_id', obrigatorio: true, label: 'Operação Fiscal' },\r\n { nome: 'for_id', obrigatorio: true, label: 'Fornecedor' }\r\n ];\r\n const pagamentosCodigos = {\r\n dinheiro: 1,\r\n cheque: 2,\r\n cartaoCredito: 3,\r\n cartaoDebito: 4,\r\n crediarioLoja: 5,\r\n valeAlimentacao: 6,\r\n valeRefeicao: 7,\r\n valeCombustivel: 9,\r\n antecipacao: 12,\r\n valePresente: 12,\r\n boleto: 15,\r\n depositoBancario: 16,\r\n pix: 17,\r\n transfBancaria: 18,\r\n semPagamento: 90,\r\n outro: 99\r\n };\r\n\r\n const popularOperacaoFiscal = (id) => {\r\n if (!!id) {\r\n api.get(`OperacaoFiscal/Buscar/${id}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setOperacaoFiscal(res.data);\r\n form.setFieldsValue({ ntf_indicadorpresenca: res.data.ope_indicadorpresenca });\r\n }\r\n }\r\n ).catch(\r\n error => { console.log(error); }\r\n )\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (showDrawer) {\r\n carregarDados();\r\n if (!!manutencao.dados && !!manutencao.dados.ntf_id) {\r\n form.setFieldsValue(manutencao.dados);\r\n setEditando(true);\r\n } else {\r\n setEditando(false);\r\n }\r\n if (!!!form.getFieldValue().ntf_dataemissao) {\r\n form.setFieldsValue({ ntf_dataemissao: moment(new Date()) });\r\n }\r\n }\r\n }, [showDrawer]);\r\n\r\n useEffect(() => {\r\n if (!!proximaPag.proximaPag || proximaPag.proximaPag === 0) {\r\n validarTrocaPg(proximaPag.proximaPag);\r\n }\r\n }, [proximaPag.proximaPag]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n if (!!manutencao.dados.faturamento) {\r\n setListaFormaPagamento(manutencao.dados.faturamento);\r\n }\r\n\r\n if (!!manutencao.dados.formaPgto && !!!manutencao.dados.faturamento) {\r\n manutencao.dados.formaPgto.forEach((formas) => {\r\n formas.pfp_valor = parseFloat(formas.nfp_valor);\r\n });\r\n let dadosFormaPgto = [...manutencao.dados.formaPgto];\r\n dadosFormaPgto = manutencao.dados.formaPgto.filter((dados) => dados.fpg_tipopagamento !== pagamentosCodigos.crediarioLoja && !dados.fpg_quitacaoantecipacao);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ faturamento: dadosFormaPgto } } } });\r\n }\r\n /*if (!!manutencao.dados.pes_id && (!!!manutencao.dados.destinatario || (manutencao.dados.destinatario.pes_id !== manutencao.dados.pes_id))) {\r\n let lista = [];\r\n lista.push({ name: \"pes_id\", campo: \"Filtro\", value: manutencao.dados.pes_id });\r\n lista.push({ name: \"ope_id\", campo: \"CodigoOperacao\", value: manutencao.dados.ope_id });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n buscarDadosCliente(manutencao.dados.pes_id);\r\n popularOperacaoFiscal(manutencao.dados.ope_id);\r\n }*/\r\n if (!!manutencao.dados && !!manutencao.dados.itensNf) {\r\n if (!!manutencao.dados.itensNf[0].ntf_id) {\r\n calcularFrete(manutencao.dados.itensNf);\r\n }\r\n if (dadosItens.length === 0) {\r\n setDadosItens(manutencao.dados.itensNf);\r\n }\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n async function carregarDados() {\r\n setCarregarPagina(true);\r\n let listaSerie = await api.get('SerieFiscal/Listar?EmitenteDocumento=0&CodigoModeloDocFiscal=55&SomenteAtivos=true');\r\n let serie = [];\r\n if (listaSerie.status === 200) {\r\n serie = listaSerie.data.items;\r\n setListaSerie(serie);\r\n if (serie.length > 0) {\r\n form.setFieldsValue({ ser_id: serie[0].ser_id });\r\n }\r\n }\r\n setCarregarPagina(false);\r\n }\r\n\r\n async function validarTrocaPg(pagina) {\r\n let paginaAtual = pages.tagPages;\r\n let listaValidacoes = [];\r\n switch (paginaAtual) {\r\n case 0:\r\n listaValidacoes = listaValidacoesForn;\r\n if (!await validarFornecedor()) {\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n break;\r\n case 1:\r\n if (paginaAtual < pagina) {\r\n if (!!dadosItens && dadosItens.length === 0) {\r\n notification.warning({ message: 'Aviso', description: 'Nota Fiscal deve ter ao menos 1 item!' });\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n\r\n case 3:\r\n if (paginaAtual < pagina) {\r\n listaValidacoes = [];\r\n let validaFaturamento = await validarFaturamento();\r\n if (validaFaturamento === false && listaFormaPagamento.length === 0) {\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n }\r\n if (validaForm(form, listaValidacoes)) {\r\n pages.setTagPages(pagina);\r\n } else {\r\n proximaPag.setProximaPag(paginaAtual);\r\n }\r\n };\r\n\r\n async function validarFaturamento() {\r\n let formulario = form.getFieldsValue();\r\n let retorno = true;\r\n let valorTotal = 0;\r\n let operacao = operacaoFiscal;\r\n if (listaFormaPagamento.length > 0) {\r\n listaFormaPagamento.forEach(forma => {\r\n valorTotal += parseFloat(forma.pfp_valor);\r\n if (forma.editando == true) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor salvar as alterações em andamento nas parcelas(forma pagamento) para continuar!' });\r\n }\r\n });\r\n if (parseFloat(formulario.valorTotal) === 0) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso!', description: 'Valor da Nota Inválido!' });\r\n } else {\r\n if ((validarNumeros(formulario.valorTotal) == !parseFloat(valorTotal.toFixed(2))) || operacao.tip_id == !5) {\r\n notification.warning({ message: 'Aviso', description: 'Valor informado nas formas de pagamento é menor que o valor total da nota!' });\r\n }\r\n }\r\n } else {\r\n if (!!formulario.fpg_id) {\r\n let formaPagamento = (await api.get(`FormaPagamento/Get?id=${formulario.fpg_id}`)).data;\r\n if (!listaFormaPagamento.cpg_id) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher as formas de pagamento!' });\r\n }\r\n else if (formaPagamento.fpg_tipoavistaaprazo === 1) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher as formas de pagamento!' });\r\n }\r\n } else {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher as formas de pagamento!' });\r\n }\r\n }\r\n return retorno;\r\n }\r\n\r\n async function validarFornecedor() {\r\n return true;\r\n }\r\n\r\n async function ValidarNota(dados) {\r\n dados = await popularDados();\r\n dados.gerarBoleto = false;\r\n dados.ntf_ufdest = dados.notaFiscalDestinatario?.ntf_ufdest;\r\n dados.notaFiscalFaturamento.forEach((formasPgto) => {\r\n if (formasPgto.fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n dados.gerarBoleto = true;\r\n }\r\n });\r\n dados.ntf_modalidadefrete = !!dados.notaFiscalTransportadora ? dados.notaFiscalTransportadora.ntf_modalidadefrete : 9;\r\n if (!!form.getFieldValue().ntf_id) {\r\n dados.ntf_id = form.getFieldValue().ntf_id;\r\n } else {\r\n dados.ntf_dhsaient = moment(new Date());\r\n }\r\n SalvarNota(dados);\r\n }\r\n\r\n async function popularDados() {\r\n let valores = form.getFieldsValue();\r\n let dados = form.getFieldValue();\r\n valores.ntf_docfiscal = !!dados.ser_id;\r\n valores.notafiscalitens = popularDadosItens(dados);\r\n valores.notaFiscalFaturamento = preencherDadosFaturamento(dados);\r\n valores.notaFiscalDestinatario = await preencherDadosDestinatario(dados);\r\n valores.notaFiscalTransportadora = preencherDadosTransportadores(dados);\r\n valores.tipooperacao = operacaoFiscal;\r\n valores.serieFiscal = preencherDadosSerieFiscal(dados);\r\n return valores;\r\n };\r\n\r\n function popularDadosItens(dados) {\r\n let valorFrete = dados.valorFrete;\r\n let valorSeguro = dados.valorSeguro;\r\n let qtdTotalItens = 0;\r\n let freteUn = 0;\r\n let seguroUn = 0;\r\n dadosItens.forEach((itens) => {\r\n qtdTotalItens += itens.nfi_qtde;\r\n itens.nfi_numeropedidocompra = !!itens.nfi_numeropedidocompra ? itens.nfi_numeropedidocompra.toString() : '';\r\n });\r\n freteUn = valorFrete / qtdTotalItens;\r\n seguroUn = valorSeguro / qtdTotalItens;\r\n dadosItens.forEach((itens) => {\r\n itens.nfi_valorfrete = freteUn * dados.nfi_qtde;\r\n itens.nfi_valorseguro = seguroUn * dados.nfi_qtde;\r\n });\r\n return dadosItens;\r\n };\r\n\r\n function preencherDadosFaturamento() {\r\n let dadosForma = [];\r\n let recebimentoCartao = !!manutencao.dados.recebimentoCartao ? manutencao.dados.recebimentoCartao[0] : null;\r\n listaFormaPagamento.forEach(forma => {\r\n let aux = { ...forma };\r\n aux.fpg_id = forma.fpg_id;\r\n aux.cpg_id = forma.cpg_id;\r\n if (forma.fpg_tipopagamento === pagamentosCodigos.cheque && !!manutencao.dados.dadosModalCheque) {\r\n aux.ctc_id = manutencao.dados.dadosModalCheque.contaCorrente;\r\n aux.cheques = manutencao.dados.dadosModalCheque.cheques;\r\n }\r\n aux.nfp_valor = parseFloat(forma.pfp_valor);\r\n aux.bce_id = !!recebimentoCartao ? recebimentoCartao.bce_id : null;\r\n aux.rcc_nsu = !!recebimentoCartao ? recebimentoCartao.rcc_nsu : null;\r\n if (forma.fpg_tipopagamento === pagamentosCodigos.antecipacao) {\r\n aux.antecipacoes = forma.formaPagamento.antecipacoes;\r\n } else {\r\n aux.antecipacoes = [];\r\n }\r\n dadosForma.push(aux);\r\n });\r\n return dadosForma;\r\n };\r\n\r\n async function preencherDadosDestinatario(form) {\r\n let dadosDestinatario = {};\r\n let enderecoDest = dadosEndereco;\r\n let telefoneDest = dadosFornecedor.telefones?.filter(pt => pt.psc_id === form.telefoneDestinatario)[0];\r\n let emailDest = dadosFornecedor.emails?.filter(pem => pem.pem_id === form.ntf_emaildestinatario)[0];\r\n // dadosDestinatario.pes_id = dadosFornecedord.pes_id;\r\n dadosDestinatario.pes_fisicajuridica = dadosFornecedor.pes_fisicajuridica;\r\n dadosDestinatario.ntf_nomedest = dadosFornecedor.pes_nome;\r\n dadosDestinatario.ntf_cnpjcpfdest = (!!dadosFornecedor.pej_cnpj ? dadosFornecedor.pej_cnpj : dadosFornecedor.pef_cpf);\r\n dadosDestinatario.ntf_iedest = form.pej_inscricaoestadual;\r\n dadosDestinatario.ntf_idestrangeirodest = dadosFornecedor.pes_idestrangeiro;\r\n dadosDestinatario.ntf_logradourodest = enderecoDest?.log_logradouro;\r\n dadosDestinatario.ntf_numeroenderecodest = enderecoDest?.pee_numero;\r\n dadosDestinatario.ntf_complementodest = enderecoDest?.complemento;\r\n dadosDestinatario.ntf_bairrodest = enderecoDest?.bai_nome;\r\n dadosDestinatario.ntf_cepdest = enderecoDest?.cep_cep;\r\n dadosDestinatario.ntf_ufdest = enderecoDest?.est_sigla;\r\n dadosDestinatario.ntf_telefonedest = telefoneDest?.psc_numero ?? '';\r\n dadosDestinatario.ntf_emaildest = emailDest?.pem_email ?? null;\r\n return dadosDestinatario;\r\n };\r\n\r\n function preencherDadosTransportadores(form) {\r\n let dadosTransportador = {};\r\n let veiculoTransp = listaVeiculos.filter((veiculo) => (veiculo.trv_id = form.trv_id))[0];\r\n dadosTransportador.ntf_modalidadefrete = form.ntf_modalidadefrete;\r\n dadosTransportador.trn_id = !!dadosTransp && !!dadosTransp.trn_id ? dadosTransp.trn_id : null;\r\n dadosTransportador.trv_id = !!veiculoTransp ? veiculoTransp.trv_id : null;\r\n dadosTransportador.trv_observacao = !!veiculoTransp ? veiculoTransp.trv_observacao : null;\r\n dadosTransportador.trv_placa = !!veiculoTransp ? veiculoTransp.trv_placa : null;\r\n dadosTransportador.trv_uf = !!veiculoTransp ? veiculoTransp.trv_uf : null;\r\n dadosTransportador.trv_marca = !!veiculoTransp ? veiculoTransp.trv_marca : null;\r\n dadosTransportador.trv_modelo = !!veiculoTransp ? veiculoTransp.trv_modelo : null;\r\n dadosTransportador.trv_rntc = !!veiculoTransp ? veiculoTransp.trv_rntc : null;\r\n dadosTransportador.nvl_pesoliquido = form.nvl_pesoliquido;\r\n dadosTransportador.nvl_qtdevolumes = form.nvl_qtdevolumes;\r\n dadosTransportador.nvl_pesobruto = form.nvl_pesobruto;\r\n dadosTransportador.nvl_especievolume = form.nvl_especievolume;\r\n dadosTransportador.nvl_marcavolume = form.nvl_marcavolume;\r\n return dadosTransportador;\r\n };\r\n function preencherDadosSerieFiscal(dados) {\r\n let dadosSerieFiscal = listaSerie.filter((item) => (item.ser_id === dados.ser_id))[0];\r\n return dadosSerieFiscal;\r\n }\r\n\r\n async function SalvarNota(dados) {\r\n carregando(true);\r\n let res;\r\n let editando = false;\r\n /*\r\n if (!!dados.ntf_id) {\r\n res = await api.put(\"NotaFiscal/Editar\", dados);\r\n } else {\r\n res = await api.post(\"NotaFiscal/Incluir\", dados);\r\n }\r\n if (res.status == 200) {\r\n notification.success({ message: 'Sucesso', description: `Nota ${editando ? 'editada' : 'incluída'} com sucesso!` });\r\n\r\n if (res.data.ntf_status === 1 && !!res.data.ntf_chavenfe && !!res.data.ntf_docfiscal) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${res.data.ntf_chavenfe}`);\r\n }\r\n }*/\r\n carregando(false);\r\n }\r\n\r\n function calcularFrete() {\r\n let valorFrete = 0;\r\n manutencao.dados.itensNf.forEach((item) => {\r\n if (!!item.ped_id) {\r\n valorFrete += parseFloat(!!item.pdi_valorfrete ? item.pdi_valorfrete : 0);\r\n } else {\r\n valorFrete += parseFloat(!!item.nfi_valorfrete ? item.nfi_valorfrete : 0);\r\n }\r\n });\r\n form.setFieldsValue({ valorFrete: valorFrete });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {!!editando &&
\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n popularOperacaoFiscal(idOperacao)} conteudo={\r\n op => ({op.ope_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n proximaPag.setProximaPag(e);\r\n }} current={pages.tagPages}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.tagPages === 0 &&\r\n \r\n }\r\n {/* {pages.tagPages === 1 &&\r\n \r\n } */}\r\n {pages.tagPages === 2 &&\r\n \r\n }\r\n {pages.tagPages === 3 &&\r\n \r\n }\r\n {pages.tagPages === 4 &&\r\n \r\n }\r\n {pages.tagPages === 5 &&\r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, RightOutlined, LeftOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from \"../../components\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\nimport NFEntrada from '../notaFiscalEntrada/manutencao';\r\n\r\nexport default function DrawerEntrada({ showDrawer }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [formEntrada] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [tagPages, setTagPages] = useState(null);\r\n const [adicionarNotas, setAdicionarNotas] = useState(false);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n\r\n function fecharDrawer() {\r\n formEntrada.resetFields();\r\n setTagPages(0);\r\n setProximaPag(null);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_numero' } });\r\n showDrawer.setShowNFEntrada(false);\r\n\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Button, Collapse, Tag, Dropdown, Menu, Popover, Modal, notification, Input } from \"antd\";\r\nimport {\r\n ArrowDownOutlined, ArrowUpOutlined, SearchOutlined, EditOutlined, DeleteOutlined, CloseOutlined, PrinterOutlined, FileTextOutlined, DollarOutlined,\r\n TagOutlined, UndoOutlined, CloudUploadOutlined, MoreOutlined, SendOutlined, EyeOutlined, ExclamationCircleOutlined, StopOutlined, PlusOutlined, FileDoneOutlined\r\n} from \"@ant-design/icons\";\r\nimport { Link } from \"react-router-dom\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerNotaFiscal from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport DrawerDevolucao from './drawerDevolucao';\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport DrawerDebitoCredito from './drawerDebitoCredito';\r\nimport ModalDetalheNotaFiscal from \"./modalDetalheNotaFiscal\";\r\nimport { getEmpresa, getIdUsuario, getLocal } from \"../../services/auth\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { formatarCpfCnpj, imprimirRelatorioJasper, novaAbaNavegador, openPdfNewTab } from \"../../services/funcoes\";\r\nimport { BreadcrumbPage, BotaoAbrirChamado, ComboData, TabelaDados, Inutilizar, ImportarXML, EmitirNotaFiscal, EmitirNotaFiscalDebito, EmitirNotaFiscalTransferencia, CancelarEstorno, Editar, Imprimir, Data, EmitirNotaFiscalEntada } from \"../../components\";\r\nimport { ModalImprimirEtiquetas, ModalDevolucao, ModalAjudaRejeicaoNfe, ModalEnvioNFeEmail, ModalCancelamentoNfe, ModalCartaCorrecaoNotaFiscal, ModalEstornoNfe, ModalInutilizarNota, ModalReenviarSefaz } from \"../../components/modals/\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport DrawerEntrada from \"./drawerEntrada\";\r\n\r\nexport default function NotaFiscal() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [formParam] = Form.useForm();\r\n const [openModalCartaCorrecao, setOpenModalCartaCorrecao] = useState(false);\r\n const [openModalExcluir, setOpenModalExcluir] = useState(false);\r\n const [openModalDevolucao, setOpenModalDevolucao] = useState(false);\r\n const [openModalEnvioNFeEmail, setOpenModalEnvioNFeEmail] = useState(false);\r\n const [openModalAjudaRejeicaoNfe, setOpenModalAjudaRejeicaoNfe] = useState(false);\r\n const [openModalCancelarEstornar, setOpenModalCancelarEstornar] = useState(false);\r\n const [openModalImprimirEtiquetas, setOpenModalImprimirEtiquetas] = useState(false);\r\n const [listaStatusNota, setListaStatusNota] = useState([]);\r\n const [listaFinalidadeNota, setListaFinalidadeNota] = useState([]);\r\n const [listaTipoNota, setListaTipoNota] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n const [condicaoPagamento, setCondicaoPagamento] = useState([]);\r\n const [dadosNota, setDadosNota] = useState({});\r\n const [openModalEstorno, setOpenModalEstorno] = useState(false);\r\n const [openModalDetalhes, setOpenModalDetalhes] = useState(false);\r\n const [dadosDetalhesNota, setDadosDetalhesNota] = useState({});\r\n const [dadosNfeDevolucao, setDadosNfeDevolucao] = useState([]);\r\n const [dadosNfeEtiqueta, setDadosNfeEtiqueta] = useState({});\r\n const [exibirModalInutilizar, setExibirModalInutilizar] = useState(false);\r\n const [openModalReenviarSefaz, setModalReenviarSefaz] = useState(false);\r\n const [showNFEntrada, setShowNFEntrada] = useState(false);\r\n\r\n function menuEmitir() {\r\n return (\r\n \r\n \r\n {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true, editItem: false } });\r\n }} icon={}>\r\n Emitir Nota Fiscal\r\n \r\n \r\n \r\n \r\n {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerExtra: true } });\r\n }} icon={}>\r\n Emitir Nota Fiscal de Débito e Crédito\r\n \r\n \r\n \r\n }>\r\n \r\n Emitir Nota Fiscal de Transferência\r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function menuOutros() {\r\n return (\r\n \r\n \r\n }>\r\n Inutilizar Numeração de Nota Fiscal \r\n \r\n \r\n \r\n }>\r\n Importar XML \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n const abrirEnvioEmail = (record) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } })\r\n setOpenModalEnvioNFeEmail(true);\r\n }\r\n\r\n useEffect(() => {\r\n form.setFieldsValue({ dataFinal: moment(new Date()) });\r\n form.setFieldsValue({ dataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n filtrosAvancados();\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_dataemissao' } });\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n retornaFinalidadeNota();\r\n retornaStatusNF();\r\n retornaTipoNota();\r\n };\r\n\r\n function retornaFinalidadeNota() {\r\n api.get('Enum/Listar?nome=FinalidadeNfe').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setListaFinalidadeNota(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function retornaStatusNF() {\r\n api.get('Enum/Listar?nome=StatusNFe').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setListaStatusNota(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function retornaTipoNota() {\r\n api.get('Enum/Listar?nome=TipoNota').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setListaTipoNota(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function retornaCondicaoPagamento(fpg_id) {\r\n api.get(`CondicaoPagamento/Listar?filtro=&codigoFormaPagamento=${fpg_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setCondicaoPagamento(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function abrirCartaCorrecao(record) {\r\n setDadosNota(record);\r\n setOpenModalCartaCorrecao(true);\r\n };\r\n\r\n function abrirCancelarNota(record) {\r\n api.get(`NotaFiscal/VerificarTempoEmissao?IdNotaFiscal=${record.ntf_id}`).then(\r\n res => {\r\n if (record.ntf_docfiscal) {\r\n if (!!res.data.terminouPrazoCancelamento) {\r\n api.get(`NotaFiscalDevolucao/VerificaDevolucaoTotal?IdNotaFiscal=${record.ntf_id}`).then(\r\n (res) => {\r\n if (!res.data) {\r\n record.horas = res.data.horas;\r\n record.dias = res.data.dias;\r\n setDadosNota(record);\r\n setOpenModalEstorno(true);\r\n } else {\r\n Modal.warning({\r\n title: \"Esta Nota Fiscal já foi totalmente extornada.\",\r\n });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n\r\n } else {\r\n setDadosNota(record);\r\n setOpenModalCancelarEstornar(true);\r\n }\r\n } else {\r\n setDadosNota(record);\r\n setOpenModalCancelarEstornar(true);\r\n }\r\n }\r\n )\r\n };\r\n\r\n\r\n function abrirExcluirNota(record) {\r\n setDadosNota(record);\r\n setOpenModalExcluir(true);\r\n };\r\n\r\n function recarregarLista() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_dataemissao' } });\r\n };\r\n\r\n function removerNotaDigitacao(record) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Excluir a Nota Fiscal ${record.ntf_numero}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n onOk() {\r\n excluirNota(record);\r\n },\r\n onCancel() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_dataemissao' } });\r\n },\r\n })\r\n };\r\n\r\n function excluirNota(record) {\r\n api.post(`NotaFiscal/Excluir?notaFiscalId=${record.ntf_id}`).then(\r\n res => {\r\n notification.success({ message: 'Nota Fiscal Excluida Com Sucesso!' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_dataemissao' } });\r\n }\r\n )\r\n };\r\n\r\n function imprimirDanfe(dados) {\r\n if (dados.ntf_status == 1 && !!dados.ntf_chavenfe && !!dados.ntf_docfiscal) {\r\n if (dados.mdf_id == \"55\") {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${dados.ntf_chavenfe}`)\r\n // } else if (dados.mdf_id == \"65\") {\r\n // notification.warning({ description: `Para reimprimir um cupom eletrônico acesso o módulo de PDV, va até a listagem de vendas e solicite a reimpressão do mesmo`, message: `Não é possível gerar um DANFe a partir de uma NFC-e (Cupom Fiscal Eletrônico)` })\r\n } else {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${dados.ntf_chavenfe}`);\r\n }\r\n }\r\n\r\n };\r\n\r\n function modalExcluirNotaCompra(dados) {\r\n Modal.confirm({\r\n title: 'Atenção',\r\n icon: ,\r\n content: `Está ação irá Excluir a Nota Fiscal de Entrada Nº ${dados.ntf_numero}, deseja realmente realizada excluir a nota fiscal?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n onOk() {\r\n excluirNotaCompra(dados);\r\n },\r\n onCancel() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_dataemissao' } });\r\n },\r\n })\r\n };\r\n\r\n function excluirNotaCompra(dados) {\r\n api.delete(`NotaFiscal/ExcluirNotaEntrada/${dados.ntf_id}`).then(\r\n res => {\r\n notification.success({ description: \"Registro excluído com sucesso!\", message: \"Aviso\" });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_dataemissao' } });\r\n }\r\n ).catch(\r\n erro => {\r\n notification.error({ message: 'Não foi possivel excluir a Nota Fiscal !' });\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function imprimirBoleto(record) {\r\n if (!!record.ntf_id) {\r\n novaAbaNavegador(`Boleto/ImprimirBoletos/${record.ntf_id}`);\r\n }\r\n };\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n {((record.ntf_status == 0 || record.ntf_status == 4) && record.ntf_finalidade != 4 && record.ntf_nroinutilizadosefaz == false) &&\r\n \r\n } onClick={() => {\r\n editarNota(record)\r\n }}> Editar\r\n \r\n }\r\n {(record.ntf_status === 4 || record.ntf_status === 0) && record.ntf_docfiscal === true &&\r\n \r\n }\r\n {record.ntf_status === 0 && record.ntf_docfiscal === false && \r\n \r\n }\r\n {(record.ntf_status === 1 && (record.ser_emitentedocumento === 0 || !!!record.ntf_docfiscal)) && \r\n } onClick={() => abrirCancelarNota(record)}>\r\n Cancelar/Estornar\r\n \r\n }\r\n {(record.ntf_status === 4 || record.ntf_status === 0) && record.ntf_docfiscal === true && \r\n \r\n }\r\n {record.ntf_status === 1 && record.ntf_docfiscal === true && record.ntf_tiponota === 1 && \r\n \r\n }\r\n {record.ntf_status === 1 && record.ntf_docfiscal === true && record.ser_emitentedocumento === 0 && \r\n \r\n }\r\n {(record.ntf_status === 1 && record.ntf_finalidade != 4) && \r\n \r\n }\r\n {record.ntf_status === 1 && record.ntf_docfiscal === true && \r\n \r\n }\r\n {(record.ntf_status === 1 && record.ntf_tiponota == 1) && \r\n \r\n }\r\n {record.ntf_status === 1 && (record.ntf_tiponota === 1 || record.ntf_tiponota === 2) && record.ser_emitentedocumento === 1 && \r\n \r\n }\r\n {/*Foi colocado para imprimir dentro da visualização, forma de pagamento um botão para impressão de boletos*/}\r\n {/* {record.formasPgto[0].fpg_emiteboleto === true && record.formasPgto[0].fpg_emiteboleto !== null &&\r\n \r\n } onClick={() => {\r\n imprimirBoleto(record)\r\n }}> Imprimir Boleto\r\n \r\n } */}\r\n \r\n )\r\n };\r\n\r\n function abrirNotaDevolucao(dadosNotaFiscalDevolucao) {\r\n if (!!dadosNotaFiscalDevolucao.ntf_id) {\r\n api.get(`NotaFiscalDevolucao/VerificaDevolucaoTotal?IdNotaFiscal=${dadosNotaFiscalDevolucao.ntf_id}`).then(\r\n (res) => {\r\n if (!res.data) {\r\n api.get(`NotaFiscalDevolucao/ListarNotaFiscalDevolucao?IdNotaFiscal=${dadosNotaFiscalDevolucao.ntf_id}`).then(\r\n res => {\r\n if (!!res.data) {\r\n res.data.itensNf?.forEach((item) => {\r\n item.valorDescontoRateio = (parseFloat(item.nfi_valordesconto) / item.nfi_qtde) * item.qtdeRestante;\r\n })\r\n setDadosNfeDevolucao(res.data);\r\n if (res.data.for_regimetributariofiscal === null && res.data.cli_regimetributariofiscal === null && res.data.pes_fisicajuridica === 2) {\r\n setOpenModalDevolucao(true);\r\n } else {\r\n abrirDrawerDevolucao(res.data);\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n } else {\r\n Modal.warning({\r\n title: \"Esta Nota Fiscal já foi totalmente devolvida.\",\r\n });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n };\r\n\r\n function inutilizarNota(dados) {\r\n setDadosNota(dados);\r\n setExibirModalInutilizar(true);\r\n };\r\n\r\n function autorizarNota(record) {\r\n setDadosNota(record);\r\n setModalReenviarSefaz(true);\r\n };\r\n\r\n function fecharModalInutilizar() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_dataemissao' } });\r\n setExibirModalInutilizar(false);\r\n }\r\n\r\n function abrirDrawerDevolucao(dados) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerDevolucao: true } });\r\n };\r\n\r\n async function visualizarNota(dados) {\r\n let retorno = [];\r\n let vendedor = [];\r\n if (!!dados.ntf_id) {\r\n retorno = await api.get(`NotaFiscal/ListarNotaFiscal?IdNotaFiscal=${dados.ntf_id}`);\r\n if (retorno.status === 200) {\r\n retorno = retorno.data;\r\n if (!!retorno.ven_id) {\r\n vendedor = await api.get(`Vendedor/RetornaVendedor?idVendedor=${retorno.ven_id}`);\r\n if (vendedor.status === 200) {\r\n retorno.nomeVendedor = vendedor.data.pes_nome;\r\n }\r\n }\r\n retorno.itensNf.forEach((item) => {\r\n let totalItemSemDesconto = parseFloat((item.nfi_qtde * item.nfi_valorunitario)).toFixed(2);\r\n item.perc_desconto = parseFloat((item.nfi_valordesconto / (totalItemSemDesconto)) * 100).toFixed(2);\r\n let valorDesconto = item.nfi_valordesconto;\r\n item.valor_item_desconto = parseFloat(totalItemSemDesconto - valorDesconto).toFixed(2);\r\n });\r\n setDadosDetalhesNota(retorno);\r\n setOpenModalDetalhes(true);\r\n }\r\n }\r\n };\r\n\r\n function menuTableOutros(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function gerarRascunho(record) {\r\n openPdfNewTab(`NotaFiscal/GerarEspelhoDanfeNFe?IdNotaFiscal=${record.ntf_id}`)\r\n };\r\n\r\n function imprimirDAVLS(registro) {\r\n Modal.confirm({\r\n title: 'Qual modelo de impressão deseja?',\r\n icon: ,\r\n okText: 'Não Fiscal',\r\n cancelText: 'Modelo A4',\r\n centered: true,\r\n onOk() {\r\n novaAbaNavegador(`NotaFiscal/Imprimir?id=${registro.ntf_id}`);\r\n },\r\n onCancel() {\r\n imprimirRelatorioJasper(20, { idNotaFiscal: registro.ntf_id });\r\n }\r\n });\r\n };\r\n\r\n function retornaDescricaoStatus(ntf_status) {\r\n if (!!listaStatusNota) {\r\n let status = listaStatusNota.filter((statusNota) => (statusNota.key === ntf_status))[0];\r\n return !!status ? status.value : \"\";\r\n }\r\n };\r\n\r\n function editarNota(record) {\r\n if (record.ntf_tiponota === 3) {\r\n let dados = { ...record };\r\n dados.ntf_dataemissao = moment(dados.ntf_dataemissao);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerExtra: true } });\r\n } else {\r\n api.get(`NotaFiscal/ListarNotaFiscal?IdNotaFiscal=${record.ntf_id}`).then(\r\n res => {\r\n let dados = res.data;\r\n dados.ntf_dataemissao = moment(dados.ntf_dataemissao);\r\n dados.ntf_datainclusao = moment(dados.ntf_datainclusao);\r\n dados.ntf_dhsaient = moment(dados.ntf_dhsaient);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: res.data } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n function filtrosAvancados(value) {\r\n let sql = \"\";\r\n sql += !!formParam.getFieldValue().finalidade ? `&Finalidade=${formParam.getFieldValue().finalidade}` : \"\";\r\n sql += !!formParam.getFieldValue().status ? `&StatusNFe=${formParam.getFieldValue().status}` : \"\";\r\n sql += !!formParam.getFieldValue().tipoNota ? `&Tipo=${formParam.getFieldValue().tipoNota}` : \"\";\r\n sql += !!form.getFieldValue().modeloNota ? `&ModeloNota=${form.getFieldValue().modeloNota}` : \"\";\r\n sql += !!form.getFieldValue().condicaoPagamento ? `&CondicoesPagamento=${form.getFieldValue().condicaoPagamento}` : \"\";\r\n sql += !!form.getFieldValue().formaPagamento ? `&FormasPagamento=${form.getFieldValue().formaPagamento}` : \"\";\r\n sql += !!form.getFieldValue().operacaoFiscal ? `&OperacoesFiscais=${form.getFieldValue().operacaoFiscal}` : \"\";\r\n sql += !!form.getFieldValue().vendedor ? `&Vendedores=${form.getFieldValue().vendedor}` : \"\";\r\n sql += !!form.getFieldValue().dataInicial ? `&DataInicial=${moment(form.getFieldValue().dataInicial).format('YYYY-MM-DD')}` : `&dataInicial=${moment(new Date()).format('YYYY-MM-DD')}`;\r\n sql += !!form.getFieldValue().dataFinal ? `&DataFinal=${moment(form.getFieldValue().dataFinal).format('YYYY-MM-DD')}` : `&dataFinal=${moment(new Date).format('YYYY-MM-DD')}`;\r\n sql += !!form.getFieldValue().ser_serie ? `&SerieFiscal=${form.getFieldValue().ser_serie}`: \"\";\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: `${!!value ? value : !!formParam.getFieldValue().filtroPor ? formParam.getFieldValue().filtroPor : ''}${sql}`, pagina: 1 } });\r\n };\r\n\r\n function visualizarDanfe(notaFiscal) {\r\n if (notaFiscal.ntf_modelo === '00') {\r\n imprimirRelatorioNaoFiscal(notaFiscal);\r\n } else {\r\n if (notaFiscal.ntf_status === 1)\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${notaFiscal.ntf_chavenfe}`);\r\n //openPdf(`NotaFiscal/GerarEspelhoDanfeNFe?IdNotaFiscal=${notaFiscal.ntf_id}`);\r\n else\r\n notification.error({ message: 'Nota Fiscal ainda não foi aprovada na Sefaz!' });\r\n }\r\n };\r\n\r\n function consultaSefaz(chave) {\r\n window.open(`https://www.nfe.fazenda.gov.br/portal/consultaRecaptcha.aspx?tipoConsulta=resumo&tipoConteudo=7PhJ+gAVw2g=&nfe=${chave}`, '_blank');\r\n };\r\n\r\n function imprimirRelatorioNaoFiscal(notaFiscal) {\r\n imprimirRelatorioJasper(20, { idNotaFiscal: notaFiscal.ntf_id });\r\n };\r\n\r\n function exportarXML(chaveNFe) {\r\n api.get(`NotaFiscal/ExportarXml?chaveNfe=${chaveNFe}`).then(\r\n res => {\r\n let linkOculto = document.createElement('a');\r\n linkOculto.href = 'data:text/xml,' + encodeURIComponent(atob(res.data));\r\n linkOculto.download = 'NFe-' + chaveNFe + '.xml';\r\n document.body.appendChild(linkOculto);\r\n linkOculto.click();\r\n linkOculto.remove();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n const abrirImprimirEtiqueta = (record) => {\r\n setDadosNfeEtiqueta(record);\r\n setOpenModalImprimirEtiquetas(true);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n filtrosAvancados(valor)} allowClear />\r\n \r\n \r\n \r\n {\r\n form.setFieldsValue({ DataFinal: moment(new Date()) });\r\n form.setFieldsValue({ DataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n form.setFieldsValue({ dataFinal: moment(new Date()) });\r\n form.setFieldsValue({ dataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n filtrosAvancados();\r\n }} />\r\n \r\n \r\n \r\n filtrosAvancados()}\r\n mode=\"multiple\"\r\n placeholder=\"Tipo Nota\"\r\n >\r\n {listaTipoNota.map((tpNota) => (\r\n {tpNota.value}\r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n filtrosAvancados()}\r\n mode=\"multiple\"\r\n placeholder=\"Status Nota\"\r\n >\r\n {listaStatusNota.map((statusNota) => (\r\n {statusNota.value}\r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n filtrosAvancados()}\r\n >\r\n {listaFinalidadeNota.map((finalidade) => (\r\n {finalidade.value} \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n filtrosAvancados()} />\r\n \r\n \r\n \r\n filtrosAvancados()} conteudo={\r\n serie => ({serie.ser_serie})\r\n } />\r\n \r\n \r\n \r\n \r\n filtrosAvancados()} conteudo={\r\n op => ({op.ope_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n filtrosAvancados()} conteudo={\r\n pv => ({pv.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n { form.setFieldsValue({ condicaoPagamento: null }); retornaCondicaoPagamento(dados); filtrosAvancados() }}\r\n conteudo={\r\n fp => ({fp.fpg_descricao})} />\r\n \r\n \r\n \r\n \r\n filtrosAvancados()\r\n }>\r\n {condicaoPagamento.map((condPagamento) => (\r\n {condPagamento.cpg_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n filtrosAvancados()}>\r\n NF-e\r\n NFC-e\r\n D.A.V\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {ntf_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 210,\r\n render: ({ ntf_status, tip_descricao }) => (\r\n
\r\n \r\n
\r\n \r\n \r\n {retornaDescricaoStatus(ntf_status)}\r\n \r\n \r\n \r\n \r\n \r\n {tip_descricao}\r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 125,\r\n render: ({ ntf_cnpjcpfdest }) => (\r\n
\r\n \r\n
\r\n {formatarCpfCnpj(ntf_cnpjcpfdest)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Cliente',\r\n render: ({ ntf_nomedest }) => (\r\n
\r\n \r\n
\r\n {ntf_nomedest}\r\n \r\n {!!ntf_nomedest === false && \r\n Consumidor Final\r\n }\r\n\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Emissão',\r\n width: 140,\r\n render: ({ ntf_dataemissao }) => (\r\n
\r\n {moment(ntf_dataemissao).format('DD/MM/YYYY HH:mm')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Modelo',\r\n width: 80,\r\n align: 'center',\r\n render: ({ mdf_id, ser_serie }) => (\r\n
\r\n \r\n
\r\n {mdf_id}\r\n \r\n \r\n -\r\n \r\n \r\n {ser_serie}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 200,\r\n render: ({ valor_total }) => (\r\n
\r\n {FormatNumber(valor_total, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Chave:\r\n \r\n {!!ntf_chavenfe === false && \r\n NF-e não gerada\r\n }\r\n {!!ntf_chavenfe && \r\n { visualizarDanfe({ ntf_chavenfe: ntf_chavenfe, ntf_modelo: ntf_modelo, ntf_id: ntf_id, ntf_status: ntf_status }) }}>Clique para visualizar o Danfe}>\r\n {ntf_chavenfe}\r\n \r\n }\r\n {ntf_status === 1 && ntf_modelo === \"55\" && \r\n { consultaSefaz(ntf_chavenfe) }} target=\"_blank\">\r\n Consultar Sefaz\r\n \r\n }\r\n \r\n \r\n\r\n \r\n Série: {(!!ntf_serie > 0 ? ntf_serie : 'Não Informada')}\r\n \r\n \r\n Finalidade: {(ntf_finalidade === 1) ? 'NF-e Normal' : (ntf_finalidade === 2) ? 'NF-e Complementar' : (ntf_finalidade === 3) ? 'NF-e de Ajuste' : (ntf_finalidade === 4) ? 'Devolução' : ''}\r\n \r\n {!!vendedor ? \r\n Vendedor: {vendedor}\r\n : null}\r\n \r\n \r\n \r\n Forma de Pagamento:\r\n \r\n \r\n {formasPgto.map((formas) => (\r\n <>\r\n \r\n {formas.fpg_descricao}{(!!formas.cpg_descricao) ? ' - ' + formas.cpg_descricao : '' + ' -'}\r\n \r\n \r\n R$ {FormatNumber(formas.nfp_valor, true)}\r\n \r\n \r\n ))}\r\n \r\n \r\n {(ntf_status == 3 || ntf_status == 4) && \r\n \r\n Rejeição: {ntf_cstat}{!!(ntf_xmotivo) ? (', ' + ntf_xmotivo) : ''}\r\n \r\n \r\n }\r\n \r\n )\r\n }} />\r\n \r\n { recarregarLista() }} />\r\n \r\n \r\n \r\n { setOpenModalDetalhes(false) }} dadosModal={dadosDetalhesNota} />\r\n\r\n { setOpenModalImprimirEtiquetas(false); recarregarLista(); }} dadosNota={dadosNfeEtiqueta} />\r\n { setOpenModalAjudaRejeicaoNfe(false); recarregarLista(); }} />\r\n { setOpenModalCartaCorrecao(false); recarregarLista() }} />\r\n { setOpenModalDevolucao(false); if (openDrawerDevolucao) { abrirDrawerDevolucao(dadosNfeDevolucao) } }} />\r\n { setOpenModalEnvioNFeEmail(false); recarregarLista(); }} />\r\n { setOpenModalEstorno(false); recarregarLista(); }} />\r\n { setOpenModalExcluir(false); recarregarLista(); }} />\r\n { setOpenModalCancelarEstornar(false); recarregarLista() }} />\r\n { setExibirModalInutilizar(false); recarregarLista() }} />\r\n { setModalReenviarSefaz(false); recarregarLista() }} />\r\n \r\n );\r\n}","\r\n// const dataBase = openDatabase(\"NotaEntradaXML\", \"1.0\", \"Teste Web SQL Database\", 200000);\r\n\r\n\r\nexport function criarBanco(nomeTabela, campos = [], version) {\r\n const request = indexedDB.open(\"NotaEntradaXML\", version);\r\n\r\n request.onupgradeneeded = function(event) {\r\n const db = event.target.result;\r\n const objectStore = db.createObjectStore(nomeTabela, { keyPath: 'id', autoIncrement: true });\r\n let i = 0;\r\n campos.forEach(campo => {\r\n \r\n if(version !== 1){\r\n if(i > 0) return;\r\n campo.forEach(campo => {\r\n \r\n objectStore.createIndex(campo.nome, campo.nome, { unique: !!campo.unico });\r\n })\r\n }\r\n else {\r\n \r\n objectStore.createIndex(campo.nome, campo.nome, { unique: !!campo.unico });\r\n }\r\n i++;\r\n });\r\n };\r\n\r\n request.onsuccess = function(event) {\r\n const db = event.target.result;\r\n db.close();\r\n };\r\n\r\n request.onerror = function(event) {\r\n console.log('Erro ao abrir o banco de dados:', event.target.error);\r\n };\r\n}\r\n\r\nexport async function excluirBancoDados(callback) { \r\n const tempDBName = \"NotaEntradaXML\";\r\n const request = indexedDB.deleteDatabase(tempDBName);\r\n\r\n request.onsuccess = function() {\r\n if (!!callback) {\r\n callback();\r\n }\r\n };\r\n\r\n request.onerror = function(event) {\r\n console.log(\"Erro ao excluir o banco de dados:\", event.target.error);\r\n };\r\n}\r\n\r\nexport async function incluirBanco(nomeTabela, dados = [], version) {\r\n return new Promise((resolve, reject) => {\r\n const request = indexedDB.open(\"NotaEntradaXML\", version);\r\n\r\n request.onsuccess = function(event) {\r\n \r\n const db = event.target.result;\r\n const transaction = db.transaction([nomeTabela], 'readwrite');\r\n const objectStore = transaction.objectStore(nomeTabela);\r\n\r\n dados.forEach(dado => {\r\n if (!dado.unico) {\r\n const addObjectRequest = objectStore.add(dado);\r\n addObjectRequest.onerror = function(event) {\r\n console.log(\"Erro ao inserir dados: \" + event.target.error);\r\n };\r\n }\r\n });\r\n\r\n transaction.oncomplete = function() {\r\n db.close();\r\n resolve(); // Resolva a Promise após a inclusão dos dados\r\n };\r\n\r\n transaction.onerror = function(event) {\r\n reject(new Error(\"Erro ao iniciar transação: \" + event.target.error));\r\n };\r\n };\r\n\r\n request.onerror = function(event) {\r\n reject(new Error(\"Erro ao abrir o banco de dados: \" + event.target.error));\r\n };\r\n });\r\n}\r\n\r\n\r\nexport function buscarDadosBanco(nomeTabela, campos = [], condicao, retorno = () => { }, callback) {\r\n if (!validarNomeTabela(nomeTabela)) return;\r\n\r\n const request = indexedDB.open(\"BancoTeste1\", 1.0);\r\n \r\n request.onsuccess = function(event) {\r\n const db = event.target.value;\r\n const transaction = db.transaction([nomeTabela], \"readonly\");\r\n const objectStore = transaction.objectStore(nomeTabela);\r\n\r\n let index;\r\n\r\n if(!!condicao && condicao.campo) {\r\n index = objectStore.index(condicao.campo);\r\n }\r\n\r\n const getRequest = index ? index.get(condicao.valor) : objectStore.getAll();\r\n\r\n getRequest.onsuccess = function(event) {\r\n const result = event.target.value;\r\n console.log(\"Busca concluída com sucesso!\");\r\n if (retorno) {\r\n retorno(result);\r\n }\r\n if(callback) {\r\n callback();\r\n }\r\n db.close();\r\n };\r\n\r\n getRequest.onerror = function(event) {\r\n console.log(\"Erro ao buscar dados: \", event.target.error);\r\n };\r\n };\r\n}\r\n\r\nexport function buscarDadosTabela(retorno = [], tabela, callback, version) {\r\n const request = indexedDB.open(\"NotaEntradaXML\", version);\r\n \r\n request.onsuccess = function(event) {\r\n \r\n const db = event.target.result;\r\n const transaction = db.transaction([tabela], 'readonly');\r\n const objectStore = transaction.objectStore(tabela);\r\n const getRequest = objectStore.getAll();\r\n\r\n getRequest.onsuccess = function(event) {\r\n const result = event.target.result;\r\n if(retorno) {\r\n \r\n retorno.push(result);\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n db.close();\r\n }\r\n getRequest.onerror = function(event) {\r\n console.log(\"Erro ao buscar dados: \", event.target.error);\r\n }\r\n }\r\n request.onerror = function(event) {\r\n console.log(\"Erro: \", event.target.error);\r\n }\r\n}\r\n\r\nexport function editarDadosBanco(nomeTabela, alteracao = [], condicao, callback) {\r\n const request = indexedDB.open(\"NotaEntradaXML\", 1.0);\r\n \r\n request.onsuccess = function(event) {\r\n const db = event.target.result;\r\n const transaction = db.transaction([nomeTabela], \"readwrite\");\r\n const objectStore = transaction.objectStore(nomeTabela);\r\n\r\n const getRequest = objectStore.get(condicao.valor);\r\n\r\n getRequest.onsuccess = function(event) {\r\n const data = event.target.result;\r\n alteracao.forEach(campo => {\r\n data[campo.campo] = campo.valor;\r\n });\r\n\r\n const updateRequest = objectStore.put(data);\r\n\r\n updateRequest.onsuccess = function(event) {\r\n if(!!callback) {\r\n callback();\r\n }\r\n };\r\n updateRequest.onerror = function(event) {\r\n console.log(\"Erro ao editar dados: \", event.target.error);\r\n }\r\n }\r\n getRequest.onerror = function(event) {\r\n console.log(\"Erro ao buscar dados: \", event.target.error);\r\n }\r\n }\r\n request.onerror = function(event) {\r\n console.log(\"Erro ao abrir banco: \", event.target.error);\r\n }\r\n}\r\n\r\nexport function excluirDadosBanco(nomeTabela, condicao, callback) {\r\n const request = indexedDB.open(\"NotaEntradaXML\", 1);\r\n \r\n request.onsuccess = function(event) {\r\n const db = event.target.result;\r\n const transaction = db.transaction([nomeTabela], \"readwrite\");\r\n const objectStore = transaction.objectStore(nomeTabela);\r\n const deleteRequest = objectStore.delete(condicao.valor);\r\n\r\n deleteRequest.onsuccess = function(event) {\r\n if(callback) {\r\n callback();\r\n }\r\n }\r\n deleteRequest.onerror = function(event) {\r\n console.log(\"Erro ao excluir dados: \", event.target.error);\r\n }\r\n }\r\n request.onerror = function(event) {\r\n console.log(\"Erro ao abrir banco: \", event.target.error);\r\n }\r\n}\r\n\r\n// \r\n\r\nfunction validarNomeTabela(nomeTabela) {\r\n let retorno = false;\r\n if (!!nomeTabela) {\r\n retorno = true;\r\n } else {\r\n console.log(`Nome da tabela não informada!`);\r\n }\r\n return retorno;\r\n};\r\n\r\nfunction validarCondicao(condicao) {\r\n let retorno = false;\r\n if (!!condicao && !!condicao.campo && !!condicao.valor) {\r\n retorno = true;\r\n } else {\r\n console.log(`Condições não informadas!`);\r\n }\r\n return retorno;\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Modal, Descriptions, Table, InputNumber } from \"antd\";\r\n\r\nimport formatNumber from \"../../../ValueObjects/formatNumber\";\r\n\r\nexport default function ModalSelecionarGrade({ dadosProduto = {}, exibirModal, onCloseModal }) {\r\n \r\n const [form] = Form.useForm();\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n const [gradesSelecionadas, setGradesSelecionadas] = useState([]);\r\n\r\n function selecionarGrades(selectedRowKeys, selectedRows) {\r\n setGradesSelecionadas(selectedRows);\r\n }\r\n\r\n const functionOnOK = record => {\r\n let gradesSelecionadasBkp = [...gradesSelecionadas];\r\n setGradesSelecionadas([]);\r\n onCloseModal(gradesSelecionadasBkp);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n Código: {dadosProduto.pro_codigo}\r\n \r\n \r\n Produto: {dadosProduto.pro_descricao}\r\n \r\n \r\n
{\r\n selecionarGrades(selectedRowKeys, selectedRows);\r\n }\r\n }}\r\n columns={[\r\n {\r\n title: \"Grade\",\r\n render: ({ descricaoGrade }) => (\r\n
\r\n {descricaoGrade}\r\n
\r\n )\r\n }, {\r\n title: \"EAN\",\r\n render: ({ prg_ean }) => (\r\n
\r\n {prg_ean}\r\n
\r\n )\r\n }, {\r\n title: \"Valor (R$)\",\r\n align: \"right\",\r\n render: ({ pre_custoultimacompra }) => (\r\n
\r\n {formatNumber(pre_custoultimacompra, true, false)}\r\n
\r\n )\r\n }\r\n ]}\r\n dataSource={!!dadosProduto.grades ? dadosProduto.grades : []}\r\n />\r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Typography, Divider, Select, Descriptions } from \"antd\";\r\nimport moment from 'moment';\r\n\r\nimport SelectPaginado from '../../components/selectPaginado';\r\nimport { Data, InputPreco } from \"../../components\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { formatarCnpj, formatarCpf, isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { selectPaginadoActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function TabNotaFiscal({ form, dadosNota, dadosRemetente }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n if (isObjetoDiffVazio(dadosNota)) {\r\n form.setFieldsValue(dadosNota);\r\n form.setFieldsValue({ ntf_dataentrada: moment(new Date()) });\r\n }\r\n }, [dadosNota]);\r\n\r\n useEffect(() => {\r\n if (!!dadosRemetente?.for_id) {\r\n let lista = [];\r\n\r\n if (!!dadosRemetente?.for_id)\r\n lista.push({ name: \"orc_id\", campo: \"IdFornecedor\", value: dadosRemetente?.for_id });\r\n\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: {itens: lista} });\r\n\r\n }\r\n }, [dadosRemetente])\r\n \r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n ({op.ope_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n ({oc.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n Data Emissão: {moment(dadosNota.find(obj => obj.nome === 'ntf_dataemissao')?.valor).format('DD/MM/YYYY')}\r\n \r\n \r\n Chave NF-e: {dadosNota.find(obj => obj.nome === 'ntf_chavenfe')?.valor}\r\n \r\n \r\n Nº da Nota: {dadosNota.find(obj => obj.nome === 'ntf_numero')?.valor}\r\n \r\n \r\n Série: {dadosNota.find(obj => obj.nome === 'ser_numero')?.valor}\r\n \r\n \r\n \r\n \r\n \r\n \"Fornecedor\" Fornecedor\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nome: {dadosRemetente?.[0]?.find(obj => obj.nome === 'pes_nome')?.valor}\r\n \r\n \r\n CPF/CNPJ: {(!!dadosRemetente?.[0]?.find(obj => obj.nome === 'cnpjcpf') && dadosRemetente?.[0]?.find(obj => obj.nome === 'cnpjcpf')?.valor.length > 11 ? \r\n formatarCnpj(dadosRemetente?.[0]?.find(obj => obj.nome === 'cnpjcpf')) : formatarCpf(dadosNota.find(obj => obj.nome === 'cnpjcpf')?.valor))}\r\n \r\n \r\n Inscrição Estadual: {dadosRemetente?.[0]?.find(obj => obj.nome === 'pej_inscricaoestadual')?.valor}\r\n \r\n \r\n Endereço: {dadosRemetente?.[0]?.find(obj => obj.nome === 'log_logradouro')?.valor}, {dadosRemetente?.[0]?.find(obj => obj.nome === 'pee_numero')?.valor},\r\n {dadosRemetente?.[0]?.find(obj => obj.nome === 'bai_bairro')?.valor}, {dadosRemetente?.[0]?.find(obj => obj.nome === 'cid_descricao')?.valor} - \r\n {dadosRemetente?.[0]?.find(obj => obj.nome === 'est_sigla')?.valor}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Impostos\" Impostos\r\n \r\n \r\n \r\n \r\n \r\n \r\n Base de Cálculo ICMS: {dadosNota.find(objeto => objeto.nome === 'vBaseCalculoIcms')?.valor}\r\n \r\n \r\n Valor ICMS (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorIcms')?.valor, true)}\r\n \r\n \r\n Base de Cálculo ICMSST: {dadosNota.find(objeto => objeto.nome === 'vBaseCalculoIcmsSt')?.valor}\r\n \r\n \r\n Valor ICMS-ST (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorIcmsSt')?.valor, true)}\r\n \r\n \r\n Valor PIS (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorPis')?.valor, true)}\r\n \r\n \r\n Valor COFINS (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorCofins')?.valor, true)}\r\n \r\n \r\n Valor IPI (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorIpi')?.valor, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Totais Totais da Nota\r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total dos Produtos (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorTotalProdutos')?.valor, true)}\r\n \r\n \r\n Valor do Frete (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorFrete')?.valor, true)}\r\n \r\n \r\n Valor do Seguro (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorTotalProdutos')?.valor, true)}\r\n \r\n \r\n Descontos (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vDesconto')?.valor, true)}\r\n \r\n \r\n Outras Despesas (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vOutrasDespesas')?.valor, true)}\r\n \r\n \r\n Valor Total da NF-e (R$): {FormatNumber(dadosNota.find(objeto => objeto.nome === 'vValorTotalNfe')?.valor, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Informações Informações Fora da Nota\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoProdutos from '../produto/manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerProduto({ callback, editando }) {\r\n\r\n const [formProduto] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => {\r\n if (manutencao.dados !== null && !!editando.editando) {\r\n formProduto.setFieldsValue(manutencao.dados)\r\n } else {\r\n formProduto.setFieldsValue({ pro_id: null, pro_ativo: true, pro_produto: true });\r\n }\r\n }, [])\r\n\r\n function fecharDrawer(retornoDrawer) {\r\n if (!!callback) {\r\n callback(!!retornoDrawer ? retornoDrawer : {});\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n formProduto.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n fecharDrawer={fecharDrawer}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Typography, Divider, InputNumber, Table, Select, Tag, Dropdown, Menu, Button, Input, notification, Modal } from \"antd\";\r\nimport { MoreOutlined, DeleteOutlined, PlusOutlined, EditOutlined, SaveOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport DrawerProduto from \"./drawerProduto\";\r\nimport { InputPreco, SelectProduto } from \"../../components\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport { isNotNullOrEmpty, isObjetoDiffVazio, HasValue } from \"../../services/funcoes\";\r\nimport { ModalGradeProdutoImportacao } from \"../../components/modals\";\r\nimport ModalSelecionarGrade from \"../../components/modals/modalSelecionarGrade\";\r\n\r\nexport default function TabItens({ dadosRemetente, dadosItens }) {\r\n\r\n const [{ manutencao, listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n const [listaProduto, setListaProduto] = useState([]);\r\n const [listaProdutosSistema, setListaProdutosSistema] = useState([]);\r\n const [produtos, setProdutos] = useState([]);\r\n const [form] = Form.useForm();\r\n const [keyProdutoCadastrado, setKeyProdutoCadastrado] = useState(null);\r\n const [atualizarProduto, setAtualizarProduto] = useState(false);\r\n const [aguardandoPopular, setAguardandoPopular] = useState(false);\r\n const [filtroProd, setFiltroProd] = useState(\"\");\r\n const [exibirModalSelecGrade, setExibirModalSelecGrade] = useState(false);\r\n const [dadosModalGrade, setDadosModalGrade] = useState({});\r\n const [editando, setEditando] = useState(true);\r\n const [ativarMarkup, setAtivarMarkup] = useState();\r\n const [parametrosEmpresa, setParametrosEmpresa] = useState({});\r\n const [dadosGrade, setDadosGrade] = useState([]);\r\n const [abrirModalGrade, setAbrirModalGrade] = useState(false);\r\n const [possuiGrade, setPossuiGrade] = useState(false);\r\n\r\n const configSelecionarItem =\r\n {\r\n selectedRowKeys,\r\n onChange: (selectedRowKeys, selectedRows) => {\r\n ///criar quantidade setando\r\n setSelectedRowKeys(selectedRowKeys);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n api.get('/ParametroEmpresa/BuscarParametros').then(res => {\r\n if (res.data.par_calculaprecovenda == true) {\r\n setAtivarMarkup(true);\r\n setParametrosEmpresa(true);\r\n } else {\r\n setAtivarMarkup(false);\r\n setParametrosEmpresa(false);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n setProdutos(dadosItens.dadosItens);\r\n buscarProdutosNotaEntrada();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!produtos && produtos.length > 0 && !isNotNullOrEmpty(produtos[0].key)) {\r\n let id = 0;\r\n let dados = [...produtos];\r\n let listaItemSis = [];\r\n dados.forEach(async (produto) => {\r\n produto.key = id;\r\n let dadosItensSistema = produto.dadosItensSistema.length ? JSON.parse(produto.dadosItensSistema) : [];\r\n if (dadosItensSistema.length > 0) {\r\n let itemSis = dadosItensSistema;\r\n let seq = 0;\r\n itemSis.forEach(async item => {\r\n item.seqPai = id;\r\n item.key = seq;\r\n item.ativarDisabled = true;\r\n item.nfi_custoinformado = produto.xValorUnitarioProduto / itemSis.length;\r\n\r\n let ParMarkup = 1;\r\n let filtro = (item.pro_id ? `&IdProduto=${item.pro_id}` : '');\r\n filtro += (!!item.prg_ean ? `&ean=${item.prg_ean}` : (!!produto.pro_ean ? `&ean=${produto.pro_ean}` : ''));\r\n filtro += (!!item.prg_id ? `&grade=${item.prg_id}` : '');\r\n api.get(`Produto/MarkupProduto?${filtro}`).then(\r\n res => {\r\n let parametro = res.data;\r\n item.pro_markup = parametro.pro_markup;\r\n })\r\n item.valorVenda = ((produto.xValorUnitarioProduto / itemSis.length) * ParMarkup).toFixed(2);\r\n seq++;\r\n listaItemSis.push(item);\r\n });\r\n form.setFieldsValue({ [`qtdItem${id}`]: produto.xQuantidade });\r\n form.setFieldsValue({ [`valorUnitario${id}`]: produto.xValorUnitarioProduto / itemSis.length });\r\n } else {\r\n }\r\n id++;\r\n });\r\n setListaProdutosSistema(listaItemSis)\r\n setProdutos(dados);\r\n }\r\n }, [produtos]);\r\n\r\n useEffect(() => {\r\n if (!!listaProdutosSistema && listaProdutosSistema.length > 0) {\r\n setAtualizarProduto(true);\r\n let produtosSistema = [...listaProdutosSistema];\r\n let dados = [...produtos];\r\n let linhasSeleq = [];\r\n limparItensSistemas(dados, (dados) => {\r\n produtosSistema.forEach((item) => {\r\n let prod = dados.find(prod => prod.key === item.seqPai);\r\n if (!!prod) {\r\n if (linhasSeleq.indexOf(item.seqPai) === -1) {\r\n linhasSeleq.push(item.seqPai);\r\n }\r\n prod.dadosItensSistema.push(item);\r\n }\r\n });\r\n setProdutos(dados);\r\n setSelectedRowKeys(linhasSeleq);\r\n buscarSobra(produtosSistema[produtosSistema.length - 1].seqPai);\r\n });\r\n } else {\r\n }\r\n }, [listaProdutosSistema]);\r\n\r\n useEffect(() => {\r\n if (!!aguardandoPopular && !!listaSelectPaginacao?.itens) {\r\n let dados = listaSelectPaginacao?.itens;\r\n let itens = [...listaProdutosSistema];\r\n let ultimorProd = itens[itens.length - 1].pro_id;\r\n let prod = dados.filter((item) => (item.pro_id === ultimorProd))[0];\r\n if (!!prod) {\r\n form.setFieldsValue({ [`produtoCodigoUN${keyProdutoCadastrado}`]: prod.key });\r\n setKeyProdutoCadastrado(null);\r\n setAguardandoPopular(false);\r\n }\r\n setFiltroProd(\"\");\r\n setAtualizarProduto(true);\r\n }\r\n }, [listaSelectPaginacao]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.dadosGrade) {\r\n buscarDadosGradeModal();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function limparItensSistemas(dados, callback) {\r\n dados.forEach((itemXml) => {\r\n itemXml.dadosItensSistema = [];\r\n });\r\n if (!!callback) {\r\n callback(dados)\r\n }\r\n };\r\n\r\n function adicionarControleQtd(qtd, key) {\r\n let dados = [...produtos];\r\n let registroItem = dados.filter((item) => item.key === key)[0];\r\n let valorUni = 0;\r\n if (qtd > 0) {\r\n valorUni = registroItem.xValorTotalProduto / qtd;\r\n form.setFieldsValue({ [`valorUnitario${key}`]: parseFloat(valorUni.toFixed(6)) });\r\n form.setFieldsValue({ [`nfi_custoinformado${key}`]: parseFloat(valorUni.toFixed(6)) });\r\n form.setFieldsValue({ [`nfi_qtde${key}`]: parseFloat(qtd) });\r\n }\r\n };\r\n\r\n function abrirCadastroProduto(record) {\r\n let dadosProd = {};\r\n let dadosProdutoXml = {};\r\n if (!!!record.xEan || isNaN(record.xEan)) {\r\n dadosProdutoXml = produtos.filter((prod) => prod.cProd === record.cProd)[0];\r\n } else {\r\n dadosProdutoXml = produtos.filter((prod) => prod.xEan === record.xEan)[0];\r\n }\r\n dadosProd.pro_descricao = dadosProdutoXml.xProd;\r\n if (dadosProdutoXml.xEan !== 'SEM GTIN') {\r\n dadosProd.pro_ean = dadosProdutoXml.xEan;\r\n } else {\r\n dadosProd.pro_ean = null;\r\n }\r\n dadosProd.orm_id = !!dadosProdutoXml.xOrigem ? dadosProdutoXml.xOrigem + \"\" : \"0\";\r\n dadosProd.orm = dadosProdutoXml.xOrigem;\r\n dadosProd.ncm_id = dadosProdutoXml.ncm_id;\r\n dadosProd.ump_id = dadosProdutoXml.xUnidadeMedida;\r\n dadosProd.ump = dadosProdutoXml.xUnidadeMedida;\r\n dadosProd.pre_custoultimacompra = dadosProdutoXml.xValorUnitarioProduto;\r\n dadosProd.pro_markup = dadosProdutoXml.pro_markup;\r\n dadosProd.pro_servico = false;\r\n dadosProd.pro_kitcomposicao = false;\r\n dadosProd.pro_materiaprima = false;\r\n dadosProd.pro_ativo = true;\r\n dadosProd.pro_referencia = \"\";\r\n dadosProd.pro_modelo = \"\";\r\n dadosProd.pro_observacao = \"\";\r\n dadosProd.icm_id = null;\r\n dadosProd.pro_usabalanca = false;\r\n dadosProd.gru_id = null;\r\n dadosProd.sgp_id = null;\r\n dadosProd.mar_id = null;\r\n dadosProd.tpi_id = \"00\";\r\n dadosProd.listaPreco = [];\r\n dadosProd.tpi = { tpi_id: \"00\", tpi_descricao: \"Mercadorias para Revenda\" };\r\n dadosProd.csv_id = null;\r\n dadosProd.pis_id = null;\r\n if (!!dadosProdutoXml.nfs_valorissqn) {\r\n dadosProd.pro_servico = true;\r\n dadosProd.pro_produto = false;\r\n } else {\r\n dadosProd.pro_produto = true;\r\n }\r\n setEditando(true);\r\n setKeyProdutoCadastrado(record.key);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosProd } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function buscarProdutosNotaEntrada() {\r\n api.get(`Produto/ListaProdutoFiltroNfEntrada?filtro=&ordem=%2Bpro_descricao`).then(\r\n res => {\r\n let dados = [...res.data.items];\r\n let seq = 0;\r\n dados.forEach((item) => {\r\n item.seqAuxiliar = seq;\r\n seq++;\r\n });\r\n setListaProduto(dados);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function popularQuantidade(valor, key) {\r\n let itens = [...produtos];\r\n itens.find((produto) => (produto.key === key));\r\n itens.nfi_qtde = valor;\r\n };\r\n\r\n function popularCustoInformado(valor, key) {\r\n let itens = [...produtos];\r\n itens.find((produto) => (produto.key === key));\r\n itens.nfi_custoinformado = (parseFloat(valor)).toFixed(2);\r\n };\r\n\r\n async function buscarDadosGradeModal() {\r\n // Dados necessarios para adicionar em banco podem ser adicionados ha função 'buscarGradeProduto'\r\n let itensSistema = [...listaProdutosSistema];\r\n let produtoGrade = manutencao.dados.dadosGrade.filter((produto) => (produto.nfi_qtde > 0));\r\n let salvarGrades = [];\r\n produtoGrade.forEach(prodGrade => {\r\n let itens = listaSelectPaginacao?.itens;\r\n let prod = (itens.filter((item) => item.prg_id == prodGrade.prg_id))[0];\r\n form.setFieldsValue({\r\n [`qtdItem${prod.key}`]: prodGrade.nfi_qtde, [`nfi_custoinformado${prod.key}`]: prodGrade.nfi_custoinformado,\r\n [`produtoCodigo${prod.key}`]: prodGrade.pro_id, [`codigograde${prod.key}`]: prodGrade.prg_id,\r\n });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, dadosGrade: null } } })\r\n //ajustar este campo para que leve os dados necessarios e salve a lista de grades no fornecedor produto\r\n let prodVincular = {};\r\n prodVincular.pro_id = prodGrade.pro_id;\r\n prodVincular.for_id = dadosRemetente[0].find(obj => obj.nome === 'for_id')?.valor;\r\n prodVincular.fpr_codigo = prodGrade.cProd;\r\n prodVincular.fpr_descricao = prodGrade.xProd;\r\n prodVincular.prg_id = prodGrade.prg_id;\r\n salvarGrades.push(prodVincular);\r\n //adiciona a lista de produtosgrade(listaProdutosSistema)\r\n let dados = {};\r\n dados.key = prodGrade.key;\r\n dados.nfi_custoinformado = prodGrade.nfi_custoinformado;\r\n dados.prg_id = prodGrade.prg_id;\r\n dados.nfi_qtde = prodGrade.nfi_qtde;\r\n dados.par_calculaprecovenda = parametrosEmpresa;\r\n dados.seqPai = prodGrade.seqPai;\r\n dados.pro_id = prodGrade.pro_id;\r\n dados.pro_codigo = prodGrade.pro_codigo;\r\n dados.descricaoGrade = prodGrade.descricaoGrade;\r\n dados.pro_descricao = prodGrade.pro_descricao;\r\n dados.ativarDisabled = true;\r\n if (parametrosEmpresa == true) {\r\n dados.pro_markup = prodGrade.pro_markup;\r\n dados.valorVenda = (prodGrade.nfi_custoinformado * prodGrade.pro_markup).toFixed(2)\r\n }\r\n else (\r\n dados.valorVenda = prodGrade.nfi_custoinformado\r\n );\r\n itensSistema.push(dados);\r\n }\r\n );\r\n setListaProdutosSistema(itensSistema);\r\n await api.post(`FornecedorProduto/IncluirLista`, salvarGrades);\r\n }\r\n\r\n async function buscarGradeProduto(keyGrade, cProd, keyLista) {\r\n if (!!listaSelectPaginacao?.itens) {\r\n let dados = [...listaSelectPaginacao?.itens];\r\n let item = dados.filter((item) => item.key === keyGrade)[0];\r\n let produtoXml = produtos.filter((pro) => pro.key === keyLista)[0];\r\n if (!!item?.pro_id && !!item?.prg_id) {\r\n let grade = await api.get(`ProdutoGrade/ListarGradesProdutos?codigoProduto=${item.pro_id}`);\r\n if (grade.data.length >= 2) {\r\n setPossuiGrade(true);\r\n grade.data.forEach(async (pro) => {\r\n let buscaGrade = dados.filter((item) => item.prg_id == pro.prg_id)[0];\r\n pro.nfi_custoinformado = form.getFieldValue()[`nfi_custoinformado${keyLista}`];\r\n pro.seqPai = produtoXml.key;\r\n pro.pro_descricao = item.pro_descricao;\r\n pro.pro_codigo = item.pro_codigo;\r\n pro.descricaoGrade = buscaGrade.descricaograde;\r\n pro.xQuantidade = buscaGrade.quantidade;\r\n pro.prg_id = pro.prg_id;\r\n pro.pro_id = item.pro_id;\r\n pro.key = keyLista;\r\n pro.cProd = cProd;\r\n pro.xProd = produtoXml.xProd;\r\n pro.key = buscaGrade.key;\r\n if (parametrosEmpresa == true) {\r\n let ParMarkup = await buscaMarkup(buscaGrade);\r\n pro.pro_markup = ParMarkup;\r\n }\r\n });\r\n setAbrirModalGrade(true);\r\n setDadosGrade(grade.data);\r\n } else {\r\n incluirProdutoItem(keyLista, item.prg_id);\r\n }\r\n } else {\r\n incluirProdutoItem(keyLista, item.prg_id);\r\n }\r\n }\r\n };\r\n\r\n function incluirProdutoItem(key, IdGrade) {\r\n let itens = [...listaProdutosSistema];\r\n let dados = {};\r\n let qtde = form.getFieldValue()[`nfi_qtde${key}`];\r\n let custo = form.getFieldValue()[`nfi_custoinformado${key}`];\r\n let cprod = form.getFieldValue()[`produtoCodigo${key}`];\r\n let grade = !!form.getFieldValue()[`codigograde${key}`] ? form.getFieldValue()[`codigograde${key}`] : IdGrade;\r\n let valorTotal = parseFloat(produtos.filter((prod) => prod.key === key)[0].xValorTotalProduto);\r\n let dadosProduto = [];\r\n if (!(qtde > 0 && custo > 0)) {\r\n notification.warning({ description: \"Favor informar o valor e a quantidade do item\", message: \"Aviso\" });\r\n return;\r\n }\r\n if (!!!listaSelectPaginacao.itens) {\r\n setAtualizarProduto(true);\r\n }\r\n if (parseFloat((qtde * custo).toFixed(2)) > valorTotal) {\r\n notification.warning({ message: 'Aviso', description: 'Valor informado maior que o valor total do item!' });\r\n form.setFieldsValue({ [`valorUnitario${key}`]: parseFloat(valorTotal / qtde) });\r\n form.resetFields([`produtoCodigoUN${key}`, `codigogradeUN${key}`]);\r\n return;\r\n }\r\n if (!!grade) {\r\n dadosProduto = listaSelectPaginacao?.itens.filter((prod) => (prod.prg_id === IdGrade))[0];\r\n }\r\n else {\r\n dadosProduto = listaSelectPaginacao?.itens.filter((prod) => (prod.key === cprod))[0];\r\n }\r\n validarValorTot(custo, qtde, key, async () => {\r\n if (!!!dadosProduto || !isObjetoDiffVazio(dadosProduto)) {\r\n return;\r\n }\r\n let dadosItem = itens.find(produtoSis => (produtoSis.pro_id === dadosProduto.pro_id && produtoSis.prg_id === grade && produtoSis.seqPai === key));\r\n if (!!dadosItem) {\r\n notification.warning({ description: 'Lista já possuí o produto informado!', message: 'Aviso' });\r\n } else {\r\n let ParMarkup = 1;\r\n if (ativarMarkup == true) {\r\n ParMarkup = await buscaMarkup(dadosProduto);\r\n dados.pro_markup = ParMarkup;\r\n if (!!parametrosEmpresa.par_calculaprecovenda != null && !!parametrosEmpresa.par_calculaprecovenda != false) {\r\n if (ParMarkup <= 1) {\r\n notification.warn({\r\n description: (\r\n
\r\n \r\n Valor de Venda é o mesmo do valor de Compra.\r\n
\r\n Ajustar valor Markup ou Valor de Venda!
\r\n
\r\n ), message: (
Aviso
)\r\n });\r\n }\r\n }\r\n }\r\n dados.valorVenda = (!!dadosProduto.valorVenda ? dadosProduto : (ParMarkup * custo)).toFixed(2);\r\n dados.key = !!itens && itens.length > 0 ? itens[itens.length - 1].key + 1 : 1;\r\n dados.nfi_custoinformado = custo;\r\n dados.prg_id = !!grade ? grade : null;\r\n dados.nfi_qtde = qtde;\r\n dados.par_calculaprecovenda = parametrosEmpresa.par_calculaprecovenda;\r\n dados.seqPai = key;\r\n dados.pro_id = dadosProduto.pro_id;\r\n dados.pro_codigo = dadosProduto.pro_codigo;\r\n dados.descricaoGrade = dadosProduto.descricaograde;\r\n dados.pro_descricao = dadosProduto.pro_descricao;\r\n dados.ump_descricao = dadosProduto.ump_id;\r\n dados.ump_casasdecimais = 2;\r\n dados.ativarDisabled = true;\r\n dados.qtdeAnterior = qtde;\r\n itens.push(dados);\r\n //vincula poroduto a nota fical na tabela fornecedorproduto\r\n vincularProdutoNota(dados);\r\n setListaProdutosSistema(itens);\r\n form.setFieldsValue({ [`produtoCodigo${key}`]: null, [`codigograde${key}`]: null });\r\n }\r\n });\r\n };\r\n\r\n async function vincularProdutoNota(produto) {\r\n let proKey = HasValue(keyProdutoCadastrado) ? keyProdutoCadastrado : produto.seqPai;\r\n let produtoXml = produtos.filter((pro) => pro.key === proKey)[0];\r\n let dados = { produto };\r\n dados.for_id = dadosRemetente[0].find(obj => obj.nome === 'for_id')?.valor;\r\n dados.pro_id = produto.pro_id;\r\n dados.fpr_codigo = produtoXml.cProd;\r\n dados.fpr_descricao = produtoXml.xProd;\r\n if (produto.prg_id != null || produto.prg_id != 0) {\r\n dados.prg_id = produto.prg_id;\r\n }\r\n await api.post(`FornecedorProduto/Incluir`, dados);\r\n };\r\n\r\n async function modalExcluir(record) {\r\n record.fpr_id = dadosRemetente[0].find(obj => obj.nome === 'for_id')?.valor;\r\n Modal.confirm({\r\n title: \"Excluir?\",\r\n content: `Deseja excluir o item ${record.pro_descricao} da nota?`,\r\n okText: `Excluir`,\r\n cancelText: `Não`,\r\n okType: \"danger\",\r\n centered: true,\r\n onOk() {\r\n excluirItem(record)\r\n }\r\n })\r\n };\r\n\r\n function excluirItem(record) {\r\n let itens = [...listaProdutosSistema];\r\n let dados = itens.filter(produto => produto.key !== record.key || produto.prg_id !== record.prg_id);\r\n setListaProdutosSistema(dados);\r\n setExibirModalSelecGrade(false);\r\n if(record.pro_descricao != null){\r\n excluirItemSistemaXml(record);\r\n }\r\n calculaSobraAoRemoverItem(record);\r\n };\r\n\r\n function excluirItemSistemaXml(record) {\r\n api.delete(`FornecedorProduto/Excluir/${record.fpr_id}`).then(\r\n res => {\r\n notification.success({ description: 'Item removido com sucesso!', message: \"Aviso\" });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function salvarUnidadeMedida(record, key) {\r\n let itens = [...produtos];\r\n let dados = itens.find(produto => (produto.key === key));\r\n dados.unidadeMedida = record.target.value;\r\n setProdutos(itens);\r\n };\r\n\r\n function calculaSobraAoRemoverItem(record) {\r\n let key = record.seqPai;\r\n let itens = [...listaProdutosSistema];\r\n let dados = itens.filter(produto => produto.seqPai == record.seqPai)\r\n\r\n let custoInformadoAtual = parseFloat(form.getFieldsValue()[`nfi_custoinformado${key}`]);\r\n let qtdeInformadoAtual = parseFloat(form.getFieldsValue()[`nfi_qtde${key}`]);\r\n if (isNaN(custoInformadoAtual)) custoInformadoAtual = 0;\r\n if (isNaN(qtdeInformadoAtual)) qtdeInformadoAtual = 0;\r\n\r\n let custo = custoInformadoAtual + parseFloat(record.nfi_custoinformado);\r\n let qtde = qtdeInformadoAtual + record.nfi_qtde;\r\n\r\n form.setFieldsValue({ [`nfi_custoinformado${key}`]: custo });\r\n form.setFieldsValue({ [`nfi_qtde${key}`]: qtde });\r\n let valorRetorno = 0;\r\n let itensXml = [...produtos];\r\n let dadosProduto = itensXml.find((item) => (item.key === key));\r\n valorRetorno = parseFloat((dadosProduto.xValorTotalProduto - parseFloat(custo * qtde)).toFixed(3));\r\n };\r\n\r\n function buscarSobra(key, listaProd = []) {\r\n let itensXml = [...produtos];\r\n let itensSistema = [];\r\n if (listaProd.length > 0) {\r\n itensSistema = [...listaProd];\r\n } else {\r\n itensSistema = [...listaProdutosSistema];\r\n }\r\n let valor = 0;\r\n let qtde = 0;\r\n let valorRetorno = 0;\r\n let qtdTotal = parseInt(form.getFieldValue()[`qtdItem${key}`]);\r\n let dadosItem = itensSistema.filter((item) => (item.seqPai === key));\r\n let dadosProduto = itensXml.find((item) => (item.key === key));\r\n if (isNaN(qtdTotal)) qtdTotal = 0;\r\n if (!!dadosProduto) {\r\n if (!!dadosItem) {\r\n dadosItem.forEach((item) => {\r\n valor += parseFloat((parseFloat(item.nfi_custoinformado) * parseFloat(item.nfi_qtde)).toFixed(3));\r\n qtde += parseFloat(item.nfi_qtde);\r\n });\r\n } else {\r\n valor = parseFloat(form.getFieldValue()[`nfi_custoinformado${key}`]);\r\n }\r\n valorRetorno = parseFloat((dadosProduto.xValorTotalProduto - parseFloat(valor.toFixed(2))).toFixed(3));\r\n let valorRestante = valorRetorno;\r\n let qdteRestante = parseFloat((qtdTotal - parseFloat(qtde.toFixed(2))).toFixed(3));\r\n if (qdteRestante > 0) {\r\n valorRestante = parseFloat(valorRetorno / qdteRestante).toFixed(2);\r\n setSelectedRowKeys(selectedRowKeys);\r\n }\r\n form.setFieldsValue({ [`nfi_custoinformado${key}`]: valorRestante });\r\n form.setFieldsValue({ [`nfi_qtde${key}`]: qdteRestante });\r\n }\r\n return valorRetorno;\r\n };\r\n\r\n function validarValorTot(custo, qtd, key, callback) {\r\n let itens = [...listaProdutosSistema];\r\n let itemXml = produtos.filter((prod) => prod.key === key)[0];\r\n let valorItens = 0;\r\n let qtdItens = 0;\r\n let qtdTotal = parseInt(form.getFieldValue()[`qtdItem${key}`]);\r\n itens.forEach(item => {\r\n if (item.seqPai === key) {\r\n valorItens += parseFloat(item.nfi_custoinformado) * parseInt(item.nfi_qtde);\r\n qtdItens += parseInt(item.nfi_qtde);\r\n }\r\n });\r\n valorItens += (parseFloat(qtd) * parseFloat(custo));\r\n if (!!itemXml) {\r\n if (parseFloat(parseFloat(qtd) * parseFloat(custo)).toFixed(2) > parseFloat(itemXml.xValorTotalProduto)) {\r\n notification.warning({ message: 'Aviso', description: 'Valor informado maior que o valor total do item!' });\r\n form.setFieldsValue({ [`nfi_custoinformado${key}`]: parseFloat(itemXml.xValorTotalProduto) / parseFloat(qtd) })\r\n } else if (parseFloat(valorItens).toFixed(2) > parseFloat(itemXml.xValorTotalProduto)) {\r\n notification.warning({ message: 'Aviso', description: 'A soma dos valores ultrapassa o valor total do item!' });\r\n } else if (parseInt(qtd) + qtdItens > qtdTotal) {\r\n notification.warning({ message: 'Aviso', description: 'Quantidade informada maior que quantidade total do item!' });\r\n } else {\r\n if (!!callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n };\r\n\r\n async function buscaMarkup(produto) {\r\n let filtro = (produto.pro_id ? `&IdProduto=${produto.pro_id}` : '');\r\n filtro += (!!produto.prg_id ? `&grade=${produto.prg_id}` : '');\r\n let Valor = (await api.get(`Produto/MarkupProduto?${filtro}`)).data;\r\n return Valor.pro_markup;\r\n }\r\n\r\n async function aoFecharDrawerProduto(produto) {\r\n if (!!produto && !!produto.pro_id) {\r\n let itens = [...listaProdutosSistema];\r\n setAtualizarProduto(true);\r\n let dados = {};\r\n dados.key = 1;\r\n dados.nfi_custoinformado = form.getFieldValue()[`valorUnitario${keyProdutoCadastrado}`];\r\n dados.prg_id = null;\r\n dados.nfi_qtde = form.getFieldValue()[`qtdItem${keyProdutoCadastrado}`];\r\n dados.valorVenda = produto.valorVenda;\r\n dados.par_calculaprecovenda = parametrosEmpresa.par_calculaprecovenda;\r\n dados.seqPai = keyProdutoCadastrado;\r\n dados.pro_codigo = produto.pro_codigo;\r\n dados.pro_id = produto.pro_id;\r\n dados.pro_markup = produto.pro_markup;\r\n dados.pro_descricao = produto.pro_descricao;\r\n dados.ump_descricao = produto.ump_id;\r\n dados.ump_casasdecimais = 2;\r\n dados.ativarDisabled = true;\r\n let grades = await api.get(`ProdutoGrade/RetornaGradesProduto?produtoId=${produto.pro_id}`); \r\n if (!!produto.produtogrades && produto.produtogrades.length > 0 && grades.data.length >= 1) {\r\n dados.grades = [...grades.data];\r\n let seq = 0;\r\n dados.grades.forEach((grade) => { grade.key = seq++; grade.qtdeItem = 1 });\r\n setDadosModalGrade(dados);\r\n setExibirModalSelecGrade(true);\r\n } else {\r\n let itemExiste = itens.filter((obj) => (obj.pro_id === produto.pro_id));\r\n if (itemExiste.length == 0)\r\n itens.push(dados);\r\n vincularProdutoNota(produto);\r\n setAguardandoPopular(true);\r\n setFiltroProd(produto.pro_codigo);\r\n setListaProdutosSistema(itens);\r\n }\r\n }\r\n };\r\n\r\n function validarValorItem(key) {\r\n let dados = [...produtos];\r\n let produto = dados.find((obj) => (obj.key === key));\r\n let valor = parseFloat(form.getFieldValue()[`valorUnitario${key}`]);\r\n let qtd = parseFloat(form.getFieldValue()[`qtdItem${key}`]);\r\n let valorTotal = parseFloat((valor * qtd).toFixed(2));\r\n if (produto.xValorTotalProduto < valorTotal) {\r\n notification.warn({ description: 'Valor informado é maior que o total!', message: 'Aviso' });\r\n form.setFieldsValue({ [`valorUnitario${key}`]: parseFloat((produto.xValorTotalProduto / qtd).toFixed(3)) });\r\n }\r\n };\r\n\r\n function modalEditar(record) {\r\n let prod = [...produtos];\r\n let itens = [...listaProdutosSistema];\r\n let produtoSelecionado = itens.find((p) => { return p.seqPai === record.seqPai && p.pro_id === record.pro_id && p.prg_id === record.prg_id });\r\n let itensProduto = itens.filter((prod) => { return prod.seqPai === record.seqPai })\r\n let valorItemSelecionado = form.getFieldValue()[`valorUnitario${record.seqPai}`];\r\n let qtdTotal = parseInt(form.getFieldValue()[`qtdItem${record.seqPai}`]);\r\n let qtdItens = 0;\r\n itensProduto.forEach((it) => {\r\n qtdItens += parseInt(it.nfi_qtde);\r\n });\r\n if (!produtoSelecionado.ativarDisabled) {\r\n if (!(record.nfi_qtde > 0)) {\r\n notification.warning({ description: \"Favor informar a quantidade do item!\", message: \"Aviso\" });\r\n return;\r\n } else\r\n if (qtdItens > qtdTotal) {\r\n notification.warning({ message: 'Aviso', description: 'Quantidade informada maior que quantidade total do item!' });\r\n return;\r\n } else {\r\n produtoSelecionado.ativarDisabled = true;\r\n produtoSelecionado.nfi_custoinformado = valorItemSelecionado; //parseFloat(valorItemSelecionado) / parseFloat(produtoSelecionado.nfi_qtde);\r\n produtoSelecionado.qtdeAnterior = produtoSelecionado.nfi_qtde;\r\n setProdutos(prod);\r\n }\r\n } else {\r\n produtoSelecionado.ativarDisabled = false;\r\n setProdutos(prod);\r\n }\r\n buscarSobra(record.seqPai);\r\n };\r\n\r\n function alterarQtde(e, record) {\r\n let itens = [...listaProdutosSistema];\r\n let dados = itens.find(p => (p.seqPai === record.seqPai && p.pro_id === record.pro_id && p.prg_id === record.prg_id));\r\n dados.nfi_qtde = e.target.value;\r\n setListaProdutosSistema(itens);\r\n }\r\n\r\n function alterarMarkup(e, record) {\r\n let itens = [...listaProdutosSistema];\r\n let dados = itens.find(p => (p.seqPai === record.seqPai && p.pro_id === record.pro_id && p.prg_id === record.prg_id));\r\n dados.pro_markup = (e.target.value).replace(\",\", \".\")\r\n dados.valorVenda = parseFloat((dados.nfi_custoinformado * (dados.pro_markup).replace(\",\", \".\"))).toFixed(2);\r\n setListaProdutosSistema(itens);\r\n }\r\n\r\n function valorVendas(e, record) {\r\n let itens = [...listaProdutosSistema];\r\n let dados = itens.find(p => (p.seqPai === record.seqPai && p.pro_id === record.pro_id && p.prg_id === record.prg_id));\r\n dados.valorVenda = parseFloat((e.target.value)).toFixed(2);\r\n dados.pro_markup = parseFloat((parseFloat(e.target.value) / dados.nfi_custoinformado)).toFixed(2);\r\n setListaProdutosSistema(itens);\r\n }\r\n\r\n async function onCloseModalGrade(record) {\r\n let itens = [...listaProdutosSistema];\r\n let produto = dadosModalGrade;\r\n let item = {};\r\n for (let i = 0; i < record.length; i++) {\r\n item = record[i];\r\n let dados = {};\r\n dados.key = i;\r\n dados.nfi_custoinformado = item.pre_custoultimacompra;\r\n dados.prg_id = item.prg_id;\r\n dados.nfi_qtde = record.qtdeItem;\r\n dados.valorVenda = record.valorVenda;\r\n dados.par_calculaprecovenda = parametrosEmpresa.par_calculaprecovenda;\r\n dados.seqPai = keyProdutoCadastrado;\r\n dados.pro_codigo = produto.pro_codigo;\r\n dados.pro_id = produto.pro_id;\r\n dados.pro_markup = produto.pro_markup;\r\n dados.pro_descricao = produto.pro_descricao;\r\n dados.ump_descricao = produto.ump_descricao;\r\n dados.ump_casasdecimais = 2;\r\n dados.descricaoGrade = item.descricaoGrade;\r\n itens.push(dados);\r\n await vincularProdutoNota({ pro_id: produto.pro_id, pro_descricao: produto.pro_descricao, prg_id: item.prg_id });\r\n };\r\n setListaProdutosSistema(itens);\r\n setExibirModalSelecGrade(false);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Itens Itens da Nota\r\n \r\n \r\n \r\n \r\n \r\n
{\r\n return {\r\n onMouseLeave: event => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n },\r\n onMouseEnter: event => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n },\r\n };\r\n }} columns={[\r\n {\r\n title: 'Itens NF-e',\r\n render: ({ cProd, xProd, xEan, key, xQuantidade, xUnidadeMedida, xValorUnitarioProduto, listaGrade, ativarDisabled }) => (\r\n
\r\n \r\n
\r\n \r\n {cProd}\r\n \r\n \r\n \r\n {xProd}\r\n \r\n \r\n {xEan}\r\n \r\n \r\n \r\n \r\n Quant. para controle de estoque:\r\n \r\n \r\n \r\n { adicionarControleQtd(record, key) }} />\r\n \r\n \r\n \r\n \r\n { salvarUnidadeMedida(record, key); }} />\r\n \r\n \r\n \r\n { validarValorItem(key) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { popularQuantidade(dado, key) }} />\r\n \r\n \r\n \r\n { popularCustoInformado(dado, key) }} />\r\n \r\n \r\n \r\n { buscarGradeProduto(record, cProd, key); }} ordem={'pro_id'} detalhes={true} registrosPorPagina={10} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n !!listaProdutosSistema && listaProdutosSistema.filter((record) => { return record.seqPai === key }).length > 0 &&\r\n
(\r\n \r\n {pro_codigo}\r\n \r\n )\r\n },\r\n {\r\n title: 'Produto',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Grade',\r\n render: ({ descricaoGrade }) => (\r\n
\r\n {descricaoGrade}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Custo Inf.(R$)',\r\n align: 'right',\r\n width: 50,\r\n render: ({ nfi_custoinformado }) => (\r\n
\r\n {FormatNumber(nfi_custoinformado, true, false, 2)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Quant.',\r\n align: 'center',\r\n width: 50,\r\n render: ({ nfi_qtde, ativarDisabled }, record) => (\r\n alterarQtde(e, record)} disabled={ativarDisabled} placeholder=\"\" />\r\n )\r\n },\r\n ativarMarkup ? {\r\n title: 'Markup',\r\n align: 'right',\r\n width: 60,\r\n render: ({ pro_markup, ativarDisabled }, record) => (\r\n alterarMarkup(e, record)}\r\n disabled={ativarDisabled}\r\n placeholder=\"\" />\r\n )\r\n } : {},\r\n ativarMarkup ? {\r\n title: 'Vlr. Venda(R$)',\r\n align: 'center',\r\n width: 80,\r\n render: ({ valorVenda, ativarDisabled }, record) => (\r\n valorVendas(v, record)}\r\n disabled={ativarDisabled}\r\n placeholder=\"\" />\r\n )\r\n } : {},\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 80,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 - Contratação do Frete por conta do Remetente (CIF)\r\n 1 - Contratação do Frete por conta do Destinatário (FOB)\r\n 2 - Contratação do Frete por conta de Terceiros\r\n 3 - Transporte Próprio por conta do Remetente\r\n 4 - Transporte Próprio por conta do Destinatário\r\n 9 - Sem Frete\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Dados Dados Transportador\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nome: {!!dadosTransporte ? dadosTransporte.dadosTransporte?.[0]?.find(obj => obj.nome === 'pes_nome')?.valor : ''}\r\n \r\n \r\n CPF/CNPJ: {!!dadosTransporte ? !!dadosTransporte.dadosTransporte?.[0]?.find(obj => obj.nome === 'cnpjcpf') && \r\n dadosTransporte?.[0]?.find(obj => obj.nome === 'cnpjcpf')?.valor.length > 11 ? \r\n formatarCnpj(dadosTransporte.dadosTransporte?.[0]?.find(obj => obj.nome === 'cnpjcpf')?.valor) : \r\n formatarCpf(dadosTransporte.dadosTransporte?.[0]?.find(obj => obj.nome === 'cnpjcpf')?.valor) : \"\"}\r\n \r\n \r\n Inscrição Estadual: {!!dadosTransporte ? dadosTransporte.dadosTransporte?.[0]?.find(obj => obj.nome === 'pej_inscricaoestadual')?.valor : ''}\r\n \r\n \r\n Endereço: {!!dadosTransporte ? dadosTransporte.dadosTransporte?.[0]?.find(obj => obj.nome === 'log_logradouro')?.valor : \"\"}\r\n \r\n \r\n Município: {!!dadosTransporte ? dadosTransporte.dadosTransporte?.[0]?.find(obj => obj.nome === 'cid_descricao')?.valor : \"\"}\r\n \r\n \r\n UF: {!!dadosTransporte ? dadosTransporte.dadosTransporte?.[0]?.find(obj => obj.nome === 'est_sigla')?.valor : \"\"}\r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n \"Retenção Retenção ICMS\r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor do Serviço: valorServico\r\n \r\n \r\n Base Cálculo Retenção: valorBCRetencao\r\n \r\n \r\n Alíquota: picmsRetido\r\n \r\n \r\n ICMS Retido: valorIcmsRetido\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Veículo\" Veículo\r\n \r\n \r\n \r\n \r\n \r\n \r\n Placa Veículo: placaVeiculo\r\n \r\n \r\n UF Veículo: ufVeiculo\r\n \r\n \r\n Placa Reboque: placaReboque\r\n \r\n \r\n UF Reboque: ufReboque\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Volumes\" Volumes\r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n
\r\n Numeração: {nVol}\r\n \r\n \r\n Quantidade: {qVol}\r\n \r\n \r\n Espécie: {esp}\r\n \r\n \r\n Marca: {marca}\r\n \r\n \r\n \r\n \r\n Peso Líquido: {pesoL}\r\n \r\n \r\n Peso Bruto: {qVpesoBol}\r\n \r\n \r\n Visualizar Lacres: {nLacre} \r\n \r\n \r\n \r\n Número Fatura: {objFaturamento[0]?.numeroFatura}\r\n \r\n \r\n Valor Original (R$): {FormatNumber(objFaturamento[0]?.nfp_valor, true)}\r\n \r\n \r\n Desconto (R$): {FormatNumber(objFaturamento[0]?.vDesconto, true)}\r\n \r\n \r\n Valor Líquido (R$): {FormatNumber(objFaturamento[0]?.nfp_valor, true)}\r\n \r\n \r\n Forma de pagamento: {objFaturamento[0]?.tipoavistaaprazo}\r\n \r\n \r\n Tipo de pagamento: {objFaturamento[0]?.tipopagamento}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
adicionarFormaDePagamento()}>\r\n \r\n
\r\n \r\n { buscarCondicaoPagamento(record) }}\r\n conteudo={\r\n formas => ({formas.fpg_descricao})\r\n } />\r\n \r\n \r\n \r\n
\r\n {!semCondicaoPagamento &&\r\n \r\n \r\n \r\n\r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {parcelasGeradas.length > 0 &&\r\n
\r\n \r\n Parcelas Geradas\r\n \r\n \r\n
(\r\n \r\n {prc_numeroparcela} - {parcelasGeradas.length}\r\n \r\n )\r\n },\r\n {\r\n title: 'Vencimento',\r\n align: 'center',\r\n width: 110,\r\n render: ({ prc_datavencimento, prc_numeroparcela }, record, idx) => (\r\n
\r\n {editandoParcela ? ajustarDatasParcelas(record, idx)} /> : {moment(prc_datavencimento).format('DD/MM/YYYY')}}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Valor Parcela(R$)',\r\n align: 'right',\r\n render: ({ prc_valor, prc_numeroparcela }) => (\r\n
\r\n {editandoParcela ? onChangevalorParcela(prc_numeroparcela)} disabled={prc_numeroparcela === parcelasGeradas.length} /> : {FormatNumber(prc_valor, true)}}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: () => (\r\n \r\n \r\n {!editandoParcela ? \r\n
\r\n
(\r\n
\r\n {fpg_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Condição de Pagamento',\r\n render: ({ cpg_descricao }) => (\r\n
\r\n {cpg_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ nfp_valor }) => (\r\n
\r\n {FormatNumber(nfp_valor, true)}\r\n
\r\n ),\r\n },\r\n\r\n {\r\n title: 'Operações',\r\n align: 'right',\r\n render: ({ }, record, idx) => (\r\n
\r\n
\r\n )\r\n }\r\n ]}\r\n />\r\n \r\n \r\n \r\n \r\n { onCloseModalContaCorrente() }} fecharModalContaCorrente={() => { setAbreModalContaCorrente(false); }} listaContaCorrente={{ listaContaCorrente, setListaContaCorrente }} contaCorrente={{ contaCorrente, setContaCorrente }} />\r\n { setOpenModalEditarNotaFiscalEntrada(false) }} />\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Button, Col, Form, Modal, notification, Row, Tabs } from \"antd\";\r\nimport { TabNotaFiscal, TabItens, TabTransporte, TabFaturamento } from \"./tabPage\";\r\nimport moment from \"moment\";\r\nimport { getNomeUsuario, getIdUsuario, getEmpresa, getLocal } from '../../services/auth';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { CloseOutlined, SaveOutlined } from \"@ant-design/icons\";\r\nimport { isNotNullOrEmpty, isObjetoDiffVazio } from \"../../services/funcoes\";\r\n\r\nexport default function ImportacaoNotaFiscalEntrada({ form, exibir, fechar }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [dadosNota, setDadosNota] = useState([]);\r\n const [dadosItens, setDadosItens] = useState([]);\r\n const [dadosFaturamento, setDadosFaturamento] = useState([]);\r\n const [faturamentoDados, setFaturamentoDados] = useState([]);\r\n const [dadosRemetente, setDadosRemetente] = useState([])\r\n const [dadosTransporte, setDadosTransporte] = useState([]);\r\n const [correlacaoCFOP, setCorrelacaoCFOP] = useState([]);\r\n const [indicadorPagamento, setIndicadorPagamento] = useState([]);\r\n const [desabilitaBotao, setDesabilitaBotao] = useState(true);\r\n const [keys, setKeys] = useState([0]);\r\n const [carregando, setCarregando] = useState(false);\r\n const [listapreco, setListaPreco] = useState([]);\r\n const [parametrosEmpresa, setParametrosEmpresa] = useState({});\r\n\r\n const salvarNota = (valores) => {\r\n validarDados(() => {\r\n setCarregando(true);\r\n let dados = {};\r\n let find = dadosNota.find(objeto => objeto.nome === 'xmlBase64');\r\n let findXml = dadosNota.find(objeto => objeto.nome === 'xml');\r\n dados.xml = !!find ? atob(find.valor) : findXml.valor;\r\n dados.ntf_numero = dadosNota.find(objeto => objeto.nome === 'ntf_numero')?.valor;\r\n dados.ntf_dataemissao = moment(dadosNota.find(objeto => objeto.nome === 'ntf_dataemissao')?.valor);\r\n dados.ntf_chavenfe = dadosNota.find(objeto => objeto.nome === 'ntf_chavenfe')?.valor;\r\n dados.ntf_modalidadefrete = dadosNota.find(objeto => objeto.nome === 'ntf_modalidadefrete')?.valor;\r\n dados.ntf_finalidade = dadosNota.find(objeto => objeto.nome === 'ntf_finalidade')?.valor;\r\n dados.ser_numero = dadosNota.find(objeto => objeto.nome === 'ser_numero')?.valor;\r\n dados.mdf_id = dadosNota.find(objeto => objeto.nome === 'mdf_id')?.valor;\r\n dados.vDesconto = parseFloat(dadosNota.find(objeto => objeto.nome === 'vDesconto')?.valor);\r\n dados.vOutrasDespesas = parseFloat(dadosNota.find(objeto => objeto.nome === 'vOutrasDespesas')?.valor);\r\n dados.vValorFrete = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorFrete')?.valor);\r\n dados.vValorSeguro = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorSeguro')?.valor);\r\n dados.vValorTotalNfe = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorTotalNfe')?.valor);\r\n dados.vValorTotalProdutos = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorTotalProdutos')?.valor);\r\n dados.vBaseCalculoIcms = parseFloat(dadosNota.find(objeto => objeto.nome === 'vBaseCalculoIcms')?.valor);\r\n dados.vValorIcms = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorIcms')?.valor);\r\n dados.vValorIpi = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorIpi')?.valor);\r\n dados.vBaseCalculoIcmsSt = parseFloat(dadosNota.find(objeto => objeto.nome === 'vBaseCalculoIcmsSt')?.valor);\r\n dados.vValorIcmsSt = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorIcmsSt')?.valor);\r\n dados.vValorCofins = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorCofins')?.valor);\r\n dados.vValorPis = parseFloat(dadosNota.find(objeto => objeto.nome === 'vValorPis')?.valor);\r\n dados.ope_id = valores.ope_id;\r\n dados.ntf_datainclusao = moment(new Date());\r\n dados.valorFreteForaNota = parseFloat(valores.freteForaNota);\r\n dados.valorICMSSTForaNota = parseFloat(valores.icmsstForaNota);\r\n dados.valorOutrasDespesasForaNota = parseFloat(valores.outrasDespesasForaNota);\r\n dados.dadosRemetente = popularDadosRemetente();\r\n dados.dadosFaturamento = popularDadosFaturamento();\r\n dados.dadosTransportador = popularDadosTransportador();\r\n dados.dadosItens = dadosItens;\r\n dados.mar_id = form.getFieldsValue().mar_id ?? null;\r\n if (parametrosEmpresa.par_calculaprecovenda == true) {\r\n listaPreco(dadosItens);\r\n }\r\n incluirDadosNota(dados);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n api.get('/ParametroEmpresa/BuscarParametros').then(res => {\r\n setParametrosEmpresa(res.data);\r\n }).catch((erro) => console.error(erro));\r\n buscarCorrelacaoCFOP();\r\n buscarIndicadorPagamento();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (exibir && !!manutencao.dados) {\r\n if (!!manutencao.dados.notaEntrada) {\r\n setDadosNota(manutencao.dados.notaEntrada);\r\n }\r\n if (!!manutencao.dados.dadosItens) {\r\n let i = 0;\r\n let itens = [];\r\n while (i < manutencao.dados.dadosItens.length) {\r\n // manutencao.dados.dadosItens.i = i;\r\n itens.push(manutencao.dados.dadosItens[i]);\r\n i++;\r\n }\r\n const itensOrd = itens.map(subvetor => { const objeto = {}; subvetor.forEach(item => { objeto[item.nome] = item.valor; }); return objeto; });\r\n setDadosItens(itensOrd);\r\n }\r\n if (!!manutencao.dados.dadosFaturamento) {\r\n let i = 0;\r\n let itens = [];\r\n while (i < manutencao.dados.dadosFaturamento.length) {\r\n itens.push(manutencao.dados.dadosFaturamento);\r\n i++;\r\n }\r\n itens.forEach((item) => {\r\n item.formaPagamento = [];\r\n item.condicaoPagamento = [];\r\n if (item.nfp_valor == null) item.nfp_valor = 0;\r\n });\r\n let keys = [];\r\n for (const [i, fat] of itens.entries()) {\r\n fat.key = i;\r\n fat.id = i;\r\n keys.push(i);\r\n }\r\n setKeys(keys);\r\n setDadosFaturamento(itens);\r\n }\r\n if (!!manutencao.dados.dadosRemetente) {\r\n setDadosRemetente(manutencao.dados.dadosRemetente);\r\n }\r\n if (!!manutencao.dados.dadosTransportador) {\r\n setDadosTransporte(manutencao.dados.dadosTransportador);\r\n }\r\n }\r\n }, [exibir]);\r\n\r\n function incluirDadosNota(dados) {\r\n api.post(`NotaFiscalEntrada/IncluirNotaEntrada`, dados).then(\r\n res => {\r\n notification.success({ description: 'Nota importada com sucesso!', message: 'Aviso' });\r\n setTimeout(() => { window.location = \"/Home#/monitoramentoNfe\"; }, 1000);\r\n }\r\n ).catch(\r\n erro => {\r\n setCarregando(false);\r\n if (!!erro.response && !!erro.response.data && !!erro.response.data.Message) {\r\n Modal.error({ content: erro.response.data.Message, title: 'Aviso' });\r\n }\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n setCarregando(false);\r\n }\r\n );\r\n };\r\n\r\n async function listaPreco(dadosItens) {\r\n let ListaPrecoItem = [...listapreco];\r\n for (var item of dadosItens) {\r\n let idProduto = item.dadosItensSistema[0].pro_id;\r\n let idProdutoGrade = item.dadosItensSistema[0].prg_id;\r\n let precoLista = {};\r\n precoLista.pro_id = idProduto;\r\n precoLista.prg_id = idProdutoGrade;\r\n precoLista.lpi_valorvenda = parseFloat(item.dadosItensSistema[0].valorVenda);\r\n ListaPrecoItem.push(precoLista);\r\n }\r\n editarValorVenda(ListaPrecoItem);\r\n }\r\n\r\n function editarValorVenda(ListaPrecoItem) {\r\n api.put(`ListaPrecoItem/EditarAsync`, ListaPrecoItem).then(\r\n res => {\r\n notification.success({ description: 'Valor Venda Ajustado com sucesso!', message: 'Aviso' });\r\n setTimeout(() => { window.location = \"/Home#/monitoramentoNfe\"; }, 1000);\r\n }\r\n ).catch(\r\n erro => {\r\n if (!!erro.response && !!erro.response.data && !!erro.response.data.Message) {\r\n Modal.error({ content: erro.response.data.Message, title: 'Aviso' });\r\n }\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n }\r\n );\r\n };\r\n\r\n function validarDados(callback) {\r\n if (faturamentoDados.length === 0) {\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher a forma de pagamento!' });\r\n } else {\r\n let valorTotal = 0;\r\n faturamentoDados.forEach(item => {\r\n valorTotal += parseFloat(item.nfp_valor);\r\n })\r\n if (valorTotal != dadosFaturamento[0][0]?.find(obj => obj.nome === 'nfp_valor')?.valor) {\r\n notification.warning({ message: 'Aviso', description: 'Valor informado diferente do total da nota!' });\r\n return false;\r\n }\r\n validarItens(null,\r\n () => {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n );\r\n }\r\n };\r\n\r\n function popularDadosRemetente() {\r\n let dadosRem = {};\r\n dadosRem.for_id = dadosRemetente[0].find(obj => obj.nome === 'for_id')?.valor;\r\n dadosRem.cnpjCpf = dadosRemetente[0].find(obj => obj.nome === 'cnpjcpf')?.valor;\r\n dadosRem.for_regimetributariofiscal = dadosRemetente[0].find(obj => obj.nome === 'for_regimetributariofiscal')?.valor;\r\n dadosRem.pej_inscricaoestadual = dadosRemetente[0].find(obj => obj.nome === 'pej_inscricaoestadual')?.valor;\r\n dadosRem.pes_nome = dadosRemetente[0].find(obj => obj.nome === 'pse_nome')?.valor;\r\n dadosRem.psc_numero = !!dadosRemetente[0].find(obj => obj.nome === 'psc_numero') ? dadosRemetente.find(obj => obj.nome === 'psc_numero')?.valor : null;\r\n dadosRem.pej_nomefantasia = dadosRemetente[0].find(obj => obj.nome === 'pej_nomefantasia')?.valor;\r\n dadosRem.cep_cep = dadosRemetente[0].find(obj => obj.nome === 'cep_cep')?.valor;\r\n dadosRem.log_logradouro = dadosRemetente[0].find(obj => obj.nome === 'log_logradouro')?.valor;\r\n dadosRem.bai_bairro = dadosRemetente[0].find(obj => obj.nome === 'bai_bairro')?.valor;\r\n dadosRem.pee_numero = dadosRemetente[0].find(obj => obj.nome === 'pee_numero')?.valor;\r\n dadosRem.pee_complemento = dadosRemetente[0].find(obj => obj.nome === 'pee_complemento')?.valor;\r\n dadosRem.cid_descricao = dadosRemetente[0].find(obj => obj.nome === 'cid_descricao')?.valor;\r\n dadosRem.est_sigla = dadosRemetente[0].find(obj => obj.nome === 'est_sigla')?.valor;\r\n dadosRem.pes_nome = dadosRemetente[0].find(obj => obj.nome === 'pes_nome')?.valor;\r\n return dadosRem;\r\n };\r\n\r\n function popularDadosFaturamento() {\r\n let dadosFat = [];\r\n faturamentoDados.forEach((faturamento) => {\r\n let dados = {};\r\n dados.numeroFatura = faturamento.numeroFatura;\r\n dados.fpg_id = faturamento.fpg_id;\r\n dados.cpg_id = faturamento.cpg_id;\r\n dados.ctc_id = faturamento.ctc_id;\r\n dados.nfp_valor = parseFloat(faturamento.nfp_valor);\r\n if (dados.nfp_valor == null) {\r\n dados.nfp_valor = 0;\r\n }\r\n dados.parcelas = popularParcelas(faturamento);\r\n dados.antecipacoes = popularAntecipacoes(faturamento);\r\n dadosFat.push(dados);\r\n });\r\n return dadosFat;\r\n };\r\n\r\n function popularParcelas(faturamento) {\r\n let dadosParcelas = [];\r\n if (!!faturamento.parcelas && faturamento.parcelas.length > 0) {\r\n faturamento.parcelas.forEach((parcela) => {\r\n let dados = {};\r\n dados.prc_numeroparcela = parcela.prc_numeroparcela;\r\n dados.prc_datavencimento = moment(parcela.prc_datavencimento);\r\n dados.prc_numeroduplicata = parcela.prc_numeroDuplicata;\r\n dados.prc_valor = parseFloat(parcela.prc_valor);\r\n dadosParcelas.push(dados);\r\n })\r\n }\r\n return dadosParcelas;\r\n };\r\n\r\n function popularAntecipacoes(faturamento) {\r\n let dadosAntecipacoes = [];\r\n /*let dados = {};\r\n dados.acf_id = 0;\r\n dados.valorUtilizado = parseFloat(0);*/\r\n return dadosAntecipacoes;\r\n };\r\n\r\n function popularDadosTransportador() {\r\n let dados = {};\r\n if (isObjetoDiffVazio(dadosTransporte)) {\r\n dados.cnpjCpf = dadosTransporte?.[0]?.find(obj => obj.nome === 'cnpjcpf')?.valor;\r\n dados.pes_nome = dadosTransporte?.[0]?.find(obj => obj.nome === 'pes_nome')?.valor;\r\n dados.est_sigla = dadosTransporte?.[0]?.find(obj => obj.nome === 'est_sigla')?.valor;\r\n dados.pej_inscricaoestadual = dadosTransporte?.[0]?.find(obj => obj.nome === 'pej_inscricaoestadual')?.valor;\r\n dados.log_logradouro = dadosTransporte?.[0]?.find(obj => obj.nome === 'log_logradouro')?.valor;\r\n dados.cid_descricao = dadosTransporte?.[0]?.find(obj => obj.nome === 'cid_descricao')?.valor;\r\n }\r\n return dados;\r\n };\r\n\r\n function buscarCorrelacaoCFOP() {\r\n api.get(`CorrelacaoCFOP/CorrelacaoCFOP?cfop=5101&tipoCorrelacao=1&tipoNota=1`).then(\r\n res => {\r\n setCorrelacaoCFOP(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function buscarIndicadorPagamento() {\r\n api.get(`Enum/Listar?nome=IndicadorPagamento`).then(\r\n res => {\r\n setIndicadorPagamento(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validarItens(tab, callback) {\r\n\r\n let valido = true;\r\n dadosItens.forEach((item, indice, lista) => {\r\n if (!!item.dadosItensSistema && item.dadosItensSistema.length > 0 && valido) {\r\n let valor = 0;\r\n if (typeof item.dadosItensSistema !== 'object') {\r\n item.dadosItensSistema = JSON.parse(item.dadosItensSistema);\r\n }\r\n if (typeof item.lote !== 'object') {\r\n item.lote = JSON.parse(item.lote);\r\n }\r\n item.dadosItensSistema.forEach((itemSis, idx, array) => {\r\n if (parseFloat(itemSis.nfi_qtde) === 0) {\r\n valido = false;\r\n notification.warning({ message: 'Aviso', description: \"Item nº: \" + item.nItem + \" - \" + item.cProd + \" - \" + item.xProd + \" não informado Quantidade!\" });\r\n }\r\n valor += parseFloat(itemSis.nfi_custoinformado) * parseFloat(itemSis.nfi_qtde);\r\n if (idx === array.length - 1) {\r\n // faz o teste do null pq tem algumas notas que vem com o valor 0.\r\n if (item.xValorUnitarioProduto === null) {\r\n item.xValorUnitarioProduto = parseFloat(0);\r\n item.xValorTotalProduto = parseFloat(0);\r\n }\r\n }\r\n });\r\n } else if (item.dadosItensSistema.length === 0 || !isNotNullOrEmpty(item.dadosItensSistema.length)) {\r\n valido = false;\r\n notification.warning({ message: 'Aviso', description: \"Item nº: \" + item.nItem + \" - \" + item.cProd + \" - \" + item.xProd + \" não informado!\" });\r\n }\r\n if (indice === lista.length - 1) {\r\n if (valido && !!callback) {\r\n callback(tab);\r\n }\r\n }\r\n });\r\n };\r\n\r\n function validarAba(tab) {\r\n if (parseInt(abaSelecionada) === 1) {\r\n if (!!form.getFieldValue().ope_id) {\r\n setAbaSelecionada(tab);\r\n } else {\r\n notification.warning({ description: 'Favor informar uma operação fiscal', message: 'Aviso' });\r\n }\r\n } else if (parseInt(abaSelecionada) === 2) {\r\n validarItens(tab, () => {\r\n setAbaSelecionada(tab);\r\n });\r\n } else {\r\n setAbaSelecionada(tab);\r\n }\r\n if (parseInt(tab) !== 4) {\r\n setDesabilitaBotao(true);\r\n } else {\r\n setDesabilitaBotao(false);\r\n }\r\n\r\n };\r\n\r\n function cancelarOperacao() {\r\n setAbaSelecionada(\"1\");\r\n setDadosNota([]);\r\n setDadosItens([]);\r\n setDadosFaturamento([]);\r\n setDadosRemetente([]);\r\n setDadosTransporte([]);\r\n setDesabilitaBotao(true);\r\n fechar();\r\n };\r\n\r\n return (\r\n
\r\n {exibir &&
\r\n validarAba(tab)} className=\"p-b-75\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n }\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Upload, Button, notification, Form } from \"antd\";\r\nimport { CloudUploadOutlined } from \"@ant-design/icons\";\r\n\r\nimport { BreadcrumbPage, BotaoAbrirChamado } from \"../../components\";\r\nimport { getBase64 } from \"../../services/funcoes\";\r\nimport api from \"../../services/api\";\r\nimport { buscarDadosBanco, buscarDadosTabela, buscarDadosTotal, criarBanco, excluirBancoDados, incluirBanco } from \"../../services/webSql\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\r\nimport ModalSelecionarGrade from \"../../components/modals/modalSelecionarGrade\";\r\nimport ImportacaoNotaFiscalEntrada from \"../importacaoNotaFiscalEntrada\";\r\n\r\nexport default function ImportarNotaFiscalEntrada() {\r\n const [arquivoBase64, setArquivoBase64] = useState(\"\");\r\n const [arquivo, setArquivo] = useState(null);\r\n const [formNotaEntrada] = Form.useForm();\r\n const [openNota, setOpenNota] = useState(false);\r\n const [carregando, setCarregando] = useState(false);\r\n const [versionDB, setVersionDB] = useState(1);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const props = {\r\n name: 'file',\r\n multiple: false,\r\n showUploadList: false,\r\n maxCount: 1,\r\n disabled: !!arquivo,\r\n beforeUpload(file) {\r\n getBase64(file).then(base64 => {\r\n setArquivoBase64(base64.split('base64,')[1]);\r\n setArquivo(file);\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let chave = localStorage.getItem('@GestorWeb-ChaveImportar');\r\n if (!!chave) {\r\n carregarNota(chave);\r\n }\r\n }, []);\r\n\r\n function carregarNota(chave) {\r\n setCarregando(true);\r\n api.post(`NotaFiscalEntrada/CarregarNfe?ChaveNfe=${chave}`).then(\r\n res => {\r\n let dados = { ...res.data };\r\n let dadosNota = [];\r\n incluirDadosNota(dados, dadosNota);\r\n localStorage.removeItem('@GestorWeb-ChaveImportar');\r\n }\r\n ).catch(\r\n erro => {\r\n notification.error({ description: erro.response.data, message: 'Aviso' });\r\n setCarregando(false);\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validarNotaFiscal() {\r\n /* ValidarNfe*/\r\n setCarregando(true);\r\n api.post(`NotaFiscalEntrada/ValidarXML`, JSON.stringify(arquivoBase64), { headers: { 'Content-Type': 'application/json;charset=utf-8' } }).then(\r\n res => {\r\n let dados = { ...res.data };\r\n let dadosNota = [];\r\n dadosNota.push({ nome: 'xmlBase64', valor: arquivoBase64 });\r\n incluirDadosNota(dados, dadosNota);\r\n }\r\n ).catch(\r\n erro => {\r\n setCarregando(false);\r\n notification.error({ description: erro.response.data, message: 'Aviso' });\r\n removerNota();\r\n }\r\n );\r\n\r\n /*Importar XML da empresa*/\r\n // setCarregando(true);\r\n // let obj = {\r\n // chaveNfe: arquivo.name,\r\n // xmlDistribuicaoNfe: arquivoBase64\r\n // }\r\n // api.post(`NotaFiscal/ImportarXmlNota`, obj, { headers: { 'Content-Type': 'application/json;charset=utf-8' } }).then(\r\n // res => {\r\n // notification.error({ description: \"Nota Fiscal importada\", message: 'Aviso' });\r\n // }\r\n // ).catch(\r\n // erro => {\r\n // setCarregando(false);\r\n // notification.error({ description: erro.response.data, message: 'Aviso' });\r\n // }\r\n // );\r\n };\r\n\r\n async function incluirDadosNota(dados, dadosNota) {\r\n let dadosItens = [];\r\n let dadosCamposItens = [];\r\n let dadosFaturamento = [];\r\n let dadosFat = [];\r\n let dadosTransp = [];\r\n let dadosTransportador = [];\r\n let dadosRem = [];\r\n let dadosRemetente = [];\r\n for (let key in dados) {\r\n if (typeof dados[key] !== 'object') {\r\n dadosNota.push({ nome: key, valor: dados[key] });\r\n } else if (key === 'dadosItens') {\r\n dados.dadosItens.forEach((item) => {\r\n for (let keyItens in item) {\r\n if (!!!item[keyItens]) {\r\n dadosCamposItens.push({ nome: keyItens, unico: false, valor: null });\r\n } else if (typeof item[keyItens] === 'object') {\r\n dadosCamposItens.push({ nome: keyItens, unico: false, valor: JSON.stringify(item[keyItens]) });\r\n } else {\r\n dadosCamposItens.push({ nome: keyItens, unico: false, valor: item[keyItens] });\r\n }\r\n }\r\n dadosItens.push(dadosCamposItens);\r\n dadosCamposItens = [];\r\n });\r\n } else if (key === 'dadosFaturamento') {\r\n dados.dadosFaturamento.forEach((fat) => {\r\n for (let keyFat in fat) {\r\n if (!!!fat[keyFat]) {\r\n if (keyFat === \"nfp_valor\") {\r\n dadosFat.push({ nome: keyFat, unico: false, valor: 0 });\r\n } else {\r\n dadosFat.push({ nome: keyFat, unico: false, valor: null });\r\n }\r\n } else if (typeof fat[keyFat] === 'object') {\r\n dadosFat.push({ nome: keyFat, unico: false, valor: JSON.stringify(fat[keyFat]) });\r\n } else {\r\n dadosFat.push({ nome: keyFat, unico: false, valor: fat[keyFat] });\r\n }\r\n }\r\n dadosFaturamento.push(dadosFat);\r\n dadosFat = [];\r\n });\r\n } else if (key === 'dadosRemetente') {\r\n for (let keyRem in dados.dadosRemetente) {\r\n if (!!!dados.dadosRemetente[keyRem]) {\r\n dadosRem.push({ nome: keyRem, unico: false, valor: null });\r\n } else if (typeof dados.dadosRemetente[keyRem] === 'object') {\r\n dadosRem.push({ nome: keyRem, unico: false, valor: JSON.stringify(dados.dadosRemetente[keyRem]) });\r\n } else {\r\n dadosRem.push({ nome: keyRem, unico: false, valor: dados.dadosRemetente[keyRem] });\r\n }\r\n }\r\n dadosRemetente.push(dadosRem);\r\n dadosRem = [];\r\n } else if (key === 'dadosTransportador') {\r\n for (let keyTransp in dados.dadosTransportador) {\r\n if (!!!dados.dadosTransportador[keyTransp]) {\r\n dadosTransp.push({ nome: keyTransp, unico: false, valor: null });\r\n } else if (typeof dados.dadosTransportador[keyTransp] === 'object') {\r\n dadosTransp.push({ nome: keyTransp, unico: false, valor: JSON.stringify(dados.dadosTransportador[keyTransp]) });\r\n } else {\r\n dadosTransp.push({ nome: keyTransp, unico: false, valor: dados.dadosTransportador[keyTransp] });\r\n }\r\n }\r\n dadosTransportador.push(dadosTransp);\r\n dadosTransp = [];\r\n }\r\n }\r\n let retorno = [];\r\n excluirBancoDados(() => {\r\n criarBancoWeb('notaEntrada', 1, dadosNota, () => {\r\n criarBancoWeb('dadosItens', 2, dadosItens, () => {\r\n criarBancoWeb('dadosFaturamento', 3, dadosFaturamento, () => {\r\n criarBancoWeb('dadosRemetente', 4, dadosRemetente, () => {\r\n criarBancoWeb('dadosTransportador', 5, dadosTransportador, () => {\r\n buscarDadosTabela(retorno, 'notaEntrada', () => {\r\n buscarDadosTabela(retorno, 'dadosItens', () => {\r\n buscarDadosTabela(retorno, 'dadosFaturamento', () => {\r\n buscarDadosTabela(retorno, 'dadosRemetente', () => {\r\n buscarDadosTabela(retorno, 'dadosTransportador', () => {\r\n setCarregando(false);\r\n const vetorSeparado = {\r\n notaEntrada: retorno[0],\r\n dadosItens: retorno[1],\r\n dadosFaturamento: retorno[2],\r\n dadosRemetente: retorno[3],\r\n dadosTransportador: retorno[4]\r\n };\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: vetorSeparado } });\r\n setOpenNota(true);\r\n }, 5);\r\n }, 5);\r\n }, 5);\r\n }, 5);\r\n }, 5);\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n\r\n function removerNota() {\r\n setArquivoBase64(\"\");\r\n setArquivo(null);\r\n excluirBancoDados();\r\n };\r\n\r\n async function criarBancoWeb(nomeBanco, version, campos, callback) {\r\n\r\n await criarBanco(nomeBanco, campos, version);\r\n await incluirBanco(nomeBanco, campos, version);\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!openNota &&
\r\n \r\n {!!!arquivo &&
\r\n \r\n
\r\n

\r\n \r\n

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

Arraste o xml aqui! (o arquivo deve estar no formato .xml)

\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!!arquivo &&
\r\n \r\n
\r\n \r\n \r\n \r\n {arquivo.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n }\r\n { setOpenNota(false) }} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tooltip, Form, Input, Select, Button, Collapse, Typography, Tag, Dropdown, Menu, Alert, notification, Modal, InputNumber } from \"antd\";\r\nimport { DownloadOutlined, CloseOutlined, QuestionCircleOutlined, ArrowDownOutlined, ArrowUpOutlined, SearchOutlined, FileProtectOutlined, ExclamationCircleOutlined, MoreOutlined, CheckOutlined, ReloadOutlined, CloudUploadOutlined } from \"@ant-design/icons\";\r\nimport { Link } from \"react-router-dom\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { getLocal } from \"../../services/auth\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { FormatNumber, MaskFormat } from \"../../ValueObjects\";\r\nimport { ModalManifestoDestinatario } from \"../../components/modals/\";\r\nimport { BreadcrumbAbrirChamado, TabelaDados, Data } from \"../../components\";\r\nimport { retornaSoNumeros } from \"../../services/funcoes\";\r\n\r\nexport default function MonitoramentoNfe() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [open, setOpen] = useState(false);\r\n const [openModal, setOpenModal] = useState(false);\r\n const [ambiente, setAmbiente] = useState(null);\r\n const [cnpj, setCnpj] = useState(null);\r\n const [tipoNfe, setTipoNfe] = useState([]);\r\n const [situacaoNfe, setSituacaoNfe] = useState([]);\r\n const [dadosNota, setDadosNota] = useState([]);\r\n const [formulario] = Form.useForm();\r\n const dataAtual = new Date();\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n const menuTable = (record) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const menuOpcoes = () => (\r\n \r\n \r\n \r\n \r\n \r\n Importar XML \r\n \r\n \r\n );\r\n\r\n useEffect(() => {\r\n limparFiltros();\r\n }, []);\r\n\r\n function verificarLocal() {\r\n api.get(`Local/BuscarLocal`).then(function (local) {\r\n if (local.status === 200) {\r\n setCnpj(local.data.loc_cnpj.numero);\r\n }\r\n });\r\n };\r\n function limparFiltros() {\r\n formulario.setFieldsValue({ dataEmissao: moment(new Date(dataAtual.getFullYear(), dataAtual.getMonth() - 1, 1)), dataMaxEmissao: moment(new Date()), nsuEspecifico: \"\" });\r\n\r\n listarTipoNfe();\r\n listarSituacaoNfe();\r\n verificarAmbiente();\r\n verificarLocal();\r\n listarNotas();\r\n };\r\n function verificarAmbiente() {\r\n api.get(`Nfe/VerificarAmbiente?codigoLocal=${getLocal()}`).then(function (retornoAmbiente) {\r\n if (retornoAmbiente.status === 200) {\r\n setAmbiente(retornoAmbiente.data.lcn_ambienteemissao);\r\n formulario.setFieldsValue({ nsuUltimo: retornoAmbiente.data.lcn_monitoramentonsuproducao });\r\n }\r\n });\r\n };\r\n\r\n const verificarNotas = () => {\r\n api.get(`Nfe/Monitoramento`).then(res => {\r\n if (res.status === 200) {\r\n if (res.data.retorno.cStat === 138) {\r\n notification.success({ description: res.data.retorno.xMotivo, message: `Operação Realizada com Sucesso!` });\r\n } else {\r\n notification.error({ description: res.data.retorno.xMotivo, message: `SEFAZ Informa !` });\r\n }\r\n listarNotas();\r\n }\r\n }).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarTipoNfe() {\r\n api.get(`Enum/Listar?nome=TipoNFe`).then(function (res) {\r\n if (res.status === 200) {\r\n setTipoNfe(res.data);\r\n let tipoNf = [];\r\n res.data.forEach((item) => {\r\n tipoNf.push(item.key.toString());\r\n });\r\n formulario.setFieldsValue({ tipoNf: tipoNf });\r\n }\r\n });\r\n };\r\n\r\n function listarSituacaoNfe() {\r\n api.get(`Enum/Listar?nome=SituacaoNfe`).then(function (res) {\r\n if (res.status === 200) {\r\n setSituacaoNfe(res.data);\r\n let situacaoNf = [];\r\n res.data.forEach((item) => {\r\n situacaoNf.push(item.key.toString());\r\n });\r\n formulario.setFieldsValue({ situacaoNf: situacaoNf });\r\n }\r\n });\r\n };\r\n\r\n function listarNotas() {\r\n if (!!formulario.getFieldValue().pesquisa) {\r\n let modelo = \"\";\r\n let chaveAcesso = retornaSoNumeros(formulario.getFieldValue().pesquisa);\r\n if (chaveAcesso.length === 44)\r\n modelo = chaveAcesso.substring(20, 22);\r\n if (modelo !== \"55\")\r\n notification.error({ description: \"Chave de acesso não é de um documento fiscal modelo 55 NF-e!\", message: \"Atenção!\" })\r\n }\r\n let filtros = `&SituacaoNf=${(!!formulario.getFieldValue().situacaoNf ? formulario.getFieldValue().situacaoNf.join(',') : '')}\r\n &Tipodocumento=${(!!formulario.getFieldValue().tipoNf ? formulario.getFieldValue().tipoNf.join(',') : '')}`;\r\n filtros += (!!formulario.getFieldValue().pesquisa ? `&Filtro=${formulario.getFieldValue().pesquisa}` : '');\r\n filtros += (!!formulario.getFieldValue().nsuEspecifico ? `&NsuEspecifico=${formulario.getFieldValue().nsuEspecifico}` : '');\r\n filtros += (!!formulario.getFieldValue().dataEmissao ? `&DataEmissao=${formulario.getFieldValue().dataEmissao.format('YYYY-MM-DD')}` : '');\r\n filtros += (!!formulario.getFieldValue().dataMaxEmissao ? `&DataMaxEmissao=${formulario.getFieldValue().dataMaxEmissao.format('YYYY-MM-DD')}` : '');\r\n\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-nfd_datahoraemissao', outrosFiltros: filtros } });\r\n };\r\n\r\n\r\n function importarNfe(notaFiscal) {\r\n if (notaFiscal.nfd_manifestodestinatario === 0 || notaFiscal.nfd_manifestodestinatario === 1) {\r\n importarNotaFiscalEletronica(notaFiscal.nfd_chavenfe);\r\n } else {\r\n Modal.confirm({\r\n title: `Atenção!`,\r\n icon: ,\r\n content: `Esta nota fiscal não possui nenhuma manifestação de destinatário realizada. Para realizar o download da NF-e a manifestação é obrigatória. Deseja realizar a CIÊNCIA DA EMISSÃO automaticamente e continuar com o processo de importar a nota selecionada?`,\r\n okText: 'Sim, realizar manifestação e importar!',\r\n cancelText: 'Não, cancelar operação.',\r\n width: 550,\r\n onOk() {\r\n api.post(`NotaFiscal/ManifestarNfe?TipoManifesto=0&ChaveNfe=${notaFiscal.nfd_chavenfe}&justificativa=`).then(\r\n (res) => {\r\n if (res.data.retorno.cStat === 128) {\r\n if (res.data.retorno.retEvento[0].infEvento.cStat === 128 || res.data.retorno.retEvento[0].infEvento.cStat === 135) {\r\n importarNotaFiscalEletronica(notaFiscal.nfd_chavenfe);\r\n }\r\n else {\r\n notification.error({ description: res.data.retorno.retEvento[0].infEvento.xMotivo, message: `Erro na Manifestação!` });\r\n }\r\n } else {\r\n notification.error({ description: res.data.retorno.xMotivo, message: `Erro na Manifestação!` });\r\n }\r\n }\r\n ).catch(() => {\r\n notification.error({ description: 'A manifestação de CIÊNCIA DA EMISSÃO não foi realizada. Desta forma a NF-e não pode ser importada para o sistema.', message: `Erro na Manifestação!` });\r\n });\r\n },\r\n onCancel() {\r\n notification.error({ description: 'O download da nota fiscal não foi realizado, a NF-e não foi importada para o sistema.', message: `Operação Cancelada!` });\r\n }\r\n });\r\n }\r\n };\r\n function fecharModal() {\r\n setOpenModal(false);\r\n listarNotas();\r\n }\r\n function importarNotaFiscalEletronica(chaveNfe) {\r\n api.post(`Nfe/DownloadNFe?ChaveNfe=${chaveNfe}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n localStorage.setItem('@GestorWeb-ChaveImportar', chaveNfe);\r\n window.location = \"/Home#/importarNotaFiscalEntrada\";\r\n }\r\n }\r\n ).catch((erro) => {\r\n notification.error({ description: `SEFAZ Informa: Serviço indisponível no momento (${erro.response.data.Message}), Tente novamente mais tarde!`, message: `Download do arquivo XML da NF- e` });\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n {ambiente === 2 &&\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n \r\n
\r\n \r\n Pesquisar por\r\n \r\n \r\n \r\n \r\n }>\r\n listarNotas()} placeholder=\"Nº da Nota Fiscal / Chave de Acesso da NF-e / Emissor\" allowClear />\r\n \r\n \r\n \r\n menuOpcoes()} trigger={['click']}>\r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n {tipoNfe.map((item) => (\r\n {item.value}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {situacaoNfe.map((item) => (\r\n {item.value}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n NOTAS FISCAIS EMITIDAS CONTRA MEU CNPJ - {MaskFormat(cnpj, 'Não Informado', true)}.\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ao configurar sua empresa como emissora de Notas Fiscais Eletrônicas, o GestorWeb realiza um monitoramento diário automaticamente \r\n de todas as notas emitidas contra sua empresa. Este monitoramento é realizado de forma automatica todos os dias às 05:45h. Para realizar uma verificação agora,\r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n {nfd_numeronf}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Status',\r\n width: 100,\r\n align: 'center',\r\n render: ({ nfd_situacaonfe }) => (\r\n
\r\n \r\n \r\n {!!situacaoNfe[nfd_situacaonfe] ? situacaoNfe[nfd_situacaonfe].value : ''}\r\n \r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Emitente',\r\n render: ({ nfd_nomeemissor }) => (\r\n
\r\n {nfd_nomeemissor}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 140,\r\n render: ({ nfd_cpfcnpjemissor }) => (\r\n
\r\n {MaskFormat(nfd_cpfcnpjemissor, '', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Emissão',\r\n width: 140,\r\n render: ({ nfd_datahoraemissao }) => (\r\n
\r\n {moment(nfd_datahoraemissao).format('DD/MM/YYYY HH:mm:ss')}\r\n
\r\n ),\r\n },\r\n {\r\n render: ({ nfd_manifestodestinatario }) => (\r\n \r\n
\r\n {nfd_manifestodestinatario === 0 &&\r\n \r\n Ciência da Emissão\r\n \r\n }\r\n {nfd_manifestodestinatario === 1 &&\r\n \r\n Confirmação da Operação\r\n \r\n }\r\n {nfd_manifestodestinatario === 2 &&\r\n \r\n Operação não Realizada\r\n \r\n }\r\n {nfd_manifestodestinatario === 3 &&\r\n \r\n Desconhecimento da Operação\r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n fixed: 'right',\r\n align: 'right',\r\n render: ({ nfd_valortotal }) => (\r\n
\r\n {FormatNumber(nfd_valortotal, true, false)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n {record.nfd_situacaonfe === 1 &&\r\n \r\n
\r\n menuTable(record)} trigger={['click']}>\r\n \r\n Série: {nfd_serienf}\r\n \r\n \r\n Modelo: {nfd_modelodocumento}\r\n \r\n \r\n Tipo de Nota: {tipoNfe[nfd_tipodocumento].value}\r\n \r\n \r\n Chave da NF-e: {nfd_chavenfe}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n fecharModal()} dadosNota={dadosNota} />\r\n \r\n );\r\n}\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Menu, Dropdown, Typography, Popover, Table, Divider, notification } from \"antd\";\r\nimport { MoreOutlined, PrinterOutlined, CloseOutlined, FileTextOutlined, EditOutlined, ExclamationCircleOutlined, DeleteOutlined, CloudUploadOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { Editar, TabelaDados } from \"../../components\";\r\nimport { novaAbaNavegador } from \"../../services/funcoes\";\r\nimport { drawerActions, manutencaoActions, listagemActions, selectPaginadoActions } from \"../../actions\";\r\nimport { ModalCancelamentoNfe, ModalCartaCorrecaoNotaFiscal, ModalReenviarSefaz, ModalInutilizarNota } from \"../../components/modals\";\r\n\r\nexport default function TabNotaFiscalEmitida({ retornaDescricaoStatus, carregarDados }) {\r\n\r\n const [openModalCancelar, setOpenModalCancelar] = useState(false);\r\n const [openModalCartaCorrecao, setOpenModalCartaCorrecao] = useState(false);\r\n const [dadosNota, setDadosNota] = useState({});\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [exibirModalInutilizar, setExibirModalInutilizar] = useState(false);\r\n const [openModalExcluir, setOpenModalExcluir] = useState(false);\r\n const [openModalReenviarSefaz, setModalReenviarSefaz] = useState(false);\r\n\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n {/*Não tem opção de editar no permissão de acesso.\r\n \r\n {(record.ntf_status === 0 || record.ntf_status === 4) && record.ntf_nroinutilizadosefaz == false && record.ntf_tiponota === 2 &&\r\n \r\n } onClick={() => {\r\n editarNota(record)\r\n }}> Editar \r\n \r\n } */}\r\n {(record.ntf_status === 4 || record.ntf_status === 0) && record.ntf_modelo == '55' &&\r\n \r\n }\r\n {(record.ntf_status === 4 || record.ntf_status === 0) && record.ntf_modelo == '55' &&\r\n \r\n }\r\n {record.ntf_status === 1 && record.ntf_modelo == '55' && record.ntf_tiponota === 1 &&\r\n \r\n \r\n }\r\n {record.ntf_status === 1 &&\r\n \r\n \r\n \r\n }\r\n {record.ntf_status === 1 &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n function abrirExcluirNota(record) {\r\n setDadosNota(record);\r\n setOpenModalExcluir(true);\r\n };\r\n\r\n function inutilizarNota(record) {\r\n setDadosNota(record);\r\n setExibirModalInutilizar(true)\r\n };\r\n function autorizarNota(record) {\r\n setDadosNota(record);\r\n setModalReenviarSefaz(true);\r\n };\r\n\r\n\r\n function fecharModalInutilizar() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_numero' } });\r\n setExibirModalInutilizar(false);\r\n }\r\n\r\n function editarNota(record) {\r\n setDadosNota(record);\r\n if (record.ntf_id) {\r\n api.get(`NotaFiscalTransferencia/dadosNotaFiscal?codigoNotaFiscal=${record.ntf_id}`).then(retornaNota => {\r\n if (retornaNota.status === 200) {\r\n retornaNota.data[0].ntf_dataemissao = moment(retornaNota.data[0].ntf_dataemissao);\r\n retornaNota.data[0].loc_id = retornaNota.data[0].localDestino;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: retornaNota.data[0] } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n };\r\n\r\n function abrirCancelarNota(record) {\r\n setDadosNota(record);\r\n setOpenModalCancelar(true);\r\n };\r\n\r\n function abrirCartaCorrecao(record) {\r\n setDadosNota(record);\r\n setOpenModalCartaCorrecao(true);\r\n };\r\n\r\n return (\r\n
\r\n (\r\n
\r\n \r\n {ntf_numero}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Status',\r\n width: 100,\r\n align: 'center',\r\n render: ({ ntf_status }) => (\r\n
\r\n \r\n \r\n {retornaDescricaoStatus(ntf_status)}\r\n \r\n \r\n
\r\n ),\r\n },\r\n {\r\n width: 750,\r\n title: 'Transferências Emitidas',\r\n render: ({ ntf_status, ntf_nomedest, ser_serie, ntf_dataemissao, ntf_chavenfe, ntf_cstat, ntf_xmotivo }) => (\r\n
\r\n \r\n
\r\n \r\n {ntf_nomedest}\r\n \r\n \r\n \r\n Série: {ser_serie}\r\n \r\n \r\n Emissão: {moment(ntf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n {!(!!ntf_chavenfe) ?\r\n \r\n NF-e não gerada\r\n :\r\n \r\n NF-e:\r\n \r\n {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${ntf_chavenfe}`);\r\n }} target=\"_blank\">\r\n {ntf_chavenfe}\r\n \r\n \r\n \r\n }\r\n {(ntf_status == 3 || ntf_status == 4) &&\r\n \r\n Rejeição: {ntf_cstat}{!!(ntf_xmotivo) ? (', ' + ntf_xmotivo) : ''}\r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Total da Nota (R$)',\r\n align: 'right',\r\n render: ({ valor_total }) => (\r\n
\r\n {FormatNumber(valor_total, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n function abrirModalConfirmacao(record) {\r\n setDadosNota(record);\r\n setOpenModalConfirmacao(true);\r\n };\r\n\r\n return (\r\n
\r\n (\r\n
\r\n \r\n {ntf_numero}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Status',\r\n width: 100,\r\n align: 'center',\r\n render: ({ statusTransferencia }) => (\r\n
\r\n \r\n {statusTransferencia === 0 ? 'Pendente' : 'Transferido'} \r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Transferências Emitidas',\r\n render: (record ,{ ntf_nomedest, ser_serie, ntf_dataemissao, ntf_chavenfe }) => (\r\n
\r\n \r\n
\r\n \r\n {ntf_nomedest}\r\n \r\n \r\n \r\n Série: {ser_serie}\r\n \r\n \r\n Emissão: {moment(ntf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n {!(!!ntf_chavenfe) ?\r\n \r\n NF-e não gerada\r\n :\r\n \r\n NF-e:\r\n { imprimir(record) }}>Clique para visualizar o Danfe}>\r\n {ntf_chavenfe}\r\n \r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Total da Nota (R$)',\r\n align: 'right',\r\n render: ({ valor_total }) => (\r\n
\r\n {FormatNumber(valor_total, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n
(\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n {pro_descricao}\r\n \r\n \r\n \r\n \r\n EAN: {nfi_ean}\r\n \r\n \r\n Grade: {grade}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'CFOP',\r\n align: 'center',\r\n width: '4%',\r\n fixed: 'left',\r\n render: ({ nfi_cfop }) => (\r\n
\r\n {nfi_cfop}\r\n
\r\n ),\r\n },\r\n {\r\n title: `${dadosContribuinte.emp_regimetributario === 1 ? 'CSOSN' : 'CST'}`,\r\n align: 'center',\r\n width: '5%',\r\n fixed: 'left',\r\n render: ({ cst_id, cso_id }) => (\r\n
\r\n
\r\n {dadosContribuinte.emp_regimetributario === 1 ? cso_id : cst_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: '5%',\r\n align: 'right',\r\n fixed: 'left',\r\n render: ({ nfi_qtde }) => (\r\n
\r\n {FormatNumber(nfi_qtde, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: '8%',\r\n fixed: 'left',\r\n render: ({ nfi_valorunitario }) => (\r\n
\r\n {FormatNumber(nfi_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desc.',\r\n align: 'right',\r\n width: '5%',\r\n render: ({ percdesc }) => (\r\n
\r\n {percdesc}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Acres.',\r\n align: 'right',\r\n width: '6%',\r\n render: ({ percacresc }) => (\r\n
\r\n {FormatNumber(percacresc, true)}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Frete',\r\n align: 'right',\r\n width: '6%',\r\n render: ({ nfi_valorfrete }) => (\r\n
\r\n {FormatNumber(nfi_valorfrete, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Bc. Icms',\r\n align: 'right',\r\n width: '6%',\r\n render: ({ baseICMS }) => (\r\n
\r\n {FormatNumber(baseICMS, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: '% Icms',\r\n align: 'right',\r\n width: '6%',\r\n render: ({ nig_percicms }) => (\r\n
\r\n {FormatNumber(nig_percicms, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Icms',\r\n align: 'right',\r\n width: '6%',\r\n render: ({ nig_valorIcms }) => (\r\n
\r\n {FormatNumber(nig_valorIcms, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Bc. ST',\r\n align: 'right',\r\n width: '6%',\r\n render: ({ BaseST }) => (\r\n
\r\n {FormatNumber(BaseST, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: '% ST',\r\n align: 'right',\r\n width: '6%',\r\n render: ({ nig_percicmsst }) => (\r\n
\r\n {FormatNumber(nig_percicmsst, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr ST',\r\n align: 'right',\r\n width: '6%',\r\n render: ({ nig_valoricmsst }) => (\r\n
\r\n {FormatNumber(nig_valoricmsst, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: '8%',\r\n fixed: 'right',\r\n render: ({ total }) => (\r\n
\r\n {FormatNumber(total, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: '5%',\r\n fixed: 'right',\r\n render: (record, e, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Quantidade:\r\n \r\n \r\n {quantidade}\r\n \r\n \r\n \r\n \r\n Valor Total dos Itens (R$):\r\n \r\n \r\n {FormatNumber(valorTotal, true)}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Card, Form, Typography, Input, Divider } from \"antd\";\r\n\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { validarNumeros } from \"../../services/funcoes\";\r\n\r\nexport default function TabResumoTransferencia({ form, dadosItens, resumoNota }) {\r\n\r\n useEffect(() => {\r\n let formulario = form.getFieldValue();\r\n let resumo = {\r\n valorProduto: 0,\r\n valorFrete: 0,\r\n valorOutros: 0,\r\n valorSeguro: 0,\r\n valorBaseICMS: 0,\r\n valorICMS: 0,\r\n valorBaseST: 0,\r\n valorICMSST: 0,\r\n valorBaseIPI: 0,\r\n valorIPI: 0,\r\n valorBaseICMSST: 0\r\n };\r\n dadosItens.dadosItens.forEach((item) => {\r\n resumo.valorProduto += (item.nfi_valorunitario * item.nfi_qtde) || 0;\r\n resumo.valorFrete += (item.nfi_valorfrete) || 0;\r\n resumo.valorOutros += (item.nfi_valoroutros) || 0;\r\n resumo.valorSeguro += (item.nfi_valorseguro) || 0;\r\n resumo.valorBaseICMS += (item.baseICMS) || 0;\r\n resumo.valorICMS += (item.nig_valorIcms) || 0;\r\n resumo.valorBaseST += (item.nig_valorbcst) || 0;\r\n resumo.valorICMSST += (item.nig_valoricmsst) || 0;\r\n resumo.valorBaseIPI += (item.npi_valorbcipi) || 0;\r\n resumo.valorIPI += (item.npi_valoripi) || 0;\r\n });\r\n resumo.valorFrete = validarNumeros(formulario.valorFrete);\r\n resumo.valorSeguro = validarNumeros(formulario.valorSeguro);\r\n resumo.valorTotalNotaFiscal = resumo.valorProduto + resumo.valorFrete + resumo.valorOutros + resumo.valorSeguro + resumo.valorIPI + resumo.valorICMSST + resumo.valorICMS; \r\n let dadosItensTemp = [...dadosItens.dadosItens];\r\n dadosItens.setDadosItens(dadosItensTemp);\r\n resumoNota.setResumoNota(resumo);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Resumo da Nota Fiscal de Transferência\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorProduto, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorFrete, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorSeguro, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorOutros, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorBaseIPI, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorIPI, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorBaseICMS, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorICMS, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorBaseST, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorICMSST, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total da Nota (R$)\r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(resumoNota.resumoNota.valorTotalNotaFiscal, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Form, Select, Steps, Alert, Input, notification, Tooltip } from \"antd\";\r\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { Data, FormGW } from '../../components';\r\nimport { useStateValue } from '../../state';\r\nimport { getEmpresa, getLocal } from '../../services/auth';\r\nimport { MaskFormat } from '../../ValueObjects';\r\nimport { TabTransporte } from '../tabNotaFiscal/index';\r\nimport { TabItemTransferencia, TabResumoTransferencia } from './tabPage';\r\nimport { validaForm, isObjetoDiffVazio, novaAbaNavegador, calculaValorProporcional } from '../../services/funcoes';\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\n\r\nexport default function ManutencaoNotaFiscalTransferencia({ formulario, carregando, aoSalvar, pages, proximaPag, limparDados, abrirDrawer }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [serieFiscal, setSerieFiscal] = useState([]);\r\n const [tipoPreco, setTipoPreco] = useState([]);\r\n const [ambiente, setAmbiente] = useState([]);\r\n const [filiaisEmpresa, setFiliaisEmpresa] = useState([]);\r\n const [parametrosEmpresa, setParametrosEmpresa] = useState([]);\r\n const [dadosContribuinte, setDadosContribuinte] = useState([]);\r\n const [dadosEndereco, setDadosEndereco] = useState({});\r\n const [dadosNfeTransferencia, setDadosNfeTransferencia] = useState({});\r\n const [listaVeiculos, setListaVeiculos] = useState([]);\r\n const [dadosTransp, setDadosTransp] = useState({});\r\n const [resumoNota, setResumoNota] = useState({});\r\n const [dadosItens, setDadosItens] = useState([]);\r\n const [editando, setEditando] = useState(false);\r\n const [listaIndicadorPresenca, setListaIndicadorPresenca] = useState([]);\r\n const listaValidacoesDest = [\r\n { nome: 'loc_id', obrigatorio: true, label: 'Destinatário' },\r\n { nome: 'ser_id', obrigatorio: true, label: 'Série Fiscal' },\r\n { nome: 'ntf_dataemissao', obrigatorio: true, label: 'Data de Emissão' },\r\n { nome: 'custo', obrigatorio: true, label: 'Preço' }\r\n ];\r\n\r\n const listaValidacoesTransp = [\r\n { nome: 'ntf_modalidadefrete', obrigatorio: true, label: 'Modalidade do Frete' }\r\n ];\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n carregarDados();\r\n if (!(!!formulario.getFieldValue().ntf_dataemissao)) {\r\n formulario.setFieldsValue({ ntf_dataemissao: moment(new Date()) });\r\n }\r\n if (!!manutencao.dados && !!manutencao.dados.ntf_id) {\r\n formulario.setFieldsValue(manutencao.dados);\r\n setEditando(true);\r\n } else {\r\n setEditando(false);\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n useEffect(() => {\r\n if (abrirDrawer && !!manutencao.dados && !!manutencao.dados.itensNf) {\r\n let itens = manutencao.dados.itensNf;\r\n let pdi_valorfrete = 0;\r\n let percacresc = 0;\r\n itens.forEach((item) => {\r\n pdi_valorfrete += parseFloat(!!item.pdi_valorfrete ? item.pdi_valorfrete : 0);\r\n percacresc += parseFloat(!item.percacresc ? percacresc : 0)\r\n });\r\n setDadosItens(itens);\r\n carregarDados();\r\n formulario.setFieldsValue(manutencao.dados);\r\n formulario.setFieldsValue({ valorFrete: pdi_valorfrete });\r\n formulario.setFieldsValue({ valorAcrescimo: percacresc });\r\n if (!(!!formulario.getFieldValue().ntf_dataemissao)) {\r\n formulario.setFieldsValue({ ntf_dataemissao: moment(new Date()) });\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!proximaPag.proximaPag || proximaPag.proximaPag === 0) {\r\n validarTrocaPg(proximaPag.proximaPag);\r\n }\r\n }, [proximaPag.proximaPag]);\r\n\r\n function salvarNota(values) {\r\n let operacao = 'Incluir';\r\n\r\n if (!!values.ntf_id) {\r\n operacao = 'Editar';\r\n }\r\n let dados = popularDados();\r\n carregando(true);\r\n api.post(`NotaFiscalTransferencia/${operacao}`, dados).then(\r\n (retornoNF) => {\r\n if (retornoNF.status === 200) {\r\n if (operacao === 'Incluir') {\r\n if (retornoNF.data.ntf_status === 1 && !!retornoNF.data.ntf_chavenfe && !!retornoNF.data.ser_id) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${retornoNF.data.ntf_chavenfe}`);\r\n } else if (retornoNF.data.ntf_status === 1 && !!retornoNF.data.ntf_chavenfe) {\r\n }\r\n }\r\n notification.success({ message: 'Sucesso', description: `Nota ${operacao === 'Incluir' ? 'Incluída' : 'Editada'} com sucesso!` });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n if (!!erro.response && !!erro.response.data) {\r\n notification.error({ description: erro.response.data, message: `Aviso` });\r\n } else {\r\n notification.error({ description: 'Não foi possível salvar os dados da nota de transferência!', message: `Aviso` });\r\n }\r\n }\r\n ).finally(() => {\r\n carregando(false);\r\n setDadosItens([]);\r\n aoSalvar();\r\n });\r\n };\r\n\r\n async function validarTrocaPg(proxPagina) {\r\n let paginaAtual = pages.tagPages;\r\n let listaValidacoes = [];\r\n if (paginaAtual < proxPagina) {\r\n switch (paginaAtual) {\r\n case 0:\r\n listaValidacoes = listaValidacoesDest;\r\n break;\r\n case 1:\r\n if (dadosItens.length === 0) {\r\n notification.warning({ message: 'Aviso', description: `É necessário informar um item na nota fiscal!` });\r\n validarTransporte(dadosItens);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n break;\r\n case 2:\r\n listaValidacoes = listaValidacoesTransp;\r\n await validarTransporte(dadosItens);\r\n break;\r\n }\r\n if (validaForm(formulario, listaValidacoes)) {\r\n pages.setTagPages(proxPagina);\r\n } else {\r\n proximaPag.setProximaPag(paginaAtual);\r\n }\r\n } else {\r\n pages.setTagPages(proxPagina);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (limparDados.limparDados) {\r\n pages.setTagPages(0);\r\n setDadosItens([]);\r\n setResumoNota({});\r\n limparDados.setLimparDados(false);\r\n }\r\n }, [limparDados.limparDados]);\r\n\r\n function popularDados() {\r\n let valores = formulario.getFieldsValue();\r\n let dados = formulario.getFieldValue();\r\n valores.dadosDestinatario = preencherDadosDestinatario(dados);\r\n valores.serieFiscal = serieFiscal.filter((serie) => { return serie.ser_id === dados.ser_id })[0];\r\n valores.dadosContribuinte = dadosContribuinte;\r\n valores.listaItemNotaFiscal = dadosItens;\r\n valores.custo = tipoPreco.filter((custo) => { return custo.key === dados.custo })[0];\r\n valores.par_69 = parametrosEmpresa.par_69;\r\n valores.transporte = preencherDadosTransportadores(dados);\r\n valores.ntf_modalidadefrete = valores.transporte.ntf_modalidadefrete;\r\n valores.resumo = resumoNota;\r\n valores.emp_id = getEmpresa();\r\n valores.ser_id = valores.serieFiscal.ser_id;\r\n valores.ser_numero = valores.serieFiscal.ser_numero;\r\n return valores;\r\n };\r\n\r\n function preencherDadosDestinatario(dados) {\r\n let dadosDestinatario = {\r\n loc_id: dados.loc_id\r\n }\r\n return dadosDestinatario;\r\n };\r\n\r\n function preencherDadosTransportadores(dados) {\r\n let dadosTransporte = {};\r\n dadosTransporte.trn_id = !!dadosTransp.trn_id ? dadosTransp.trn_id : null;\r\n dadosTransporte.trn_id = dados.trn_id;\r\n dadosTransporte.trv_marca = dados.trv_marca;\r\n dadosTransporte.trv_modelo = dados.trv_modelo;\r\n dadosTransporte.trv_placa = dados.trv_placa;\r\n dadosTransporte.trv_rntc = dados.trv_rntc;\r\n dadosTransporte.trv_uf = dados.trv_uf;\r\n dadosTransporte.trv_observacao = dados.trv_observacao\r\n dadosTransporte.nvl_especievolume = dados.nvl_especievolume;\r\n dadosTransporte.nvl_marcavolume = dados.nvl_marcavolume;\r\n dadosTransporte.nvl_numeracaovolume = !!dados.nvl_numeracaovolume ? dados.nvl_numeracaovolume.toString() : \"\";\r\n dadosTransporte.nvl_pesobruto = dados.nvl_pesobruto;\r\n dadosTransporte.nvl_pesoliquido = dados.nvl_pesoliquido;\r\n dadosTransporte.nvl_qtdevolumes = dados.nvl_qtdevolumes\r\n dadosTransporte.ntf_modalidadefrete = dados.ntf_modalidadefrete;\r\n return dadosTransporte;\r\n };\r\n\r\n async function carregarDados() {\r\n let retornoSerie = await api.get(`SerieFiscal/Listar?CodigoModeloDocFiscal=55&EmitenteDocumento=0`);\r\n if (retornoSerie.status === 200) {\r\n setSerieFiscal(retornoSerie.data.items);\r\n if (retornoSerie.data.items.length === 1) {\r\n formulario.setFieldsValue({ ser_id: retornoSerie.data.items[0].ser_id });\r\n }\r\n }\r\n let listaIndicadorPresenca = await api.get('Enum/Listar?nome=IndicadorPresenca');\r\n if (listaIndicadorPresenca.status === 200) {\r\n setListaIndicadorPresenca(listaIndicadorPresenca.data);\r\n }\r\n let retornoTipoPreco = await api.get(`Enum/Listar?nome=TipoPrecoUtilizar`);\r\n if (retornoTipoPreco.status === 200) {\r\n retornoTipoPreco.data = retornoTipoPreco.data.filter((item) => { return item.key > 0 });\r\n setTipoPreco(retornoTipoPreco.data);\r\n }\r\n let retornoAmbiente = await api.get(`Nfe/VerificarAmbiente?codigoLocal=${getLocal()}`);\r\n if (retornoAmbiente.status === 200) {\r\n setAmbiente(retornoAmbiente.data);\r\n }\r\n let retornoFiliais = await api.get(`Local/ListarLocalUsuario?codigoEmpresa=${getEmpresa()}`);\r\n if (retornoFiliais.status === 200) {\r\n setFiliaisEmpresa(retornoFiliais.data.items.filter((item) => { return item.loc_id !== parseInt(getLocal()) }));\r\n }\r\n let retornoParametrosEmp = await api.get('ParametroEmpresa/BuscarParametros');\r\n if (retornoParametrosEmp.status === 200) {\r\n let dados = {};\r\n dados.par_69 = retornoParametrosEmp.data.par_69;\r\n if (!!retornoParametrosEmp.data.par_custopadraonftransferencia || !!formulario.getFieldValue().custo) {\r\n let custo = retornoTipoPreco.data.filter((custo) => { return custo.key === !!formulario.getFieldValue().custo ? formulario.getFieldValue().custo : retornoParametrosEmp.data.par_custopadraonftransferencia });\r\n if (custo.length > 0) {\r\n dados.custo = custo[0];\r\n if (!(!!formulario.getFieldValue().custo)) {\r\n formulario.setFieldsValue({ custo: custo[0].key });\r\n }\r\n }\r\n }\r\n setParametrosEmpresa(retornoParametrosEmp.data);\r\n setDadosNfeTransferencia(dados);\r\n }\r\n let retornoDadosContribuinte = await api.get(`dadosContribuinte/Buscar`);\r\n setDadosContribuinte(retornoDadosContribuinte.data);\r\n if (!!formulario.getFieldValue().ntf_id && dadosItens.length === 0 && (!!manutencao.dados && manutencao.dados.listaItemNotaFiscal.length > 0)) {\r\n let itens = manutencao.dados.listaItemNotaFiscal;\r\n itens.forEach((item) => {\r\n if (!!item.icm_id) {\r\n item.icm_id = { icm_id: item.icm_id, icm_descricao: item.icm_descricao }\r\n }\r\n });\r\n setDadosItens(itens);\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n if (filiaisEmpresa.length > 0 && !!formulario.getFieldValue().loc_id) {\r\n buscarEnderecoLocal(formulario.getFieldValue().loc_id);\r\n }\r\n }, [filiaisEmpresa]);\r\n\r\n function buscarEnderecoLocal(loc_id) {\r\n if (!!loc_id) {\r\n let lcd_id = filiaisEmpresa.filter((filial) => { return filial.loc_id === loc_id })[0].lcd_id;\r\n api.get(`LogradouroCidade/BuscarLogradouroCidade?codigoLogradouroCidade=${lcd_id}&estrangeiro=0`).then(res => {\r\n if (res.status === 200) {\r\n setDadosEndereco(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n };\r\n\r\n function alterarCusto(e) {\r\n if (!!e) {\r\n let custo = tipoPreco.find((custo) => { return custo.key === e });\r\n if (!!custo) {\r\n let dados = { ...dadosNfeTransferencia };\r\n dados.custo = custo;\r\n setDadosNfeTransferencia(dados);\r\n }\r\n }\r\n };\r\n\r\n async function validarTransporte(dadosItens) {\r\n await rateioFrete(dadosItens);\r\n await recalcularImpostos(dadosItens);\r\n }\r\n\r\n async function recalcularImpostos(dadosItens) {\r\n if (dadosItens.length > 0) {\r\n let total = 0;\r\n let totalSt = 0;\r\n let possuiIe = !!formulario.getFieldValue().pej_inscricaoestadual ? true : false;\r\n let empresaSelecionada = filiaisEmpresa.filter(item => item.loc_id === formulario.getFieldValue().loc_id);\r\n let fisicaJuridica = empresaSelecionada[0].loc_tipocontribuinte;\r\n for (const p of dadosItens) {\r\n try {\r\n let aliquotaIcms = p.nig_percicms !== null && p.nig_percicms !== '' && Number(p.nig_percicms) !== 0 ? p.nig_percicms : (p.mva_percaliquotaicms !== null && p.mva_percaliquotaicms !== '' ? p.mva_percaliquotaicms : 0);\r\n let percIpi = p.ncm_percentual !== null && p.ncm_percentual !== '' && Number(p.ncm_percentual) !== 0 ? p.ncm_percentual : (!p.npi_percaliquotaipi ? p.npi_percaliquotaipi : 0);\r\n let aliquotaICMSST = !p.mva_percaliquotaicms ? p.mva_percaliquotaicms : p.nig_percicmsst;\r\n let valorOutros = parseFloat(formulario.getFieldValue().valorSeguro) + parseFloat(p.nfi_valoroutros);\r\n let valorFrete = parseFloat(formulario.getFieldValue().valorFrete);\r\n\r\n //calcula impostos da nota no beck\r\n let impostos = await CalcularImpostoItem(p.orm_id, p.cst_id, p.cso_id,\r\n p.iod_uforigem, p.iod_ufdestino, p.nfi_qtde, p.nfi_valorunitario, valorFrete, valorOutros,\r\n p.nfi_valordesconto, aliquotaIcms, p.iod_percdiferimentoicms, p.iod_percicmsreducaobc, aliquotaICMSST, p.mva_percmva, p.mva_percaliquotaicmsreducao, p.mva_ajustado,\r\n percIpi,\r\n fisicaJuridica, formulario.getFieldValue().ntf_consumidorfinal, possuiIe, formulario.getFieldValue().ntf_indicadorpresenca);\r\n if (isObjetoDiffVazio(impostos)) {\r\n p.baseICMS = impostos.retornoICMS.ret_baseIcms;\r\n p.valorICMS = impostos.retornoICMS.ret_valorIcms;\r\n p.BaseST = impostos.retornoICMSST.ret_baseIcmsST;\r\n p.ValorST = impostos.retornoICMSST.ret_valorIcmsSt;\r\n p.BaseIPI = impostos.retornoIPI.ret_baseIPI;\r\n p.ValorIPI = impostos.retorno.ret_valorIpi;\r\n p.nfi_valoricmsst = impostos.retornoICMSST.ret_valorIcmsSt;\r\n p.nfi_valoripi = impostos.retornoIPI.ret_valorIpi\r\n p.nig_valorIcms = impostos.retornoICMS.ret_valorIcms;\r\n p.total = (p.nfi_qtde * p.nfi_valorunitario) - p.nfi_valordesconto + p.nfi_valoroutros + p.nfi_valoripi + p.nfi_valoricmsst;\r\n p.impostos = impostos;\r\n\r\n setDadosItens(p);\r\n }\r\n totalSt += parseFloat(p.nfi_valoricmsst);\r\n total += parseFloat(p.total);\r\n } catch (error) {\r\n console.error(\"Error item:\", error);\r\n }\r\n }\r\n formulario.setFieldsValue({ valorTotalSt: totalSt });\r\n }\r\n }\r\n\r\n async function rateioFrete(dadosItens) {\r\n let _numeroItem = 1;\r\n let _totalFrete = 0;\r\n if (dadosItens.length > 0) {\r\n let _valorFrete = parseFloat(resumoNota.valorFrete);\r\n if (_valorFrete > 0) {\r\n // Ordena os itens em ordem de maior valor crescente\r\n var itens = dadosItens.sort((a, b) => a.total - b.total);\r\n // Calcular a soma da multiplicação dos campos\r\n let somaTotal = dadosItens.reduce((total, item) => {\r\n let resultadoMultiplicacao = item.nfi_valorunitario * item.nfi_qtde;\r\n return total + resultadoMultiplicacao;\r\n }, 0);\r\n itens.forEach(item => {\r\n let valorTotalItem = parseFloat(item.nfi_valorunitario * item.nfi_qtde);\r\n item.nfi_valorfrete = calculaValorProporcional(valorTotalItem, _valorFrete, somaTotal);\r\n if (_numeroItem == dadosItens.length) {\r\n item.nfi_valorfrete = parseFloat((_valorFrete - _totalFrete).toFixed(2))\r\n }\r\n _totalFrete += item.nfi_valorfrete;\r\n _numeroItem++;\r\n });\r\n }\r\n }\r\n rateioAcrescimo(dadosItens);\r\n }\r\n\r\n async function rateioAcrescimo(dadosItens) {\r\n let _numeroItem = 1;\r\n let _totalAcrescimo = 0;\r\n if (dadosItens.length > 0) {\r\n let _valorAcrescimo = (parseFloat(resumoNota.valorOutros) + parseFloat(resumoNota.valorSeguro));\r\n if (_valorAcrescimo > 0) {\r\n // Ordena os itens em ordem de maior valor crescente\r\n var itens = dadosItens.sort((a, b) => a.total - b.total);\r\n // Calcular a soma da multiplicação dos campos\r\n let somaTotal = dadosItens.reduce((total, item) => {\r\n let resultadoMultiplicacao = item.nfi_valorunitario * item.nfi_qtde;\r\n return total + resultadoMultiplicacao;\r\n }, 0);\r\n itens.forEach(item => {\r\n item.nfi_valorseguro = 0;\r\n let valorTotalItem = parseFloat(item.nfi_valorunitario * item.nfi_qtde);\r\n let valoracresc = calculaValorProporcional(valorTotalItem, _valorAcrescimo, somaTotal);\r\n //transforma o valor acrescimo em porcentagem\r\n item.percacresc = (valoracresc * 100) / valorTotalItem;\r\n item.nfi_valorseguro = valoracresc;\r\n _totalAcrescimo += item.percacresc;\r\n _numeroItem++;\r\n });\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {ambiente === 2 &&\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (pagina >= pages.tagPages) {\r\n return;\r\n }\r\n pages.setTagPages(pagina);\r\n }} current={pages.tagPages}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.tagPages === 0 &&\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {pages.tagPages === 1 &&\r\n \r\n }\r\n {pages.tagPages === 2 &&\r\n \r\n }\r\n {pages.tagPages === 3 &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form, notification } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, LeftOutlined, RightOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { validaForm } from '../../services/funcoes';\r\nimport ManutencaoNotaFiscalTransferencia from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerNotaFiscalTransferencia({ carregarDados }) {\r\n\r\n const [formNotaFiscalTransferencia] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [tagPages, setTagPages] = useState(null);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n const [carregando, setCarregando] = useState(false);\r\n const [limparDados, setLimparDados] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formNotaFiscalTransferencia.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n formNotaFiscalTransferencia.resetFields();\r\n setProximaPag(null);\r\n setTagPages(0);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n carregarDados();\r\n setLimparDados(true);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Tabs, Form, Select, Button, Collapse, Input } from \"antd\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, CloseOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from '../../services/api';\r\nimport DrawerNotaFiscalTransferencia from './drawer';\r\nimport { BreadcrumbIncluirDados, Data, ComboData } from \"../../components\";\r\nimport { TabNotaFiscalEmitida, TabNotaFiscalRecebida } from './tabPage';\r\nimport { listagemActions, selectPaginadoActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function NotaFiscalTransferencia() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formPesquisa] = Form.useForm();\r\n const [formulario] = Form.useForm();\r\n const [statusNfe, setStatusNfe] = useState([]);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [open, setOpen] = useState(false);\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n useEffect(() => {\r\n carregarDados();\r\n }, []);\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=StatusNFe`).then(res => {\r\n if (res.status === 200) {\r\n setStatusNfe(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n formPesquisa.setFieldsValue({ dataFinal: moment(new Date()) });\r\n formPesquisa.setFieldsValue({ dataInicial: moment(formPesquisa.getFieldValue().dataPesquisa) });\r\n }, []);\r\n\r\n function alternarTab(aba) {\r\n setAbaSelecionada(aba);\r\n carregarDados(null, null, aba);\r\n };\r\n function aplicarFiltrosAvancados() {\r\n let dataInicial = !!formPesquisa.getFieldsValue().dataInicial ? moment(formPesquisa.getFieldValue().dataInicial).format('YYYY-MM-DD') : moment(new Date()).format('YYYY-MM-DD');\r\n let dataFinal = !!formPesquisa.getFieldValue().dataFinal ? moment(formPesquisa.getFieldValue().dataFinal).format('YYYY-MM-DD') : moment(new Date()).format('YYYY-MM-DD');\r\n carregarDados(dataInicial, dataFinal);\r\n };\r\n\r\n function retornaDescricaoStatus(ntf_status) {\r\n if (!!statusNfe) {\r\n return statusNfe.filter((statusNota) => (\r\n statusNota.key === ntf_status\r\n ))[0].value;\r\n }\r\n };\r\n\r\n function carregarDados(dataInicial, dataFinal, aba) {\r\n dataFinal = !!dataFinal ? dataFinal : moment(new Date()).format('YYYY-MM-DD');\r\n dataInicial = !!dataInicial ? dataInicial : !!formPesquisa.getFieldValue().dataPesquisa ? moment(formPesquisa.getFieldValue().dataPesquisa).format('YYYY-MM-DD') : moment(new Date()).format('YYYY-MM-DD');\r\n let filtros = `&situacao=0,1`;\r\n filtros += !!formulario.getFieldValue().pesquisa ? `&filtro=${formulario.getFieldValue().pesquisa}` : '';\r\n filtros += `&status=${(!!formulario.getFieldValue().situacaoNotaTransferencia ? formulario.getFieldValue().situacaoNotaTransferencia.join(',') : '0,1,2,3,4,5')}`;\r\n if (!!aba) {\r\n if (aba === \"1\") {\r\n filtros += '&tipoNFTransferencia=1';\r\n } else {\r\n filtros += '&tipoNFTransferencia=0';\r\n }\r\n } else {\r\n if (abaSelecionada === \"1\") {\r\n filtros += '&tipoNFTransferencia=1';\r\n } else {\r\n filtros += '&tipoNFTransferencia=0';\r\n }\r\n }\r\n filtros += `&dataFinal=${dataFinal}&dataInicial=${dataInicial}`;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `${filtros}`, ordem: '-NotaFiscal.ntf_dataemissao' } })\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n { carregarDados() }} allowClear />\r\n \r\n \r\n \r\n {\r\n formPesquisa.setFieldsValue({ dataFinal: moment(new Date()) });\r\n formPesquisa.setFieldsValue({ dataInicial: moment(formPesquisa.getFieldValue().dataPesquisa) });\r\n carregarDados(moment(formPesquisa.getFieldValue().dataInicial).format('YYYY-MM-DD'), moment(formPesquisa.getFieldValue().dataFinal).format('YYYY-MM-DD'));\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n alternarTab(tab);\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Button, Tag, Table, Input } from \"antd\";\r\nimport { PlusOutlined, PrinterFilled, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { novaAbaNavegador } from \"../../services/funcoes\";\r\nimport { ModalCartaCorrecaoNotaFiscal } from \"../../components/modals/\";\r\nimport { BreadcrumbPage, BotaoAbrirChamado, Imprimir, TabelaDados } from \"../../components\";\r\nimport { listagemActions } from \"../../actions\";\r\n\r\nexport default function CartaCorrecaoNotaFiscal() {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosNota, setDadosNota] = useState({})\r\n const [abrirModal, setAbrirModal] = useState(false);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: \"-ntf_dataemissao\" } });\r\n };\r\n\r\n function incluirNovo(record) {\r\n record.textoCorrecao = \"\";\r\n record.pes_nome = record.ntf_nomedest;\r\n record.ntf_cnpjcpfdest = record.ntf_cpfcnpj;\r\n record.ntf_modelo = record.mdf_descricao;\r\n record.nfd_modelodocumento = !!record.mdf_id ? record.mdf_id : record.mdf_descricao;\r\n record.IdNotaFiscal = record.ntf_id;\r\n setDadosNota(record);\r\n setAbrirModal(true);\r\n };\r\n\r\n function imprimirCartaoCorrecao(correcao) {\r\n novaAbaNavegador(`Danfe/GerarCce?chaveNFe=${correcao.evt_chavenfe}&sequenciaEvento=${correcao.evt_sequencia}`);\r\n };\r\n\r\n function aoSalvar() {\r\n setAbrirModal(false);\r\n carregarDados();\r\n };\r\n\r\n function filtrarLista(valor) {\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: valor, pagina: 1, ordem: \"-ntf_dataemissao\" } });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n filtrarLista(valor)} allowClear />\r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {ntf_numero}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Correções Emitidas',\r\n render: ({ ntf_nomedest, ntf_chavenfe }) => (\r\n
\r\n \r\n
\r\n {ntf_nomedest}\r\n \r\n \r\n Chave NF-e: {ntf_chavenfe}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Série',\r\n width: 100,\r\n render: ({ ser_serie }) => (\r\n
\r\n {ser_serie}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Emissão',\r\n width: 90,\r\n render: ({ ntf_dataemissao }) => (\r\n
\r\n {moment(ntf_dataemissao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total da Nota (R$)',\r\n align: 'right',\r\n width: 180,\r\n render: ({ valor_total }) => (\r\n
\r\n {FormatNumber(valor_total, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } expandir={({ correcoes }) => {\r\n return (\r\n
\r\n \r\n
\r\n
(\r\n
\r\n \r\n
\r\n Sequência: {correcao.evt_sequencia}\r\n \r\n \r\n Correção realizada: {correcao.evt_texto}\r\n \r\n \r\n Data Envio: {moment(correcao.evt_dataEnvio).format('DD/MM/YYYY')}\r\n \r\n \r\n Protocolo: {correcao.evt_protocolo}\r\n \r\n \r\n Processamento: {moment(correcao.evt_dataprocessamento).format('DD/MM/YYYY HH:mm:ss')}\r\n \r\n \r\n \r\n )\r\n }, {\r\n align: 'right',\r\n width: 45,\r\n render: (correcao) => (\r\n
\r\n \r\n
\r\n } onClick={() => { imprimirCartaoCorrecao(correcao) }} />\r\n \r\n \r\n \r\n\r\n )\r\n }\r\n ]} />\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n aoSalvar()} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Typography, Collapse, Checkbox, Badge, Tag, Form, Input, Modal, Spin } from \"antd\";\r\nimport { PlusOutlined, CheckOutlined, CloseOutlined, ExclamationCircleOutlined, ArrowLeftOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { ModalInutilizacaoNfe } from \"../../components/modals/\";\r\nimport { BreadcrumbPage, BotaoAbrirChamado } from \"../../components\";\r\n\r\nexport default function InutilizacaoNfe() {\r\n\r\n const [listaStatusNota, setListaStatusNota] = useState([]);\r\n const [openModal, setOpenModal] = useState(false);\r\n const [listaNfRejeitada, setListaNfRejeitada] = useState([]);\r\n const [listaNfEmDititacaMais30Dias, setListaNfEmDititacaMais30Dias] = useState([]);\r\n const [listaNfEmDititacaMenos30Dias, setListaNfEmDititacaMenos30Dias] = useState([]);\r\n const [qtdeNumerosInutilizar, setQtdeNumerosInutilizar] = useState(0);\r\n const [qtdeInutilizados, setQtdeInutilizados] = useState(0);\r\n const [retornoInutilizacao, setRetornoInutilizacao] = useState([]);\r\n const [formulario] = Form.useForm();\r\n const etapas = {\r\n solicitacao: 1,\r\n processando: 2,\r\n retorno: 3\r\n };\r\n const [etapaAtual, setEtapaAtual] = useState(1);\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ justificativaInutilizacao: 'Solicitada a inutilização dos números de NF-e da respectiva série fiscal pois a numeração não foi utilizada por motivo de rejeição de NF-e ou falha no processo de emissão do sistema.' });\r\n retornaStatusNF();\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n let data30Dias = new Date();\r\n data30Dias.setDate(data30Dias.getDate() - 30);\r\n api.get(`NotaFiscal/GetNotaPorStatus?StatusNFe=4`).then((res) => {\r\n if (res.status === 200) {\r\n setListaNfRejeitada(res.data);\r\n }\r\n }).catch((err) => {\r\n console.log(err.response);\r\n });\r\n\r\n api.get(`NotaFiscal/GetNotaPorStatus?StatusNFe=0&dataFinal=${moment(data30Dias).toISOString()}`).then((dadosMais30) => {\r\n if (dadosMais30.status === 200) {\r\n setListaNfEmDititacaMais30Dias(dadosMais30.data);\r\n }\r\n }).catch((err) => {\r\n console.log(err.response);\r\n });\r\n\r\n api.get(`NotaFiscal/GetNotaPorStatus?StatusNFe=0,4&dataInicial=${moment(data30Dias).toISOString()}`).then((dadosMenos30) => {\r\n if (dadosMenos30.status === 200) {\r\n setListaNfEmDititacaMenos30Dias(dadosMenos30.data.map((dados, idx) => ({ key: idx, ...dados })));\r\n }\r\n }).catch((err) => {\r\n console.log(err.response);\r\n });\r\n };\r\n\r\n function retornaDescricaoStatus(ntf_status) {\r\n if (!!listaStatusNota) {\r\n let status = listaStatusNota.filter((statusNota) => (statusNota.key === ntf_status))[0];\r\n return !!status ? status.value : \"\";\r\n }\r\n };\r\n function retornaStatusNF() {\r\n api.get('Enum/Listar?nome=StatusNFe').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setListaStatusNota(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n function solicitarInutilizacaoNfePendentes(values) {\r\n let listaInutilizacao = [];\r\n let quantidadeNumerosInutilizar = listaNfEmDititacaMenos30Dias.length;\r\n listaNfEmDititacaMenos30Dias.forEach((obj) => {\r\n if (obj.checked) {\r\n listaInutilizacao.unshift({\r\n ser_id: obj.ser_id,\r\n numeroInicial: obj.ntf_numero,\r\n numeroFinal: obj.ntf_numero,\r\n justificativa: values.justificativaInutilizacao\r\n });\r\n quantidadeNumerosInutilizar++;\r\n }\r\n });\r\n\r\n if (listaInutilizacao.length > 0) {\r\n Modal.confirm({\r\n title: 'Solicitar a inutilização dos números de NF-e/NFC-e?',\r\n icon: ,\r\n content: '',\r\n okText: 'Sim, Solicitar Inutilização',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n setQtdeNumerosInutilizar(listaInutilizacao.length);\r\n setEtapaAtual(etapas.processando);\r\n let quantidadeInutilizados = 0;\r\n api.post(`NotaFiscal/InutilizarListaPorFaixa`, listaInutilizacao).then((dados) => {\r\n if (dados.status === 200) {\r\n dados.data.forEach((item) => {\r\n if (item.retorno.cStat === 102 || item.retorno.cStat === 206) {\r\n quantidadeInutilizados++;\r\n }\r\n });\r\n setQtdeInutilizados(quantidadeInutilizados);\r\n setRetornoInutilizacao(dados.data);\r\n setEtapaAtual(etapas.retorno);\r\n } else {\r\n setEtapaAtual(etapas.solicitacao);\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
Não foi possível realizar a inutilização.
\r\n
\r\n
{JSON.stringify(dados.data)}
\r\n \r\n ),\r\n });\r\n }\r\n }, err => {\r\n setEtapaAtual(etapas.solicitacao);\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
Não foi possível realizar a inutilização.
\r\n
\r\n
{err.message}
\r\n \r\n ),\r\n });\r\n }).finally(() => {\r\n carregarDados();\r\n });\r\n }\r\n });\r\n } else {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: 'Não existem registros de números de NF que devem ser inutilizados e/ou você não selecionou nenhum número de NF em digitação para solicitar a inutilização!',\r\n });\r\n }\r\n }\r\n\r\n const genExtraCheckbox = () => (\r\n
{\r\n event.stopPropagation();\r\n }}>\r\n \r\n
\r\n \r\n selecionarTodos(e.target.checked)} />\r\n \r\n \r\n \r\n Notas em Digitação e Rejeitadas lançadas a menos de 30 dias\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const genExtra = () => (\r\n
{\r\n event.stopPropagation();\r\n }}>\r\n \r\n
\r\n Notas em digitação lançadas a mais de 30 dias\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const genExtraRejeitadas = () => (\r\n
{\r\n event.stopPropagation();\r\n }}>\r\n \r\n
\r\n Notas Rejeitadas\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n function selecionarTodos(checked) {\r\n let lista = [...listaNfEmDititacaMenos30Dias];\r\n lista.forEach((item) => {\r\n item.checked = checked;\r\n });\r\n setListaNfEmDititacaMenos30Dias(lista);\r\n };\r\n\r\n function selecionarNota(nota) {\r\n let lista = [...listaNfEmDititacaMenos30Dias];\r\n let itemEditar = lista.filter((item) => { return item.key === nota.key })[0];\r\n itemEditar.checked = !itemEditar.checked;\r\n setListaNfEmDititacaMenos30Dias(lista);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {etapaAtual === etapas.solicitacao &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {etapaAtual === etapas.solicitacao &&\r\n \r\n \r\n \r\n A inutilização de número de NF-e/NFC-e tem a finalidade de permitir que o emissor comunique à Sefaz, até o décimo dia do mês subsequente os números de NF-e/NFC-e que não serão utilizados em razão de ter ocorrido uma quebra de sequência da numeração da NF-e/NFC-e. A inutilização de número só é possível caso a numeração ainda não tenha nenhum vinculo fiscal, ou seja, a numeração não pode estar associada a um Documento Fiscal autorizado, cancelado ou denegado.\r\n

\r\n Abaixo estão listadas todas as notas desta filial que não possuem vinculo fiscal e devem ser inutilizadas, notas rejeitadas ou em digitação lançadas a mais de 30 dias serão inutilizadas, notas em digitação lançadas a menos de 30 dias deverão ser selecionadas para incluir na solicitação de inutilização.\r\n
\r\n \r\n \r\n }\r\n {etapaAtual === etapas.processando &&\r\n
\r\n \r\n \r\n \r\n \r\n Processando solicitação de inutilização...\r\n \r\n \r\n Esta operação pode demorar um pouco, por favor aguarde.\r\n \r\n
\r\n }\r\n {etapaAtual === etapas.solicitacao &&\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {listaNfEmDititacaMenos30Dias.map((nota) => (\r\n
\r\n \r\n
\r\n (selecionarNota(nota))} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {retornaDescricaoStatus(nota.ntf_status)}\r\n \r\n \r\n \r\n \r\n {nota.mdf_id === '55' ? 'NF-e' : 'NFC-e'}\r\n \r\n \r\n \r\n \r\n Número: {nota.ntf_numero}\r\n \r\n \r\n Série: {nota.ser_numero} - {nota.ser_serie}\r\n \r\n \r\n Data/Hora de registro no sistema: {moment(nota.ntf_datainclusao).format('DD/MM/YYYY')} às {moment(nota.ntf_datainclusao).format('HH:mm')}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n {listaNfEmDititacaMais30Dias.map((nota) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Em Digitação\r\n \r\n \r\n \r\n {nota.mdf_id === '55' ? 'NF-e' : 'NFC-e'}\r\n \r\n \r\n \r\n \r\n Número: {nota.ntf_numero}\r\n \r\n \r\n Série: {nota.ser_numero} - {nota.ser_serie}\r\n \r\n \r\n Data/Hora de registro no sistema: {moment(nota.ntf_datainclusao).format('DD/MM/YYYY')} às {moment(nota.ntf_datainclusao).format('HH:mm')}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n {listaNfRejeitada.map((nota) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Rejeitada\r\n \r\n \r\n \r\n {nota.mdf_id === '55' ? 'NF-e' : 'NFC-e'}\r\n \r\n \r\n \r\n \r\n Número: {nota.ntf_numero}\r\n \r\n \r\n Série: {nota.ser_numero} - {nota.ser_serie}\r\n \r\n \r\n Data/Hora de registro no sistema: {moment(nota.ntf_datainclusao).format('DD/MM/YYYY')} às {moment(nota.ntf_datainclusao).format('HH:mm')}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {etapaAtual === etapas.retorno &&\r\n
\r\n \r\n \r\n \r\n \r\n Resultado da Solicitação de Inutilização\r\n \r\n \r\n
\r\n Solicitações de Inutilização:\r\n {qtdeNumerosInutilizar}\r\n \r\n \r\n \r\n \r\n Inutilizações realizadas com sucesso:\r\n {qtdeInutilizados}\r\n \r\n \r\n
\r\n {retornoInutilizacao.map((item) => (\r\n
\r\n \r\n
\r\n {item.retorno.xMotivo}\r\n \r\n \r\n {item.retorno.infInut.mod === '55' ? 'NF-e' : 'NFC-e'}\r\n \r\n \r\n Número: {item.retorno.infInut.nNFIni}\r\n \r\n \r\n Série: {item.retorno.infInut.serie}\r\n \r\n \r\n Protocolo: {item.retorno.infInut.nProt}\r\n \r\n \r\n Data/Hora de registro no sistema: {moment(item.retorno.infInut.dhRecbto).format('DD/MM/YYYY')} às {moment(item.retorno.infInut.dhRecbto).format('HH:mm')}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n }\r\n setOpenModal(false)} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Col, Form, Row, Button, Input, InputNumber, Descriptions, Card, Tooltip, message, notification } from \"antd\";\r\nimport { SearchOutlined, BarcodeOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { InputPreco, SelectProduto } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\n\r\nexport default function FiltroProdutoOrc({ dadosTabela, form, btnEditando, itemEditando, }) {\r\n const [desabilitarProd_id, setDesabilitarProd_id] = useState(false);\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [dadosDetalhes, setDadosDetalhes] = useState({});\r\n const [consultaProduto, setConsultaProduto] = useState(false);\r\n const [dadosProduto, setDadosProduto] = useState({});\r\n const [{ manutencao, listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [listaProdutos, setListaProdutos] = useState([]);\r\n const refProd = useRef();\r\n\r\n const togglePesquisa = () => {\r\n setConsultaProduto(!consultaProduto);\r\n setExibirDetalhes(false);\r\n limparCampos();\r\n };\r\n\r\n useEffect(() => {\r\n if (consultaProduto && !!refProd && !!refProd.current) {\r\n refProd.current.focus();\r\n }\r\n }, [consultaProduto]);\r\n\r\n\r\n useEffect(() => {\r\n if (btnEditando.editando && isObjetoDiffVazio(itemEditando)) {\r\n editandoItem(itemEditando);\r\n setExibirDetalhes(true);\r\n }\r\n }, [btnEditando])\r\n\r\n\r\n function editandoItem(dadosEditando) {\r\n let dadosTemp = {};\r\n let dados = dadosEditando;\r\n setDesabilitarProd_id(true);\r\n form.setFieldsValue({\r\n pro_id: dados.pro_id,\r\n prg_id: dados.prg_id,\r\n pro_ean: dados.pro_ean,\r\n pro_descricao: dados.pro_descricao,\r\n ocp_quantidade: dados.ocp_quantidade,\r\n ocp_valorun: dados.ocp_valorun,\r\n });\r\n alterarValorTotal();\r\n dadosTemp = {\r\n pro_id: dadosEditando.pro_id,\r\n prg_id: dadosEditando.prg_id,\r\n pro_descricao: dadosEditando.pro_descricao,\r\n pro_codigo: dadosEditando.pro_codigo,\r\n pro_ean: dadosEditando.pro_ean,\r\n };\r\n setDadosDetalhes(dadosTemp);\r\n }\r\n\r\n function alterarValorTotal() {\r\n let total = 0;\r\n total = form.getFieldValue().ocp_quantidade * form.getFieldValue().ocp_valorun;\r\n form.setFieldsValue({ valorTotalItem: total.toFixed(2) });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.pro_id) {\r\n form.setFieldsValue({ pro_id: manutencao.dados.pro_id, ocp_quantidade: 1, });\r\n onChangeProID(manutencao.dados.pro_id);\r\n\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function popularLista(listaDados) {\r\n listaDados.sort((a, b) => b.key - a.key);\r\n dadosTabela.setItensOrdemCompra(listaDados);\r\n limparCampos();\r\n };\r\n\r\n\r\n function validarItem(dados) {\r\n if (dados.ocp_quantidade === 0 || !!!dados.ocp_quantidade) {\r\n notification.warning({ message: 'Aviso!', description: 'Quantidade do Item Inválida!' });\r\n return false;\r\n }\r\n if (parseFloat(dados.ocp_valorun) === 0 || parseFloat(dados.ocp_valorun) === 0) {\r\n notification.warning({ message: 'Aviso!', description: 'Valor do Item Inválido!' });\r\n return false\r\n }\r\n return true;\r\n }\r\n\r\n\r\n function adicionarItem(item = {}) {\r\n let dadosTemp = [...dadosTabela.itensOrdemCompra];\r\n let dadosFormulario = form.getFieldValue();\r\n let dados = {};\r\n if (consultaProduto) {\r\n dados = { ...item };\r\n dados.key = retornaSequencial(dadosTemp);\r\n adicionarItemOrdemCompra(dados, () => { dadosTemp.push(dados); });\r\n popularLista(dadosTemp);\r\n limparCampos()\r\n }\r\n else {\r\n if (!!validarItem(dadosFormulario)) {\r\n if (dadosTemp.find(campo => campo.pro_id === form.getFieldValue().pro_id\r\n && ((!!form.getFieldValue().prg_id && form.getFieldValue().prg_id === campo.prg_id) || !form.getFieldValue().prg_id))) {\r\n if (!!form.getFieldValue().prg_id) {\r\n dados = dadosTemp.find(campo => campo.prg_id === form.getFieldValue().prg_id);\r\n } else {\r\n dados = dadosTemp.find(campo => campo.pro_id === form.getFieldValue().pro_id);\r\n }\r\n adicionarItemOrdemCompra(dados);\r\n } else {\r\n dados = { ...dadosProduto };\r\n dados.key = retornaSequencial(dadosTemp);\r\n adicionarItemOrdemCompra(dados, () => { dadosTemp.push(dados); });\r\n }\r\n popularLista(dadosTemp);\r\n limparCampos()\r\n }\r\n }\r\n if (!!btnEditando && btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n }\r\n };\r\n\r\n function retornaSequencial(lista) {\r\n return lista.length > 0 ? lista[0].key + 1 : 0;\r\n };\r\n\r\n function adicionarItemOrdemCompra(dadosItem, callback) {\r\n\r\n let formulario = form.getFieldValue();\r\n dadosItem.ocp_quantidade = !!formulario.ocp_quantidade ? formulario.ocp_quantidade : 1;\r\n dadosItem.ocp_valorun = parseFloat(!!formulario.ocp_valorun ? formulario.ocp_valorun : dadosItem.ocp_valorun);\r\n dadosItem.grade = dadosItem.descricaograde;\r\n dadosItem.ocp_valortotal = parseFloat(dadosItem.ocp_valorun * dadosItem.ocp_quantidade);\r\n if (!!callback) {\r\n callback();\r\n }\r\n };\r\n\r\n function cancelar() {\r\n limparCampos();\r\n };\r\n\r\n function limparCampos() {\r\n form.setFieldsValue({ pro_id: null, pro_codigo: null });\r\n setDadosProduto({})\r\n setExibirDetalhes(false);\r\n setDadosDetalhes({});\r\n if (btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n }\r\n };\r\n\r\n async function buscarProdutoCodBarra(campo) {\r\n let dadosProduto = {};\r\n let codigoEan = campo.target.value.trim();\r\n let dados = await api.get(`Produto/ListaProdutoCodigo?filtro=${codigoEan}`);\r\n if (!!dados.data && dados.data.length > 0) {\r\n dadosProduto = dados.data[0];\r\n if (!!refProd && !!refProd.current) {\r\n refProd.current.focus();\r\n }\r\n }\r\n let unidade = await api.get(`Produto/BuscaUnidadeMedidaProduto?IdProduto=${dadosProduto.pro_id}`);\r\n let valor = 0;\r\n if (dadosProduto.prg_id != null) {\r\n valor = (await api.get(`Produto/BuscarCustoProduto?IdProduto=${dadosProduto.pro_id}&tipoCusto=2&codigoProdutoGrade=${dadosProduto.prg_id}`)).data;\r\n } else {\r\n valor = (await api.get(`Produto/BuscarCustoProduto?IdProduto=${dadosProduto.pro_id}&tipoCusto=2`)).data;\r\n }\r\n let custoProduto = valor;\r\n dadosProduto.ump_casasdecimais = 0;\r\n dadosProduto.ocp_quantidade = (dadosProduto.ocp_quantidade) ? dadosProduto.ocp_quantidade : 1;\r\n dadosProduto.ocp_valorun = (!!custoProduto) ? custoProduto : 0;\r\n dadosProduto.ocp_valortotal = parseFloat(dadosProduto.ocp_valorun * dadosProduto.ocp_quantidade);\r\n if (!!unidade.data) {\r\n dadosProduto.ump_casasdecimais = unidade.data[0].ump_casasdecimais;\r\n }\r\n setDadosProduto(dadosProduto);\r\n if (!!dados.data && dados.data.length > 0) {\r\n adicionarItem(dadosProduto);\r\n }\r\n };\r\n\r\n async function onChangeProID(pro_id) {\r\n let dadosProduto = listaProdutos.filter(pro => pro.key === pro_id)[0];\r\n let unidade = await api.get(`Produto/BuscaUnidadeMedidaProduto?IdProduto=${dadosProduto.pro_id}`);\r\n let valor = 0;\r\n if (dadosProduto.prg_id != null) {\r\n valor = (await api.get(`Produto/BuscarCustoProduto?IdProduto=${dadosProduto.pro_id}&tipoCusto=2&codigoProdutoGrade=${dadosProduto.prg_id}`)).data;\r\n } else {\r\n valor = (await api.get(`Produto/BuscarCustoProduto?IdProduto=${dadosProduto.pro_id}&tipoCusto=2`)).data;\r\n }\r\n let custoProduto = valor;\r\n dadosProduto.ump_casasdecimais = 0;\r\n dadosProduto.ocp_quantidade = (dadosProduto.ocp_quantidade) ? dadosProduto.ocp_quantidade : 1;\r\n dadosProduto.ocp_valorun = (!!custoProduto) ? custoProduto : 0;\r\n dadosProduto.ocp_valortotal = parseFloat(dadosProduto.ocp_valorun * dadosProduto.ocp_quantidade)\r\n\r\n if (!!unidade.data) {\r\n dadosProduto.ump_casasdecimais = unidade.data[0].ump_casasdecimais;\r\n }\r\n setDadosProduto(dadosProduto);\r\n form.setFieldsValue({ ocp_quantidade: dadosProduto.ocp_quantidade ?? 1, ocp_valorun: dadosProduto.ocp_valorun, valorTotalItem: dadosProduto.ocp_valortotal });\r\n\r\n setExibirDetalhes(true);\r\n let dadosTemp = {};\r\n dadosTemp.prg_id = dadosProduto.prg_id;\r\n dadosTemp.pro_descricao = `${dadosProduto.pro_descricao} ${!!dadosProduto.descricaograde ? \"-\" : \"\"} ${dadosProduto.descricaograde}`;\r\n dadosTemp.pro_codigo = dadosProduto.pro_codigo;\r\n dadosTemp.pro_ean = !!dadosProduto.prg_ean ? dadosProduto.prg_ean : dadosProduto.pro_ean;\r\n dadosTemp.ump_id = dadosProduto.ump_id;\r\n setDadosDetalhes(dadosTemp);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {!!consultaProduto === false &&\r\n
\r\n \r\n { onChangeProID(dados) }} ordem={\"pro_descricao\"} setListaDados={setListaProdutos} />\r\n \r\n \r\n }\r\n {!!consultaProduto &&\r\n \r\n \r\n {\r\n buscarProdutoCodBarra(value)\r\n }} placeholder=\"Informe o Produto/Mercadoria\" />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {exibirDetalhes &&\r\n
\r\n \r\n
\r\n Produto: {dadosDetalhes.pro_descricao}\r\n \r\n \r\n Código Interno: {dadosDetalhes.pro_codigo}\r\n \r\n \r\n Código de Barras: {dadosDetalhes.pro_ean}\r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n { alterarValorTotal() }} />\r\n \r\n \r\n \r\n { alterarValorTotal() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Select, Divider, Button, Typography, Table, notification } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { Data, FormGW, InputPreco, SelectPaginacao } from \"../../components\";\r\nimport { ModalGradeOrdemCompra } from \"../../components/modals/\";\r\nimport FiltroProdutoOrc from \"../../components/filtroProdutoOrc\";\r\nimport { getIdUsuario } from \"../../services/auth\";\r\nimport SelectPaginado from '../../components/selectPaginado';\r\n\r\nexport default function ManutencaoOrdemCompra({ formulario, carregando, aoSalvar, transportador }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [openModalGradeOrdemCompra, setOpenModalGradeOrdemCompra] = useState(false);\r\n const [itensOrdemCompra, setItensOrdemCompra] = useState([]);\r\n const [totalizadores, setTotalizadores] = useState({});\r\n const [pagina, setPagina] = useState(1);\r\n const [regPagina, setRegPagina] = useState(10);\r\n const [editando, setEditando] = useState(false);\r\n const [dadosEditando, setDadosEditando] = useState({});\r\n \r\n\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n carregarDados();\r\n if (!(!!formulario.getFieldValue().orc_datainclusao)) {\r\n formulario.setFieldsValue({ orc_datainclusao: moment(new Date()) });\r\n }\r\n if (!!manutencao.dados) {\r\n let lista = [];\r\n if (!!manutencao.dados.for_id) {\r\n lista.push({ name: \"for_id\", campo: \"FornecedorId\", value: manutencao.dados.for_id });\r\n }\r\n if (!!manutencao.dados.trn_id) {\r\n lista.push({ name: \"trn_id\", campo: \"IdTrasnportador\", value: manutencao.dados.trn_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n manutencao.dados.orc_dataconclusao = moment(manutencao.dados.orc_dataconclusao);\r\n manutencao.dados.orc_prazomaximo = moment(manutencao.dados.orc_prazomaximo);\r\n manutencao.dados.orc_datainclusao = moment(manutencao.dados.orc_datainclusao);\r\n if (!!manutencao.dados.orc_id && itensOrdemCompra.length === 0) {\r\n buscarItensOrdemCompra(manutencao.dados.orc_id);\r\n }\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [manutencao.dados])\r\n\r\n useEffect(() => {\r\n let dados = {};\r\n dados.total = 0;\r\n dados.quantidade = 0;\r\n if (itensOrdemCompra.length > 0) {\r\n itensOrdemCompra.forEach((item) => {\r\n dados.total += parseFloat(item.ocp_valorun * item.ocp_quantidade);\r\n dados.quantidade += item.ocp_quantidade;\r\n });\r\n }\r\n formulario.setFieldsValue({ orc_valortotal: parseFloat(dados.total).toFixed(2) });\r\n dados.total += parseFloat(!!formulario.getFieldValue().orc_valorfrete ? formulario.getFieldValue().orc_valorfrete : 0);\r\n setTotalizadores(dados);\r\n }, [itensOrdemCompra]);\r\n\r\n async function salvarManutencao(values) {\r\n\r\n if (itensOrdemCompra.length > 0) {\r\n carregando(true);\r\n values.ordemcompraitens = itensOrdemCompra;\r\n values.orc_valorfrete = parseFloat(values.orc_valorfrete);\r\n if (!(!!values.orc_id)) {\r\n values.orc_status = 0;\r\n }\r\n\r\n if (typeof values.orc_id == 'undefined') delete values.orc_id;\r\n values.usu_id = getIdUsuario();\r\n\r\n try {\r\n var res = values.orc_id ? await api.put('OrdemCompra/Editar', values) : await api.post('OrdemCompra/Incluir', values);\r\n if (res.status == 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Ordem de Compra foram salvos com sucesso!\" });\r\n }\r\n } catch (error) {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(error.response) });\r\n } finally {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n\r\n } else {\r\n notification.warning({ message: 'Aviso!', description: 'É necessário informar pelo menos um item!' });\r\n }\r\n };\r\n\r\n function carregarDados() {\r\n\r\n if (!!formulario.getFieldValue().orc_id) {\r\n api.get(`OrdemCompraItem/ListarItensOrdemCompra?codigoOrdemCompra=${formulario.getFieldValue().orc_id}`).then(\r\n (res) => {\r\n let itens = res.data;\r\n itens.forEach((item, indice) => {\r\n if (!!item.prg_id) {\r\n item.grade = {\r\n prg_id: item.prg_id,\r\n grade: item.mgp_descricao,\r\n mgp_descricao: item.mgp_descricao,\r\n prg_ean: item.prg_ean,\r\n prg_codigoetiqueta: item.prg_codigoetiqueta,\r\n prg_valorvenda: item.lpi_valorvenda,\r\n }\r\n }\r\n if (indice + 1 === itens.length) {\r\n setItensOrdemCompra(itens);\r\n }\r\n });\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n };\r\n\r\n function buscarItensOrdemCompra(orc_id) {\r\n api.get(`OrdemCompraItem/ListarItensOrdemCompra?codigoOrdemCompra=${orc_id}`).then(\r\n res => {\r\n setItensOrdemCompra(res.data);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n\r\n function atualizarValorTotalOC() {\r\n let dados = { ...totalizadores };\r\n dados.total = parseFloat(!!formulario.getFieldValue().orc_valortotal ? formulario.getFieldValue().orc_valortotal : 0) + parseFloat(!!formulario.getFieldValue().orc_valorfrete ? formulario.getFieldValue().orc_valorfrete : 0);\r\n setTotalizadores(dados);\r\n };\r\n\r\n function editarItem(registro) {\r\n setDadosEditando(registro);\r\n setEditando(true);\r\n //dispatch({ type: manutencaoActions.CHANGE, data: { dados: registro } });\r\n };\r\n\r\n function removerItem(item) {\r\n let dadosTemp = [...itensOrdemCompra];\r\n dadosTemp = dadosTemp.filter((dados) => dados !== item);\r\n setItensOrdemCompra(dadosTemp);\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({trn.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Produtos\" Produtos\r\n \r\n \r\n Adicione o(s) produto(s) para este ordem de compra aqui.\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {itensOrdemCompra.length > 0 &&\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {pro_descricao}\r\n \r\n \r\n \r\n \r\n Grade: {!!mgp_descricao ? mgp_descricao : (!!grade ? grade : 'Não Possui')} \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Quantidade',\r\n align: 'center',\r\n width: 85,\r\n render: ({ ocp_quantidade }) => (\r\n
\r\n {ocp_quantidade}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Unitário (R$)',\r\n align: 'right',\r\n width: 150,\r\n render: ({ ocp_valorun }) => (\r\n
\r\n {FormatNumber(ocp_valorun || 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Quantidade de Itens: {totalizadores.quantidade}\r\n \r\n \r\n {itensOrdemCompra.length > 0 &&\r\n \r\n \r\n { atualizarValorTotalOC() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(totalizadores.total, true)}\r\n \r\n \r\n \r\n }\r\n setOpenModalGradeOrdemCompra(false)} />\r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoOrdemCompra from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerOrdemCompra({ carregarDados, alteraData, fornecedor, transportador }) {\r\n\r\n const [formOrdemCompra] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formOrdemCompra.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } }); \r\n alteraData();\r\n carregarDados();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n {fecharDrawer()}}\r\n visible={ui.showDrawer}\r\n closeIcon={}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Typography, Row, Col, Form, Divider, InputNumber, Card } from \"antd\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { validarNumeros } from \"../../services/funcoes\";\r\nimport { FormasPagamentoRecebimento, InputPreco } from \"../../components\";\r\n\r\nexport default function TabFaturamento({ form, dadosItens, dadosOperacao }) {\r\n\r\n const [valorNota, setValorNota] = useState(0);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n useEffect(() => {\r\n calcularFaturamento();\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n recalcularTotal();\r\n }, [valorNota]);\r\n\r\n function calcularFaturamento() {\r\n let formulario = form.getFieldValue();\r\n let subTotal = 0;\r\n dadosItens.forEach((item) => {\r\n subTotal += item.valorTotalDesconto;\r\n });\r\n form.setFieldsValue({ subTotalNotaFiscal: parseFloat(subTotal).toFixed(2)});\r\n\r\n setValorNota(parseFloat(subTotal) + validarNumeros(formulario.orc_valorfrete) + validarNumeros(formulario.orc_valorseguro) + validarNumeros(formulario.valorOutrasDespesas));\r\n\r\n recalcularTotal();\r\n };\r\n\r\n function calcularDesconto(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorDesconto);\r\n let perc = validarNumeros(formulario.percentualDesconto);\r\n let tot = parseFloat(valorNota);\r\n let result = 0;\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorDesconto: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percentualDesconto: result.toFixed(2) });\r\n }\r\n\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function calcularDesconto(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorDesconto);\r\n let perc = validarNumeros(formulario.percentualDesconto);\r\n let tot = parseFloat(valorNota);\r\n let result = 0;\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorDesconto: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percentualDesconto: result.toFixed(2) });\r\n }\r\n\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function calcularAcrescimo(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorAcrescimo);\r\n let perc = validarNumeros(formulario.percentualAcrescimo);\r\n let tot = (!!valorNota ? parseFloat(valorNota) : 0);\r\n let result = 0;\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorAcrescimo: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percentualAcrescimo: result.toFixed(2) });\r\n }\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function recalcularTotal() {\r\n let formulario = form.getFieldValue();\r\n let valor = 0;\r\n if (!!formulario) {\r\n valor = valorNota - validarNumeros(formulario.valorDesconto) + validarNumeros(formulario.valorAcrescimo);\r\n form.setFieldsValue({ valorTotal: valor.toFixed(2) });\r\n let valorPago = 0; \r\n if (!!manutencao.dados && !!manutencao.dados.faturamento) {\r\n manutencao.dados.faturamento.forEach((dadosFat) => {\r\n valorPago += parseFloat(dadosFat.pfp_valor);\r\n });\r\n }\r\n form.setFieldsValue({ pfp_valor: (valor - valorPago).toFixed(2) });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Totais\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n calcularFaturamento()}\r\n className=\"text-right\" />\r\n \r\n \r\n calcularFaturamento()}\r\n className=\"text-right\" />\r\n \r\n \r\n calcularFaturamento()}\r\n className=\"text-right\" />\r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onChange={() => { calcularDesconto('PERC'); }}\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n { calcularDesconto('VALOR'); }} />\r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onChange={() => { calcularAcrescimo('PERC') }}\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n { calcularAcrescimo('VALOR') }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total da Nota (R$)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, InputNumber, Tag, Table, Switch } from \"antd\";\r\n\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function TabItens({ form, dadosItens }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [totalizador, setTotalizador] = useState({});\r\n\r\n useEffect(() => {\r\n if (ui.showDrawerExtra) {\r\n ratearDescontoFrete();\r\n }\r\n }, [ui.showDrawerExtra]);\r\n\r\n function ratearDescontoFrete(item = [...dadosItens.dadosItens]) {\r\n\r\n var itensSemQuantidade = 0;\r\n var somaTotalOrdem = 0;\r\n let vlrTotalRecebendo = 0;\r\n let vlrTotalDesconto = 0;\r\n let somaRateio = 0;\r\n let resto = 0;\r\n let QtdeTotalRecebendo = 0;\r\n let frete = dadosItens.frete ?? 0;\r\n let totalSemDesc = 0;\r\n let valorTotal = 0;\r\n let percentualDesconto = (parseFloat(form.getFieldValue().percentualDesconto) / 100);\r\n\r\n item.forEach((itens) => {\r\n var valorTotalItem = itens.ocp_quantidade * itens.ocp_valorun;\r\n somaTotalOrdem += valorTotalItem;\r\n });\r\n\r\n item.forEach(itens => {\r\n var valorFrete = 0;\r\n var qtdrecebendo = form.getFieldValue(`ocp_qtdrecebendo${itens.key}`) ?? 0;\r\n var maximoItens = itens.ocp_quantidade - itens.ocp_quantidaderecebida;\r\n\r\n if (qtdrecebendo <= maximoItens) {\r\n itens.ocp_qtdrecebendo = qtdrecebendo;\r\n } else {\r\n itens.ocp_qtdrecebendo = maximoItens;\r\n }\r\n if (itens.max == true) {\r\n itens.ocp_qtdrecebendo = maximoItens;\r\n itens.qtdrecebendo = maximoItens;\r\n form.setFieldsValue({ [`ocp_qtdrecebendo${itens.key}`]: itens.qtdrecebendo })\r\n }\r\n\r\n itens.valorTotalDesconto = 0;\r\n itens.ocp_frete = 0;\r\n itens.ocp_desconto = 0;\r\n itens.desconto = 0;\r\n\r\n var totalItemRecebendo = qtdrecebendo * itens.ocp_valorun;\r\n var desconto = totalItemRecebendo * (!!percentualDesconto ? percentualDesconto : 0);\r\n\r\n itens.valorTotalDesconto = totalItemRecebendo;\r\n itens.desconto = desconto;\r\n itens.frete = valorFrete;\r\n vlrTotalDesconto = desconto;\r\n vlrTotalRecebendo += totalItemRecebendo;\r\n totalSemDesc += totalItemRecebendo;\r\n\r\n itensSemQuantidade++;\r\n });\r\n\r\n vlrTotalRecebendo = parseFloat(vlrTotalRecebendo.toFixed(2));\r\n totalSemDesc = parseFloat(totalSemDesc.toFixed(2));\r\n QtdeTotalRecebendo = item.length;\r\n\r\n var itensSemQuantidade = (item.length - itensSemQuantidade) < 0 ? true : false;\r\n\r\n if (somaRateio > 0 && itensSemQuantidade) {\r\n resto = parseFloat(vlrTotalRecebendo) - somaRateio;\r\n if (resto !== 0) {\r\n item[item.length - 1].valorTotalDesconto += resto;\r\n }\r\n }\r\n\r\n form.setFieldsValue({ orc_valortotal: vlrTotalRecebendo, totalSemDesc: totalSemDesc, frete: frete, QtdeTotalRecebendo: QtdeTotalRecebendo });\r\n setTotalizador({ valorTotal: vlrTotalRecebendo, totalSemDesc: totalSemDesc, totalDesconto: vlrTotalDesconto, QtdeTotalRecebendo: QtdeTotalRecebendo });\r\n dadosItens.setDadosItens(totalSemDesc);\r\n dadosItens.setDadosItens(valorTotal);\r\n dadosItens.setDadosItens(item);\r\n return item;\r\n };\r\n\r\n\r\n function switchReceber() {\r\n let valorTotal = 0;\r\n let qtdeTotalRecebendo = 0;\r\n let dados = [...dadosItens.dadosItens];\r\n dados.forEach(item => {\r\n item.max = true;\r\n item.ocp_qtdrecebendo = item.ocp_quantidade - item.ocp_quantidaderecebida;\r\n item.valorTotalDesconto = item.ocp_qtdrecebendo * item.ocp_valorun;\r\n form.setFieldsValue({ [`ocp_qtdrecebendo${item.key}`]: item.ocp_qtdrecebendo })\r\n if (item.ocp_qtdrecebendo > 0)\r\n qtdeTotalRecebendo++;\r\n\r\n valorTotal += item.valorTotalDesconto;\r\n })\r\n dadosItens.setDadosItens(dados);\r\n setTotalizador({ valorTotal: valorTotal, QtdeTotalRecebendo: qtdeTotalRecebendo });\r\n };\r\n\r\n\r\n function alteraQuantidadeItemRecebido(item, key) {\r\n\r\n let valorTotal = 0;\r\n let qtdrecebendo = form.getFieldValue(`ocp_qtdrecebendo${key}`)\r\n let dados = [...dadosItens.dadosItens];\r\n let i = dados.find(i => i.key == item.key)\r\n i.ocp_qtdrecebendo = qtdrecebendo\r\n i.valorTotalDesconto = i.ocp_qtdrecebendo * i.ocp_valorun;\r\n dadosItens.setDadosItens(dados);\r\n let itens = dadosItens.dadosItens.filter(r => r.ocp_qtdrecebendo > 0)\r\n itens.forEach(i =>{\r\n valorTotal += i.valorTotalDesconto;\r\n }) \r\n setTotalizador({ valorTotal: valorTotal, QtdeTotalRecebendo: itens.length });\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {\r\n switchReceber(item, item.key)}\r\n /> Receber Todos os Itens?\r\n }\r\n\r\n
\r\n
\r\n {\r\n !!dadosItens.dadosItens && dadosItens.dadosItens.length > 0 &&\r\n
(\r\n
\r\n \r\n
\r\n \r\n {key} \r\n \r\n {pro_id} - {pro_descricao}\r\n \r\n \r\n \r\n \r\n EAN: {ean}\r\n \r\n \r\n Grade: {grade}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'Qtde. Solic.',\r\n width: 20,\r\n align: 'center',\r\n render: ({ ocp_quantidade }) => (\r\n
\r\n {ocp_quantidade?.toFixed(0)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Recebido',\r\n align: 'center',\r\n width: 20,\r\n render: ({ ocp_quantidaderecebida }) => (\r\n
\r\n {ocp_quantidaderecebida}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde. Receber',\r\n align: 'center',\r\n width: 20,\r\n render: (item) => (\r\n
\r\n \r\n alteraQuantidadeItemRecebido(item, item.key)}\r\n className=\"w-60\" />\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: 20,\r\n render: ({ nfi_valorunitario }) => (\r\n
\r\n {FormatNumber(nfi_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: 40,\r\n render: ({ valorTotalDesconto }) => (\r\n
\r\n {FormatNumber(valorTotalDesconto, true)}\r\n
\r\n ),\r\n }\r\n ]} dataSource={dadosItens.dadosItens}\r\n\r\n scroll={{ x: 900 }} />\r\n }\r\n \r\n
\r\n \r\n
\r\n Quantidade Itens:\r\n \r\n \r\n {totalizador.QtdeTotalRecebendo}\r\n \r\n \r\n \r\n \r\n Valor Total dos Itens (R$):\r\n \r\n \r\n {FormatNumber(totalizador.valorTotal, true)}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Card, Form, Typography, Input, Divider, InputNumber } from \"antd\";\r\nimport { InputPreco } from \"../../components\";\r\n\r\nexport default function TabResumo({ form, dadosItens }) {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Resumo\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n disabled\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n disabled\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n IPI: R$ 0,00\r\n \r\n \r\n \r\n \r\n Substituição Tributária (R$): 0,00\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total de Itens: {dadosItens.length} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Steps, Select, Modal, notification, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from \"../../state\";\r\nimport { TabFaturamento, TabItens, TabResumo } from './tabPage';\r\nimport { Data, FormGW, SelectPaginacao } from '../../components';\r\nimport { manutencaoActions, selectPaginadoActions } from '../../actions';\r\nimport { validaForm, validarNumeros } from '../../services/funcoes';\r\nimport SelectPaginado from '../../components/selectPaginado';\r\n\r\nexport default function ManutencaoRecebimentoOrdemCompra({ carregarDados, form, carregando, aoSalvar, pages, proximaPag, alteraData }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosContribuinte, setDadosContribuinte] = useState({});\r\n const [dadosItens, setDadosItens] = useState([]);\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState([]);\r\n const [listaItens, setListaItens] = useState([]);\r\n const [dadosVendedor, setDadosVendedor] = useState({});\r\n const [permiteValidar, setPermiteValidar] = useState(true);\r\n const [formasPagamento, setFormasPagamento] = useState([]);\r\n const [operacaoFiscal, setOperacaoFiscal] = useState({});\r\n const [carregarPagina, setCarregarPagina] = useState(false);\r\n const [frete, setFrete] = useState(0);\r\n const [editando, setEditando] = useState(false);\r\n\r\n const listaValidacoesDest = [\r\n { nome: 'ntf_dataemissao', obrigatorio: true, label: 'Data Lançamento' },\r\n { nome: 'ope_id', obrigatorio: true, label: 'Operação' }\r\n ];\r\n\r\n const pagamentosCodigos = {\r\n dinheiro: 1,\r\n cheque: 2,\r\n cartaoCredito: 3,\r\n cartaoDebito: 4,\r\n crediarioLoja: 5,\r\n valeAlimentacao: 6,\r\n valeRefeicao: 7,\r\n valeCombustivel: 9,\r\n antecipacao: 12,\r\n valePresente: 12,\r\n boleto: 15,\r\n depositoBancario: 16,\r\n pix: 17,\r\n transfBancaria: 18,\r\n semPagamento: 90,\r\n outro: 99\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n carregarDados();\r\n if (!!manutencao.dados && !!manutencao.dados.ntf_id) {\r\n form.setFieldsValue(manutencao.dados);\r\n setEditando(true);\r\n } else {\r\n setEditando(false);\r\n }\r\n if (!!!form.getFieldValue().ntf_dataemissao) {\r\n form.setFieldsValue({ ntf_dataemissao: moment(new Date()) });\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n\r\n useEffect(() => {\r\n if (!!ui.showDrawerExtra) {\r\n carregarDados();\r\n buscarItensOrdemCompra();\r\n form.setFieldsValue(manutencao.dados);\r\n if (!!!form.getFieldValue().ntf_dataemissao) {\r\n form.setFieldsValue({ ntf_dataemissao: moment(new Date()) });\r\n }\r\n if (!!manutencao.dados) {\r\n let lista = [];\r\n if (!!manutencao.dados.recebimento.for_id) {\r\n lista.push({ name: \"for_id\", campo: \"FornecedorId\", value: manutencao.dados.recebimento.for_id });\r\n }\r\n if (!!manutencao.dados.recebimento.trn_id) {\r\n lista.push({ name: \"trn_id\", campo: \"IdTrasnportador\", value: manutencao.dados.recebimento.trn_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n form.setFieldsValue(manutencao.dados);\r\n }\r\n }\r\n }, [ui.showDrawerExtra]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n if (!!manutencao.dados.faturamento) {\r\n setListaFormaPagamento(manutencao.dados.faturamento);\r\n }\r\n if (!!manutencao.dados.formaPgto && !!!manutencao.dados.antecipacao) {\r\n manutencao.dados.formaPgto.forEach((forma) => {\r\n if (forma.fpg_tipopagamento === pagamentosCodigos.crediarioLoja && forma.fpg_quitacaoantecipacao) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ antecipacao: [{ valorAntecipacao: forma.nfp_valor }] } } } });\r\n }\r\n });\r\n }\r\n if (!!manutencao.dados.formaPgto && !!!manutencao.dados.faturamento) {\r\n manutencao.dados.formaPgto.forEach((formas) => {\r\n formas.pfp_valor = parseFloat(formas.nfp_valor);\r\n });\r\n let dadosFormaPgto = [...manutencao.dados.formaPgto];\r\n dadosFormaPgto = manutencao.dados.formaPgto.filter((dados) => dados.fpg_tipopagamento !== pagamentosCodigos.crediarioLoja && !dados.fpg_quitacaoantecipacao);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ faturamento: dadosFormaPgto } } } });\r\n }\r\n\r\n\r\n if (!!manutencao.dados && !!manutencao.dados.dadosItens) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ faturamento: listaItens } } } });\r\n setListaItens(manutencao.dados.Itens);\r\n setDadosItens(manutencao.dados.dadosItens);\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if ((!!proximaPag.proximaPag || proximaPag.proximaPag === 0) && permiteValidar) {\r\n validarTrocaPg(proximaPag.proximaPag);\r\n } else {\r\n setPermiteValidar(true);\r\n }\r\n }, [proximaPag.proximaPag]);\r\n\r\n\r\n\r\n async function carregarDados() {\r\n setCarregarPagina(true);\r\n buscarItensOrdemCompra();\r\n\r\n let listaFormaPagamento = await api.get('FormaPagamento/Listar?Recebimento=2,3,4');\r\n if (listaFormaPagamento.status === 200) {\r\n setFormasPagamento(listaFormaPagamento.data);\r\n }\r\n let listaDadosContribuinte = await api.get('dadosContribuinte/Buscar');\r\n setCarregarPagina(false);\r\n if (listaDadosContribuinte.status === 200) {\r\n if (!!listaDadosContribuinte.data) {\r\n setDadosContribuinte(listaDadosContribuinte.data);\r\n } else {\r\n Modal.warning({\r\n title: 'Dados Contribuinte não parâmetrizados!',\r\n content: 'Favor parametrizar os dados do contribuinte'\r\n });\r\n aoSalvar();\r\n }\r\n }\r\n };\r\n\r\n function validarTrocaPg(pagina) {\r\n let paginaAtual = pages.tagPages;\r\n let listaValidacoes = [];\r\n switch (paginaAtual) {\r\n case 0:\r\n listaValidacoes = listaValidacoesDest;\r\n if (paginaAtual < pagina) {\r\n var recebendo = dadosItens.map(function (e) { return e.ocp_qtdrecebendo });\r\n var verifica = recebendo.reduce(function (verifica, i) {\r\n return verifica + i;\r\n });\r\n if (!!dadosItens && verifica === 0) {\r\n notification.warning({ message: 'Aviso', description: 'Nota Fiscal deve ter ao menos 1 item!' });\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n case 1:\r\n if (paginaAtual < pagina) {\r\n listaValidacoes = [];\r\n if (!validarFaturamento()) {\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n }\r\n if (validaForm(form, listaValidacoes)) {\r\n pages.setTagPages(pagina);\r\n } else {\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n }\r\n };\r\n\r\n function validarFaturamento() {\r\n let formulario = form.getFieldsValue();\r\n let retorno = true;\r\n let valorTotal = 0;\r\n let operacao = operacaoFiscal;\r\n if (listaFormaPagamento.length > 0) {\r\n listaFormaPagamento.forEach(forma => {\r\n valorTotal += parseFloat(forma.pfp_valor);\r\n if (forma.editando == true) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor salvar as alterações em andamento nas parcelas(forma pagamento) para continuar!' });\r\n }\r\n });\r\n if (parseFloat(formulario.valorTotal) === 0) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso!', description: 'Valor da Nota Inválido!' });\r\n } else {\r\n if ((validarNumeros(formulario.valorTotal) == !parseFloat(valorTotal.toFixed(2))) || operacao.tip_id == !5) {\r\n notification.warning({ message: 'Aviso', description: 'Valor informado nas formas de pagamento é menor que o valor total da nota!' });\r\n }\r\n }\r\n } else {\r\n if (!!formulario.fpg_id) {\r\n let formaPagamento = formasPagamento.filter((forma) => (forma.fpg_id === formulario.fpg_id))[0];\r\n if (formaPagamento.fpg_tipoavistaaprazo === 1) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher as formas de pagamento!' });\r\n }\r\n } else {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher as formas de pagamento!' });\r\n }\r\n }\r\n return retorno;\r\n };\r\n\r\n function popularDadosItens() {\r\n let ordemcompraitens = [];\r\n dadosItens.forEach(itens => {\r\n let aux = { ...itens };\r\n aux.ocp_quantidaderecebidaanteriormente = itens.ocp_quantidaderecebida;\r\n aux.ocp_desconto = !!itens.ocp_desconto ? itens.ocp_desconto : form.getFieldValue().valorDesconto;\r\n aux.ocp_valortotal = form.getFieldValue().valorTotal;\r\n aux.ocp_quantidaderecebida = (itens.ocp_qtdrecebendo);\r\n aux.nfi_valorseguro = form.getFieldValue().valorSeguro;\r\n aux.nfi_valoroutros = form.getFieldValue().valorOutrasDespesas;\r\n ordemcompraitens.push(aux);\r\n })\r\n return ordemcompraitens;\r\n };\r\n\r\n function preencherDadosFaturamento() {\r\n let dadosForma = [];\r\n listaFormaPagamento.forEach(forma => {\r\n let aux = { ...forma };\r\n aux.fpg_id = forma.fpg_id;\r\n aux.cpg_id = forma.cpg_id;\r\n aux.nfp_valor = parseFloat(forma.pfp_valor);\r\n dadosForma.push(aux);\r\n });\r\n return dadosForma;\r\n };\r\n\r\n function buscarItensOrdemCompra(orc_id) {\r\n\r\n api.get(`OrdemCompraItem/ListarItensOrdemCompra?codigoOrdemCompra=${form.getFieldValue().orc_id}`).then(\r\n res => {\r\n let key = 1;\r\n res.data.forEach((itens) => {\r\n if (itens.pro_id != null) {\r\n itens.key = key++;\r\n itens.ean = !!itens.pro_ean ? itens.pro_ean : itens.prg_ean;\r\n itens.grade = itens.mgp_descricao;\r\n itens.ocp_qtdrecebendo = 0;\r\n itens.ocp_quantidade = itens.ocp_quantidade;\r\n itens.nfi_valorunitario = itens.ocp_valorun;\r\n itens.total = itens.ocp_valorun * itens.ocp_quantidade;\r\n itens.ocp_quantidaderecebida = !!itens.ocp_quantidaderecebida ? itens.ocp_quantidaderecebida : 0;\r\n itens.valorTotalDesconto = (itens.ocp_qtdrecebendo * itens.ocp_valorun);\r\n itens.ocp_frete = itens.ocp_frete;\r\n if (itens.ocp_qtdrecebendo === 0) {\r\n itens.bloquear = true;\r\n } else {\r\n itens.bloquear = false;\r\n }\r\n setDadosItens(itens);\r\n }\r\n });\r\n setDadosItens(res.data);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n };\r\n\r\n async function salvarDados(values) {\r\n console.log(\"values\", values);\r\n carregando(true);\r\n let dados = {};\r\n dados = { ...values };\r\n dados.orc_id = form.getFieldValue().orc_id;\r\n dados.for_id = form.getFieldValue().for_id;\r\n dados.orc_valorfrete = values.orc_valorfrete;\r\n dados.orc_valordesconto = values.valorDesconto;\r\n dados.orc_valoracrescimo = !!values.valorAcrescimo ? values.valorAcrescimo : form.getFieldValue().valorAcrescimo;\r\n dados.orc_valorseguro = !!values.orc_valorseguro ? values.orc_valorseguro : form.getFieldValue().orc_valorseguro;\r\n dados.ntf_numero = !!values.ntf_numero ? parseInt(values.ntf_numero) : form.getFieldValue().orc_id;\r\n dados.faturamento = preencherDadosFaturamento(values);\r\n dados.ordemcompraitens = popularDadosItens(dadosItens);\r\n\r\n try {\r\n var res = await api.post('OrdemCompra/Receber', dados);\r\n if (res.status == 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Ordem de Compra recebida com sucesso!\" });\r\n }\r\n } catch (error) {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(error.response) });\r\n } finally {\r\n carregando(false);\r\n aoSalvar();\r\n alteraData();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {!!editando &&
\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n ({ser.ser_serie})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({op.ope_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n (\r\n {forn.for_id} - {forn.pes_nome}\r\n {(!!forn.pej_cnpj ?
CNPJ: {forn.pej_cnpj}
: \"\")}\r\n
)\r\n }\r\n />\r\n
\r\n {/* \r\n ({forn.pes_nome})\r\n } />\r\n */}\r\n \r\n \r\n \r\n ({trn.pes_nome})\r\n } />\r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n {\r\n proximaPag.setProximaPag(e);\r\n }} current={pages.tagPages}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.tagPages === 0 &&\r\n \r\n }\r\n {pages.tagPages === 1 &&\r\n \r\n }\r\n {pages.tagPages === 2 &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, LeftOutlined, RightOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoRecebimentoOrdemCompra from './manutencaoRecebimento';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n//import FormasPagamentoRecebimento from '../../components';\r\n\r\nexport default function DrawerRecebimento({ carregarDados, alteraData, fornecedor, transportador, showDrawerExtra, setShowDrawerExtra }) {\r\n\r\n const [formRecebimentoOrdemCompra] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [proximaPag, setProximaPag] = useState(0);\r\n const [tagPages, setTagPages] = useState(null);\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados && manutencao.dados.recebimento !== null) {\r\n formRecebimentoOrdemCompra.setFieldsValue(manutencao.dados.recebimento);\r\n }\r\n\r\n function fecharDrawer() { \r\n setTagPages(0);\r\n setProximaPag(null);\r\n formRecebimentoOrdemCompra.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } }); \r\n alteraData();\r\n carregarDados();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n formRecebimentoOrdemCompra.resetFields();\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n fecharDrawer={() => {fecharDrawer()}}\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Button, Collapse, Tag, Dropdown, Menu, Divider, Modal, notification } from \"antd\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, EditOutlined, MoreOutlined, PrinterOutlined, EyeOutlined, UploadOutlined, CloseOutlined, SyncOutlined, SearchOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerOrdemCompra from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport DrawerRecebimento from './drawerRecebimento';\r\nimport { imprimirRelatorioJasper } from \"../../services/funcoes\";\r\nimport { FormatNumber, FormatDate } from \"../../ValueObjects\";\r\nimport { ModalDetalhesOrdemCompra } from \"../../components/modals\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaData, TabelaDados, Editar, Imprimir, Data, PesquisaOrdenacaoData } from \"../../components\";\r\nimport ComboData from \"../../components/comboData\";\r\n\r\nexport default function OrdemCompra() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dataPesquisa, setDataPesquisa] = useState(new Date().toLocaleDateString());\r\n const [listaStatus, setListaStatus] = useState([]);\r\n const [listaFornecedor, setListaFornecedor] = useState([]);\r\n const [listaTransportador, setListaTransportador] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n const [openModalDetalhes, setOpenModalDetalhes] = useState(false);\r\n const [dadosOrdemCompra, setDadosOrdemCompra] = useState({});\r\n const [form] = Form.useForm();\r\n const [formParam] = Form.useForm();\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, [dataPesquisa]);\r\n\r\n function carregarDados() {\r\n let sql = \"\";\r\n sql += !!form.getFieldValue().dataInicial ? `&dataInicial=${form.getFieldValue().dataInicial.format('YYYY-MM-DD')}` : \"\";\r\n sql += !!form.getFieldValue().dataFinal ? `&dataFinal=${form.getFieldValue().dataFinal.format('YYYY-MM-DD')}` : \"\";\r\n sql += !!form.getFieldValue().for_id ? `&IdFornecedor=${form.getFieldValue().for_id}` : '';\r\n sql += !!form.getFieldValue().trn_id ? `&IdTransportador=${form.getFieldValue().trn_id}` : '';\r\n sql += !!form.getFieldValue().status ? `&status=${form.getFieldValue().status.join(',')}` : '&status=0,1,2,3';\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-orc_datainclusao', outrosFiltros: sql } });\r\n\r\n api.get('Enum/Listar?nome=StatusOrdemCompra').then(\r\n (res) => {\r\n setListaStatus(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n api.get('Fornecedor/Listar?Order=+pes_nome').then(\r\n (res) => {\r\n setListaFornecedor(res.data.items);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n\r\n api.get('Transportador/ListarTransportador?Order=+pes_nome').then(\r\n (res) => {\r\n setListaTransportador(res.data.items);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n if (!!form.getFieldValue().dataInicial) {\r\n form.setFieldsValue({ dataFinal: moment(new Date()), dataInicial: moment(form.getFieldValue().dataInicial) });\r\n } else {\r\n form.setFieldsValue({ dataFinal: moment(new Date()), dataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n }\r\n };\r\n\r\n function aplicarFiltrosAvancados() {\r\n let dados = form.getFieldValue();\r\n let dataIni = dados.dataInicial;\r\n let dataFim = dados.dataFinal;\r\n let dataInicial = (!!dataIni ? moment(dataIni) : moment(dados.dataPesquisa));\r\n let dataFinal = (!!dataFim ? moment(dataFim) : moment(new Date));\r\n form.setFieldsValue({ dataFinal: dataFinal });\r\n form.setFieldsValue({ dataInicial: dataInicial });\r\n carregarDados();\r\n };\r\n\r\n function cancelarOrdem(orc_id) {\r\n Modal.confirm({\r\n title: 'Deseja Cancelar essa Ordem de Compra?',\r\n icon: ,\r\n onOk() {\r\n api.delete(`OrdemCompra/CancelarOrdemCompra?IdOrdemCompra=${orc_id}`).then((res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Ordem de Compra cancelada com sucesso!\" });\r\n carregarDados();\r\n alteraData();\r\n }\r\n }, err => {\r\n notification.error({ message: 'Aviso!', description: \"Não foi possível cancelar a ordem de compra!\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n function cancelarOrdemRecebida(orc_id) {\r\n Modal.confirm({\r\n title: 'Deseja Cancelar essa Ordem de Compra? (Essa Ordem de Compra já foi recebida!)',\r\n icon: ,\r\n onOk() {\r\n api.delete(`OrdemCompra/CancelarOrdemCompra?IdOrdemCompra=${orc_id}`).then((res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Ordem de Compra cancelada com sucesso!\" });\r\n carregarDados();\r\n alteraData();\r\n }\r\n }, err => {\r\n notification.error({ message: 'Aviso!', description: \"Não foi possível cancelar a ordem de compra!\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n function abrirDetalhesOrdemCompra(dados) {\r\n setDadosOrdemCompra(dados);\r\n setOpenModalDetalhes(true);\r\n };\r\n\r\n function imprimirOrdemCompra(record) {\r\n imprimirRelatorioJasper(47, { IdOrdemCompra: record.orc_id });\r\n };\r\n\r\n function menuTable(dados) {\r\n\r\n return (\r\n \r\n {dados.orc_status === 0 &&\r\n \r\n \r\n \r\n }\r\n {(dados.orc_status === 0 || dados.orc_status === 1 || dados.orc_status === 4) &&\r\n \r\n \r\n \r\n }\r\n \r\n } onClick={() => imprimirOrdemCompra(dados)}> Imprimir \r\n \r\n {\r\n \r\n \r\n \r\n }\r\n {(dados.orc_status === 1 || dados.orc_status === 2) &&\r\n \r\n \r\n \r\n }\r\n {(dados.orc_status === 1 || dados.orc_status === 2) &&\r\n \r\n \r\n \r\n }\r\n \r\n )\r\n }\r\n\r\n function reabrirOrdemCompra(orc_id) {\r\n Modal.confirm({\r\n title: 'Deseja Reabrir essa Ordem de Compra? (Essa Ordem de Compra já foi recebida!)',\r\n icon: ,\r\n async onOk() {\r\n await api.put(`OrdemCompra/ReabrirOrdemCompraRecebida?IdOrdemCompra=${orc_id}`).then((res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Ordem de compra reaberta com sucesso!\" });\r\n carregarDados();\r\n alteraData();\r\n }\r\n }, err => {\r\n notification.error({ message: 'Aviso!', description: \"Não foi possível reabrir a ordem de compra!\" });\r\n });\r\n }\r\n });\r\n };\r\n\r\n function retornaDescricaoStatus(orc_status) {\r\n if (!!listaStatus) {\r\n return listaStatus.filter((status) => (\r\n status.key === orc_status\r\n ))[0].value;\r\n }\r\n };\r\n\r\n function editarOrdemCompra(record) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n\r\n function alteraData() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataFinal=${FormatDate(new Date().toLocaleDateString())}&dataInicial=${moment(form.getFieldValue().dataPesquisa).format('YYYY-MM-DD')}` } });\r\n form.setFieldsValue({ dataFinal: moment(new Date()) });\r\n form.setFieldsValue({ dataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n }\r\n\r\n function limparFiltroPesquisa() {\r\n form.setFieldsValue({ for_id: null, trn_id: null, dataInicial: moment(form.getFieldValue().dataPesquisa), dataFinal: moment(new Date()) })\r\n dispatch({\r\n type: listagemActions.CHANGE, data: { ordem: '+orc_datainclusao' }\r\n })\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n
\r\n \r\n {retornaDescricaoStatus(orc_status)} \r\n \r\n \r\n \r\n \r\n \r\n \r\n {orc_id}\r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ nomeFornecedor, orc_nropedido, orc_atendente, orc_valortotal, orc_datainclusao, orc_prazomaximo, orc_dataconclusao, nomeTransportador, orc_valorfrete, orc_valordesconto }) => (\r\n
\r\n \r\n
\r\n {nomeFornecedor}\r\n \r\n \r\n \r\n \r\n Nº Pedido: {orc_nropedido || 'Não Informado'}\r\n \r\n \r\n Atendente: {orc_atendente || 'Não Informado'}\r\n \r\n \r\n Transportador: {nomeTransportador || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n Lançamento: {moment(orc_datainclusao).format('DD/MM/YYYY')}\r\n \r\n \r\n Prazo: {moment(orc_prazomaximo).format('DD/MM/YYYY')}\r\n \r\n \r\n Conclusão:\r\n {!!orc_dataconclusao ? moment(orc_dataconclusao).format('DD/MM/YYYY') : 'Não'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total itens (R$): {FormatNumber(orc_valortotal, true, false)}\r\n \r\n \r\n Frete (R$): {FormatNumber(!!orc_valorfrete ? orc_valorfrete : 0, true, false)}\r\n \r\n \r\n Desconto (R$): {FormatNumber(!!orc_valordesconto ? orc_valordesconto : 0, true, false)}\r\n \r\n \r\n Total (R$): {FormatNumber(orc_valortotal + orc_valorfrete - orc_valordesconto, true, false)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n\r\n \r\n {(record.orc_status === 0) &&
\r\n {\r\n editarOrdemCompra(record);\r\n }} icon={} />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n } onClick={() => { imprimir(record) }}> Imprimir \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataFinal=${moment(new Date).format('YYYY-MM-DD')}&dataInicial=${moment(form.getFieldValue().dataPesquisa).format(\"YYYY-MM-DD\")}`} })\r\n form.setFieldsValue({ dataFinal: moment(new Date) });\r\n form.setFieldsValue({ dataInicial: moment(form.getFieldValue().dataPesquisa) });\r\n }}\r\n />\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n {orc_numero}\r\n \r\n
\r\n )\r\n },\r\n {\r\n title: \"\",\r\n render: ({ pes_nome, pef_cpf, pej_cnpj, pes_telefone, orc_datainclusao, orc_datavalidade, qtditem }) => (\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n \r\n CPF/CNPJ: {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n \r\n \r\n Telefone: {!!pes_telefone ? (FormatFone(pes_telefone)) : 'Não Informado'}\r\n \r\n \r\n \r\n \r\n Emissão: {moment(orc_datainclusao).format('DD/MM/YYYY')}\r\n \r\n \r\n Entrega: {moment(orc_datavalidade).format('DD/MM/YYYY')}\r\n \r\n \r\n Quant.: {!!qtditem ? qtditem : 0}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Total do Orçamento (R$)\",\r\n align: 'right',\r\n width: 180,\r\n render: ({ orc_valortotal }) => (\r\n
\r\n {FormatNumber(orc_valortotal, true)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Permite emissão da NF-e?\r\n \r\n \r\n \r\n \r\n Permite edição do Pedido?\r\n \r\n \r\n \r\n \r\n \r\n \r\n Concluir pedido neste Status?\r\n \r\n \r\n \r\n \r\n Cancelar pedido neste Status?\r\n \r\n \r\n \r\n \r\n Status Ativo?\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoStatusPedido from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerStatusPedido() {\r\n\r\n const [formStatusPedido] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n if (manutencao.dados !== null) formStatusPedido.setFieldsValue(manutencao.dados);\r\n else {\r\n formStatusPedido.setFieldsValue({mar_ativa:true});\r\n }\r\n\r\n const [ carregando, setCarregando ] = useState(false);\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n formStatusPedido.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Button, Tag, Popover, notification, Modal, Radio, Form } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerStatusPedido from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, BotaoAbrirChamado, BotaoIncluirDados, BreadcrumbPage } from \"../../components\";\r\n\r\nexport default function StatusPedido() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formPesquisa] = Form.useForm();\r\n\r\n useEffect(() => {\r\n let _ativo = !!!formPesquisa.getFieldsValue().statusAtivo ? 1 : formPesquisa.getFieldsValue().statusAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${_ativo}`, filtro: '', ordem: '+stp_descricao' } });\r\n formPesquisa.setFieldsValue({ statusAtivo: 1 });\r\n }, [])\r\n\r\n function aplicarFiltros() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${formPesquisa.getFieldsValue().statusAtivo}`, ordem: '+stp_descricao' } });\r\n }\r\n\r\n function excluirRegistro(dados) {\r\n api.delete(`StatusPedido/Excluir/${dados.stp_id}`).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }).catch(\r\n (erro) => {\r\n modalInativarRegistro(dados);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${formPesquisa.getFieldsValue().statusAtivo}`, ordem: '+stp_descricao' } });\r\n });\r\n }\r\n\r\n function inativarRegistro(dados) {\r\n dados.stp_ativo = false;\r\n api.put(`StatusPedido/Editar`, dados).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Status inativado com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${formPesquisa.getFieldsValue().statusAtivo}`, ordem: '+stp_descricao' } });\r\n }\r\n )\r\n }\r\n\r\n const modalInativarRegistro = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir a Status ${dados.stp_descricao}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a Status: ${dados.stp_id} - ${dados.stp_descricao}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n function duplicarStatus(record) {\r\n let valores = { ...record };\r\n valores.stp_id = null;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function editarStatus(record) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n aplicarFiltros()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {stp_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Status',\r\n render: ({ stp_descricao }) => (\r\n
\r\n {stp_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 95,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Status para Pedido Cancelado?: {(stp_pedidocancelado) ? 'Sim' : 'Não'}\r\n \r\n \r\n Status para Pedido Concluído?: {(stp_pedidoconcluido) ? 'Sim' : 'Não'}\r\n \r\n \r\n Permite Editar Pedido?: {(stp_permiteeditarpedido) ? 'Sim' : 'Não'}\r\n \r\n \r\n Permite Emitir NF-e?: {(stp_permiteemissaonf) ? 'Sim' : 'Não'}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React from 'react';\r\nimport { Modal } from \"antd\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { manutencaoActions } from '../../actions';\r\nimport { DetalhePedido } from \"../../components\";\r\n\r\nexport default function ModalDetalhePedido({ exibirModal, fecharModal, dadosModal }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n const onClose = () => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n fecharModal();\r\n };\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, LeftOutlined, RightOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport ManutencaoNotaFiscal from '../notaFiscal/manutencao';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerNF({ showDrawerExtra, setShowDrawerExtra, dadosNFE }) {\r\n\r\n const [formNotaFiscal] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [tagPages, setTagPages] = useState(null);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n const [formulario] = Form.useForm();\r\n\r\n useEffect(() => {\r\n if (!!dadosNFE) {\r\n formulario.setFieldsValue(dadosNFE);\r\n }\r\n }, [dadosNFE])\r\n\r\n \r\n function fecharDrawer() {\r\n formNotaFiscal.resetFields();\r\n setTagPages(0);\r\n setProximaPag(null);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '%2Bped_datainclusao' } });\r\n setShowDrawerExtra(false)\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, LeftOutlined, RightOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport ManutencaoNotaFiscalTransferencia from '../notaFiscalTransferencia/manutencao';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerTransferencia({ abrirDrawer, fecharDrawer, dadosPedido }) {\r\n\r\n const [formNotaFiscal] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [tagPages, setTagPages] = useState(null);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n const [limparDados, setLimparDados] = useState(false);\r\n const [formulario] = Form.useForm();\r\n\r\n function fechar() {\r\n formNotaFiscal.resetFields();\r\n setTagPages(0);\r\n setProximaPag(null);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '%2Bped_datainclusao' } });\r\n fecharDrawer(false)\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n setLimparDados(true);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fechar();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Button, Collapse, Tag, Dropdown, Menu, notification, Modal } from \"antd\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, EditOutlined, CloseOutlined, ExclamationCircleOutlined, PrinterOutlined, MoreOutlined, EyeOutlined, CopyOutlined, DollarOutlined, FileDoneOutlined, PlusOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport ModalDetalhePedido from \"./modalDetalhePedido\";\r\nimport { getIdUsuario, setIdUsuario } from \"../../services/auth\";\r\nimport { imprimirRelatorioJasper } from \"../../services/funcoes\";\r\nimport { FormatNumber, MaskFormat, FormatFone } from \"../../ValueObjects\";\r\nimport { DrawerNF, DrawerPedidos, DrawerTransferencia } from './drawerPage';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacaoData, TabelaDados, Imprimir, Data, PesquisaAvancada, BreadcrumbPage, BotaoAbrirChamado } from \"../../components\";\r\n\r\nexport default function Pedidos() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [open, setOpen] = useState(false);\r\n const [openModalDetalhePedido, setOpenModalDetalhePedido] = useState(false);\r\n const [dadosDetalhesPedido, setDadosDetalhesPedido] = useState({});\r\n const [formPedidos] = Form.useForm();\r\n const [idPedido, setIdPedido] = useState(0);\r\n const [status, setStatus] = useState([]);\r\n const [showDrawerExtra, setShowDrawerExtra] = useState(false);\r\n const [drawerTransferencia, setDrawerTransferencia] = useState(false);\r\n const [dadosPedido, setDadosPedido] = useState({});\r\n const [exibirDrawerPedidos, setExibirDrawerPedidos] = useState(false);\r\n\r\n useEffect(() => {\r\n carregarStatus()\r\n formPedidos.setFieldsValue({ ativoPedido: [\"1\"] });\r\n }, []);\r\n\r\n function carregarPrimeiraVez() {\r\n let ativo = 2;//Toodos\r\n if (formPedidos.getFieldValue().ativoPedido.length == 1) {\r\n if (formPedidos.getFieldValue().ativoPedido.find(e => e === \"0\"))\r\n ativo = 0;\r\n if (formPedidos.getFieldValue().ativoPedido.find(e => e === \"1\"))\r\n ativo = 1;\r\n }\r\n let filtro = `&Ativo=${ativo}`;\r\n let status = !!formPedidos.getFieldValue().status ? formPedidos.getFieldValue().status : '';\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ped_datainclusao', outrosFiltros: `&dataFinal=${moment(new Date).format('YYYY-MM-DD')}&dataInicial=${moment(formPedidos.getFieldValue().dataPesquisa).format(\"YYYY-MM-DD\")}&filtro=&status=${status}` + filtro } })\r\n formPedidos.setFieldsValue({ dataFinal: moment(new Date) });\r\n formPedidos.setFieldsValue({ dataInicial: moment(formPedidos.getFieldValue().dataPesquisa) });\r\n };\r\n\r\n function carregarStatus() {\r\n let key = 0;\r\n api.get(`StatusPedido/Listar`).then(\r\n res => {\r\n let listaStatus = []\r\n res.data.items.forEach(item => {\r\n item.key = key++;\r\n listaStatus.push(item.stp_id);\r\n });\r\n setStatus(res.data.items);\r\n formPedidos.setFieldsValue({ status: listaStatus });\r\n carregarPrimeiraVez();\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n );\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n function editarPedido(record) {\r\n record.ped_datainclusao = moment(record.ped_datainclusao);\r\n record.ped_dataprevisaoentrega = moment(record.ped_dataprevisaoentrega);\r\n record.ped_datavalidade = moment(record.ped_datavalidade);\r\n setExibirDrawerPedidos(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n };\r\n\r\n const modalConfirm = (record) => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Tem certeza que deseja cancelar esse pedido?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n cancelarPedido(record);\r\n }\r\n });\r\n }\r\n\r\n function cancelarPedido(record) {\r\n api.post(`Pedido/CancelarPedido?IdPedido=${record.ped_id}`).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Pedido cancelado com sucesso!\" });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ped_datainclusao' } });\r\n }\r\n );\r\n };\r\n\r\n async function emitirNf(record) {\r\n let itensPedido = await api.get(`PedidoItem/ListarItensPedido?codigoPedido=${record.ped_id}`);\r\n record.itensNf = itensPedido.data;\r\n record.ped_datavalidade = moment(record.ped_datavalidade);\r\n record.ped_dataprevisaoentrega = moment(record.ped_dataprevisaoentrega);\r\n record.ped_datainclusao = moment(record.ped_datainclusao);\r\n record.ntf_modalidadefrete = record.ped_modalidadefrete;\r\n record.itensNf.forEach((item) => {\r\n item.nfi_valorunitario = item.pdi_valorunitario;\r\n item.nfi_qtde = item.pdi_quantidade;\r\n item.nfi_valordesconto = item.pdi_valordesconto;\r\n item.nfi_valoroutros = item.pdi_valoracrescimo;\r\n item.nfi_ean = !!item.prg_ean ? item.prg_ean : item.pro_ean;\r\n item.total = (item.pdi_valorunitario * item.pdi_quantidade) - item.pdi_valordesconto + item.pdi_valoracrescimo;\r\n item.percdesc = !!item.nfi_valordesconto ? (item.nfi_valordesconto * 100) / item.total : 0;\r\n item.percacresc = !!item.nfi_valoroutros ? (item.nfi_valoroutros * 100) / item.total : 0;\r\n item.nfi_numeropedidocompra = record.ped_numero;\r\n });\r\n record.faturamento = record.formaPgto;\r\n setDadosPedido(record);\r\n setShowDrawerExtra(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n };\r\n\r\n async function emitirTransferencia(record) {\r\n let itensPedido = await api.get(`PedidoItem/ListarItensPedido?codigoPedido=${record.ped_id}`);\r\n record.itensNf = itensPedido.data;\r\n record.loc_id = record.loc_id_transferencia;\r\n record.custo = record.ped_precoutilizado;\r\n record.ped_datavalidade = moment(record.ped_datavalidade);\r\n record.ped_dataprevisaoentrega = moment(record.ped_dataprevisaoentrega);\r\n record.ped_datainclusao = moment(record.ped_datainclusao);\r\n record.ntf_modalidadefrete = record.ped_modalidadefrete;\r\n record.itensNf.forEach((item) => {\r\n item.nfi_valorunitario = item.pdi_valorunitario;\r\n item.nfi_qtde = item.pdi_quantidade;\r\n item.nfi_valordesconto = item.pdi_valordesconto;\r\n item.nfi_valoroutros = item.pdi_valoracrescimo;\r\n item.nfi_ean = item.pro_ean;\r\n item.total = item.pdi_valorunitario * item.pdi_quantidade;\r\n item.percdesc = !!item.nfi_valordesconto ? (item.nfi_valordesconto * 100) / item.total : 0;\r\n item.percacresc = !!item.nfi_valoroutros ? (item.nfi_valoroutros * 100) / item.total : 0;\r\n item.nfi_numeropedidocompra = record.ped_numero;\r\n });\r\n record.faturamento = record.formaPgto;\r\n setDadosPedido(record);\r\n setDrawerTransferencia(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n };\r\n\r\n async function visualizarPedido(record) {\r\n let itensPedido = await api.get(`PedidoItem/ListarItensPedido?codigoPedido=${record.ped_id}`);\r\n record.itensNf = itensPedido.data;\r\n setDadosDetalhesPedido(record);\r\n setOpenModalDetalhePedido(true);\r\n };\r\n\r\n function imprimirPedido(record) {\r\n imprimirRelatorioJasper(29, { idPedido: record.ped_id });\r\n };\r\n\r\n function abrirDrawerPedido() {\r\n setExibirDrawerPedidos(true)\r\n }\r\n \r\n function menuTable(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n {(record.ped_ativo === true && record.stp_pedidoconcluido === false && record.stp_permiteemissaonf === true && !!!record.loc_id_transferencia) &&\r\n \r\n \r\n \r\n }\r\n {(record.ped_ativo === true && record.stp_permiteeditarpedido === true) &&\r\n \r\n \r\n \r\n }\r\n {(record.ped_ativo === true && record.stp_pedidoconcluido === false && record.stp_permiteemissaonf === true && !!record.loc_id_transferencia) &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n } onClick={() => imprimirPedido(record)}> Imprimir \r\n \r\n \r\n )\r\n };\r\n\r\n async function duplicarPedido(record) {\r\n let pedidoDuplicar = { ...record }\r\n pedidoDuplicar.ped_datainclusao = moment(new Date());\r\n pedidoDuplicar.ped_dataprevisaoentrega = moment(pedidoDuplicar.ped_dataprevisaoentrega);\r\n pedidoDuplicar.ped_datavalidade = moment(pedidoDuplicar.ped_datavalidade);\r\n pedidoDuplicar.ped_id_duplicar = pedidoDuplicar.ped_id;\r\n pedidoDuplicar.ped_id = null;\r\n setExibirDrawerPedidos(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: pedidoDuplicar } });\r\n };\r\n\r\n function retornoPesquisaAvancada(expressao) {\r\n let dados = formPedidos.getFieldValue();\r\n let filtro = '';\r\n let dataInicial = dados.dataInicial;\r\n let dataFinal = dados.dataFinal;\r\n let status = dados.status;\r\n let ativo = 2;//Toodos\r\n if (dados.ativoPedido.length == 1) {\r\n if (dados.ativoPedido.find(e => e === \"0\"))\r\n ativo = 0;\r\n if (dados.ativoPedido.find(e => e === \"1\"))\r\n ativo = 1;\r\n }\r\n\r\n filtro += '&dataInicial=' + (!!dataInicial ? moment(dataInicial).format('YYYY-MM-DD') : moment(dados.dataPesquisa).format(\"YYYY-MM-DD\"));\r\n filtro += '&dataFinal=' + (!!dataFinal ? moment(dataFinal).format('YYYY-MM-DD') : moment(new Date).format('YYYY-MM-DD'));\r\n filtro += (!!status ? `&status=${status}` : '');\r\n filtro += (!!ativo ? `&Ativo=${ativo}` : '');\r\n filtro += !!expressao ? `&filtroAdicional=${btoa(expressao)}` : '';\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ped_datainclusao', outrosFiltros: filtro } });\r\n };\r\n\r\n function limparFiltroPesquisa() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: ``, ordem: '+ped_datainclusao' } })\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n let filtro = '';\r\n let ativo = 2;//Toodos\r\n if (!!formPedidos.getFieldValue().ativoPedido) {\r\n if (formPedidos.getFieldValue().ativoPedido.length == 1) {\r\n if (formPedidos.getFieldValue().ativoPedido.find(e => e === \"0\"))\r\n ativo = 0;\r\n if (formPedidos.getFieldValue().ativoPedido.find(e => e === \"1\"))\r\n ativo = 1;\r\n }\r\n }\r\n filtro += `&Ativo=${ativo}`;\r\n let status = !!formPedidos.getFieldValue().status ? formPedidos.getFieldValue().status : '';\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataFinal=${moment(new Date).format('YYYY-MM-DD')}&dataInicial=${moment(formPedidos.getFieldValue().dataPesquisa).format(\"YYYY-MM-DD\")}&filtro=&status=${status}` + filtro } })\r\n formPedidos.setFieldsValue({ dataFinal: moment(new Date) });\r\n formPedidos.setFieldsValue({ dataInicial: moment(formPedidos.getFieldValue().dataPesquisa) });\r\n }} />\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n {status.map(stp => (\r\n {stp.stp_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada(dados)} funcaoLimpar={() => { limparFiltroPesquisa() }} form={formPedidos} telaFiltro={9} retornarSempre={true} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n
\r\n \r\n {stp_descricao}\r\n \r\n \r\n \r\n \r\n \r\n {ped_numero}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Informações\",\r\n render: ({ loc_id_transferencia, loc_descricao, pes_nome, pef_cpf, pej_cnpj, pes_telefone, pes_endereco, pes_nroestabelecimento, pes_bairro, pes_cep, pes_cidade, pes_uf, ped_datainclusao, ped_dataprevisaoentrega, pdi_qtditem, ped_ativo }) => (\r\n
\r\n \r\n
\r\n {!!loc_id_transferencia ? loc_descricao : pes_nome}\r\n \r\n \r\n CPF/CNPJ: {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n \r\n \r\n Telefone: {FormatFone(pes_telefone) || 'Não Informado'}\r\n \r\n \r\n \r\n {!ped_ativo && \r\n Cancelado\r\n }\r\n \r\n Emissão: {moment(ped_datainclusao).format('DD/MM/YYYY')}\r\n \r\n \r\n Entrega: {moment(ped_dataprevisaoentrega).format('DD/MM/YYYY')}\r\n \r\n \r\n Quant. de Itens: {pdi_qtditem}\r\n \r\n \r\n Endereço: {pes_endereco}, {pes_nroestabelecimento}, {pes_bairro}, {pes_cep}, {pes_cidade}-{pes_uf}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Total (R$)\",\r\n align: 'right',\r\n width: 180,\r\n render: ({ ped_valortotal }) => (\r\n
\r\n {FormatNumber(ped_valortotal, true)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function descricaoSituacao(codigo) {\r\n if (codigo >= 0 && !!situacaoVenda[codigo]) {\r\n return situacaoVenda[codigo].value;\r\n }\r\n return '';\r\n };\r\n\r\n function deletarCondicional(registro) {\r\n api.put(`VendaCondicional/Excluir/${registro.vnc_id}`).then(\r\n (res) => {\r\n notification.success({ message: `Sucesso!`, description: `Venda Condicional estornada com sucesso!` })\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vnc_datalancamento' } });\r\n });\r\n };\r\n\r\n async function editarCondicional(registro) {\r\n registro.vnc_datalancamento = moment(registro.vnc_datalancamento);\r\n registro.vnc_prazoretorno = moment(registro.vnc_prazoretorno);\r\n registro.vnc_entregaagendada = moment(registro.vnc_entregaagendada);\r\n let dadosTemp = await api.get(`VendaCondicionalItem/Listar?IdVendaCondicional=${registro.vnc_id}`);\r\n if (dadosTemp.status === 200) {\r\n registro.itens = dadosTemp.data;\r\n }\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: registro } });\r\n }\r\n\r\n const modalExcluirCondicional = (condicional) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a condicional do cliente ${condicional.cli_nome} contendo ${condicional.vnc_totalitens} itens com valor total de R$ ${!!condicional.vnc_valortotal ? condicional.vnc_valortotal : '0,00'} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n deletarCondicional(condicional);\r\n }\r\n });\r\n };\r\n\r\n function abrirModalItens(record) {\r\n setDados(record);\r\n setOpenModalProdutoCondicional(true);\r\n }\r\n\r\n function abrirModalContatos(record) {\r\n setPessoaId(record);\r\n setOpenModalContatoCliente(true);\r\n }\r\n function retornaCorSituacao(codigo) {\r\n let cor = \"\";\r\n switch (codigo) {\r\n case 0:\r\n cor = \"processing\";\r\n break;\r\n case 1:\r\n cor = \"green\";\r\n break;\r\n case 2:\r\n cor = \"#87d068\";\r\n break;\r\n case 3:\r\n cor = \"orange\";\r\n break;\r\n case 4:\r\n cor = \"red\";\r\n break;\r\n }\r\n return cor;\r\n };\r\n\r\n function alterarCondicionalEntregue(dados, valor) {\r\n let situacao = dados.vnc_situacao;\r\n if (valor === true) {\r\n situacao = 1;\r\n } else {\r\n situacao = 0;\r\n }\r\n api.post('VendaCondicional/EditarSituacaoCondicional',\r\n JSON.stringify({ vnc_id: dados.vnc_id, vnc_situacao: situacao }),\r\n { headers: { 'Content-Type': 'application/json;charset=utf-8' } }\r\n ).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vnc_datalancamento' } });\r\n });\r\n };\r\n\r\n return (\r\n
\r\n { return campo.vnc_levarparacliente === true }} colunas={\r\n [\r\n {\r\n title: 'Situação',\r\n width: 140,\r\n align: 'center',\r\n render: ({ vnc_situacao }) => (\r\n
\r\n \r\n {(descricaoSituacao(vnc_situacao))}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº',\r\n width: 85,\r\n align: 'center',\r\n render: ({ vnc_numero }) => (\r\n
\r\n {vnc_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ cli_nome }) => (\r\n
\r\n {cli_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 110,\r\n render: ({ vnc_telefonecliente, pes_id }) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Lançamento',\r\n width: 135,\r\n render: ({ vnc_datalancamento }) => (\r\n
\r\n {moment(vnc_datalancamento).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Retorno',\r\n width: 135,\r\n render: ({ vnc_prazoretorno }) => (\r\n
\r\n {moment(vnc_prazoretorno).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Itens',\r\n align: 'right',\r\n width: 100,\r\n render: ({ vnc_totalitens }, record) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 150,\r\n render: ({ vnc_valortotal }) => (\r\n
\r\n {FormatNumber(vnc_valortotal, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, registro) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Entregar em: {record.vnc_enderecoentrega}\r\n \r\n \r\n Melhor Horário para Entrega: {moment(record.vnc_entregaagendada).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n \r\n \r\n { alterarCondicionalEntregue(record, valor) }} /> Condicional Entregue?\r\n \r\n \r\n )\r\n }}\r\n />\r\n\r\n \r\n \r\n \r\n setOpenModalProdutoCondicional(false)} dadosItens={dados} situacaoVenda={situacaoVenda} />\r\n setOpenModalContatoCliente(false)} />\r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Dropdown, Menu, Modal, notification } from \"antd\";\r\nimport { DollarCircleOutlined, DeleteOutlined, MoreOutlined, PrinterOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerCondicional from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport DrawerDevolucao from './drawerDevolucao';\r\nimport { FormatFone, FormatNumber } from \"../../ValueObjects\";\r\nimport { TabelaDados, EditarTabela, Excluir, Imprimir } from '../../components';\r\nimport { listagemActions, manutencaoActions, drawerActions } from '../../actions';\r\nimport { ModalProdutoCondicional, ModalContatoCliente } from \"../../components/modals/\";\r\nimport DrawerNFExtra from \"./drawerNFExtra\";\r\n\r\nexport default function TabCondicionalRetirada({ situacaoVenda, dataPesquisa, imprimirCondicional }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [exibirDrawerDevolucao, setExibirDrawerDevolucao] = useState(false);\r\n const [openModalContatoCliente, setOpenModalContatoCliente] = useState(false);\r\n const [openModalProdutoCondicional, setOpenModalProdutoCondicional] = useState(false);\r\n const [exibirDrawerNota, setExibirDrawerNota] = useState(false);\r\n const [dados, setDados] = useState({});\r\n const [pessoaId, setPessoaId] = useState();\r\n\r\n function menuTable(registro) {\r\n return (\r\n \r\n \r\n \r\n \r\n } onClick={() => imprimirCondicional(registro)}> Imprimir \r\n \r\n );\r\n };\r\n\r\n function descricaoSituacao(codigo) {\r\n if (codigo >= 0 && !!situacaoVenda[codigo]) {\r\n return situacaoVenda[codigo].value;\r\n }\r\n return \"\";\r\n };\r\n\r\n function retornaCorSituacao(codigo) {\r\n let cor = \"\";\r\n switch (codigo) {\r\n case 0:\r\n cor = \"processing\";\r\n break;\r\n case 1:\r\n cor = \"green\";\r\n break;\r\n case 2:\r\n cor = \"#87d068\";\r\n break;\r\n case 3:\r\n cor = \"orange\";\r\n break;\r\n case 4:\r\n cor = \"red\";\r\n break;\r\n }\r\n return cor;\r\n };\r\n\r\n function deletarCondicional(registro) {\r\n api.put(`VendaCondicional/Excluir/${registro.vnc_id}`).then(\r\n (res) => {\r\n notification.success({ message: `Sucesso!`, description: `Venda Condicional estornada com sucesso!` })\r\n }\r\n ).catch((erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vnc_datalancamento' } });\r\n });\r\n };\r\n\r\n const modalExcluirCondicional = (condicional) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente estornar a condicional do cliente ${condicional.cli_nome} contendo ${condicional.vnc_totalitens} itens com valor total de R$ ${!!condicional.vnc_valortotal ? condicional.vnc_valortotal : '0,00'} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n deletarCondicional(condicional);\r\n }\r\n });\r\n };\r\n\r\n function abrirModalItens(record) {\r\n setDados(record);\r\n setOpenModalProdutoCondicional(true);\r\n }\r\n function abrirModalContatos(record) {\r\n setPessoaId(record);\r\n setOpenModalContatoCliente(true);\r\n }\r\n\r\n async function editarCondicional(registro) {\r\n registro.vnc_datalancamento = moment(registro.vnc_datalancamento);\r\n registro.vnc_prazoretorno = moment(registro.vnc_prazoretorno);\r\n let dadosTemp = await api.get(`VendaCondicionalItem/Listar?IdVendaCondicional=${registro.vnc_id}`);\r\n registro.itens = dadosTemp.data;\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: registro } });\r\n };\r\n\r\n\r\n return (\r\n
\r\n { return campo.vnc_levarparacliente === false }} colunas={\r\n [\r\n {\r\n title: 'Situação',\r\n width: 140,\r\n align: 'center',\r\n render: ({ vnc_situacao }) => (\r\n
\r\n \r\n {descricaoSituacao(vnc_situacao)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº',\r\n width: 100,\r\n align: 'center',\r\n render: ({ vnc_numero }) => (\r\n
\r\n {vnc_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ cli_nome }) => (\r\n
\r\n {cli_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 110,\r\n render: ({ vnc_telefonecliente, pes_id }) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Lançamento',\r\n width: 135,\r\n render: ({ vnc_datalancamento }) => (\r\n
\r\n {moment(vnc_datalancamento).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Retorno',\r\n width: 135,\r\n render: ({ vnc_prazoretorno }) => (\r\n
\r\n {moment(vnc_prazoretorno).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Itens',\r\n align: 'center',\r\n width: 100,\r\n render: ({ vnc_totalitens }, record) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 150,\r\n render: ({ vnc_valortotal }) => (\r\n
\r\n {FormatNumber(vnc_valortotal, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, registro) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataFinal=${FormatDate(dataAtual.toLocaleDateString())}&dataInicial=${moment(formParametrosAvancados.getFieldValue().dataPesquisa).format('YYYY-MM-DD')}` } });\r\n formParametrosAvancados.setFieldsValue({ dataFinal: moment(dataAtual) });\r\n formParametrosAvancados.setFieldsValue({ dataInicial: moment(formParametrosAvancados.getFieldValue().dataPesquisa) });\r\n }} />\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {situacaoVenda.map(situacao => (\r\n {situacao.value}\r\n ))}\r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada(dados)} funcaoLimpar={() => { limparFiltroPesquisa() }} form={formParametrosAvancados} telaFiltro={8} retornarSempre={true} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Select, notification, Table, Button, Tag, Modal } from \"antd\";\r\nimport { EditOutlined } from \"@material-ui/icons\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport { isObjetoDiffVazio, novaAbaNavegador } from \"../../services/funcoes\";\r\nimport { FormGW, InputPreco, Data } from \"../../components\";\r\nimport { FormatDate, FormatNumber } from \"../../ValueObjects\";\r\nimport { listagemActions, manutencaoActions } from '../../actions';\r\nimport { ModalBandeiraCartao, ModalContaCorrente, ModalParcelasPendentes, ModalSenhaLiberacao, ModalCheque, ModalRetornaContaGerencial } from \"../../components/modals\";\r\n\r\nexport default function ManutencaoValePresente({ formulario, carregando, aoSalvar, formParametrosValePresente }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaCompradores, setListaCompradores] = useState([]);\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState([]);\r\n const [listaCondPagamento, setListaCondPagamento] = useState([]);\r\n const [dataAtual] = useState(new Date());\r\n const [ehCheque, setEhCheque] = useState(false);\r\n const [dadosCheque, setDadosCheque] = useState([]);\r\n const [exibirModalCheque, setExibirModalCheque] = useState(false);\r\n const [abreModalContaCorrente, setAbreModalContaCorrente] = useState(false);\r\n const [contaCorrente, setContaCorrente] = useState({});\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [openModalCartao, setOpenModalCartao] = useState(false);\r\n const [dadosVale, setDadosVale] = useState({});\r\n const [abreModalLiberacao, setAbreModalLiberacao] = useState(false);\r\n const [parcelasPessoasAtraso, setParcelasPessoasAtraso] = useState([]);\r\n const [abreModalParcPendentes, setAbreModalParcPendentes] = useState(false);\r\n const [editandoParcelas, setEditandoParcelas] = useState(false);\r\n const [semCondicao, setSemCondicao] = useState(false);\r\n const [dadosEmpresa, setDadosEmpresa] = useState({});\r\n const [openModalContaGerencial, setOpenModalContaGerencial] = useState(false);\r\n const descricaoContaGerencial = \"A Conta Gerencial ainda não foi informada e para lançamentos de Vale Presente é obrigatória. A informação será exigida uma única vez, ficando disponível nos parametros do sistema.\"\r\n\r\n const tipoFormaPagamento = {\r\n dinheiro: 1,\r\n cheque: 2,\r\n cartaoCredito: 3,\r\n cartaoDebito: 4,\r\n creditoLoja: 5,\r\n valeAlimentacao: 10,\r\n valeRefeicao: 11,\r\n valePresente: 12,\r\n valeCombustivel: 13,\r\n outro: 99\r\n };\r\n\r\n const onCloseModalLiberacao = () => {\r\n inserirDadosCrediario(dadosVale.formaPagamento[0]);\r\n setAbreModalLiberacao(false);\r\n };\r\n\r\n const onCloseModalCheque = () => {\r\n setExibirModalCheque(false);\r\n };\r\n\r\n const fecharModalCartao = () => {\r\n setOpenModalCartao(false);\r\n };\r\n const fecharModalOKCartao = () => {\r\n setOpenModalCartao(false);\r\n };\r\n\r\n const onCloseModalParcPendentes = () => {\r\n limparFormaPagamento();\r\n setAbreModalParcPendentes(false);\r\n };\r\n const onCloseCreditoBloqueado = () => {\r\n limparFormaPagamento();\r\n setAbreModalLiberacao(false);\r\n }\r\n\r\n const onCloseModalParcPendentesOk = () => {\r\n setAbreModalParcPendentes(false);\r\n inserirDadosCrediario(dadosVale.formaPagamento[0]);\r\n };\r\n\r\n const onCloseModalContaGerencial = (values) => {\r\n if (!!values && isObjetoDiffVazio(values) && values.listaContas) {\r\n let dadosObj = {};\r\n dadosObj.par_id = dadosEmpresa.par_id;\r\n dadosObj.emp_id = parseInt(values.emp_id);\r\n dadosObj.par_contagerencialvalepresente = values.cgc_contagerencialdestino;\r\n dadosObj.par_contagervalepresenteprazo = values.cgc_contagerencialdestino2;\r\n api.post(`ParametrosEmpresa/ManutencaoParametrosEmpresa`, dadosObj).then(\r\n res => {\r\n notification.success({ description: 'Conta gerencial parametrizada com sucesso!', message: 'Avisos' })\r\n setOpenModalContaGerencial(false);\r\n buscarParametrosEmp();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n } else {\r\n setOpenModalContaGerencial(false);\r\n }\r\n\r\n };\r\n\r\n function limparFormaPagamento() {\r\n formulario.setFieldsValue({ cpg_id: null, fpg_id: null });\r\n let dadosVal = { ...dadosVale };\r\n dadosVal.parcelas = [];\r\n dadosVal.formaPagamento = [];\r\n setDadosVale(dadosVal);\r\n carregarDados();\r\n console.log(\"Limpar\", dadosVal);\r\n }\r\n\r\n const salvarManutencao = (values) => {\r\n validarVale(() => {\r\n if (dadosVale.formaPagamento[0].fpg_tipoavistaaprazo === 0) {\r\n values.ctg_id = !!dadosEmpresa.par_contagerencialvalepresente ? dadosEmpresa.par_contagerencialvalepresente : null;\r\n } else {\r\n values.ctg_id = !!dadosEmpresa.par_contagervalepresenteprazo ? dadosEmpresa.par_contagervalepresenteprazo : null;\r\n }\r\n\r\n switch (dadosVale.formaPagamento[0].fpg_tipopagamento) {\r\n case tipoFormaPagamento.cheque:\r\n values.lancouCheque = false\r\n values.ctc_id = !!dadosVale.contaCorrente && !!dadosVale.contaCorrente.ctc_id ? dadosVale.contaCorrente.ctc_id : dadosVale.formaPagamento.ctc_id;\r\n values.cheques = dadosVale.cheques;\r\n break;\r\n case tipoFormaPagamento.cartaoDebito, tipoFormaPagamento.cartaoCredito:\r\n let recebimentoCartao = {};\r\n break;\r\n case tipoFormaPagamento.creditoLoja:\r\n if (dadosVale.parcelas.length == 0) {\r\n notification.warning({ description: 'Parcelas não informadas!', message: 'Aviso' });\r\n }\r\n if (editandoParcelas) {\r\n dadosVale.parcelas.forEach((parc) => {\r\n parc.prc_datavencimento = moment(formulario.getFieldValue()[`dataVencimento${parc.prc_numeroparcela}`]);\r\n parc.dataVencimento = moment(formulario.getFieldValue()[`dataVencimento${parc.prc_numeroparcela}`]);\r\n parc.valorParcela = parseFloat(formulario.getFieldValue()[`valorParcela${parc.prc_numeroparcela}`]);\r\n parc.prc_valor = parseFloat(formulario.getFieldValue()[`valorParcela${parc.prc_numeroparcela}`]);\r\n parc.cpr_numeroparcelas = parc.prc_numeroparcela;\r\n });\r\n }\r\n break;\r\n case tipoFormaPagamento.dinheiro:\r\n values.ctc_id = !!dadosVale.contaCorrente && !!dadosVale.contaCorrente.ctc_id ? dadosVale.contaCorrente.ctc_id : dadosVale.formaPagamento.ctc_id;\r\n break;\r\n }\r\n\r\n values.faturamento = dadosVale.formaPagamento;\r\n values.acf_datalancamento = moment(values.acf_datalancamento);\r\n values.acf_valor = parseFloat(values.acf_valor);\r\n values.acf_valepresente = true;\r\n values.acf_entradasaida = 2;\r\n carregando(true);\r\n api.post(`AntecipacaoClienteFornecedor/IncluirValePresente`, values).then(\r\n res => {\r\n notification.success({ message: `Operação Concluída`, description: `Vale presente salvo com sucesso!` });\r\n if (res.data?.acf_id) {\r\n novaAbaNavegador(`AntecipacaoClienteFornecedor/GerarComprovante/${res.data.acf_id}`);\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({\r\n message: `Erro ao processar a requisição!`, description: !!error.response.data.Message ? error.response.data.Message : ''\r\n });\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: `acf_datalancamento` } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataFinal=${FormatDate(dataAtual.toLocaleDateString())}&dataInicial=${FormatDate(formParametrosValePresente.dataPesquisa)}&filtro=&mostrarValeQuitado=${formParametrosValePresente.formParametrosValePresente.getFieldValue().valesQuitados}` } });\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n )\r\n });\r\n };\r\n\r\n const expandedRowRender = record => {\r\n return
(\r\n {pcl_numeroparcela}\r\n ),\r\n }, {\r\n title: 'Data Pagamento',\r\n render: ({ dataVencimento, pcl_numeroparcela }) => (\r\n
\r\n {editandoParcelas ? : moment(dataVencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ valorParcela, pcl_numeroparcela }) => (\r\n
\r\n {editandoParcelas ? { onChangeValorParc(pcl_numeroparcela) }} /> : {FormatNumber(valorParcela, true)}}\r\n
\r\n\r\n ),\r\n }\r\n ]} dataSource={record.parcelas} pagination={false} />\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n if (!!manutencao.dados.dadosModalCheque && !!manutencao.dados.dadosModalCheque.cheques) {\r\n incluirCheque(manutencao.dados.dadosModalCheque);\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n buscarParametrosEmp();\r\n }, []);\r\n\r\n useEffect(() => {\r\n let formaPgto = !!dadosVale.formaPagamento ? dadosVale.formaPagamento[dadosVale.formaPagamento.length - 1] : null;\r\n if (((!!formaPgto && formaPgto.cpg_id) || semCondicao) && !openModalCartao) {\r\n if (formaPgto.fpg_tipopagamento === tipoFormaPagamento.cartaoCredito || formaPgto.fpg_tipopagamento === tipoFormaPagamento.cartaoDebito) {\r\n abrirModalCartao(dadosVale);\r\n } else if (formaPgto.fpg_tipopagamento === tipoFormaPagamento.creditoLoja && (!!!formaPgto.parcelas || formaPgto.parcelas.length === 0)) {\r\n verificarRestricoesCredito(false, () => {\r\n inserirDadosCrediario(formaPgto);\r\n });\r\n\r\n }\r\n }\r\n }, [dadosVale]);\r\n\r\n function carregarDados() {\r\n if (!!!formulario.getFieldValue().acf_datalancamento) {\r\n formulario.setFieldsValue({ acf_datalancamento: moment(new Date()) });\r\n }\r\n api.get(`FormaPagamento/Listar?filtro=&apenasAtivos=true&Order=%2Bfpg_descricao&PageSize=500`).then(\r\n (res) => {\r\n let dados = [];\r\n res.data.items.forEach((fpg) => {\r\n //Demais formas não implementadas\r\n if (fpg.fpg_tipopagamento === tipoFormaPagamento.dinheiro || fpg.fpg_tipopagamento === tipoFormaPagamento.cheque || fpg.fpg_tipopagamento === tipoFormaPagamento.creditoLoja) {\r\n dados.push(fpg);\r\n }\r\n });\r\n setListaFormaPagamento(dados);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarCondicao(fpg_id) {\r\n api.get(`CondicaoPagamento/Listar?codigoFormaPagamento=${fpg_id}&PageSize=500`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setListaCondPagamento(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function buscarParametrosEmp() {\r\n api.get(`ParametroEmpresa/BuscarParametros`).then(\r\n res => {\r\n setDadosEmpresa(res.data);\r\n if (!!!res.data.par_contagerencialvalepresente || !!!res.data.par_contagervalepresenteprazo && (!!!manutencao.dados || (!!manutencao.dados && !!!manutencao.dados.acf_id))) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: 'Conta gerencial não parametrizada para vale presente, deseja parametrizar as mesmas?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n let obj = {};\r\n obj.cgc_contagerencialdestino = res.data.par_contagerencialvalepresente;\r\n obj.cgc_contagerencialdestino2 = res.data.par_contagervalepresenteprazo;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ dadosEmpresa: obj } } } });\r\n setOpenModalContaGerencial(true);\r\n }\r\n });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function onChangeFormaPagamento(fpg_id) {\r\n if (fpg_id) {\r\n let dados = { ...dadosVale };\r\n let formaPagamento = [];\r\n let faturamento = listaFormaPagamento.filter((forma) => (forma.fpg_id === formulario.getFieldValue().fpg_id))[0];\r\n let cliente = listaCompradores.filter((compradores) => compradores.pes_id === formulario.getFieldValue().pes_id)[0];\r\n formulario.setFieldsValue({ cpg_id: null });\r\n if (faturamento.fpg_tipopagamento === tipoFormaPagamento.creditoLoja) {\r\n if (!!cliente && cliente.cli_vendasomenteavista) {\r\n formulario.setFieldsValue({ fpg_id: null });\r\n notification.warn({ description: 'Venda a prazo não autorizada!', message: 'Aviso' });\r\n return false;\r\n }\r\n }\r\n faturamento.parcelas = [];\r\n faturamento.cheques = [];\r\n faturamento.valor = parseFloat(formulario.getFieldValue().acf_valor);\r\n formaPagamento.push(faturamento);\r\n dados.formaPagamento = formaPagamento;\r\n if (faturamento.fpg_tipopagamento !== tipoFormaPagamento.cheque) {\r\n if (faturamento.fpg_tipopagamento === tipoFormaPagamento.dinheiro || faturamento.fpg_tipopagamento === tipoFormaPagamento.valePresente) {\r\n setSemCondicao(true);\r\n validarContaCorrente(dados);\r\n } else {\r\n listarCondicao(fpg_id);\r\n setSemCondicao(false);\r\n }\r\n setEhCheque(false);\r\n formulario.setFieldsValue({ numeroCheques: null });\r\n } else {\r\n setEhCheque(true);\r\n setSemCondicao(true);\r\n }\r\n setDadosVale(dados);\r\n } else {\r\n limparFormaPagamento();\r\n }\r\n };\r\n\r\n function onChangeCondicao(cpg_id) {\r\n let dados = { ...dadosVale };\r\n let dadosFormaPagamento = dados.formaPagamento.find((forma) => forma.fpg_id === formulario.getFieldValue().fpg_id);\r\n dadosFormaPagamento.cpg_id = cpg_id;\r\n if (parseFloat(formulario.getFieldValue().acf_valor) !== 0) {\r\n validarContaCorrente(dados, () => {\r\n setDadosVale(dados);\r\n });\r\n } else {\r\n formulario.setFieldsValue({ cpg_id: null });\r\n notification.warning({ description: 'Favor informar o valor do vale', message: 'Aviso' });\r\n }\r\n };\r\n\r\n function validarContaCorrente(dados, callback) {\r\n let formaPgto = dados.formaPagamento[dados.formaPagamento.length - 1];\r\n if ((!!!formaPgto.ctc_id && (!!!dados.contaCorrente || (!!dados.contaCorrente && !!!dados.contaCorrente.ctc_id)))\r\n && (formaPgto.fpg_tipopagamento === tipoFormaPagamento.cheque || formaPgto.fpg_tipopagamento === tipoFormaPagamento.dinheiro\r\n || formaPgto.fpg_tipopagamento === tipoFormaPagamento.depositoBancario || formaPgto.fpg_tipopagamento === tipoFormaPagamento.pix\r\n || formaPgto.fpg_tipopagamento === tipoFormaPagamento.transfBancaria)) {\r\n setAbreModalContaCorrente(true);\r\n } else {\r\n if (!!callback) {\r\n callback();\r\n }\r\n }\r\n\r\n\r\n };\r\n\r\n function validarVale(callback) {\r\n let dados = { ...dadosVale };\r\n dados.formaPagamento.forEach((faturamento) => {\r\n if (faturamento.fpg_tipopagamento === tipoFormaPagamento.creditoLoja && !!!formulario.getFieldValue().pes_id) {\r\n notification.warning({ description: 'Para venda a prazo é obrigatório informar o comprador!', message: 'Aviso' });\r\n return;\r\n }\r\n if (faturamento.fpg_tipopagamento === tipoFormaPagamento.cheque) {\r\n\r\n }\r\n });\r\n if (!(parseFloat(formulario.getFieldValue().acf_valor) > 0)) {\r\n notification.warning({ description: 'Favor informar o valor do vale', message: 'Aviso' });\r\n return;\r\n }\r\n\r\n if (!!callback) {\r\n callback();\r\n }\r\n };\r\n\r\n function pagamentoCartao(dados, dadosCartao) {\r\n let dataAtual = new Date();\r\n let dadosVal = { ...dadosVale };\r\n let recebimentoCartao = [];\r\n let retorno = {};\r\n if (dadosCartao.tipoParcelamento === 0) {//Estabelecimento\r\n let numeroDias = !!dados.credito ? dadosCartao.bandeira.bce_nrodiasrecebimentocredito : dadosCartao.bandeira.bce_nrodiasrecebimentodebito;\r\n dadosVal.parcelas.forEach((parcela) => {\r\n retorno.tipoParcelamento = dadosCartao.tipoParcelamento;\r\n retorno.bce_id = dadosCartao.bandeira.bce_id;\r\n retorno.rcc_parcelarecebimento = parcela.pcl_numeroparcela;\r\n retorno.rcc_valor = parcela.prc_valor;\r\n retorno.rcc_nsu = dadosCartao.nsu;\r\n retorno.rcc_previsaorecebimento = new Date(dataAtual.setDate(dataAtual.getDate() + numeroDias));\r\n recebimentoCartao.push(retorno);\r\n });\r\n } else {\r\n retorno.tipoParcelamento = dadosCartao.tipoParcelamento;\r\n retorno.bce_id = dadosCartao.bandeira.bce_id;\r\n retorno.rcc_parcelarecebimento = 1;\r\n retorno.rcc_valor = formulario.getFieldValue().acf_valor;\r\n retorno.rcc_nsu = dadosCartao.nsu;\r\n retorno.rcc_previsaorecebimento = new Date(dataAtual.setDate(dataAtual.getDate() + parseInt(dadosCartao.bandeira.bce_nrodiasrecebimentocredito)));\r\n recebimentoCartao.push(retorno);\r\n }\r\n if (dadosVal.formaPagamento.fpg_tipopagamento === tipoFormaPagamento.cartaoDebito) {\r\n dadosVal.parcelas.forEach(parcela => {\r\n parcela.pcl_numerodias = dadosCartao.bandeira.bce_nrodiasrecebimentodebito;\r\n let dataVencimento = new Date(dataAtual.setDate(dataAtual.getDate() + parseInt(parcela.pcl_numerodias)));\r\n parcela.dataPagamento = dataVencimento;\r\n parcela.prc_datavencimento = moment(dataVencimento);\r\n parcela.dataVencimento = moment(dataVencimento);\r\n });\r\n }\r\n\r\n dadosVal.recebimentoCartao = recebimentoCartao;\r\n setDadosVale(dadosVal);\r\n };\r\n\r\n function incluirCheque(dados) {\r\n let dadosVal = { ...dadosVale };\r\n dadosVal.formaPagamento[dadosVal.formaPagamento.length - 1].cheques = dados.cheques;\r\n dadosVal.formaPagamento[dadosVal.formaPagamento.length - 1].ctc_id = dados.contaCorrente;\r\n setDadosVale(dadosVal);\r\n };\r\n\r\n function onCloseModalContaCorrente() {\r\n let dados = { ...dadosVale };\r\n dados.formaPagamento[dados.formaPagamento.length - 1].ctc_id = contaCorrente.ctc_id;\r\n dados.contaCorrente = { ctc_id: contaCorrente.ctc_id, ctc_descricao: contaCorrente.ctc_descricao };\r\n setDadosVale(dados);\r\n setAbreModalContaCorrente(false);\r\n };\r\n\r\n function abrirModalCheque() {\r\n if (!!formulario.getFieldValue().numeroCheques && parseFloat(formulario.getFieldValue().numeroCheques) > 0) {\r\n if (!!formulario.getFieldValue().acf_valor && parseFloat(formulario.getFieldValue().acf_valor) > 0) {\r\n let dados = {\r\n numeroCheques: formulario.getFieldValue().numeroCheques,\r\n pfp_valor: formulario.getFieldValue().acf_valor\r\n };\r\n setDadosCheque(dados);\r\n setExibirModalCheque(true);\r\n } else {\r\n notification.warning({ description: 'Favor informar o valor do vale!', message: 'Aviso' })\r\n }\r\n } else {\r\n notification.warning({ description: 'Favor informar o número de cheques!', message: 'Aviso' })\r\n }\r\n };\r\n\r\n function abrirModalCartao(dados) {\r\n if (dados.formaPagamento.fpg_tipopagamento === tipoFormaPagamento.cartaoCredito) {\r\n popularParcelas(dados, () => {\r\n setOpenModalCartao(true);\r\n });\r\n } else if (dados.formaPagamento.fpg_tipopagamento === tipoFormaPagamento.cartaoDebito) {\r\n popularParcelasDebito(dados, () => {\r\n setOpenModalCartao(true);\r\n });\r\n }\r\n };\r\n\r\n function popularParcelas(dados, callback) {\r\n api.get(`CondicaoPagamento/ListarParcelamento?codigoCondicaoPagamento=${dados.cpg_id}`).then(\r\n res => {\r\n if (!!res.data && res.data.length > 0) {\r\n let resto = 0;\r\n let somaParcelas = 0;\r\n let listaParcelas = [];\r\n res.data.forEach((parcela) => {\r\n let dataAtual = new Date();\r\n let parc = {};\r\n let dataVencimento = new Date(dataAtual.setDate(dataAtual.getDate() + parcela.pcl_numerodias));\r\n parc.fpg_id = dados.fpg_id;\r\n parc.fpg_descricao = dados.fpg_descricao;\r\n parc.fpg_tipopagamento = dados.fpg_tipopagamento;\r\n parc.cpg_id = dados.cpg_id;\r\n parc.pcl_numerodias = parcela.pcl_numerodias;\r\n parc.pcl_percparcela = parcela.pcl_percparcela;\r\n parc.pcl_numeroparcela = parcela.pcl_numeroparcela;\r\n parc.prc_numeroparcela = parcela.pcl_numeroparcela;\r\n parc.dataPagamento = dataVencimento;\r\n parc.prc_datavencimento = moment(dataVencimento);\r\n parc.dataVencimento = moment(dataVencimento);\r\n let valorParcela = ((parcela.pcl_percparcela / 100) * parseFloat(formulario.getFieldValue().acf_valor)).toFixed(2);\r\n parc.valorParcela = parseFloat(valorParcela);\r\n parc.prc_valor = parseFloat(valorParcela);\r\n somaParcelas += parc.valorParcela;\r\n listaParcelas.push(parc);\r\n });\r\n somaParcelas = somaParcelas.toFixed(2);\r\n somaParcelas = parseFloat(somaParcelas);\r\n resto = parseFloat(formulario.getFieldValue().acf_valor) - somaParcelas;\r\n if (resto != 0) {\r\n let numeroUltimaParcela = res.data.length - 1;\r\n let valParcela = listaParcelas[numeroUltimaParcela].valorParcela;\r\n let totalParcela = (valParcela + resto).toFixed(2);\r\n totalParcela = parseFloat(totalParcela);\r\n listaParcelas[numeroUltimaParcela].prc_valor = totalParcela;\r\n listaParcelas[numeroUltimaParcela].valorParcela = totalParcela;\r\n }\r\n dados.parcelas = listaParcelas;\r\n if (dados.fpg_tipopagamento !== tipoFormaPagamento.creditoLoja) {\r\n let creditoDebito = dados.fpg_tipopagamento === tipoFormaPagamento.cartaoCredito;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ... { credito: creditoDebito } } } });\r\n }\r\n let dadosVal = { ...dadosVale };\r\n dadosVal.parcelas = listaParcelas;\r\n dadosVal.formaPagamento[dadosVal.formaPagamento.length - 1] = dados;\r\n setDadosVale(dadosVal);\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function popularParcelasDebito(dados, callback) {\r\n let listaParcelas = [];\r\n let parc = {};\r\n parc.fpg_id = dados.formaPagamento.fpg_id;\r\n parc.fpg_descricao = dados.formaPagamento.fpg_descricao;\r\n parc.fpg_tipopagamento = dados.formaPagamento.fpg_tipopagamento;\r\n parc.cpg_id = dados.condicao.cpg_id;\r\n parc.pcl_percparcela = 100;\r\n parc.pcl_numeroparcela = 1;\r\n parc.prc_numeroparcela = 1;\r\n let valorParcela = ((parc.pcl_percparcela / 100) * parseFloat(formulario.getFieldValue().acf_valor)).toFixed(2);\r\n parc.valorParcela = parseFloat(valorParcela);\r\n parc.prc_valor = parseFloat(valorParcela);\r\n listaParcelas.push(parc);\r\n dados.parcelas = listaParcelas;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ... { credito: false } } } });\r\n setDadosVale(dados);\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n\r\n function popularValor() {\r\n let dados = { ...dadosVale };\r\n dados.valor = formulario.getFieldValue().acf_valor;\r\n setDadosVale(dados);\r\n if (!!formulario.getFieldValue().numeroCheques && parseFloat(formulario.getFieldValue().numeroCheques) > 0 && ehCheque) {\r\n abrirModalCheque();\r\n }\r\n };\r\n\r\n function editarFormasPagamento() {\r\n setEditandoParcelas(true);\r\n dadosVale.parcelas.forEach((parc) => {\r\n formulario.setFieldsValue({ [`valorParcela${parc.pcl_numeroparcela}`]: parc.pfp_valor });\r\n });\r\n };\r\n\r\n function verificarRestricoesCredito(liberado, callback) {\r\n let parcelasAtraso = [];\r\n let dadosVal = { ...dadosVale };\r\n let limiteCreditoDisp = {};\r\n if (liberado) {\r\n callback();\r\n } else if (parseInt(dadosVal.formaPagamento[0].fpg_tipopagamento) === tipoFormaPagamento.creditoLoja) {\r\n if (!!!formulario.getFieldValue().pes_id) {\r\n notification.warning({ description: 'Favor informar o comprador do vale presente!', message: 'Aviso' });\r\n }\r\n api.get(`Parcela/ListarParcelasClientesEmAtrazo?IdPessoa=${formulario.getFieldValue().pes_id}&pageSize=500`).then(\r\n parcelasPessoa => {\r\n let dados = [...parcelasPessoa.data.items];\r\n api.get(`Cliente/LimiteCreditoDisponivel/${formulario.getFieldValue().pes_id}`).then(\r\n limiteCredito => {\r\n parcelasAtraso = parcelasPessoa.data.items;\r\n limiteCreditoDisp = limiteCredito.data;\r\n dados.forEach((parcelas) => { parcelas.limiteCredito = limiteCreditoDisp.valorTotal });\r\n setParcelasPessoasAtraso(dados);\r\n if (!!!parcelasAtraso) {\r\n notification.warning({ description: 'Não foi possível verificar as parcelas em atraso deste cliente. É recomendável que você fale com seu supervisor/gerente antes de prosseguir com a venda!', message: 'Aviso' });\r\n } else if (parcelasAtraso.length > 0) {\r\n setAbreModalParcPendentes(true);\r\n } else if (!!!limiteCreditoDisp) {\r\n notification.warning({ description: 'Não foi possível verificar o limite de crédito disponível para realizar a venda no crediário. É recomendável que você fale com seu supervisor/gerente antes de prosseguir com a venda!', message: 'Aviso' });\r\n } else if (limiteCreditoDisp.valorTotal !== 0 && limiteCreditoDisp.valorTotal < parseFloat(dadosVal.valor)) {\r\n Modal.confirm({\r\n title: `Aviso`,\r\n icon: ,\r\n content: `O limite de crédito ainda disponível para compras à prazo deste cliente é: ${parseFloat(limiteCreditoDisp.valorTotal).toFixed(2).toString()}. Para continuar com a venda à prazo você deve solicitar autorização da operação com seu supervisor/gerente.`,\r\n okText: 'Solicitar Autorização',\r\n cancelText: 'OK',\r\n onOk() {\r\n setAbreModalLiberacao(true);\r\n }\r\n });\r\n } else {\r\n callback();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n function inserirDadosCrediario(formaPgto) {\r\n popularParcelas(formaPgto, () => { });\r\n };\r\n\r\n function onChangeValorParc(numeroParc) {\r\n let valorJaUtilizado = 0;\r\n let valorRestante = 0;\r\n let valorRestanteTot = 0;\r\n let valorParcelas = 0;\r\n let valorTotal = parseFloat(formulario.getFieldValue().acf_valor);\r\n let dados = formulario.getFieldValue();\r\n let qtdTotParcelas = dadosVale.parcelas.length;\r\n if (numeroParc === qtdTotParcelas) {\r\n return;\r\n }\r\n for (let i = 1; i <= numeroParc; i++) {\r\n valorJaUtilizado += parseFloat(dados[`valorParcela${i}`]);\r\n }\r\n valorRestante = valorTotal - valorJaUtilizado;\r\n valorParcelas = parseFloat((valorRestante / (qtdTotParcelas - numeroParc)).toFixed(2));\r\n for (let i = qtdTotParcelas; i > numeroParc; i--) {\r\n valorRestanteTot += valorParcelas;\r\n formulario.setFieldsValue({ [`valorParcela${i}`]: valorParcelas });\r\n }\r\n let valorSobra = valorTotal - (valorJaUtilizado + valorRestanteTot);\r\n formulario.setFieldsValue({ [`valorParcela${qtdTotParcelas}`]: parseFloat((valorParcelas + valorSobra).toFixed(2)) });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n ({com.pes_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ehCheque && \r\n \r\n { abrirModalCheque() }}>\r\n \r\n }\r\n {!ehCheque && !semCondicao && \r\n \r\n \r\n \r\n }\r\n \r\n { popularValor() }} />\r\n \r\n \r\n \r\n \r\n
\r\n {!!dadosVale.parcelas && dadosVale.parcelas.length > 0 &&
(\r\n
\r\n \r\n {!!condicao && !!condicao.cpg_descricao ? formaPagamento.fpg_descricao + ' / ' + condicao.cpg_descricao : formaPagamento.fpg_descricao}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ valor }) => (\r\n
\r\n {FormatNumber(valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Total dos Pagamentos (R$): \r\n \r\n \r\n \r\n {FormatNumber(dadosVale.valor, true)}\r\n \r\n \r\n \r\n \r\n )\r\n }} dataSource={[dadosVale]}\r\n />}\r\n \r\n \r\n \r\n \r\n \r\n \r\n { onCloseModalContaCorrente() }} fecharModalContaCorrente={() => { setAbreModalContaCorrente(false); }} contaCorrente={{ contaCorrente, setContaCorrente }} listaContaCorrente={{ listaContaCorrente, setListaContaCorrente }} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoValePresente from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerValePresente(formParametrosValePresente, dataPesquisa) {\r\n\r\n const [formValePresente] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n\r\n if (manutencao.dados !== null) { formValePresente.setFieldsValue(manutencao.dados); }\r\n else {\r\n //formValePresente.resetFields();\r\n formValePresente.setFieldsValue({ icm_ativo: true });\r\n }\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n formValePresente.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from 'react';\r\nimport moment from 'moment';\r\nimport { Row, Col, Form, Button, Collapse, Checkbox, Modal, notification } from 'antd';\r\nimport { ArrowDownOutlined, ArrowUpOutlined, SearchOutlined, PrinterOutlined, DeleteOutlined, ExclamationCircleOutlined, CloseOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerValePresente from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { linkApi } from '../../services/auth';\r\nimport { FormatNumber, FormatDate } from \"../../ValueObjects\";\r\nimport { listagemActions, manutencaoActions } from '../../actions';\r\nimport { BreadcrumbIncluirDados, ComboData, TabelaDados, Excluir, Imprimir, Data, FiltroSearch } from '../../components';\r\n\r\nexport default function ValePresente() {\r\n\r\n const [open, setOpen] = useState(false);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [parametrosValePresente] = Form.useForm();\r\n const [dataPesquisa, setDataPesquisa] = useState(new Date().toLocaleDateString());\r\n const [dataAtual] = useState(new Date());\r\n const [valesQuitados, setValesQuitados] = useState(false);\r\n\r\n useEffect(() => {\r\n aplicarFiltrosAvancados();\r\n }, [valesQuitados]);\r\n\r\n function aplicarFiltrosAvancados() {\r\n let filtros = '';\r\n filtros += `&SomenteAtivos=true`;\r\n filtros += `&dataInicial=${(!!!parametrosValePresente.getFieldValue().dataPesquisa ? moment(dataAtual).format(\"YYYY-MM-DD\") : !!parametrosValePresente.getFieldValue().DataInicial ? moment(parametrosValePresente.getFieldValue().DataInicial).format('YYYY-MM-DD') : moment(parametrosValePresente.getFieldValue().DataPesquisa).format('YYYY-MM-DD'))}`;\r\n filtros += `&dataFinal=${(!!!parametrosValePresente.getFieldValue().DataFinal ? moment(dataAtual).format(\"YYYY-MM-DD\") : moment(parametrosValePresente.getFieldValue().DataFinal).format('YYYY-MM-DD'))}`;\r\n filtros += `&filtro=&mostrarValeQuitado=${(!!parametrosValePresente.getFieldValue().valesQuitados ? parametrosValePresente.getFieldValue().valesQuitados : false)}`;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtros, ordem: 'acf_datalancamento' } });\r\n };\r\n\r\n const modalImprimir = (record) => {\r\n Modal.confirm({\r\n title: 'Imprimir',\r\n icon: ,\r\n content: `Confirmar impressão do vale ${record.acf_nomepresenteado} no valor de ${FormatNumber(record.acf_valor, true)}?`,\r\n okText: 'Imprimir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n imprimir(record);\r\n }\r\n });\r\n };\r\n\r\n function excluirVale(valePresente) {\r\n api.post(`AntecipacaoClienteFornecedor/ExcluirValePresente/${valePresente.acf_id}`).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n notification.success({ message: 'Vale presente excluida com Sucesso!' });\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.warning({ message: `Aviso!`, description: erro.response.data });\r\n //notification.warning({ message: `Aviso!`, description: `Não foi possivel excluir, deve conter referências com outros registros!` });\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: 'acf_datalancamento' } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&SomenteAtivos=true&dataFinal=${FormatDate(dataAtual.toLocaleDateString())}&dataInicial=${FormatDate(dataPesquisa)}&filtro=&mostrarValeQuitado=${parametrosValePresente.getFieldValue().valesQuitados}` } })\r\n }\r\n );\r\n };\r\n\r\n const modalExcluirVale = (ValePresente) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o Vale de R$ ${ValePresente.acf_valor} presenteado à ${ValePresente.acf_nomepresenteado} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirVale(ValePresente);\r\n }\r\n });\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n const imprimir = ValePresente => {\r\n window.open(linkApi + 'AntecipacaoClienteFornecedor/GerarComprovante/' + ValePresente.acf_id, \"_blank\");\r\n };\r\n\r\n useEffect(() => {\r\n parametrosValePresente.setFieldsValue({ DataFinal: moment(dataAtual) });\r\n parametrosValePresente.setFieldsValue({ DataInicial: moment(parametrosValePresente.getFieldValue().dataPesquisa) });\r\n }, [])\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {\r\n parametrosValePresente.setFieldsValue({ DataFinal: moment(dataAtual) });\r\n parametrosValePresente.setFieldsValue({ DataInicial: moment(parametrosValePresente.getFieldValue().dataPesquisa) });\r\n aplicarFiltrosAvancados();\r\n }} />\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n { setValesQuitados(value) }}> Mostrar Vales Quitados? \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n
\r\n {acf_codigovalepresente}\r\n \r\n \r\n -\r\n \r\n \r\n {acf_nomepresenteado}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 40,\r\n render: ({ acf_datalancamento }) => (\r\n
\r\n {moment(acf_datalancamento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n width: 50,\r\n align: 'right',\r\n render: ({ acf_valor }) => (\r\n
\r\n {FormatNumber(acf_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Utilizado (R$)',\r\n width: 50,\r\n align: 'right',\r\n render: ({ valorUtilizado }) => (\r\n
\r\n {FormatNumber(valorUtilizado, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Saldo (R$)',\r\n width: 50,\r\n align: 'right',\r\n render: ({ saldoAntecipacao }) => (\r\n
\r\n {FormatNumber(saldoAntecipacao, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'right',\r\n fixed: 'right',\r\n width: 30,\r\n render: (dados) => (\r\n
\r\n \r\n
\r\n } onClick={() => { modalImprimir(dados) }} />\r\n \r\n \r\n modalExcluirVale(dados)} icon={} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]}\r\n />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect } from 'react';\r\nimport { Form, Row, Col, Input, notification, Tag, Alert } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { compararDatas } from '../../services/funcoes';\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { Data, FormGW, InputPreco, TabelaDados } from \"../../components\";\r\n\r\nexport default function ManutencaoMetas({ formulario, carregando, aoSalvar, editando }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n\r\n function salvarMeta(values) {\r\n if (!values.mtv_id) {\r\n if (manutencao.dados.length == 0) {\r\n notification.error({ message: 'Atenção', description: \"Não foi selecionado nenhum vendedor!\" });\r\n return;\r\n } values.listaVendedoresMetas = manutencao.dados;\r\n }\r\n carregando(true);\r\n if (!!values.mtv_id) {\r\n api.put(`MetaVenda/EditarAsync`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da meta foram editados com sucesso!\" });\r\n }\r\n ).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n api.post(`MetaVenda/IncluirAsync`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da meta foram incluídos com sucesso!\" });\r\n }\r\n ).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n };\r\n\r\n function listarMsgVendedorComMeta(valor) {\r\n if (valor > 0) {\r\n return \r\n } else {\r\n return ;\r\n }\r\n };\r\n\r\n function populaVendedoresSel(keys, linhas) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: linhas } });\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (compararDatas(formulario.getFieldValue().mtv_datainicial, formulario.getFieldValue().mtv_datafinal, '<=')) {\r\n return Promise.resolve();\r\n } else {\r\n formulario.setFieldsValue({ mtv_datafinal: null });\r\n return Promise.reject(notification.warning({ description: 'Data final deve ser maior que a data inicial!' }));\r\n }\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport ManutencaoMetas from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\nimport { FormatDate } from '../../ValueObjects';\r\nimport moment from 'moment';\r\n\r\nexport default function DrawerMetas() {\r\n\r\n const [formManutencao, setFormManutencao] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n if (!!manutencao.dados && !editando) {\r\n if (!!manutencao.dados.mtv_id)\r\n setEditando(true);\r\n\r\n formManutencao.setFieldsValue(manutencao.dados);\r\n } else {\r\n //formManutencao.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formManutencao.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome', outrosFiltros: `&dataInicial=${FormatDate(moment(new Date()).toDate().toLocaleDateString())}` } });\r\n setEditando(false);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n limparAoEditar={true}\r\n fecharDrawer={fecharDrawer}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Tag, Progress, Modal, notification } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport DrawerMetas from './drawer';\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber, FormatDate } from '../../ValueObjects/';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { TabelaDados, Editar, Excluir, Data, BotaoAbrirChamado, BotaoIncluirDados, BreadcrumbPage, FiltroOrdenacao, FiltroSearch } from \"../../components\";\r\n\r\nexport default function Metas() {\r\n\r\n const [parametrosMetasVendas] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n\r\n useEffect(() => {\r\n parametrosMetasVendas.setFieldsValue({ dataInicial: moment(new Date()) });\r\n let data = !!parametrosMetasVendas.getFieldValue().dataInicial ? `&dataInicial=${FormatDate(parametrosMetasVendas.getFieldValue().dataInicial.toDate().toLocaleDateString())}` : null;\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome', outrosFiltros: data } });\r\n carregarDados();\r\n }, []);\r\n\r\n function excluirMeta(metaVenda) {\r\n api.delete(`MetaVenda/ExcluirAsync/${metaVenda.mtv_id}`).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n notification.warning({ message: 'Aviso!', description: 'Erro ao excluir a meta!' });\r\n }\r\n ).finally(\r\n () => {\r\n let data = !!parametrosMetasVendas.getFieldValue().dataInicial ? `&dataInicial=${FormatDate(parametrosMetasVendas.getFieldValue().dataInicial.toDate().toLocaleDateString())}` : null;\r\n dispatch({ type: listagemActions.CHANGE, data: { pageNumber: '1', ordem: '+pes_nome', outrosFiltros: data } });\r\n }\r\n );\r\n };\r\n\r\n const modalExcluirMeta = (metaVenda) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a meta de R$ ${metaVenda.mtv_valor} para o vendedor ${metaVenda.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirMeta(metaVenda);\r\n }\r\n });\r\n };\r\n\r\n function calculaPorcentagem(valor, vendido) {\r\n return (vendido * 100) / valor\r\n };\r\n\r\n function carregarDados() {\r\n if (!!parametrosMetasVendas.getFieldsValue().dataInicial) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataInicial=${FormatDate(parametrosMetasVendas.getFieldValue().dataInicial.toDate().toLocaleDateString())}` } });\r\n }\r\n };\r\n function showDrawerEdit(record) {\r\n record.mtv_datainicial = moment(record.mtv_datainicial);\r\n record.mtv_datafinal = moment(record.mtv_datafinal);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n { carregarDados(value) }} name=\"dataInicial\" label=\"Data Inicial\" />\r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {ven_id}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Vendedor',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Metas',\r\n align: 'center',\r\n children: [\r\n {\r\n title: 'Meta (R$)',\r\n align: 'right',\r\n width: 180,\r\n render: ({ mtv_valor }) => (\r\n
\r\n {FormatNumber(mtv_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vendido (R$)',\r\n align: 'right',\r\n width: 100,\r\n render: ({ mtv_totalvendido }) => (\r\n
\r\n {FormatNumber(mtv_totalvendido, true)}\r\n
\r\n ),\r\n },\r\n {\r\n render: ({ mtv_valor, mtv_totalvendido }) => (\r\n
\r\n `${parseFloat(percent.toFixed(2))}%`} />\r\n
\r\n ),\r\n },\r\n ]\r\n },\r\n {\r\n title: 'Datas',\r\n align: 'center',\r\n children: [\r\n {\r\n title: 'Inicial',\r\n align: 'center',\r\n width: 120,\r\n render: ({ mtv_datainicial }) => (\r\n
\r\n {moment(mtv_datainicial).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Final',\r\n align: 'center',\r\n width: 120,\r\n render: ({ mtv_datafinal }) => (\r\n
\r\n {moment(mtv_datafinal).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n { showDrawerEdit(record) }} icon={} />\r\n \r\n \r\n { modalExcluirMeta(record) }} icon={} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Form, Row, Col, InputNumber, Tag, Alert, Radio, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport { FormGW, TabelaDados } from \"../../components\";\r\n\r\nexport default function ManutencaoComissao({ formulario, carregando, aoSalvar, editar }) {\r\n\r\n const [formComissao] = Form.useForm();\r\n const [dados, setDados] = useState([]);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [vendedorSelec, setVendedorSelec] = useState([]);\r\n\r\n function possuiComissao(registro) {\r\n let retorno = false;\r\n if ((!!registro.ven_perccomissaoaprazo && registro.ven_perccomissaoaprazo > 0) ||\r\n (!!registro.ven_perccomissaoavista && registro.ven_perccomissaoavista > 0)) {\r\n retorno = true;\r\n }\r\n return retorno;\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+loc_id' } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `` } });\r\n formulario.setFieldsValue({ ven_formacalculocomissao: 1 });\r\n }, []);\r\n\r\n function popularVendedoresSelec(keys, linhas) {\r\n setVendedorSelec(linhas);\r\n };\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+loc_id' } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `` } });\r\n };\r\n\r\n function salvarDados(dados) {\r\n if ((!!vendedorSelec && vendedorSelec.length > 0) || editar) {\r\n let dadosTemp = {};\r\n dadosTemp.ven_formacalculocomissao = !!dados.ven_formacalculocomissao ? dados.ven_formacalculocomissao : \"\";\r\n dadosTemp.ven_formulacomissao = !!dados.ven_formulacomissao ? dados.ven_formulacomissao : \"\";\r\n dadosTemp.ven_perccomissaoaprazo = dados.ven_perccomissaoaprazo;\r\n dadosTemp.ven_perccomissaoavista = dados.ven_perccomissaoavista;\r\n dadosTemp.vendedores = vendedorSelec;\r\n if (editar) {\r\n dadosTemp.vendedores.push({ ven_id: dados.ven_id });\r\n }\r\n carregando(true);\r\n api.put('Comissao/EditarComissao', dadosTemp).then(\r\n res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados de comissão foram salvos com sucesso!\" });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n notification.warning({ message: 'Vendedores não selecionados', description: \"Favor selecionar ao menos um vendedor!\" });\r\n }\r\n };\r\n\r\n function retornaFormula(valor) {\r\n let retorno = \"\";\r\n\r\n if (valor === 1) {\r\n retorno = \"Recebimento\";\r\n } else if (valor === 2) {\r\n retorno = \"Faturamento\";\r\n } else {\r\n retorno = \"\";\r\n }\r\n return retorno;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')} />\r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {!editar && (\r\n \r\n {ven_id}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Vendedores',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Percentual %',\r\n align: 'center',\r\n colSpan: 3,\r\n children: [\r\n {\r\n title: 'à Vista',\r\n align: 'center',\r\n render: ({ ven_perccomissaoavista }) => (\r\n
\r\n {((ven_perccomissaoavista > 0) ? {ven_perccomissaoavista}% : '')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'à Prazo',\r\n align: 'center',\r\n render: ({ ven_perccomissaoaprazo }) => (\r\n
\r\n {((ven_perccomissaoaprazo > 0) ? {ven_perccomissaoaprazo} % : '')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Atenção',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n render: (record) => (\r\n
\r\n {!possuiComissao(record) && }\r\n
\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: '',\r\n align: 'center',\r\n render: ({ ven_formacalculocomissao }) => (\r\n
\r\n {retornaFormula(ven_formacalculocomissao)}\r\n
\r\n ),\r\n },\r\n ]\r\n } parametrosSelecionarItens={\r\n {\r\n tipo: \"change\",\r\n funcao: popularVendedoresSelec\r\n }\r\n } />}\r\n
\r\n \r\n );\r\n\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoComissao from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerComissao({editar}) {\r\n\r\n const [formManutencao, setFormManutencao] = Form.useForm();\r\n const [ carregando, setCarregando ] = useState(false);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n if (manutencao.dados !== null) {\r\n formManutencao.setFieldsValue(manutencao.dados);\r\n } else {\r\n //formManutencao.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formManutencao.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n destroyOnClose\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Form, Tag } from \"antd\";\r\nimport { EditOutlined } from \"@ant-design/icons\";\r\n\r\nimport DrawerComissao from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BotaoIncluirDados, BotaoAbrirChamado, BreadcrumbPage, FiltroSearch, TabelaDados, Editar } from \"../../components\";\r\n\r\nexport default function Comissao() {\r\n\r\n const [openManutencao, setOpenManutencao] = useState(false);\r\n const [registroManutencao, setRegistroManutencao] = useState({});\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [editar, setEditar] = useState(false);\r\n\r\n const showDrawer = () => {\r\n setEditar(false);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+loc_id' } });\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `` } });\r\n }, []);\r\n\r\n function editarComissao(registro) {\r\n setEditar(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: registro } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n showDrawer({})}>\r\n DEFINIR COMISSÃO\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {ven_id}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Comissões',\r\n render: ({ pes_nome}) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Comissão %',\r\n align: 'center',\r\n children: [\r\n {\r\n title: 'à Vista',\r\n align: 'center',\r\n width: '20%',\r\n render: ({ ven_perccomissaoavista }) => (\r\n
\r\n {ven_perccomissaoavista}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'à Prazo',\r\n align: 'center',\r\n width: '20%',\r\n render: ({ ven_perccomissaoaprazo }) => (\r\n
\r\n {ven_perccomissaoaprazo}%\r\n
\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n editarComissao(record)} icon={} />\r\n \r\n
\r\n ),\r\n },\r\n ]\r\n } />\r\n
\r\n setOpenManutencao(false)} editar={editar} />\r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Form, Select, Button, Table, Collapse, Divider } from \"antd\";\r\nimport { SearchOutlined, ArrowUpOutlined, ArrowDownOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { ModalGerarComissao } from \"../../components/modals/\";\r\nimport { FormatDate, FormatNumber } from \"../../ValueObjects\";\r\nimport { BreadcrumbPage, BotaoAbrirChamado, BotaoIncluirDados, Data } from \"../../components\";\r\nimport { isNotNullOrEmpty } from '../../services/funcoes';\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function ConsultaComissao() {\r\n const [openModal, setOpenModal] = useState(false);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formConsultaComissao] = Form.useForm();\r\n const [dados, setDados] = useState([]);\r\n const [detalhesDados, setDetalhesDados] = useState([]);\r\n const [painelAtivo, setPainelAtivo] = useState([]);\r\n const [dadosModal, setDadosModal] = useState([]);\r\n\r\n\r\n function efetuarPesquisa() {\r\n let filtro = '';\r\n filtro += (!!formConsultaComissao.getFieldValue().dataFinal ? '&dataFinal=' + FormatDate(formConsultaComissao.getFieldValue().dataFinal.toDate().toLocaleDateString()) : '&dataFinal=')\r\n filtro += (!!formConsultaComissao.getFieldValue().dataInicial ? '&dataInicial=' + FormatDate(formConsultaComissao.getFieldValue().dataInicial.toDate().toLocaleDateString()) : '&dataInicial=');\r\n filtro += (!!formConsultaComissao.getFieldValue().ven_id ? '&vendedores=' + formConsultaComissao.getFieldValue().ven_id : '&vendedores=');\r\n api.get(`Comissao/ConsultarComissao?` + filtro).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDados(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (dados.length > 0) {\r\n let indice = 0;\r\n dados.forEach((vendedor) => {\r\n vendedor.comissaoVendedores.forEach((comissao) => {\r\n comissao.indice = indice;\r\n indice++;\r\n })\r\n })\r\n }\r\n }, [dados])\r\n\r\n function retornaDescTipo(tipo) {\r\n let retorno = '';\r\n if (!!tipo || tipo === 0) {\r\n switch (tipo) {\r\n case 0:\r\n retorno = 'Vendas à Vista';\r\n break;\r\n case 1:\r\n retorno = 'Recebimentos Parcelas';\r\n\r\n break;\r\n case 3:\r\n retorno = 'Devoluções';\r\n break;\r\n }\r\n }\r\n return retorno;\r\n };\r\n\r\n function buscarDadosDetalhados(indice, ven_id) {\r\n if (isNotNullOrEmpty(indice)) {\r\n let comissaoVendedores = dados.find(vendedor => { return vendedor.ven_id === ven_id })?.comissaoVendedores;\r\n let tipo = comissaoVendedores.find(com => { return com.indice === parseInt(indice) })?.fpg_tipoavistaaprazo;\r\n setPainelAtivo(indice);\r\n let filtro = '';\r\n filtro += '&IdVendedor=' + ven_id;\r\n filtro += (!!formConsultaComissao.getFieldValue().dataFinal ? '&dataFinal=' + FormatDate(formConsultaComissao.getFieldValue().dataFinal.toDate().toLocaleDateString()) : '&dataFinal=')\r\n filtro += (!!formConsultaComissao.getFieldValue().dataInicial ? '&dataInicial=' + FormatDate(formConsultaComissao.getFieldValue().dataInicial.toDate().toLocaleDateString()) : '&dataInicial=');\r\n switch (tipo) {\r\n case 1:\r\n api.get(`Comissao/ListaComissaoAprazo?` + filtro).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDetalhesDados(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n break;\r\n case 0:\r\n api.get(`Comissao/ListaComissaoAvista?` + filtro).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDetalhesDados(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n break;\r\n case 3:\r\n api.get(`Comissao/ListaComissaoDevolucao?` + filtro).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDetalhesDados(res.data.dados);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n } else {\r\n setPainelAtivo(\"\");\r\n }\r\n };\r\n\r\n function abrirModalComissao() {\r\n setOpenModal(true);\r\n let dadosTemp = [];\r\n dadosTemp.dataInicial = formConsultaComissao.getFieldValue().dataInicial;\r\n dadosTemp.dataFinal = formConsultaComissao.getFieldValue().dataFinal;\r\n setDadosModal(dadosTemp);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n abrirModalComissao({})}>\r\n GERAR COMISSÃO\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n ({ven.ven_id} - {ven.pes_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {dados.length > 0 && \r\n
\r\n Vendedor\r\n \r\n \r\n Total de Vendas (R$)\r\n \r\n \r\n Percentual de Comissão\r\n \r\n \r\n Total de Comissão (R$)\r\n \r\n }\r\n {dados.map((vendedor) => (\r\n
\r\n \r\n
\r\n {vendedor.pes_nome}\r\n \r\n \r\n {FormatNumber(vendedor.valorTotalVenda, true)}\r\n \r\n \r\n \r\n {FormatNumber(vendedor.valorTotalComissao, true)}\r\n \r\n \r\n (buscarDadosDetalhados(indice, vendedor.ven_id))}\r\n expandIcon={({ isActive }) => isActive ? : }>\r\n {vendedor.comissaoVendedores.map((comissao) => (\r\n \r\n \r\n {retornaDescTipo(comissao.fpg_tipoavistaaprazo)}\r\n \r\n \r\n {FormatNumber(comissao.com_basecalculo, true)}\r\n \r\n \r\n {comissao.com_percentual} %\r\n \r\n \r\n {FormatNumber(comissao.com_valor, true)}\r\n \r\n \r\n } key={comissao.indice}>\r\n \r\n \r\n
(\r\n
\r\n \r\n {ser_serie || 'Não Informada'} / {ntf_numero || 'Não Informado'} / {prc_numeroparcela || 'Não Informada'}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Data',\r\n render: ({ ntf_dataemissao }) => (\r\n
\r\n \r\n {(moment(ntf_dataemissao).format('DD/MM/YYYY'))}\r\n \r\n
\r\n )\r\n }, {\r\n title: 'Base de Cálculo (R$)',\r\n align: 'right',\r\n render: ({ mcc_valor, valorTotalNota }) => (\r\n
\r\n \r\n {FormatNumber((!!mcc_valor ? mcc_valor : valorTotalNota), true)}\r\n \r\n
\r\n )\r\n }, {\r\n title: 'Valor Comissão (R$)',\r\n align: 'right',\r\n render: ({ valorComissao }) => (\r\n
\r\n \r\n {FormatNumber(valorComissao, true)}\r\n \r\n
\r\n )\r\n }\r\n ]} dataSource={detalhesDados} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n ))}\r\n \r\n setOpenModal(false)} dadosModal={dadosModal} />\r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Select, notification, InputNumber, Table, Button, Modal } from \"antd\";\r\nimport { EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { Data, FormGW, InputPreco } from \"../../components\";\r\nimport { imprimirRelatorioJasper } from \"../../services/funcoes\";\r\nimport { ModalEditarVencimentoParcela } from '../../components/modals/';\r\nimport SelectPaginado from '../../components/selectPaginado';\r\n\r\nexport default function ManutencaoContaReceber({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const { Option } = Select;\r\n const [openIntevaloDias, setOpenIntevaloDias] = useState(false);\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [dadosContasReceber, setDadosContasReceber] = useState([]);\r\n const [openModalEditarParcela, setOpenModalEditarParcela] = useState(false);\r\n const [dadosLinhaEditar, setDadosLinhaEditar] = useState([]);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n\r\n const salvarManutencao = (values) => {\r\n values.parcelas = dadosContasReceber.parcelas;\r\n values.cpr_intervalodias = dadosContasReceber.cpr_intervalodias;\r\n values.cpr_numerodocumento = !!values.cpr_numerodocumento ? values.cpr_numerodocumento.toString() : \"\";\r\n \r\n if (!(!!values.valortotal) || values.valortotal === 0) {\r\n notification.warn({ message: 'Aviso!', description: 'Informe um valor total do documento!' });\r\n return false;\r\n }\r\n carregando(true);\r\n api.post('/contasPagarReceber/IncluirContasReceber', values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Conta a receber incluída com sucesso!\" });\r\n modalImprimir(res.data);\r\n }\r\n ).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }\r\n ).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } })\r\n aoSalvar();\r\n carregando(false);\r\n });\r\n };\r\n\r\n const modalImprimir = (record) => {\r\n Modal.confirm({\r\n title: 'Imprimir?',\r\n icon: ,\r\n content: 'Deseja imprimir a duplicata?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n imprimirRelatorioJasper(37, { IdContaPagarReceber: record.cpr_id });\r\n }\r\n });\r\n };\r\n\r\n function gerarParcelas() {\r\n let dados = [];\r\n let parcelas = {};\r\n dados.parcelas = [];\r\n let qtdDias = 0;\r\n let somaDasParcelas = 0;\r\n let dataVencimento = moment(formulario.getFieldValue().cpr_datavencimento);\r\n let valorTotal = parseFloat(formulario.getFieldValue().valortotal);\r\n let quantidadeParcelas = formulario.getFieldValue().cpr_numeroparcelas;\r\n let periodo = formulario.getFieldValue().cpr_periodicidade;\r\n let primeiroPagamento = moment(formulario.getFieldValue().cpr_dataprimeiropagamento);\r\n let divisao = 0;\r\n let intervaloDias = formulario.getFieldValue().cpr_intervalodias;\r\n if (!!valorTotal && !!quantidadeParcelas && ((quantidadeParcelas === 1 && !!dataVencimento) || (quantidadeParcelas > 1 && !!primeiroPagamento && !!periodo && ((periodo === 4 && !!intervaloDias) || periodo !== 4)))) {\r\n divisao = parseFloat((valorTotal / quantidadeParcelas).toFixed(2));\r\n if (quantidadeParcelas > 1) {\r\n if (!!periodo && !!primeiroPagamento) {\r\n if (periodo === 1) {\r\n qtdDias = 7;\r\n dados.cpr_intervalodias = qtdDias;\r\n } else if (periodo === 2) {\r\n qtdDias = 15;\r\n dados.cpr_intervalodias = qtdDias;\r\n } else if (periodo === 3) {\r\n qtdDias = 30;\r\n dados.cpr_intervalodias = qtdDias;\r\n } else {\r\n qtdDias = intervaloDias;\r\n dados.cpr_intervalodias = qtdDias;\r\n }\r\n }\r\n for (var i = 0; i < quantidadeParcelas; i++) {\r\n parcelas = {};\r\n parcelas.prc_numeroparcela = i + 1;\r\n parcelas.prc_valor = divisao;\r\n\r\n if (!!primeiroPagamento) {\r\n var outraData = new Date(primeiroPagamento);\r\n outraData.setDate((outraData.getDate()) + (i * qtdDias));\r\n parcelas.prc_datavencimento = moment(outraData);\r\n } else {\r\n parcelas.prc_datavencimento = dataVencimento;\r\n }\r\n dados.parcelas.push(parcelas);\r\n if (i !== 0)\r\n somaDasParcelas += parseFloat(divisao.toFixed(2));\r\n }\r\n if (somaDasParcelas > 0)\r\n dados.parcelas[0].prc_numeroparcela = 1;\r\n dados.parcelas[0].prc_valor = parseFloat((valorTotal - somaDasParcelas).toFixed(2));\r\n } else {\r\n parcelas = {};\r\n dados.cpr_periodicidade = null;\r\n dados.prc_periodicidade = null;\r\n dados.cpr_dataprimeiropagamento = dataVencimento;\r\n parcelas.prc_datavencimento = dataVencimento;\r\n parcelas.prc_numeroparcela = 1;\r\n parcelas.prc_valor = parseFloat(valorTotal).toFixed(2);\r\n dados.parcelas.push(parcelas);\r\n }\r\n setDadosContasReceber(dados);\r\n } else {\r\n setDadosContasReceber([]);\r\n }\r\n };\r\n\r\n function mostrarIntervaloDias(value, option) {\r\n gerarParcelas();\r\n if (option.value === 4) setOpenIntevaloDias(true);\r\n else setOpenIntevaloDias(false);\r\n };\r\n\r\n function editarDataVencimentoParcela(linha) {\r\n setDadosLinhaEditar(linha);\r\n setOpenModalEditarParcela(true);\r\n };\r\n\r\n function carregarListas() {\r\n api.get(`contaCorrente/listar?filtro=&ordem=+ctc_descricao`).then(res => {\r\n let key = 0;\r\n res.data.items.forEach((item) => { item.key = key++ }\r\n )\r\n setListaContaCorrente(res.data.items);\r\n })\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?Ativo=true&CodReceitaDespesa=2`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ cpr_datainclusao: moment(new Date()), cpr_periodicidade: 3, cpr_numeroparcelas: 1 });\r\n carregarListas();\r\n gerarParcelas();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n ({pc.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaContaCorrente.map((item) => (\r\n {item.ctc_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n gerarParcelas()} label=\"Valor Total do Documento (R$)\" name=\"valortotal\" rules={[{ required: true }]} />\r\n \r\n \r\n \r\n gerarParcelas()} step={1}\r\n min={1}\r\n placeholder=\"Informe o Número de Parcelas\"\r\n />\r\n \r\n \r\n prevValues.cpr_numeroparcelas !== currentValues.cpr_numeroparcelas}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('cpr_numeroparcelas') === 1) return (\r\n <>\r\n \r\n gerarParcelas()} label=\"Data Vencimento\" name=\"cpr_datavencimento\" rules={[{ required: true, message: 'Informe a data de vencimento' }]} />\r\n \r\n \r\n );\r\n if (getFieldValue('cpr_numeroparcelas') > 1) return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n gerarParcelas()} label=\"Data Primeiro Vencimento\" name=\"cpr_dataprimeiropagamento\" rules={[{ required: true, message: 'Informe a data do primeiro vencimento' }]} />\r\n \r\n {openIntevaloDias === true &&\r\n \r\n \r\n gerarParcelas()} placeholder=\"Informe o intervalo de dias\" />\r\n \r\n \r\n }\r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosContasReceber.parcelas && dadosContasReceber.parcelas.length > 1 &&\r\n
\r\n
(\r\n
\r\n {prc_numeroparcela}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n }, {\r\n title: 'Vencimento',\r\n align: 'center',\r\n width: 98,\r\n render: ({ prc_datavencimento }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n key: 'x',\r\n title: 'Ações',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Button, Collapse, Tag, Popover, Modal, notification } from 'antd';\r\nimport { ArrowDownOutlined, ArrowUpOutlined, SearchOutlined, EyeOutlined, DeleteOutlined, ExclamationCircleOutlined, CheckCircleOutlined, CloseOutlined, PrinterOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerContaReceber from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber, FormatDate } from '../../ValueObjects';\r\nimport { ModalListarParcelas } from \"../../components/modals/\";\r\nimport { imprimirRelatorioJasper } from \"../../services/funcoes\";\r\nimport { listagemActions, manutencaoActions, drawerActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, TabelaDados, ComboData, Data, FiltroSearch } from \"../../components\";\r\n\r\nexport default function ContaReceber() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openPesquisaAvancada, setOpenPesquisaAvancada] = useState(false);\r\n const [dataPesquisa, setDataPesquisa] = useState(new Date().toLocaleDateString());\r\n const [dataAtual] = useState(new Date());\r\n const [parametrosContasReceber] = Form.useForm();\r\n const [listaStatusParcela, setListaStatusParcela] = useState([]);\r\n const [openModal, setOpenModal] = useState(false);\r\n const [parcelas, setParcelas] = useState([]);\r\n\r\n const togglePesquisa = () => {\r\n setOpenPesquisaAvancada(!openPesquisaAvancada);\r\n };\r\n\r\n const modalNovaConta = (item) => {\r\n Modal.confirm({\r\n title: 'Conta estornada com sucesso!',\r\n icon: ,\r\n content: `Deseja criar uma nova conta com base nesta conta estornada?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.get(`ContasPagarReceber/Buscar/${item.cpr_id}`).then(\r\n res => {\r\n let dadosTemp = res.data;\r\n dadosTemp.valortotal = 0;\r\n dadosTemp.cpr_datainclusao = moment(res.data.cpr_datainclusao);\r\n dadosTemp.cpr_dataprimeiropagamento = moment(res.data.cpr_dataprimeiropagamento);\r\n res.data.parcelas.forEach(parcela => {\r\n dadosTemp.valortotal += parcela.prc_valor;\r\n });\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosTemp } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n });\r\n }\r\n });\r\n };\r\n\r\n async function modalEstornar(item) {\r\n if (!!item.ntf_id) {\r\n Modal.warning({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Parcela ligada a Nota Fiscal: ${item.ntf_id}, realizar a devolução ou o cancelamento!`,\r\n centered: true\r\n });\r\n return false;\r\n } else {\r\n Modal.confirm({\r\n title: 'Estornar Parcela',\r\n icon: ,\r\n content: `Deseja estornar a conta de ${item.pes_nome} no valor de ${FormatNumber(item.prc_valor, true)}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.post(`ContasPagarReceber/CancelarContaPagarReceber?ContaPagarReceberId=${item.cpr_id}`).then(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } })\r\n modalNovaConta(item);\r\n }).catch(\r\n err => {\r\n Modal.warning({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: !!err && !!err.response && !!err.response.data && !!err.response.data.Message ? err.response.data.Message : 'Erro ao efetuar o estorno da parcela!',\r\n centered: true\r\n });\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=StatusParcela`).then(res => {\r\n setListaStatusParcela(res.data);\r\n });\r\n parametrosContasReceber.setFieldsValue({ dataInicial: moment(new Date()), dataFinal: moment(new Date()) });\r\n }, []);\r\n\r\n useEffect(() => {\r\n carregarLista();\r\n }, [dataPesquisa]);\r\n\r\n function carregarLista() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&tipoMovimentacao=1&dataInicial=${FormatDate(dataPesquisa)}&dataFinal=${FormatDate(dataAtual.toLocaleDateString())}`, ordem: '+pes_nome' } });\r\n }\r\n\r\n function aplicarFiltrosAvancados() {\r\n let filtros = '&tipoMovimentacao=1';\r\n filtros += `&dataInicial=${(!!parametrosContasReceber.getFieldValue().dataInicial ? moment(parametrosContasReceber.getFieldValue().dataInicial).format('YYYY-MM-DD') : FormatDate(dataAtual))}`;\r\n filtros += `&dataFinal=${(parametrosContasReceber.getFieldValue().dataFinal === undefined ? FormatDate(dataAtual) : FormatDate(parametrosContasReceber.getFieldValue().dataFinal._d.toLocaleDateString()))}`;\r\n filtros += `&statusParcela=${(!!parametrosContasReceber.getFieldValue().statusParcela ? parametrosContasReceber.getFieldValue().statusParcela.join(',') : '0,1,2,3')}`;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtros } });\r\n };\r\n\r\n function retornarStatus(prc_status) {\r\n if (prc_status === 0) {\r\n return 'Pendente'\r\n } else if (prc_status === 1) {\r\n return 'Rcto. Parcial'\r\n } else if (prc_status === 2) {\r\n return 'Liquidada'\r\n } else if (prc_status === 3) {\r\n return 'Reparcelada'\r\n }\r\n };\r\n\r\n function buscarParcelas(dados) {\r\n if (!!dados.cpr_id) {\r\n api.get(`Parcela/ListarParcelas?IdContaPagarReceber=${dados.cpr_id}&Estornado=false&PagarOuReceber=1&PageSize=100&Order=+prc_numeroparcela`).then(res => {\r\n setParcelas(res.data.items);\r\n setOpenModal(true);\r\n }).catch(\r\n error => {\r\n notification.warning({ message: 'Aviso!', description: 'Erro ao pesquisar as parcelas!' });\r\n }\r\n );\r\n }\r\n };\r\n\r\n function imprimirContaReceber(record) {\r\n imprimirRelatorioJasper(37, { IdContaPagarReceber: record.cpr_id });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n parametrosContasReceber.setFieldsValue({ dataFinal: moment(new Date()) });\r\n parametrosContasReceber.setFieldsValue({ dataInicial: moment(parametrosContasReceber.getFieldValue().dataPesquisa) });\r\n aplicarFiltrosAvancados();\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {openPesquisaAvancada ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n {\r\n if (prc_status === 0 || prc_status === 1 || prc_status === 3) {\r\n return 'Parcela Pendente'\r\n } else if (prc_status === 2) {\r\n return 'Parcela Liquidada'\r\n }\r\n }} placement=\"right\">\r\n \r\n {retornarStatus(prc_status)}\r\n \r\n \r\n ),\r\n }, {\r\n title: 'Nº Doc.',\r\n width: 80,\r\n align: 'center',\r\n render: ({ cpr_numerodocumento }) => (\r\n \r\n {cpr_numerodocumento}\r\n \r\n ),\r\n }, {\r\n title: 'Cliente',\r\n width: 330,\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n }, {\r\n title: 'Vencimento',\r\n width: 80,\r\n align: 'center',\r\n render: ({ prc_datavencimento }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n }, {\r\n title: 'Observação',\r\n width: 300,\r\n render: ({ cpr_observacao }) => (\r\n
\r\n {cpr_observacao}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n width: 200,\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: ({ prc_status }, record, dados) => (\r\n
\r\n \r\n
\r\n \r\n \r\n {(prc_status === 0 || prc_status === 1 || prc_status === 3) && \r\n Obs.: {cpr_descricao || ``}\r\n \r\n \r\n Nota N°: {ntf_numero || 'Não Informado'}\r\n \r\n \r\n Parcela N°: {prc_numeroparcela || 'Não Informado'}\r\n \r\n \r\n Saldo Devedor (R$): {FormatNumber(saldo, true)}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n setOpenModal(false)} parcelas={parcelas} setParcelas={setParcelas} />\r\n \r\n\r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Tag, InputNumber, Typography, Row, Col, Table, Form, Button, Modal, notification, Tooltip } from \"antd\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, FormOutlined, EditOutlined, CheckOutlined, DeleteOutlined, ReloadOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { Data, InputPreco } from \"../../components\";\r\nimport { diferencaDatas, info } from \"../../services/funcoes\";\r\n\r\nexport default function ReparcelamentoParcelas({ aoSalvar, carregando, listaParcelas, totalizadores, formulario, dadosCliente, parcelasGeradas }) {\r\n\r\n const [dadosReparcelamento, setDadosReparcelamento] = useState({});\r\n const [listaParcelasReparcelar, setListaParcelasReparcelar] = useState(listaParcelas);\r\n const [descontoItem, setDescontoItem] = useState(false);\r\n const [paginaParcAntigas, setPaginaParcAntigas] = useState(1);\r\n const [paginaParcGeradas, setPaginaParcGeradas] = useState(1);\r\n const [nroRegistrosParcAntigas, setNroRegistrosParcAntigas] = useState(10);\r\n const [nroRegistrosParcGeradas, setNroRegistrosParcGeradas] = useState(100);\r\n\r\n function reparcelar(values) {\r\n carregando(true);\r\n values = { ...dadosReparcelamento };\r\n values.parcelas = parcelasGeradas.parcelasGeradas;\r\n values.parcelasQuitadas = listaParcelasReparcelar;\r\n values.pes_id = dadosCliente.pes_id;\r\n\r\n api.post('/Reparcelamento/Incluir', values).then(res => {\r\n if (res.data) {\r\n Modal.success({\r\n content: 'Reparcelamento realizado com sucesso!',\r\n });\r\n }\r\n }, err => {\r\n info('Não foi possivel realizar o reparcelamento!');\r\n }).finally(() => {\r\n aoSalvar();\r\n carregando(false);\r\n });\r\n };\r\n\r\n function zerarJuros() {\r\n let listaTemp = [...listaParcelasReparcelar];\r\n let listaTotalizadores = { ...totalizadores.listaTotalizadoresReparcelar };\r\n listaTotalizadores.valorAReceber = 0;\r\n listaTemp.forEach(item => {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n item.valorJuros = 0;\r\n if (parseFloat(item.valorDesconto) > valorTotal) {\r\n item.valorDesconto = valorTotal;\r\n }\r\n item.valorAReceber = parseFloat((valorTotal - parseFloat(item.valorDesconto) + parseFloat(item.valorJuros) + parseFloat(item.valorAcrescimo)).toFixed(2));\r\n item.valorPago = item.valorAReceber;\r\n item.prc_valor = item.valorAReceber;\r\n listaTotalizadores.valorTotalJuros = 0;\r\n listaTotalizadores.valorAReceber += item.valorAReceber;\r\n });\r\n setListaParcelasReparcelar(listaTemp);\r\n totalizadores.setListaTotalizadoresReparcelar(listaTotalizadores);\r\n\r\n };\r\n function gerarParcelas() {\r\n if (!!formulario.getFieldValue().numeroParcelas) {\r\n let valorParcela = parseFloat((parseFloat(totalizadores.listaTotalizadoresReparcelar.valorAReceber) / formulario.getFieldValue().numeroParcelas).toFixed(2));\r\n let novaData = new Date();\r\n let dataInclusao = new Date();\r\n let somaDasParcelas = 0;\r\n let parcelarGeradas = [];\r\n let dados = {};\r\n dados.cpr_descricao = 'Reparcelamento de Parcelas';\r\n dados.ntf_id = null;\r\n dados.cpr_numerodocumento = '';\r\n dados.cpr_numeroparcelas = formulario.getFieldValue().numeroParcelas;\r\n dados.cpr_pagarreceber = 1;\r\n dados.cpr_observacao = '';\r\n dados.prc_periodicidade = null;\r\n dados.cpr_intervalodias = null;\r\n dados.cpr_datainclusao = dataInclusao;\r\n dados.cpr_contaestornadarelacionada = null;\r\n dados.pessoaAutorizadaId = null;\r\n dados.contaGerencial = { ctg_id: null };\r\n dados.contaCorrente = { ctc_id: null };\r\n setDadosReparcelamento(dados);\r\n\r\n for (let i = 0; i < formulario.getFieldValue().numeroParcelas; i++) {\r\n novaData.setDate(novaData.getDate() + 30);\r\n if (i !== 0) {\r\n somaDasParcelas += valorParcela;\r\n }\r\n let parcela = {\r\n cpr_datainclusao: dataInclusao,\r\n cpr_id: null,//não pode ser nulo...\r\n cpr_numerodocumento: null,\r\n cpr_numeroparcelas: formulario.getFieldValue().numeroParcelas,\r\n loc_id: null,\r\n mcc_datapagamento: null,\r\n ntf_id: null,\r\n prc_codigobarras: null,//criar no momento de incluir o registro no banco\r\n prc_datavencimento: novaData,\r\n prc_estornado: false,\r\n prc_id: null,\r\n prc_numeroparcela: i + 1,\r\n statusParcela: null,\r\n prc_valor: valorParcela,\r\n valorParcela: valorParcela,\r\n valorDesconto: 0,\r\n valorTotalJuros: 0,\r\n ctg_id: null,\r\n ctc_id: null,\r\n bol_id: null,\r\n fpg_id: null,\r\n cpg_id: null\r\n }\r\n novaData = new Date(parcela.prc_datavencimento);\r\n parcelarGeradas.push(parcela);\r\n }\r\n if (somaDasParcelas > 0) {\r\n parcelarGeradas[0].prc_valor = parseFloat((parseFloat(totalizadores.listaTotalizadoresReparcelar.valorAReceber) - somaDasParcelas).toFixed(2));\r\n parcelarGeradas[0].valorParcela = parcelarGeradas[0].prc_valor;\r\n }\r\n parcelasGeradas.setParcelasGeradas(parcelarGeradas);\r\n }\r\n };\r\n\r\n async function ajustaDatasParcelas(record, idx) {\r\n let listaTemp = [...parcelasGeradas.parcelasGeradas];\r\n if (listaTemp[idx - 1] != null) {\r\n if (diferencaDatas(listaTemp[idx - 1].prc_datavencimento, new Date(formulario.getFieldValue(`prc_datavencimento${idx + 1}`))) > 30) {\r\n notification.warning({ message: 'Aviso!', description: 'Data das parcelas maior do que um mês!' });\r\n formulario.setFieldsValue({ [`prc_datavencimento${idx + 1}`]: listaTemp[idx].prc_datavencimento });\r\n return false;\r\n }\r\n }\r\n listaTemp[idx].prc_datavencimento = moment(new Date(formulario.getFieldValue(`prc_datavencimento${idx + 1}`)));\r\n for (let i = idx; i < listaTemp.length; i++) {\r\n if (listaTemp[i + 1] != null) {\r\n let dataVencimento = moment(new Date(new Date(formulario.getFieldValue(`prc_datavencimento${i + 1}`)).setDate(new Date(formulario.getFieldValue(`prc_datavencimento${i + 1}`)).getDate() + 30)));\r\n formulario.setFieldsValue({ [`prc_datavencimento${i + 2}`]: dataVencimento });\r\n listaTemp[i + 1].prc_datavencimento = moment(new Date(new Date(listaTemp[i].prc_datavencimento).setDate(new Date(listaTemp[i].prc_datavencimento).getDate() + 30)));\r\n }\r\n }\r\n parcelasGeradas.setParcelasGeradas(listaTemp);\r\n }\r\n\r\n function onBlurValorParc(record) {\r\n let valorJaUtilizado = 0;\r\n let valorRestante = 0;\r\n let valorRestanteTot = 0;\r\n let valorParcelas = 0;\r\n let qtdTotParcelas = parcelasGeradas.parcelasGeradas.length;\r\n let valorTotal = parseFloat(totalizadores.listaTotalizadoresReparcelar.valorAReceber);\r\n let dados = formulario.getFieldsValue();\r\n for (let i = 1; i <= record; i++) {\r\n valorJaUtilizado += parseFloat(dados[`valorParcela${i}`]);\r\n }\r\n valorRestante = valorTotal - valorJaUtilizado;\r\n valorParcelas = parseFloat((valorRestante / (qtdTotParcelas - record)).toFixed(2));\r\n for (let i = qtdTotParcelas; i > record; i--) {\r\n valorRestanteTot += valorParcelas;\r\n formulario.setFieldsValue({ [`valorParcela${i}`]: valorParcelas });\r\n }\r\n let listaTemp = [...parcelasGeradas.parcelasGeradas];\r\n for (let a = 0; a < qtdTotParcelas; a++) {\r\n listaTemp[a].valorParcela = formulario.getFieldValue(`valorParcela${a + 1}`);\r\n }\r\n let valorSobra = valorTotal - (valorJaUtilizado + valorRestanteTot);\r\n formulario.setFieldsValue({ [`valorParcela${qtdTotParcelas}`]: parseFloat((valorParcelas + valorSobra).toFixed(2)) });\r\n recalcularTotal(listaTemp);\r\n };\r\n\r\n function recalcularTotal(listaTemp) {\r\n listaTemp.forEach((parc) => {\r\n parc.prc_valor = parseFloat(parc.valorParcela) + parseFloat(parc.valorTotalJuros);\r\n });\r\n parcelasGeradas.setParcelasGeradas(listaTemp);\r\n };\r\n\r\n function onBlurValorJuros(parcela) {\r\n let listaTemp = [...parcelasGeradas.parcelasGeradas];\r\n let linha = listaTemp.filter((parc) => { return parc.prc_numeroparcela === parcela })[0];\r\n linha.valorTotalJuros = parseFloat(formulario.getFieldValue(`valorJuros${parcela}`));\r\n recalcularTotal(listaTemp);\r\n };\r\n\r\n useEffect(() => {\r\n let listaTotalizadores = { ...totalizadores.listaTotalizadoresReparcelar };\r\n if (!!parcelasGeradas && !!parcelasGeradas.parcelasGeradas && parcelasGeradas.parcelasGeradas.length > 0) {\r\n let totalJuros = 0;\r\n let valorAReceber = 0;\r\n for (const parc of parcelasGeradas.parcelasGeradas) {\r\n totalJuros += parc.valorTotalJuros;\r\n valorAReceber += parseFloat(parc.valorParcela);\r\n formulario.setFieldsValue({\r\n [`valorParcela${parc.prc_numeroparcela}`]: parc.valorParcela,\r\n [`valorJuros${parc.prc_numeroparcela}`]: parc.valorTotalJuros,\r\n [`prc_datavencimento${parc.prc_numeroparcela}`]: parc.prc_datavencimento\r\n });\r\n }\r\n listaTotalizadores.valorTotalJuros = totalJuros;\r\n listaTotalizadores.valorAReceber = valorAReceber;\r\n totalizadores.setListaTotalizadoresReparcelar(listaTotalizadores);\r\n formulario.setFieldsValue({ valorJuros: parseFloat(totalJuros.toFixed(2)) });\r\n } else {\r\n listaTotalizadores.valorTotalJuros = 0;\r\n totalizadores.setListaTotalizadoresReparcelar(listaTotalizadores);\r\n }\r\n }, [parcelasGeradas.parcelasGeradas]);\r\n\r\n function rateioJuros() {\r\n let valorJuros = parseFloat(formulario.getFieldValue(\"valorJuros\")) > 0 ? parseFloat(formulario.getFieldValue(\"valorJuros\")) : 0;\r\n let valorTotal = parseFloat(totalizadores.listaTotalizadoresReparcelar.valorAReceber);\r\n\r\n let listaTemp = [...parcelasGeradas.parcelasGeradas];\r\n let sobraJuros = 0;\r\n\r\n for (const [idx, item] of listaTemp.entries()) {\r\n let percentualJuros = (item.valorParcela * 100) / valorTotal;\r\n let juros = (valorJuros * percentualJuros) / 100;\r\n sobraJuros += juros - parseFloat(juros.toFixed(2));\r\n item.valorTotalJuros = parseFloat((parseFloat(juros.toFixed(2)) + (idx === listaTemp.length - 1 ? sobraJuros : 0)).toFixed(2));\r\n formulario.setFieldsValue({ [`valorJuros${item.prc_numeroparcela}`]: item.valorTotalJuros });\r\n item.prc_valor = item.valorParcela + item.valorTotalJuros;\r\n }\r\n parcelasGeradas.setParcelasGeradas(listaTemp);\r\n };\r\n\r\n function calcularJuros() {\r\n let percentual = parseFloat(formulario.getFieldValue(\"percentualJuros\"));\r\n let valorTotal = parseFloat(totalizadores.listaTotalizadoresReparcelar.valorAReceber);\r\n let valorJuros = (valorTotal * percentual) / 100;\r\n formulario.setFieldsValue({ valorJuros: valorJuros });\r\n rateioJuros();\r\n };\r\n\r\n return (\r\n
\r\n \r\n Parcelas Vencidas\r\n \r\n
\r\n
(\r\n \r\n {prc_numeroparcela} - {cpr_numeroparcelas}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Vencimento',\r\n width: 130,\r\n align: 'center',\r\n render: ({ prc_datavencimento, vencida }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Parcela (R$)',\r\n align: 'right',\r\n render: ({ valorOriginal }) => (\r\n
\r\n \r\n {FormatNumber(!!valorOriginal ? valorOriginal : 0, true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Valor Recebido Parcela (R$)',\r\n align: 'right',\r\n render: ({ valorQuitado }) => (\r\n
\r\n \r\n {FormatNumber(!!valorQuitado ? valorQuitado : 0, true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: () => {\r\n return (\r\n
\r\n \r\n
Juros\r\n \r\n \r\n \r\n Cód. Barras: {prc_codigobarras || 'Não Informado'}\r\n \r\n \r\n Nº Documento: {cpr_numerodocumento || 'Não Informado'}\r\n \r\n \r\n ,\r\n expandIcon: ({ expanded, onExpand, record }) =>\r\n expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n )\r\n }} columnWidth={30}\r\n pagination={{\r\n current: paginaParcAntigas,\r\n pageSize: nroRegistrosParcAntigas,\r\n total: listaParcelasReparcelar.length,\r\n onChange: (pg) => setPaginaParcAntigas(pg),\r\n onShowSizeChange: (current, page) => setNroRegistrosParcAntigas(page)\r\n }} />\r\n \r\n
\r\n {parcelasGeradas.parcelasGeradas.length === 0 &&\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n prevValues.numeroParcelas !== currentValues.numeroParcelas}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('numeroParcelas') > 0) return (\r\n \r\n );\r\n else return (\r\n \r\n );\r\n }}\r\n \r\n \r\n \r\n }\r\n {parcelasGeradas.parcelasGeradas.length > 0 &&\r\n
\r\n \r\n
\r\n \r\n Parcelas Geradas\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n \r\n {prc_numeroparcela} - {cpr_numeroparcelas}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Vencimento',\r\n width: 130,\r\n render: ({ prc_numeroparcela }, record, idx) => (\r\n
\r\n ajustaDatasParcelas(record, idx)} onPressEnter={() => ajustaDatasParcelas(record, idx)} />\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Juros (R$)',\r\n width: 130,\r\n align: 'right',\r\n render: ({ prc_numeroparcela }) => (\r\n
\r\n onBlurValorJuros(prc_numeroparcela)} />\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Parcela (R$)',\r\n align: 'right',\r\n width: 130,\r\n render: ({ prc_numeroparcela }) => (\r\n
\r\n onBlurValorParc(prc_numeroparcela)} disabled={prc_numeroparcela === parcelasGeradas.parcelasGeradas.length} />\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Total (R$)',\r\n align: 'right',\r\n width: 100,\r\n render: ({ prc_valor }) => (\r\n
\r\n {{FormatNumber(prc_valor, true)}}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 10,\r\n render: ({ }) => (\r\n
\r\n
\r\n ),\r\n }\r\n ]\r\n } columnWidth={30}\r\n scroll={{ x: 900, y: 200 }}\r\n pagination={{\r\n current: paginaParcGeradas,\r\n pageSize: nroRegistrosParcGeradas,\r\n total: parcelasGeradas.parcelasGeradas.length,\r\n onChange: (pg) => setPaginaParcGeradas(pg),\r\n onShowSizeChange: (current, page) => setNroRegistrosParcGeradas(page)\r\n }} />\r\n \r\n \r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Juros\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!descontoItem &&\r\n \r\n { rateioJuros() }} />\r\n \r\n }\r\n {descontoItem &&\r\n \r\n { calcularJuros() }} />\r\n \r\n }\r\n \r\n \r\n {(!!totalizadores.listaTotalizadoresReparcelar.valorDesconto && totalizadores.listaTotalizadoresReparcelar.valorDesconto !== 0) &&\r\n \r\n \r\n \r\n Valor Descontos (R$):\r\n \r\n \r\n \r\n {FormatNumber(totalizadores.listaTotalizadoresReparcelar.valorDesconto, true)}\r\n \r\n \r\n \r\n \r\n }\r\n {(!!totalizadores.listaTotalizadoresReparcelar.valorAReceber && totalizadores.listaTotalizadoresReparcelar.valorAReceber !== 0) &&\r\n \r\n \r\n \r\n Valor à Receber (R$):\r\n \r\n \r\n {FormatNumber(parseFloat(totalizadores.listaTotalizadoresReparcelar.valorTotalJuros) + parseFloat(totalizadores.listaTotalizadoresReparcelar.valorAReceber), true)}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Drawer, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions } from '../../actions';\r\nimport ReparcelamentoParcelas from './reparcelamentoParcelas';\r\n\r\nexport default function DrawerReparcelamento({ listaParcelasReparcelar, totalizadores, dadosCliente, buscarParcelasPessoa }) {\r\n\r\n const [formReparcelamento] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [parcelasGeradas, setParcelasGeradas] = useState([]);\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formReparcelamento.resetFields();\r\n setParcelasGeradas([]);\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n useEffect(() => {\r\n setParcelasGeradas([]);\r\n formReparcelamento.resetFields();\r\n }, [listaParcelasReparcelar]);\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n { fecharDrawer(); buscarParcelasPessoa(); }} listaParcelas={listaParcelasReparcelar} totalizadores={totalizadores} dadosCliente={dadosCliente} parcelasGeradas={{ parcelasGeradas, setParcelasGeradas }} />\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Button, Menu, Checkbox, Form, Dropdown, Table } from \"antd\";\r\nimport { ArrowLeftOutlined, FileDoneOutlined, EyeOutlined, DollarCircleOutlined, MoreOutlined, DollarOutlined, SyncOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport DrawerReparcelamento from './drawerReparcelamento';\r\nimport DrawerDetalheNotaFiscal from './drawerDetalheNotaFiscal';\r\n\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport { compararDatas, diferencaDatas } from \"../../services/funcoes\";\r\nimport ModalDetalheNotaFiscal from \"../notaFiscal/modalDetalheNotaFiscal\";\r\n\r\nexport default function ListaParcelasCliente({ selectedRowKeys, setSelectedRowKeys, selecionados, setListaParcelasCliente, receberSelecionados, listaParcelasReceber, setDadosCliente, dadosCliente }) {\r\n const [{ manutencao, parametrosEmpresa }, dispatch] = useStateValue();\r\n const [listaParcelas, setListaParcelas] = useState([]);\r\n const [listaParcelasReparcelar, setListaParcelasReparcelar] = useState([]);\r\n const [listaTotalizadoresReparcelar, setListaTotalizadoresReparcelar] = useState({});\r\n const [openModalDetalhes, setOpenModalDetalhes] = useState(false);\r\n const [dadosModalNota, setDadosModalNota] = useState({});\r\n const [dadosDetalhesNota, setDadosDetalhesNota] = useState({});\r\n\r\n const rowSelection = {\r\n selectedRowKeys,\r\n onChange: (key, selectedRow) => {\r\n somarParcelas(key);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n buscarParcelasPessoa();\r\n }, []);\r\n\r\n function somarParcelas(keys) {\r\n let totais = [];\r\n totais.quantidade = keys.length;\r\n totais.valorOriginal = 0;\r\n totais.juros = 0;\r\n totais.total = 0;\r\n\r\n keys.forEach((key) => {\r\n let parcela = listaParcelas.filter((item) => { return item.key === key })[0];\r\n totais.valorOriginal += parcela.valorOriginal;\r\n totais.juros += parcela.valorJuros;\r\n totais.total += parcela.valorPagoRecebido;\r\n });\r\n selecionados.setTotalSelecionados(totais);\r\n setSelectedRowKeys(keys);\r\n };\r\n async function visualizarNota(dados) {\r\n let retorno = [];\r\n let vendedor = [];\r\n if (!!dados.ntf_id) {\r\n retorno = await api.get(`NotaFiscal/ListarNotaFiscal?IdNotaFiscal=${dados.ntf_id}`);\r\n if (retorno.status === 200) {\r\n retorno = retorno.data;\r\n if (!!retorno.ven_id) {\r\n vendedor = await api.get(`Vendedor/RetornaVendedor?idVendedor=${retorno.ven_id}`);\r\n if (vendedor.status === 200) {\r\n retorno.nomeVendedor = vendedor.data.pes_nome;\r\n }\r\n }\r\n retorno.itensNf.forEach((item) => {\r\n let totalItemSemDesconto = parseFloat((item.nfi_qtde * item.nfi_valorunitario)).toFixed(2);\r\n item.perc_desconto = parseFloat((item.nfi_valordesconto / (totalItemSemDesconto)) * 100).toFixed(2);\r\n let valorDesconto = item.nfi_valordesconto;\r\n item.valor_item_desconto = parseFloat(totalItemSemDesconto - valorDesconto).toFixed(2);\r\n });\r\n setDadosDetalhesNota(retorno);\r\n setOpenModalDetalhes(true);\r\n }\r\n }\r\n };\r\n\r\n function buscarParcelasPessoa() {\r\n if (!!dadosCliente.pes_id) {\r\n api.get(`Parcela/ListarParcelas?PagarOuReceber=1&IdPessoa=${dadosCliente.pes_id}&StatusParcela=0,1&Estornado=false&PageSize=1000&Order=prc_datavencimento`).then(res => {\r\n listarParcelas(res);\r\n })\r\n }\r\n };\r\n\r\n function selecionarVencidas(e) {\r\n let keys = [];\r\n if (e.target.checked) {\r\n listaParcelas.map((item) => {\r\n if (compararDatas(item.prc_datavencimento, null, '<')) {\r\n keys.push(item.key);\r\n }\r\n });\r\n }\r\n somarParcelas(keys);\r\n };\r\n\r\n function listarParcelas(dados) {\r\n let totalReceber = 0;\r\n let parcelasReceber = [];\r\n let keys = [];\r\n\r\n let items = dados.data.items;\r\n\r\n if (listaParcelasReceber.length > 0) {\r\n listaParcelasReceber.map((parcela) => {\r\n keys.push(parcela.key);\r\n });\r\n setSelectedRowKeys(keys);\r\n }\r\n items.forEach((item) => {\r\n let valorReceber;\r\n item.vencida = compararDatas(item.prc_datavencimento, new Date(), '<');\r\n item.numeroDiasVencida = 0;\r\n item.valorJuros = 0;\r\n item.key = item.cpr_id.toString().concat(item.prc_id);\r\n item.zerouJuros = false;\r\n if (item.vencida) {\r\n item.numeroDiasVencida = diferencaDatas(item.prc_datavencimento);\r\n if (!(!!parametrosEmpresa.par_diastoleranciacobrancajuro)) {\r\n valorReceber = parseFloat((item.prc_valor - item.valorQuitado).toFixed(2));\r\n item.valorJuros = parseFloat((((valorReceber * (parametrosEmpresa.par_percjuromesparcelavencida / 30)) / 100) * item.numeroDiasVencida).toFixed(2));\r\n } else if (item.numeroDiasVencida > parametrosEmpresa.par_diastoleranciacobrancajuro) {\r\n valorReceber = parseFloat((item.prc_valor - item.valorQuitado).toFixed(2));\r\n item.valorJuros = parseFloat((((valorReceber * (parametrosEmpresa.par_percjuromesparcelavencida / 30)) / 100) * item.numeroDiasVencida).toFixed(2));\r\n }\r\n }\r\n item.valorOriginal = parseFloat(item.prc_valor);\r\n item.prc_valor = parseFloat((item.prc_valor - item.valorQuitado + item.valorJuros).toFixed(2));\r\n item.valorPagoRecebido = parseFloat(item.prc_valor);\r\n item.valorDesconto = 0.00;\r\n item.valorAcrescimo = 0;\r\n item.valorAReceber = item.prc_valor;\r\n totalReceber += parseFloat((item.valorPagoRecebido).toFixed(2));\r\n parcelasReceber.push(item);\r\n });\r\n parcelasReceber.totalReceber = totalReceber;\r\n\r\n setListaParcelas(parcelasReceber);\r\n setListaParcelasReparcelar([]);\r\n setListaTotalizadoresReparcelar({});\r\n };\r\n\r\n function menuTable(dados) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function reparcelarSelecionados(listaParcelas, selectedRowKeys) {\r\n let listaTemp = [];\r\n\r\n listaParcelas.map(parcela => {\r\n if (selectedRowKeys.indexOf(parcela.key) >= 0) {\r\n listaTemp.push(parcela);\r\n }\r\n });\r\n\r\n let lista = {};\r\n lista.valorTotalJuros = 0;\r\n lista.valorDesconto = 0;\r\n lista.valorAReceber = 0;\r\n if (listaTemp.length > 0) {\r\n listaTemp.map(item => {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n lista.valorDesconto += parseFloat(item.valorDesconto);\r\n lista.valorAReceber += parseFloat(valorTotal - parseFloat(item.valorDesconto) + parseFloat(item.valorJuros));\r\n });\r\n }\r\n lista.valorDesconto = parseFloat(lista.valorDesconto.toFixed(2));\r\n lista.valorAReceber = parseFloat(lista.valorAReceber.toFixed(2));\r\n setListaTotalizadoresReparcelar(lista);\r\n\r\n setListaParcelasReparcelar(listaTemp);\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerReparcelamento: true } })\r\n };\r\n\r\n async function showDrawerExtra(dados) {\r\n let retorno = [];\r\n let vendedor = [];\r\n if (!!dados.ntf_id) {\r\n retorno = await api.get(`NotaFiscal/ListarNotaFiscal?IdNotaFiscal=${dados.ntf_id}`);\r\n if (retorno.status === 200) {\r\n retorno = retorno.data;\r\n if (!!retorno.ven_id) {\r\n vendedor = await api.get(`Vendedor/RetornaVendedor?idVendedor=${retorno.ven_id}`);\r\n if (vendedor.status === 200) {\r\n retorno.nomeVendedor = vendedor.data.pes_nome;\r\n }\r\n }\r\n retorno.itensNf.forEach((item) => {\r\n let totalItemSemDesconto = parseFloat((item.nfi_qtde * item.nfi_valorunitario)).toFixed(2);\r\n item.perc_desconto = parseFloat((item.nfi_valordesconto / (totalItemSemDesconto)) * 100).toFixed(2);\r\n let valorDesconto = item.nfi_valordesconto;\r\n item.valor_item_desconto = parseFloat(totalItemSemDesconto - valorDesconto).toFixed(2);\r\n });\r\n\r\n setDadosModalNota(retorno);\r\n setOpenModalDetalhes(true);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Parcelas em Aberto do cliente
\r\n {dadosCliente.pes_nome}\r\n \r\n \r\n
\r\n Total à receber do cliente
\r\n {FormatNumber(!!listaParcelas.totalReceber ? listaParcelas.totalReceber : 0, true)}\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecionar Vencidas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n {cpr_numerodocumento || '--'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº Parcela',\r\n align: 'left',\r\n width: 75,\r\n render: ({ prc_numeroparcela }) => (\r\n
\r\n {prc_numeroparcela}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Emissão',\r\n align: 'center',\r\n width: 115,\r\n render: ({ cpr_datainclusao }) => (\r\n
\r\n {moment(cpr_datainclusao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n }, {\r\n title: 'Vencimento',\r\n align: 'center',\r\n width: 115,\r\n render: ({ prc_datavencimento, vencida }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n }, {\r\n title: 'Dias Venc.',\r\n width: 85,\r\n align: 'right',\r\n render: ({ diasAtrazo, vencida }) => (\r\n
\r\n {diasAtrazo}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Original (R$)',\r\n \r\n align: 'right',\r\n render: ({ valorOriginal }) => (\r\n
\r\n \r\n {FormatNumber(!!valorOriginal ? valorOriginal : 0, true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Juros (R$)',\r\n align: 'right',\r\n render: ({ valorJuros }) => (\r\n
\r\n 0 ? 'c-red' : ''}>\r\n {FormatNumber(!!valorJuros ? valorJuros : 0, true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Recebido (R$)',\r\n align: 'right',\r\n render: ({ valorQuitado }) => (\r\n
\r\n \r\n {FormatNumber(!!valorQuitado ? valorQuitado : 0, true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'A Receber (R$)',\r\n align: 'right',\r\n render: ({ valorPagoRecebido }) => (\r\n
\r\n \r\n {FormatNumber(!!valorPagoRecebido ? valorPagoRecebido : 0, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n ),\r\n }\r\n ]\r\n } rowSelection={rowSelection} scroll={{ x: 900 }} />\r\n \r\n
\r\n \r\n
\r\n Quantidade: \r\n {!!selecionados.totalSelecionados.quantidade ? selecionados.totalSelecionados.quantidade : 0}\r\n \r\n \r\n Original (R$): \r\n {FormatNumber(!!selecionados.totalSelecionados.valorOriginal ? selecionados.totalSelecionados.valorOriginal : 0, true)}\r\n \r\n \r\n Juros (R$): \r\n {FormatNumber(!!selecionados.totalSelecionados.juros ? selecionados.totalSelecionados.juros : 0, true)}\r\n \r\n \r\n Total (R$): \r\n {FormatNumber(!!selecionados.totalSelecionados.total ? selecionados.totalSelecionados.total : 0, true)}\r\n \r\n \r\n \r\n { setOpenModalDetalhes(false) }} dadosModal={dadosDetalhesNota} />\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Button, Input, Form, Select, Tag, Modal, Table, notification, Tooltip } from \"antd\";\r\nimport { SearchOutlined, BarcodeOutlined, ArrowRightOutlined, DeleteOutlined, ExclamationCircleOutlined, EditOutlined, CloseOutlined, SaveOutlined, ArrowUpOutlined, ArrowDownOutlined, CheckCircleOutlined, ReloadOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { getCnpjEmpresa, getLocal } from \"../../services/auth\";\r\nimport ListaParcelasCliente from './listaParcelasCliente';\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { FormatFone, MaskFormat, FormatNumber } from '../../ValueObjects/';\r\nimport { ModalEditarValoresParcela, ModalBandeiraCartao } from \"../../components/modals\";\r\nimport { compararDatas, diferencaDatas, info, isObjetoDiffVazio, novaAbaNavegador, removerCarcaterEspecial } from \"../../services/funcoes\";\r\nimport { BreadcrumbPage, BotaoAbrirChamado, FiltroSearch, TabelaDados, InputPreco, Editar, Excluir, Data } from \"../../components\";\r\n\r\nimport { ModalCheque } from \"../../components/modals\";\r\nimport apiPayer from \"../../services/apiPayer\";\r\n\r\nexport default function RecebimentoParcela() {\r\n\r\n const [{ manutencao, parametrosEmpresa }, dispatch] = useStateValue();\r\n const [pesquisaCodBarras, setPesquisaCodBarras] = useState(true);\r\n const [listaParcelasCliente, setListaParcelasCliente] = useState(false);\r\n const [listaParcelasReceber, setListaParcelasReceber] = useState([]);\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState([]);\r\n const [listaCondicaoPagamento, setListaCondicaoPagamento] = useState([]);\r\n const [openModalEditarParcela, setOpenModalEditarParcela] = useState(false);\r\n const [openModalCheque, setOpenModalCheque] = useState(false);\r\n const [openModalBandeiraCartao, setOpenModalBandeiraCartao] = useState(false);\r\n const [dadosLinhaEditar, setDadosLinhaEditar] = useState([]);\r\n const [listaTotalizadores, setListaTotalizadores] = useState({});\r\n const [dadosCliente, setDadosCliente] = useState({});\r\n const [totalSelecionados, setTotalSelecionados] = useState([]);\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n const [formulario] = Form.useForm();\r\n const [alterarValorPago, setAlterarValorPago] = useState(true);\r\n const [carregando, setCarregando] = useState(false);\r\n const [pagina, setPagina] = useState(1);\r\n const [nroRegistros, setNroRegistros] = useState(5);\r\n const [valoresPagamento, setValoresPagamento] = useState();\r\n\r\n const { Option } = Select;\r\n\r\n let modalInstance = null;\r\n\r\n const tipoFormaPagamento = {\r\n fpDinheiro: 1,\r\n fpCheque: 2,\r\n fpCartaoCredito: 3,\r\n fpCartaoDebito: 4,\r\n fpCreditoLoja: 5,\r\n fpValeAlimentacao: 10,\r\n fpValeRefeicao: 11,\r\n fpValePresente: 12,\r\n fpValeCombustivel: 13,\r\n fpOutro: 99,\r\n fpDeposito: 16,\r\n fpPix: 17,\r\n fpTransferencia: 18\r\n };\r\n\r\n const statusPagamentoIntegraPagto = {\r\n Aprovada: 1,\r\n Rejeitada: 2,\r\n Pendente: 3,\r\n Cancelada: 4,\r\n Abortada: 5,\r\n Finalizada: 6,\r\n NaoAutorizada: 7,\r\n }\r\n\r\n const tipoFormaPagExistente = [\r\n tipoFormaPagamento.fpDinheiro,\r\n tipoFormaPagamento.fpCheque,\r\n tipoFormaPagamento.fpCartaoCredito,\r\n tipoFormaPagamento.fpCartaoDebito,\r\n tipoFormaPagamento.fpDeposito,\r\n tipoFormaPagamento.fpPix,\r\n tipoFormaPagamento.fpTransferencia\r\n ];\r\n\r\n const tipoParcelamentoCartao = {\r\n estabelecimento: 0,\r\n comprador: 1\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } });\r\n\r\n api.get(`contaCorrente/ListarAtivos?filtro=&Order=+ctc_descricao&PageSize=1000`).then(res => {\r\n setListaContaCorrente(res.data.items);\r\n });\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?CodReceitaDespesa=2&filtro=`).then(res => {\r\n if (res.status === 200) {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n }\r\n });\r\n api.get(`FormaPagamento/Listar?PageNumber=1&PageSize=1000`).then(res => {\r\n if (res.status === 200) {\r\n setListaFormaPagamento(res.data.items);\r\n }\r\n });\r\n if (!!!formulario.getFieldValue().dataPagamentoRecebimento) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date()) });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!!formulario.getFieldValue().dataPagamentoRecebimento) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date()) });\r\n }\r\n let lista = {};\r\n lista.valorTotal = 0;\r\n lista.valorTotalParcelas = 0;\r\n lista.valorTotalJuros = 0;\r\n lista.valorDesconto = 0;\r\n lista.valorAcrescimo = 0;\r\n lista.valorAReceber = 0;\r\n let valorRecebido = 0;\r\n if (listaParcelasReceber.length > 0) {\r\n listaParcelasReceber.map(item => {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n lista.valorTotalParcelas += parseFloat(item.valorOriginal);\r\n lista.valorTotalJuros += parseFloat(item.valorJuros);\r\n lista.valorDesconto += parseFloat(item.valorDesconto);\r\n lista.valorAcrescimo += parseFloat(item.valorAcrescimo > 0 ? item.valorAcrescimo : 0);\r\n lista.valorTotal += valorTotal;\r\n lista.valorAReceber += parseFloat((valorTotal - parseFloat(item.valorDesconto) + parseFloat(item.valorAcrescimo) + parseFloat(item.valorJuros)).toFixed(2));\r\n valorRecebido += parseFloat(item.valorAReceber);\r\n });\r\n if (alterarValorPago) {\r\n formulario.setFieldsValue({ valorPago: parseFloat(valorRecebido).toFixed(2) });\r\n }\r\n formulario.setFieldsValue({ valorAcrescimo: parseFloat(lista.valorAcrescimo.toFixed(2)), valorDesconto: parseFloat(lista.valorDesconto.toFixed(2)) });\r\n calcularSobra(lista);\r\n }\r\n }, [listaParcelasReceber]);\r\n\r\n function calcularSobra(lista = { ...listaTotalizadores }) {\r\n let sobra = parseFloat((parseFloat(!!formulario.getFieldValue(\"valorPago\") ? formulario.getFieldValue(\"valorPago\") : 0) - parseFloat(lista.valorAReceber)).toFixed(2));\r\n lista.restanteReceber = 0;\r\n lista.troco = 0;\r\n if (sobra < 0) {\r\n lista.restanteReceber = parseFloat((sobra * -1).toFixed(2));\r\n } else {\r\n lista.troco = parseFloat(sobra);\r\n }\r\n setAlterarValorPago(true);\r\n setListaTotalizadores(lista);\r\n };\r\n\r\n function calcularRecebimentoParcial() {\r\n let valorRecebido = parseFloat(formulario.getFieldValue(\"valorPago\"));\r\n\r\n if (valorRecebido > 0) {\r\n let listaTemp = [...listaParcelasReceber];\r\n for (const item of listaTemp) {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n if (item.vencida && !item.zerouJuros) {\r\n if (!(!!parametrosEmpresa.par_diastoleranciacobrancajuro)) {\r\n item.valorJuros = parseFloat((((valorTotal * (parametrosEmpresa.par_percjuromesparcelavencida / 30)) / 100) * item.numeroDiasVencida).toFixed(2));\r\n } else if (item.numeroDiasVencida > parametrosEmpresa.par_diastoleranciacobrancajuro) {\r\n item.valorJuros = parseFloat((((valorTotal * (parametrosEmpresa.par_percjuromesparcelavencida / 30)) / 100) * item.numeroDiasVencida).toFixed(2));\r\n }\r\n }\r\n let valorParcela = parseFloat((valorTotal - parseFloat(item.valorDesconto) + parseFloat(item.valorAcrescimo) + parseFloat(item.valorJuros)).toFixed(2));\r\n if (valorRecebido >= valorParcela) {\r\n item.valorAReceber = valorParcela;\r\n } else {\r\n let _perc = (parseFloat(valorRecebido).toFixed(2) / valorParcela);\r\n item.valorJuros = parseFloat(item.valorJuros * _perc).toFixed(2);\r\n item.valorAReceber = parseFloat(valorRecebido).toFixed(2);\r\n }\r\n item.prc_valor = item.valorAReceber;\r\n item.valorPagoRecebido = item.valorAReceber;\r\n valorRecebido -= item.valorAReceber;\r\n }\r\n setAlterarValorPago(false);\r\n\r\n setListaParcelasReceber(listaTemp);\r\n } else {\r\n calcularSobra();\r\n }\r\n };\r\n\r\n function rateioDesconto() {\r\n let valorDesconto = parseFloat(formulario.getFieldValue(\"valorDesconto\")) > 0 ? parseFloat(formulario.getFieldValue(\"valorDesconto\")) : 0;\r\n\r\n let valorTotalSemDesconto = (parseFloat(listaTotalizadores.valorTotal) + parseFloat(listaTotalizadores.valorTotalJuros) + parseFloat(listaTotalizadores.valorAcrescimo));\r\n if (valorDesconto > 0 && valorDesconto > valorTotalSemDesconto) {\r\n formulario.setFieldsValue({ valorDesconto: valorTotalSemDesconto });\r\n valorDesconto = valorTotalSemDesconto;\r\n }\r\n\r\n let listaTemp = [...listaParcelasReceber];\r\n let sobraDesconto = 0;\r\n\r\n for (const [idx, item] of listaTemp.entries()) {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n let valorParcela = parseFloat((valorTotal + parseFloat(item.valorAcrescimo) + parseFloat(item.valorJuros)).toFixed(2));\r\n\r\n //calcular percentual do total \r\n let percentualDesconto = (valorParcela * 100) / valorTotalSemDesconto;\r\n let desconto = (valorDesconto * percentualDesconto) / 100;\r\n sobraDesconto += desconto - parseFloat(desconto.toFixed(2));\r\n\r\n item.valorDesconto = parseFloat((parseFloat(desconto.toFixed(2)) + (idx === listaTemp.length - 1 ? sobraDesconto : 0)).toFixed(2));\r\n item.valorAReceber = valorParcela - item.valorDesconto;\r\n item.prc_valor = item.valorAReceber;\r\n item.valorPagoRecebido = item.valorAReceber;\r\n }\r\n setAlterarValorPago(true);\r\n\r\n setListaParcelasReceber(listaTemp);\r\n };\r\n\r\n function rateioAcrescimo() {\r\n let valorAcrescimo = parseFloat(formulario.getFieldValue(\"valorAcrescimo\")) > 0 ? parseFloat(formulario.getFieldValue(\"valorAcrescimo\")) : 0;\r\n\r\n let valorTotalSemAcrescimo = (parseFloat(listaTotalizadores.valorTotal) + parseFloat(listaTotalizadores.valorTotalJuros) - parseFloat(listaTotalizadores.valorDesconto));\r\n\r\n let listaTemp = [...listaParcelasReceber];\r\n let sobraAcrescimo = 0;\r\n\r\n for (const [idx, item] of listaTemp.entries()) {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n let valorParcela = parseFloat((valorTotal + parseFloat(item.valorJuros - parseFloat(item.valorDesconto))).toFixed(2));\r\n //calcular percentual do total \r\n let percentualAcrescimo = (valorParcela * 100) / valorTotalSemAcrescimo;\r\n let acrescimo = (valorAcrescimo * percentualAcrescimo) / 100;\r\n sobraAcrescimo += acrescimo - parseFloat(acrescimo.toFixed(2));\r\n\r\n item.valorAcrescimo = parseFloat((parseFloat(acrescimo.toFixed(2)) + (idx === listaTemp.length - 1 ? sobraAcrescimo : 0)).toFixed(2));\r\n item.valorAReceber = valorParcela + item.valorAcrescimo;\r\n item.prc_valor = item.valorAReceber;\r\n item.valorPagoRecebido = item.valorAReceber;\r\n }\r\n setAlterarValorPago(true);\r\n\r\n setListaParcelasReceber(listaTemp);\r\n };\r\n\r\n function buscarCondicaoPagamento(valor) {\r\n api.get(`CondicaoPagamento/Listar?codigoFormaPagamento=${valor}&PageNumber=1&PageSize=1000`).then(res => {\r\n setListaCondicaoPagamento(res.data.items);\r\n });\r\n formulario.setFieldsValue({ cpg_id: null });\r\n };\r\n\r\n function buscarCodBarras(valor) {\r\n api.get(`Parcela/ListarParcelas?CodigoBarras=${valor}&PagarOuReceber=1`).then(res => {\r\n if (res.data.items.length > 0) {\r\n let listaTemp = [...listaParcelasReceber];\r\n let retornoParcela = res.data.items[0];\r\n\r\n if (listaParcelasReceber.filter(item => { return item.prc_codigobarras === retornoParcela.prc_codigobarras }).length > 0) {\r\n info(\"A parcela já esta adicionada na lista para pagamento!\");\r\n } else {\r\n if (retornoParcela.prc_status !== 2 && !retornoParcela.prc_estornado) {\r\n if (!(!!dadosCliente.pes_id)) {\r\n // metodo ListaClienteCodigo parametro codigoCliente\r\n setDadosCliente({ pes_id: retornoParcela.pes_id, pes_nome: retornoParcela.pes_nome });\r\n }\r\n\r\n if (retornoParcela.pes_id === (!!dadosCliente.pes_id ? dadosCliente.pes_id : retornoParcela.pes_id)) {\r\n let valorReceber;\r\n retornoParcela.key = retornoParcela.cpr_id.toString().concat(retornoParcela.prc_id);\r\n retornoParcela.vencida = compararDatas(retornoParcela.prc_datavencimento, null, '<');\r\n retornoParcela.numeroDiasVencida = 0;\r\n retornoParcela.valorJuros = 0;\r\n retornoParcela.zerarJuros = false;\r\n if (retornoParcela.vencida) {\r\n retornoParcela.numeroDiasVencida = diferencaDatas(retornoParcela.prc_datavencimento);\r\n if (!(!!parametrosEmpresa.par_diastoleranciacobrancajuro)) {\r\n valorReceber = parseFloat((retornoParcela.prc_valor - retornoParcela.valorQuitado).toFixed(2));\r\n retornoParcela.valorJuros = parseFloat((((valorReceber * (parametrosEmpresa.par_percjuromesparcelavencida / 30)) / 100) * retornoParcela.numeroDiasVencida).toFixed(2));\r\n } else if (retornoParcela.numeroDiasVencida > parametrosEmpresa.par_diastoleranciacobrancajuro) {\r\n valorReceber = parseFloat((retornoParcela.prc_valor - retornoParcela.valorQuitado).toFixed(2));\r\n retornoParcela.valorJuros = parseFloat((((valorReceber * (parametrosEmpresa.par_percjuromesparcelavencida / 30)) / 100) * retornoParcela.numeroDiasVencida).toFixed(2));\r\n }\r\n }\r\n retornoParcela.valorOriginal = parseFloat(retornoParcela.prc_valor);\r\n retornoParcela.prc_valor = parseFloat((retornoParcela.prc_valor - retornoParcela.valorQuitado + retornoParcela.valorJuros).toFixed(2));\r\n retornoParcela.valorPagoRecebido = parseFloat(retornoParcela.prc_valor);\r\n retornoParcela.valorDesconto = 0.00;\r\n retornoParcela.valorAcrescimo = 0;\r\n retornoParcela.valorAReceber = retornoParcela.prc_valor;\r\n listaTemp.push(retornoParcela);\r\n setListaParcelasReceber(listaTemp);\r\n } else {\r\n info(`Parcela não é do cliente ${dadosCliente.pes_nome}!`);\r\n }\r\n } else {\r\n if (retornoParcela.prc_status === 2) {\r\n info(\"Esta Parcela já foi totalmente liquidada!\");\r\n }\r\n if (retornoParcela.prc_estornado === 1) {\r\n info(\"A Parcela foi estornada!\");\r\n }\r\n }\r\n }\r\n } else {\r\n info(\"Parcela não encontrada!\");\r\n }\r\n });\r\n };\r\n\r\n function excluirRegistro(dados) {\r\n Modal.confirm({\r\n title: `Remover da lista a parcela Nº ${dados.prc_numeroparcela} no valor de ${FormatNumber(!!dados.prc_valor ? dados.prc_valor : 0, true)}?`,\r\n icon: ,\r\n onOk() {\r\n let listaTemp = [...listaParcelasReceber];\r\n let index = listaTemp.findIndex(item => item.prc_codigobarras === dados.prc_codigobarras);\r\n listaTemp.splice(index, 1);\r\n if (listaTemp.length === 0) {\r\n setDadosCliente([]);\r\n }\r\n setListaParcelasReceber(listaTemp);\r\n }\r\n });\r\n };\r\n\r\n function salvarDadosModal(values) {\r\n let listaTemp = [...listaParcelasReceber];\r\n let linha = listaTemp.filter((item) => { return item.prc_codigobarras === dadosLinhaEditar.prc_codigobarras })[0];\r\n linha.valorJuros = parseFloat(values.valorJuros);\r\n linha.valorDesconto = parseFloat(values.valorDesconto);\r\n linha.valorAcrescimo = parseFloat(values.valorAcrescimo);\r\n linha.valorPagoRecebido = parseFloat(values.valorPago);\r\n linha.valorAReceber = parseFloat(values.valorPago);\r\n linha.valorParcela = linha.valorAReceber;\r\n setListaParcelasReceber(listaTemp);\r\n };\r\n\r\n function editarParcela(linha) {\r\n setDadosLinhaEditar(linha);\r\n setOpenModalEditarParcela(true);\r\n };\r\n\r\n function receberSelecionados(listaParcelas, selectedRowKeys) {\r\n let listaTemp = [...listaParcelasReceber];\r\n listaParcelas.map(parcela => {\r\n if (selectedRowKeys.indexOf(parcela.key) >= 0 && listaTemp.filter((item) => { return item.key === parcela.key }).length === 0) {\r\n listaTemp.push(parcela);\r\n }\r\n });\r\n setListaParcelasReceber(listaTemp);\r\n setPesquisaCodBarras(true);\r\n setListaParcelasCliente(false);\r\n };\r\n\r\n async function verificarFormaPagamento(values) {\r\n let formaPagamentoSelecionada = (await api.get(`FormaPagamento/Get?id=${values.fpg_id}`)).data;\r\n formaPagamentoSelecionada.pfp_valor = values.valorPago;\r\n formaPagamentoSelecionada.cpg_id = values.cpg_id;\r\n formaPagamentoSelecionada.ctc_id = values.ctc_id;\r\n formaPagamentoSelecionada.ctg_id = values.ctg_id;\r\n switch (formaPagamentoSelecionada.fpg_tipopagamento) {\r\n case tipoFormaPagamento.fpDinheiro:\r\n case tipoFormaPagamento.fpPix:\r\n case tipoFormaPagamento.fpTransferencia:\r\n case tipoFormaPagamento.fpDeposito:\r\n efetuarRecebimento(formaPagamentoSelecionada, null);\r\n break;\r\n case tipoFormaPagamento.fpCheque:\r\n setValoresPagamento(values);\r\n setOpenModalCheque(true);\r\n break;\r\n case tipoFormaPagamento.fpCartaoDebito:\r\n formaPagamentoSelecionada.credito = false;\r\n formaPagamentoSelecionada.parcelascartao = await calcularParcelasCartao(values);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: values } });\r\n if (formaPagamentoSelecionada.fpg_tipointegracao == null) {\r\n setOpenModalBandeiraCartao(true);\r\n } else {\r\n verificaIntegracaoPagamento(formaPagamentoSelecionada);\r\n }\r\n break;\r\n case tipoFormaPagamento.fpCartaoCredito:\r\n formaPagamentoSelecionada.credito = true;\r\n formaPagamentoSelecionada.parcelascartao = await calcularParcelasCartao(values);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: values } });\r\n if (formaPagamentoSelecionada.fpg_tipointegracao == null) {\r\n setOpenModalBandeiraCartao(true);\r\n } else {\r\n verificaIntegracaoPagamento(formaPagamentoSelecionada);\r\n }\r\n break;\r\n };\r\n };\r\n\r\n async function calcularParcelasCartao(values) {\r\n let definicaoParcelamento = [];\r\n let parcelas = [];\r\n let somaParcelas = 0;\r\n let resto = 0;\r\n let numeroUltimaParcela;\r\n if (!!values.cpg_id) {\r\n definicaoParcelamento = (await api.get(`CondicaoPagamento/listarParcelamento?codigoCondicaoPagamento=${values.cpg_id}`)).data;\r\n if (definicaoParcelamento.length > 0) {\r\n definicaoParcelamento.forEach((parcela, indice) => {\r\n let valorParcela = 0;\r\n valorParcela = ((parcela.pcl_percparcela / 100) * (values.valorPago)).toFixed(2);\r\n parcelas.push({\r\n prc_numeroparcela: indice + 1,\r\n prc_valor: parseFloat(valorParcela),\r\n });\r\n somaParcelas += parseFloat(valorParcela);\r\n });\r\n resto = (values.valorPago - parseFloat(somaParcelas)).toFixed(2);\r\n resto = parseFloat(resto);\r\n }\r\n\r\n if (resto !== 0) {\r\n numeroUltimaParcela = 0;\r\n if (definicaoParcelamento.length > 0) {\r\n numeroUltimaParcela = definicaoParcelamento.length - 1;\r\n } else {\r\n numeroUltimaParcela = 1;\r\n }\r\n let valParcela = parseFloat(parcelas[numeroUltimaParcela].prc_valor);\r\n let totalParcela = parseFloat((valParcela + resto).toFixed(2));\r\n parcelas[numeroUltimaParcela].prc_valor = parseFloat(totalParcela);\r\n }\r\n return parcelas;\r\n }\r\n };\r\n\r\n async function verificaIntegracaoPagamento(values) {\r\n let dadosIntegracaoPos = {};\r\n let cnpjEmpresa = getCnpjEmpresa();\r\n if (values.fpg_tipointegracao != null) {\r\n if (values.fpg_tipointegracao == 1) {// vero\r\n let tipopgto = 0;\r\n let metodopgto = 0;\r\n let submetodopgto = 0;\r\n switch (values.fpg_tipopagamento) {\r\n case tipoFormaPagamento.fpCartaoCredito:\r\n tipopgto = 2;\r\n metodopgto = 1;\r\n submetodopgto = 4;\r\n if (values.parcelascartao?.length == 1) {\r\n submetodopgto = 1\r\n }\r\n break;\r\n case tipoFormaPagamento.fpCartaoDebito:\r\n tipopgto = 3;\r\n metodopgto = 1;\r\n submetodopgto = 1;\r\n if (values.parcelascartao?.length >= 1) {\r\n submetodopgto = 3\r\n }\r\n break;\r\n case tipoFormaPagamento.fpPix:\r\n tipopgto = 1;\r\n metodopgto = 3;\r\n submetodopgto = 1\r\n break;\r\n }\r\n dadosIntegracaoPos = {\r\n imp_cnpjlocal: cnpjEmpresa,\r\n imp_valor: values.pfp_valor,\r\n imp_tipopgto: tipopgto,\r\n imp_metodopgto: metodopgto,\r\n imp_submetodopgto: submetodopgto,\r\n imp_qtdeparcelas: values.parcelascartao?.length ?? 0,\r\n }\r\n if (!isObjetoDiffVazio(values.integrapgto)) {\r\n values.integrapgtook = false;\r\n values.integrapgto = await criaRegistroIntegraPagto(dadosIntegracaoPos);\r\n }\r\n values.imp_id = values.integrapgto.imp_id;\r\n } else if (values.fpg_tipointegracao == 2) {//payer\r\n let _paymentType = \"\";\r\n let _paymentMethodSubType = \"\";\r\n let _installments = \"\";\r\n let _paymentMethod = \"\";\r\n let _command = \"payment\"\r\n\r\n if (values.fpg_tipopagamento === tipoFormaPagamento.fpCartaoCredito) {\r\n _paymentMethod = \"Card\";\r\n _paymentType = \"Credit\";\r\n _paymentMethodSubType = \"Financed_no_Fees\";\r\n\r\n if (values.parcelascartao?.length == 1) {\r\n _paymentMethodSubType = \"Full_Payment\";\r\n } else {\r\n _installments = (values.parcelascartao?.length).toString();\r\n }\r\n }\r\n if (values.fpg_tipopagamento === tipoFormaPagamento.fpCartaoDebito) {\r\n if (values.parcelascartao?.length > 1) {\r\n if (values.parcelascartao.length == 1) {\r\n _paymentMethodSubType = \"Predated_Debit\";\r\n } else {\r\n _paymentMethodSubType = \"Financed_Debit\";\r\n }\r\n _installments = (values.parcelascartao?.length).toString();\r\n } else {\r\n _paymentMethodSubType = \"Full_Payment\";\r\n }\r\n _paymentMethod = \"Card\";\r\n _paymentType = \"Debit\"\r\n }\r\n if (values.fpg_tipopagamento === tipoFormaPagamento.fpPix) {\r\n _paymentType = \"Cash\";\r\n _paymentMethod = \"Pix\";\r\n }\r\n\r\n dadosIntegracaoPos = {\r\n command: _command,\r\n value: parseFloat(values.pfp_valor),\r\n paymentMethod: _paymentMethod,\r\n paymentType: _paymentType,\r\n paymentMethodSubType: _paymentMethodSubType,\r\n installments: _installments\r\n };\r\n if (!isObjetoDiffVazio(values.integrapgto)) {\r\n values.integrapgtook = false;\r\n let retorno = await apiPayer.post('Client/Request', dadosIntegracaoPos);\r\n }\r\n }\r\n modalAguardandoPagamento(values);\r\n }\r\n }\r\n\r\n async function criaRegistroIntegraPagto(dadosIntegracaoPos) {\r\n let retorno;\r\n try {\r\n retorno = (await api.post(`IntegraPagto/Incluir`, dadosIntegracaoPos)).data;\r\n } catch (error) {\r\n notification.warning({ description: 'Erro ao mandar o pagamento para a máquina!', message: 'Aviso!' });\r\n console.log(error);\r\n return false;\r\n }\r\n return retorno;\r\n }\r\n\r\n function modalAguardandoPagamento(values) {\r\n if (modalInstance !== null) {\r\n modalInstance.destroy();\r\n }\r\n modalInstance = Modal.confirm({\r\n title: 'Aviso',\r\n content: 'Aguardando Pagamento!',\r\n okText: 'Pagamento Efetuado',\r\n cancelText: 'Cancelar Pagamento',\r\n\r\n onOk: () => {\r\n verificarPagamentoMaquina(values);\r\n },\r\n onCancel: () => {\r\n cancelarPagamentoMaquina(values);\r\n }\r\n });\r\n }\r\n\r\n async function verificarPagamentoMaquina(values) {\r\n if (values.fpg_tipopagamento === tipoFormaPagamento.fpCartaoCredito || values.fpg_tipopagamento === tipoFormaPagamento.fpCartaoDebito || values.fpg_tipopagamento === tipoFormaPagamento.fpPix) {\r\n if (values.fpg_tipointegracao != null && values?.integrapgtook == false && values.fpg_tipointegracao == 1) {\r\n let retorno = (await api.get(`IntegraPagto/Buscar/${values.integrapgto.imp_id}`)).data;\r\n if (retorno.imp_statuspgto == statusPagamentoIntegraPagto.Pendente) {\r\n if (modalInstance !== null) {\r\n modalInstance.destroy();\r\n }\r\n modalAguardandoPagamento(values);\r\n } else if (retorno.imp_statuspgto == statusPagamentoIntegraPagto.Aprovada) {\r\n values.integrapgtook = true;\r\n values.integrapgto = retorno;\r\n values.rcc_nsu = retorno.imp_autorizacao;\r\n } else if (retorno.imp_statuspgto == statusPagamentoIntegraPagto.NaoAutorizada) {\r\n notification.warning({ description: 'Pagamento não Autorizado!', message: 'Aviso!' });\r\n } else if (retorno.imp_statuspgto == statusPagamentoIntegraPagto.Cancelada) {\r\n notification.warning({ description: 'Pagamento Cancelado!', message: 'Aviso!' });\r\n }\r\n }\r\n if (values.fpg_tipointegracao != null && values.integrapgtook == false && values.fpg_tipointegracao == 2) {\r\n let retorno = (await apiPayer.get('Client/Response')).data;\r\n if (retorno.statusTransaction == \"PENDING\") {\r\n return;\r\n } else if (retorno.statusTransaction == \"APPROVED\") {\r\n let ret = (await api.post(`IntegraPagto/IncluirPayer`, retorno)).data;\r\n values.integrapgtook = true;\r\n values.integrapgto = ret;\r\n values.rcc_nsu = ret.authorizerId;\r\n values.imp_id = ret.imp_id;\r\n } else if (retorno.statusTransaction == \"UNAUTHORIZED\") {\r\n notification.warning({ description: 'Pagamento não Autorizado, verifique no Checkout Payer e tente novamente!', message: 'Aviso!' });\r\n return;\r\n //analisaFormaPagamento(docfiscal);\r\n } else if (retorno.statusTransaction == \"ABORTED\") {\r\n notification.warning({ description: 'Pagamento Cancelado!', message: 'Aviso!' });\r\n }\r\n }\r\n }\r\n await verificaTodosPagamentos(values);\r\n }\r\n\r\n async function cancelarPagamentoMaquina(values) {\r\n let retorno = (await api.put(`IntegraPagto/CancelarPagamento?Id=${values.integrapgto?.imp_id}`)).data;\r\n if (retorno) {\r\n values.integrapgtook = false;\r\n values.integrapgto = null;\r\n } else {\r\n notification.warning({ description: 'Erro ao efetuar o cancelamento!', message: 'Aviso!' });\r\n modalAguardandoPagamento(values)\r\n }\r\n }\r\n\r\n async function verificaTodosPagamentos(values) {\r\n let finalizarVenda = true;\r\n if (values.fpg_tipopagamento === tipoFormaPagamento.fpCartaoCredito || values.fpg_tipopagamento === tipoFormaPagamento.fpCartaoDebito || values.fpg_tipopagamento === tipoFormaPagamento.fpPix) {\r\n if (values.fpg_tipointegracao != null && values.integrapgtook == false) {\r\n finalizarVenda = false;\r\n }\r\n }\r\n if (finalizarVenda == true) {\r\n efetuarRecebimento(values);\r\n } else {\r\n modalAguardandoPagamento(values);\r\n }\r\n }\r\n\r\n const modalParcelaLiquidada = () => (\r\n Modal.confirm({\r\n title: 'Parcelas liquidadas com sucesso!',\r\n icon: ,\r\n content: 'Deseja continuar na tela com parcelas do cliente ou realizar uma nova pesquisa?',\r\n okText: 'Continuar',\r\n cancelText: 'Nova Pesquisa',\r\n centered: true,\r\n onOk() {\r\n setListaParcelasCliente(true);\r\n setPesquisaCodBarras(false);\r\n setListaParcelasReceber([]);\r\n setListaTotalizadores({});\r\n formulario.resetFields();\r\n },\r\n onCancel() {\r\n limparListas();\r\n }\r\n }));\r\n\r\n function efetuarRecebimento(values, dadosCartao) {\r\n var diasTolerancia = 30;\r\n if (formulario.getFieldValue().dataPagamentoRecebimento) {\r\n if (formulario.getFieldValue().dataPagamentoRecebimento > new Date()) {\r\n if (diferencaDatas(formulario.getFieldValue().dataPagamentoRecebimento) > diasTolerancia) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date(new Date().setDate(new Date().getDate() + 30))) });\r\n let dataFormatada = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('DD/MM/YYYY')\r\n info(`Data Movimento informada maior que tolerância de ${diasTolerancia} dias, Data Máxima ${dataFormatada}`);\r\n return;\r\n }\r\n } else {\r\n if (diferencaDatas(formulario.getFieldValue().dataPagamentoRecebimento) > diasTolerancia) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date(new Date().setDate(new Date().getDate() - 30))) });\r\n let dataFormatada = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('DD/MM/YYYY')\r\n\r\n info(`Data Movimento informada maior que tolerância de ${diasTolerancia} dias, Data Máxima ${dataFormatada}`);\r\n return;\r\n }\r\n }\r\n values.dataPagamentoRecebimento = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('YYYY-MM-DD HH:mm:ss');\r\n } else {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date()).format('YYYY-MM-DD HH:mm:ss') });\r\n }\r\n let dataAtual = new Date();\r\n var recebimento = valoresPagamento ??\r\n {\r\n ctg_id: values.ctg_id,\r\n ctc_id: values.ctc_id,\r\n fpg_id: values.fpg_id,\r\n cpg_id: values.cpg_id,\r\n };\r\n recebimento.dataPagamentoRecebimento = formulario.getFieldValue().dataPagamentoRecebimento;\r\n let valorTot = values.valorPago ?? values.pfp_valor;\r\n recebimento.valorTotalPagoRecebido = parseFloat(valorTot);\r\n recebimento.valorTotalParcelas = parseFloat(listaTotalizadores.valorTotalParcelas.toFixed(2));\r\n recebimento.valorTotalDesconto = parseFloat(listaTotalizadores.valorDesconto.toFixed(2));\r\n recebimento.valorTotalJuros = parseFloat(listaTotalizadores.valorTotalJuros.toFixed(2));\r\n recebimento.valorTotalAcrescimo = parseFloat(listaTotalizadores.valorAcrescimo.toFixed(2));\r\n recebimento.pes_id = dadosCliente.pes_id;\r\n recebimento.cpr_pagarreceber = 1;\r\n\r\n let pagamento = {\r\n fpg_id: recebimento.fpg_id,\r\n ctc_id: recebimento.ctc_id,\r\n cpg_id: recebimento.cpg_id,\r\n bce_id: dadosCartao == null ? null : dadosCartao.bandeira.bce_id,\r\n rcc_nsu: dadosCartao == null ? null : dadosCartao.nsu,\r\n valorFormaPgto: parseFloat(recebimento.valorTotalPagoRecebido),\r\n valorDescontoFormaPgto: parseFloat(formulario.getFieldValue('valorDesconto')),\r\n valorJurosFormaPgto: parseFloat(formulario.getFieldValue('valorAcrescimo')) + listaTotalizadores.valorTotalJuros,\r\n cheques: values.cheques,\r\n imp_id: values?.imp_id ?? null\r\n };\r\n recebimento.formaPgto = [pagamento];\r\n recebimento.parcelasQuitadas = [...listaParcelasReceber];\r\n\r\n if (!!dadosCartao) {\r\n let recebimentoCartao = [];\r\n let parcelas = values.parcelasCartao;\r\n if (values.credito) {\r\n if (dadosCartao.tipoParcelamento === tipoParcelamentoCartao.estabelecimento) {\r\n let numeroDias = parseInt(dadosCartao.bandeira.bce_nrodiasrecebimentocredito);\r\n parcelas.forEach((parcela) => {\r\n recebimentoCartao.push({\r\n tipoParcelamento: tipoParcelamentoCartao.estabelecimento,\r\n bce_id: dadosCartao.bandeira.bce_id,\r\n rcc_parcelarecebimento: parcela.prc_numeroparcela,\r\n rcc_valor: parcela.prc_valor,\r\n rcc_nsu: dadosCartao.nsu,\r\n rcc_previsaorecebimento: new Date(dataAtual.setDate(dataAtual.getDate() + numeroDias))\r\n });\r\n })\r\n } else {\r\n dataAtual = new Date();\r\n recebimentoCartao.push({\r\n tipoParcelamento: tipoParcelamentoCartao.comprador,\r\n bce_id: dadosCartao.bandeira.bce_id,\r\n rcc_parcelarecebimento: 1,\r\n rcc_valor: values.valorPago,\r\n rcc_nsu: dadosCartao.nsu,\r\n rcc_previsaorecebimento: new Date(dataAtual.setDate(dataAtual.getDate() + parseInt(dadosCartao.bandeira.bce_nrodiasrecebimentocredito)))\r\n });\r\n }\r\n } else {\r\n dataAtual = new Date();\r\n recebimentoCartao.push({\r\n tipoParcelamento: null,\r\n bce_id: dadosCartao.bandeira.bce_id,\r\n rcc_parcelarecebimento: 1,\r\n rcc_valor: values.valorPago,\r\n rcc_nsu: dadosCartao.nsu,\r\n rcc_previsaorecebimento: new Date(dataAtual.setDate(dataAtual.getDate() + parseInt(dadosCartao.bandeira.bce_nrodiasrecebimentodebito)))\r\n });\r\n }\r\n values.recebimentoCartao = recebimentoCartao;\r\n }\r\n setCarregando(true);\r\n api.post('/ContasPagarReceber/RecebimentoParcelas', recebimento).then(\r\n (res) => {\r\n if (res.data) {\r\n let dadosParcelas = [];\r\n recebimento.parcelasQuitadas.forEach((parcela) => {\r\n if (parcela.valorPagoRecebido > 0) {\r\n dadosParcelas.push({\r\n prc_id: parcela.prc_id,\r\n loc_id: getLocal(),\r\n pes_id: dadosCliente.pes_id,\r\n usu_nome: removerCarcaterEspecial(localStorage.getItem(\"@GestorWeb-NomeUsuario\")),\r\n fpg_id: values.fpg_id,\r\n cpg_id: values.cpg_id\r\n });\r\n }\r\n });\r\n let dadosReceber = btoa(JSON.stringify(dadosParcelas));\r\n novaAbaNavegador(`ContasPagarReceber/ImprimirComprovantePagamento?hashParcelas=${dadosReceber}`);\r\n modalParcelaLiquidada();\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.warning({ message: `Aviso!`, description: `Não foi possivel liquidar parcelas!` });\r\n }\r\n ).finally(() => {\r\n setCarregando(false);\r\n });\r\n }\r\n\r\n function limparListas() {\r\n setListaParcelasCliente(true);\r\n setPesquisaCodBarras(false);\r\n setListaTotalizadores({});\r\n setSelectedRowKeys([]);\r\n setTotalSelecionados([]);\r\n setListaParcelasReceber([]);\r\n formulario.resetFields();\r\n\r\n };\r\n\r\n function zerarJuros() {\r\n let listaTemp = [...listaParcelasReceber];\r\n listaTemp.forEach(item => {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n item.valorJuros = 0;\r\n if (parseFloat(item.valorDesconto) > valorTotal) {\r\n item.valorDesconto = valorTotal;\r\n }\r\n item.zerarJuros = true;\r\n item.valorAReceber = parseFloat((valorTotal - parseFloat(item.valorDesconto) + parseFloat(item.valorJuros) + parseFloat(item.valorAcrescimo)).toFixed(2));\r\n item.valorPagoRecebido = item.valorAReceber;\r\n item.prc_valor = item.valorAReceber;\r\n });\r\n setListaParcelasReceber(listaTemp);\r\n };\r\n\r\n function validaIntervaloData() {\r\n var diasTolerancia = 30;\r\n if (formulario.getFieldValue().dataPagamentoRecebimento) {\r\n if (formulario.getFieldValue().dataPagamentoRecebimento > new Date()) {\r\n if (diferencaDatas(formulario.getFieldValue().dataPagamentoRecebimento) > diasTolerancia) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date(new Date().setDate(new Date().getDate() + 30))) });\r\n let dataFormatada = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('DD/MM/YYYY')\r\n info(`Data Movimento informada maior que tolerância de ${diasTolerancia} dias, Data Máxima ${dataFormatada}`);\r\n }\r\n } else {\r\n if (diferencaDatas(formulario.getFieldValue().dataPagamentoRecebimento) > diasTolerancia) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date(new Date().setDate(new Date().getDate() - 30))) });\r\n let dataFormatada = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('DD/MM/YYYY')\r\n info(`Data Movimento informada maior que tolerância de ${diasTolerancia} dias, Data Máxima ${dataFormatada}`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {pesquisaCodBarras && !listaParcelasCliente &&\r\n
\r\n
\r\n \r\n
\r\n \r\n } placeholder=\"Informe o Código de Barras\" onSearch={valor => {\r\n if (!!valor) buscarCodBarras(valor)\r\n }} allowClear />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!pesquisaCodBarras && !listaParcelasCliente &&\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n }, {\r\n title: 'CPF/CNPJ',\r\n width: 140,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, '', true) : MaskFormat(pej_cnpj, '', true)}\r\n
\r\n ),\r\n }, {\r\n title: 'Telefone',\r\n width: 125,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n
\r\n ),\r\n },\r\n ]\r\n } />\r\n
\r\n \r\n }\r\n {pesquisaCodBarras && !listaParcelasCliente && listaParcelasReceber.length > 0 &&\r\n
\r\n
\r\n
(\r\n
\r\n {cpr_numerodocumento || '--'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº Parcela',\r\n align: 'left',\r\n width: 75,\r\n render: ({ prc_numeroparcela }) => (\r\n
\r\n {prc_numeroparcela}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Emissão',\r\n render: ({ cpr_datainclusao }) => (\r\n
\r\n {moment(cpr_datainclusao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n }, {\r\n title: 'Vencimento',\r\n render: ({ prc_datavencimento, vencida }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Original (R$)',\r\n align: 'right',\r\n render: ({ valorOriginal }) => (\r\n
\r\n \r\n {FormatNumber(!!valorOriginal ? valorOriginal : 0, true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: () => {\r\n return (\r\n
\r\n \r\n
Juros\r\n \r\n \r\n \r\n editarParcela(record)} icon={} />\r\n \r\n \r\n { excluirRegistro(record) }} icon={} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } expandable={{\r\n expandedRowRender: ({ prc_codigobarras, cpr_numerodocumento }) =>\r\n
\r\n \r\n
\r\n Cód. Barras: {prc_codigobarras || 'Não Informado'}\r\n \r\n \r\n Nº Documento: {cpr_numerodocumento || 'Não Informado'}\r\n \r\n \r\n ,\r\n expandIcon: ({ expanded, onExpand, record }) =>\r\n expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n )\r\n }} scroll={{ x: 900 }}\r\n columnWidth={30}\r\n pagination={{\r\n current: pagina,\r\n pageSize: nroRegistros,\r\n total: listaParcelasReceber.length,\r\n onChange: (pg) => setPagina(pg),\r\n onShowSizeChange: (current, page) => setNroRegistros(page)\r\n }} />\r\n \r\n
\r\n \r\n
\r\n validaIntervaloData()} />\r\n \r\n \r\n \r\n {\r\n return { label: item.cpg_descricao, value: item.cpg_id, key: item.cpg_id }\r\n })} filterOption={(input, option) => option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0} placeholder=\"Selecione a Condição de Pagamento...\" />\r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n {listaContaGerencialAgrupador.map(item => (\r\n \r\n {listaContaGerencial.filter((conta) => { return conta.ctc_id === item.ctc_id }).map(conta => (\r\n {conta.ctg_descricao}\r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n calcularRecebimentoParcial()} onPressEnter={() => calcularRecebimentoParcial()} name={'valorPago'} label={'Valor Recebido (R$)'} />\r\n \r\n \r\n \r\n {(!!listaTotalizadores.valorTotalParcelas && listaTotalizadores.valorTotalParcelas !== 0) &&\r\n \r\n \r\n \r\n Valor Parcelas (R$):\r\n \r\n \r\n {FormatNumber(listaTotalizadores.valorTotalParcelas, true)}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n Acréscimos (R$):\r\n \r\n \r\n { rateioAcrescimo() }} />\r\n \r\n \r\n \r\n \r\n Descontos (R$):\r\n \r\n \r\n { rateioDesconto() }} />\r\n \r\n \r\n \r\n {(!!listaTotalizadores.valorTotalJuros && listaTotalizadores.valorTotalJuros !== 0) &&\r\n \r\n \r\n \r\n Valor Juros (R$):\r\n \r\n \r\n {FormatNumber(listaTotalizadores.valorTotalJuros, true)}\r\n \r\n \r\n \r\n }\r\n {(!!listaTotalizadores.valorAReceber && listaTotalizadores.valorAReceber !== 0) &&\r\n \r\n \r\n \r\n Valor à Receber (R$):\r\n \r\n \r\n {FormatNumber(listaTotalizadores.valorAReceber, true)}\r\n \r\n \r\n \r\n }\r\n {(!!listaTotalizadores.troco && listaTotalizadores.troco !== 0) &&\r\n \r\n \r\n \r\n Troco (R$):\r\n \r\n \r\n {FormatNumber(listaTotalizadores.troco, true)}\r\n \r\n \r\n \r\n }\r\n {(!!listaTotalizadores.restanteReceber && listaTotalizadores.restanteReceber !== 0) &&\r\n \r\n \r\n \r\n Restante a Receber (R$):\r\n \r\n \r\n {FormatNumber(listaTotalizadores.restanteReceber, true)}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {listaParcelasCliente &&\r\n \r\n }\r\n\r\n setOpenModalEditarParcela(false)} dadosLinha={dadosLinhaEditar} salvarDadosModal={salvarDadosModal} />\r\n setOpenModalBandeiraCartao(false)} retornoModal={efetuarRecebimento} />\r\n setOpenModalCheque(false)} dadosCheque={{ numeroCheques: 1, pfp_valor: listaTotalizadores.valorAReceber, cli_id: dadosCliente.cli_id }} funcaoSalvar={efetuarRecebimento} />\r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Select, notification, InputNumber, Table, Button } from \"antd\";\r\nimport { EditOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { Data, FormGW, InputPreco } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { ModalEditarVencimentoParcela } from '../../components/modals/';\r\nimport SelectPaginado from '../../components/selectPaginado';\r\n\r\nexport default function ManutencaoContaPagar({ formulario, carregando, aoSalvar }) {\r\n\r\n const { Option } = Select;\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosContasPagar, setDadosContasPagar] = useState([]);\r\n const [openModalEditarParcela, setOpenModalEditarParcela] = useState(false);\r\n const [dadosLinhaEditar, setDadosLinhaEditar] = useState([]);\r\n const [openIntevaloDias, setOpenIntevaloDias] = useState(false);\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n\r\n const salvarManutencao = (values) => {\r\n if (parseFloat(values.valortotal) <= 0) {\r\n notification.error({ message: 'Atenção!', description: 'Valor Total do Documento precisa ser maior que 0!' });\r\n return;\r\n }\r\n carregando(true);\r\n values.parcelas = dadosContasPagar.parcelas;\r\n values.cpr_numerodocumento = !!values.cpr_numerodocumento ? values.cpr_numerodocumento.toString() : \"\";\r\n\r\n api.post('/contasPagarReceber/IncluirContasPagar', values).then(res => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Conta a pagar incluída com sucesso!\" });\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } })\r\n aoSalvar();\r\n carregando(false);\r\n });\r\n };\r\n\r\n function gerarParcelas() {\r\n let dados = [];\r\n let parcelas = {};\r\n dados.parcelas = [];\r\n let qtdDias = 0;\r\n let somaDasParcelas = 0;\r\n let dataVencimento = moment(formulario.getFieldValue().cpr_datavencimento);\r\n let valorTotal = parseFloat(formulario.getFieldValue().valortotal);\r\n let quantidadeParcelas = formulario.getFieldValue().cpr_numeroparcelas;\r\n let periodo = formulario.getFieldValue().cpr_periodicidade;\r\n let primeiroPagamento = moment(formulario.getFieldValue().cpr_dataprimeiropagamento);\r\n let divisao = 0;\r\n let intervaloDias = formulario.getFieldValue().cpr_intervalodias;\r\n if (!!valorTotal && !!quantidadeParcelas && ((quantidadeParcelas === 1 && !!dataVencimento) || \r\n (quantidadeParcelas > 1 && !!primeiroPagamento && !!periodo && ((periodo === 4 && !!intervaloDias) || periodo !== 4)))) {\r\n divisao = parseFloat((valorTotal / quantidadeParcelas).toFixed(2));\r\n if (quantidadeParcelas > 1) {\r\n if (!!periodo && !!primeiroPagamento) {\r\n if (periodo === 1) {\r\n qtdDias = 7;\r\n dados.cpr_intervalodias = qtdDias;\r\n } else if (periodo === 2) {\r\n qtdDias = 15;\r\n dados.cpr_intervalodias = qtdDias;\r\n } else if (periodo === 3) {\r\n qtdDias = 30;\r\n dados.cpr_intervalodias = qtdDias;\r\n } else {\r\n qtdDias = intervaloDias;\r\n dados.cpr_intervalodias = qtdDias;\r\n }\r\n }\r\n for (var i = 0; i < quantidadeParcelas; i++) { \r\n parcelas = {};\r\n parcelas.prc_numeroparcela = i + 1;\r\n parcelas.prc_valor = divisao;\r\n\r\n if (!!primeiroPagamento) {\r\n var outraData = new Date(primeiroPagamento);\r\n outraData.setDate((outraData.getDate()) + (i * qtdDias));\r\n parcelas.prc_datavencimento = outraData;\r\n } else {\r\n parcelas.prc_datavencimento = dataVencimento;\r\n }\r\n dados.parcelas.push(parcelas);\r\n if (i !== 0)\r\n somaDasParcelas += parseFloat(divisao.toFixed(2));\r\n }\r\n if (somaDasParcelas > 0)\r\n dados.parcelas[0].prc_numeroparcela = 1;\r\n dados.parcelas[0].prc_valor = parseFloat((valorTotal - somaDasParcelas).toFixed(2));\r\n } else {\r\n parcelas = {};\r\n dados.cpr_periodicidade = null;\r\n dados.prc_periodicidade = null;\r\n dados.cpr_dataprimeiropagamento = dataVencimento;\r\n parcelas.prc_datavencimento = dataVencimento;\r\n parcelas.prc_numeroparcela = 1;\r\n parcelas.prc_valor = parseFloat(valorTotal.toFixed(2));\r\n dados.parcelas.push(parcelas);\r\n }\r\n setDadosContasPagar(dados);\r\n } else {\r\n setDadosContasPagar([]);\r\n }\r\n };\r\n\r\n function mostrarIntervaloDias(value, option) {\r\n gerarParcelas();\r\n if (option.value === 4) setOpenIntevaloDias(true);\r\n else setOpenIntevaloDias(false);\r\n };\r\n\r\n function editarDataVencimentoParcela(linha) {\r\n setDadosLinhaEditar(linha);\r\n setOpenModalEditarParcela(true);\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`contaCorrente/listar?filtro=&ordem=+ctc_descricao`).then(res => {\r\n setListaContaCorrente(res.data.items);\r\n })\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?Ativo=true&CodReceitaDespesa=1`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n })\r\n formulario.setFieldsValue({ cpr_datainclusao: moment(new Date()), cpr_periodicidade: 3, cpr_numeroparcelas: 1 });\r\n gerarParcelas();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n ({pc.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaContaGerencialAgrupador.map(item => (\r\n \r\n {listaContaGerencial.filter((conta) => { return conta.ctc_id === item.ctc_id }).map(conta => (\r\n {conta.ctg_descricao}\r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n gerarParcelas()} rules={[{ required: true }]} />\r\n \r\n \r\n \r\n gerarParcelas()}\r\n step={1}\r\n min={1}\r\n placeholder=\"Informe o Número de Parcelas\"\r\n />\r\n \r\n \r\n <>\r\n prevValues.cpr_numeroparcelas !== currentValues.cpr_numeroparcelas}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('cpr_numeroparcelas') === 1) return (\r\n \r\n gerarParcelas()} label=\"Data Vencimento\" name=\"cpr_datavencimento\" rules={[{ required: true, message: 'Informe a data de vencimento' }]} />\r\n \r\n );\r\n if (getFieldValue('cpr_numeroparcelas') > 1) return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n gerarParcelas()} label=\"Data Primeiro Vencimento\" name=\"cpr_dataprimeiropagamento\" rules={[{ required: true, message: 'Informe a data do primeiro vencimento' }]} />\r\n \r\n {openIntevaloDias === true &&\r\n \r\n \r\n gerarParcelas()} placeholder=\"Informe o intervalo de dias\" />\r\n \r\n \r\n }\r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosContasPagar.parcelas && dadosContasPagar.parcelas.length > 1 &&\r\n
\r\n
(\r\n
\r\n Parcela: {prc_numeroparcela}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n }, {\r\n title: 'Vencimento',\r\n align: 'center',\r\n width: 98,\r\n render: ({ prc_datavencimento }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n key: 'x',\r\n title: 'Ações',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Button, Collapse, Tag, Popover, Modal, notification } from 'antd';\r\nimport { ArrowDownOutlined, ArrowUpOutlined, SearchOutlined, DeleteOutlined, EyeOutlined, CheckCircleOutlined, ExclamationCircleOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerContaPagar from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatDate, FormatNumber } from \"../../ValueObjects\";\r\nimport { ModalListarParcelas } from \"../../components/modals/\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, TabelaDados, Data, FiltroSearch, ComboData } from \"../../components\";\r\n\r\nexport default function ContaPagar() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openPesquisaAvancada, setOpenPesquisaAvancada] = useState(false);\r\n const [dataPesquisa, setDataPesquisa] = useState(new Date().toLocaleDateString());\r\n const [dataAtual] = useState(new Date());\r\n const [parametrosContasPagar] = Form.useForm();\r\n const [listaStatusParcela, setListaStatusParcela] = useState([]);\r\n const [openModal, setOpenModal] = useState(false);\r\n const [parcelas, setParcelas] = useState([]);\r\n\r\n const togglePesquisa = () => {\r\n setOpenPesquisaAvancada(!openPesquisaAvancada);\r\n };\r\n\r\n const modalNovaConta = (item) => {\r\n Modal.confirm({\r\n title: 'Conta estornada com sucesso!',\r\n icon: ,\r\n content: `Deseja criar uma nova conta com base nesta conta estornada?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.get(`ContasPagarReceber/Buscar/${item.cpr_id}`).then(\r\n res => {\r\n let dadosTemp = res.data;\r\n dadosTemp.valortotal = 0;\r\n dadosTemp.cpr_datainclusao = moment(res.data.cpr_datainclusao);\r\n dadosTemp.cpr_dataprimeiropagamento = moment(res.data.cpr_dataprimeiropagamento);\r\n res.data.parcelas.forEach(parcela => {\r\n dadosTemp.valortotal += parcela.prc_valor;\r\n });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosTemp } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n\r\n }\r\n );\r\n },\r\n onCancel() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } });\r\n }\r\n });\r\n };\r\n\r\n const modalEstornar = (item) => {\r\n Modal.confirm({\r\n title: 'Estornar Parcela',\r\n icon: ,\r\n content: `Deseja estornar a conta de ${item.pes_nome} no valor de ${FormatNumber(item.prc_valor, true)}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.post(`ContasPagarReceber/CancelarContaPagarReceber?ContaPagarReceberId=${item.cpr_id}`).then(\r\n res => {\r\n if (res.data.cpr_estornado === true) {\r\n modalNovaConta(item);\r\n } else {\r\n Modal.success({\r\n title: 'Não foi possivel estornar a Conta!',\r\n icon: ,\r\n content: `Existe pagamentos referentes a esta conta`,\r\n okText: 'OK'\r\n })\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n notification.warn({ message: 'Aviso!', description: !!error.response.data ? error.response.data : 'Não foi possivel estonar a conta!' })\r\n }\r\n )\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=StatusParcela`).then(res => {\r\n setListaStatusParcela(res.data);\r\n });\r\n parametrosContasPagar.setFieldsValue({ dataInicial: moment(new Date()), dataFinal: moment(new Date()) });\r\n }, []);\r\n\r\n useEffect(() => {\r\n carregarLista();\r\n }, [dataPesquisa]);\r\n\r\n function carregarLista() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&tipoMovimentacao=0&dataInicial=${FormatDate(dataPesquisa)}&dataFinal=${FormatDate(dataAtual.toLocaleDateString())}&statusParcela=0,1,2,3`, ordem: '+pes_nome' } });\r\n }\r\n\r\n function aplicarFiltrosAvancados() {\r\n let filtros = '&tipoMovimentacao=0';\r\n filtros += `&dataInicial=${(!!parametrosContasPagar.getFieldValue().dataInicial ? moment(parametrosContasPagar.getFieldValue().dataInicial).format('YYYY-MM-DD') : FormatDate(dataAtual))}`;\r\n filtros += `&dataFinal=${(!!parametrosContasPagar.getFieldValue().dataFinal ? moment(parametrosContasPagar.getFieldValue().dataFinal).format('YYYY-MM-DD') : FormatDate(dataAtual))}`;\r\n filtros += `&statusParcela=${(!!parametrosContasPagar.getFieldValue().statusParcela ? parametrosContasPagar.getFieldValue().statusParcela.join(',') : '0,1,2,3')}`;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtros } });\r\n };\r\n\r\n function retornarStatus(prc_status) {\r\n if (prc_status === 0) {\r\n return 'Pendente'\r\n } else if (prc_status === 1) {\r\n return 'Rcto. Parcial'\r\n } else if (prc_status === 2) {\r\n return 'Liquidada'\r\n } else if (prc_status === 3) {\r\n return 'Reparcelada'\r\n }\r\n };\r\n\r\n function buscarParcelas(dados) {\r\n if (!!dados.cpr_id) {\r\n setOpenModal(true);\r\n api.get(`Parcela/ListarParcelas?IdContaPagarReceber=${dados.cpr_id}&Estornado=false&PagarOuReceber=0&PageSize=100&Order=+prc_numeroparcela`).then(res => {\r\n res.data.items.forEach(parc => { parc.editando = false });\r\n setParcelas(res.data.items);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n parametrosContasPagar.setFieldsValue({ dataFinal: moment(new Date()) });\r\n parametrosContasPagar.setFieldsValue({ dataInicial: moment(parametrosContasPagar.getFieldValue().dataPesquisa) });\r\n aplicarFiltrosAvancados();\r\n }} />\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {openPesquisaAvancada ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n {\r\n if (prc_status === 0 || prc_status === 1 || prc_status === 3) {\r\n return 'Parcela Pendente'\r\n } else if (prc_status === 2) {\r\n return 'Parcela Liquidada'\r\n }\r\n }} placement=\"right\">\r\n \r\n {retornarStatus(prc_status)}\r\n \r\n \r\n ),\r\n }, {\r\n title: 'Nº Doc.',\r\n width: 80,\r\n align: 'center',\r\n render: ({ cpr_numerodocumento }) => (\r\n \r\n {cpr_numerodocumento || `N/D`}\r\n \r\n ),\r\n }, {\r\n title: 'Fornecedor',\r\n width: 330,\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n }, {\r\n title: 'Vencimento',\r\n width: 80,\r\n render: ({ prc_datavencimento }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n }, {\r\n title: 'Observação',\r\n width: 300,\r\n render: ({ cpr_observacao }) => (\r\n
\r\n {cpr_observacao}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Obs.: {cpr_descricao || ``}\r\n \r\n \r\n Nota Nº: {ntf_numero || `Não Informado`}\r\n \r\n \r\n Parcela Nº: {prc_numeroparcela || `Não Informado`}\r\n \r\n \r\n Saldo Devedor (R$): {FormatNumber(saldo, true)}\r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n \r\n \r\n setOpenModal(false)} parcelas={parcelas} setParcelas={setParcelas} />\r\n \r\n );\r\n}\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Button, Select, Form, Table, Input, Tag, Modal, notification } from \"antd\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, DeleteOutlined, ExclamationCircleOutlined, BarcodeOutlined, EditOutlined } from \"@ant-design/icons\";\r\n\r\nimport moment from 'moment';\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { InputPreco, Data } from \"../../components\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { compararDatas, diferencaDatas, info } from \"../../services/funcoes\";\r\nimport { ModalEditarValoresParcela } from \"../../components/modals\";\r\n\r\nexport default function ManutencaoPagamento({ formulario, totalizadores, calcularPagamentoParcial, listaParcelasPagar, carregando, aoSalvar, dadosFornecedor }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n const [openModalEditarParcela, setOpenModalEditarParcela] = useState(false);\r\n const [dadosLinhaEditar, setDadosLinhaEditar] = useState([]);\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState([]);\r\n const [listaCondicaoPagamento, setListaCondicaoPagamento] = useState([]);\r\n const [exibirCondicaoPag, setExibirCondicaoPag] = useState(false);\r\n const inputRef = React.createRef();\r\n\r\n useEffect(() => {\r\n api.get(`contaCorrente/ListarAtivos?filtro=&Order=+ctc_descricao&PageSize=1000`).then(res => {\r\n setListaContaCorrente(res.data.items);\r\n });\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?CodReceitaDespesa=1&filtro=`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n });\r\n api.get(`FormaPagamento/Listar?filtro=&PageNumber=1&PageSize=1000`).then(res => {\r\n let forma = res.data.items.filter(forma => forma.fpg_tipopagamento === tipoFormaPagamento.fpPix || forma.fpg_tipopagamento === tipoFormaPagamento.fpDinheiro || forma.fpg_tipopagamento === tipoFormaPagamento.fpCheque);\r\n setListaFormaPagamento(forma);\r\n });\r\n if (!!!formulario.getFieldValue().dataPagamentoRecebimento) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date()) });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!inputRef.current) {\r\n inputRef.current.focus();\r\n };\r\n }, [inputRef]);\r\n\r\n function salvarDadosModal(values) {\r\n let listaTemp = [...listaParcelasPagar.listaParcelasPagar];\r\n let linha = listaTemp.filter((item) => { return item.prc_id === dadosLinhaEditar.prc_id })[0];\r\n linha.valorJuros = parseFloat(values.valorJuros);\r\n linha.valorDesconto = parseFloat(values.valorDesconto);\r\n linha.valorAcrescimo = parseFloat(values.valorAcrescimo);\r\n linha.valorPagoRecebido = parseFloat(values.valorPago);\r\n linha.valorAReceber = parseFloat(values.valorPago);\r\n linha.valorParcela = linha.valorAReceber;\r\n linha.valorPago = parseFloat(values.valorPago);\r\n listaParcelasPagar.setListaParcelasPagar(listaTemp);\r\n };\r\n\r\n const tipoFormaPagamento = {\r\n fpDinheiro: 1,\r\n fpCheque: 2,\r\n fpCartaoCredito: 3,\r\n fpCartaoDebito: 4,\r\n fpCreditoLoja: 5,\r\n fpValeAlimentacao: 10,\r\n fpValeRefeicao: 11,\r\n fpValePresente: 12,\r\n fpValeCombustivel: 13,\r\n fpPix: 17,\r\n fpOutro: 99\r\n };\r\n\r\n function editarParcela(linha) {\r\n setDadosLinhaEditar(linha);\r\n setOpenModalEditarParcela(true);\r\n };\r\n\r\n async function buscarCondicaoPagamento(valor) {\r\n if (!!valor) {\r\n let formaPagamento = (await api.get(`FormaPagamento/Get?id=${valor}`)).data;\r\n if (formaPagamento.fpg_tipopagamento !== tipoFormaPagamento.fpDinheiro && formaPagamento.fpg_tipopagamento !== tipoFormaPagamento.fpPix) {\r\n setExibirCondicaoPag(true);\r\n setListaCondicaoPagamento(formaPagamento.formacondicaopagamentos);\r\n } else {\r\n setExibirCondicaoPag(false);\r\n }\r\n } else {\r\n setExibirCondicaoPag(false);\r\n }\r\n formulario.setFieldsValue({ cpg_id: null });\r\n };\r\n\r\n function efetuarPagamento(values) {\r\n if (!(!!values)) {\r\n values = manutencao.dados;\r\n }\r\n values.valorTotalPagoRecebido = parseFloat(values.valorPago);\r\n if (!!!values.valorTotalPagoRecebido) {\r\n notification.warning({ message: `Aviso!`, description: `Favor informar o campo Valor Pago!` });\r\n return;\r\n }\r\n var diasTolerancia = 30;\r\n if (formulario.getFieldValue().dataPagamentoRecebimento) {\r\n if (formulario.getFieldValue().dataPagamentoRecebimento > new Date()) {\r\n if (diferencaDatas(formulario.getFieldValue().dataPagamentoRecebimento) > diasTolerancia) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date(new Date().setDate(new Date().getDate() + 30))) });\r\n let dataFormatada = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('DD/MM/YYYY')\r\n info(`Data Movimento informada maior que tolerância de ${diasTolerancia} dias, Data Máxima ${dataFormatada}`);\r\n return;\r\n }\r\n } else {\r\n if (diferencaDatas(formulario.getFieldValue().dataPagamentoRecebimento) > diasTolerancia) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date(new Date().setDate(new Date().getDate() - 30))) });\r\n let dataFormatada = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('DD/MM/YYYY')\r\n\r\n info(`Data Movimento informada maior que tolerância de ${diasTolerancia} dias, Data Máxima ${dataFormatada}`);\r\n return;\r\n }\r\n }\r\n } else {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date()) });\r\n }\r\n values.cpr_pagarreceber = 0;\r\n values.dataPagamentoRecebimento = formulario.getFieldValue().dataPagamentoRecebimento;\r\n values.valorTotalParcelas = parseFloat(totalizadores.listaTotalizadores.valorAPagar.toFixed(2));\r\n values.valorTotalAcrescimo = parseFloat(totalizadores.listaTotalizadores.valorAcrescimo.toFixed(2));\r\n values.valorTotalDesconto = totalizadores.listaTotalizadores.valorDesconto;\r\n values.valorTotalJuros = totalizadores.listaTotalizadores.valorTotalJuros;\r\n values.cpg_id = (!!values.cpg_id ? values.cpg_id : null);\r\n values.parcelasQuitadas = listaParcelasPagar.listaParcelasPagar;\r\n values.pes_id = dadosFornecedor.pes_id;\r\n values.parcelasQuitadas.forEach((item) => {\r\n item.valorParcela = item.prc_valor;\r\n item.valorPagoRecebido = item.valorPago;\r\n item.valorAcrescimo = item.valorAcrescimo;\r\n item.valorJuros = item.valorJuros;\r\n });\r\n\r\n values.formaPgto = [\r\n { fpg_id: values.fpg_id, cpg_id: values.cpg_id, ctc_id: values.ctc_id, valorFormaPgto: values.valorTotalPagoRecebido, valorDescontoFormaPgto: 0, valorJurosFormaPgto: 0 }\r\n ];\r\n\r\n carregando(true);\r\n api.post('/ContasPagarReceber/PagamentoParcelas', values).then(res => {\r\n notification.success({ message: 'Aviso!', description: 'Parcelas liquidadas com sucesso!' });\r\n aoSalvar();\r\n }).catch(\r\n (erro) => {\r\n notification.warning({ message: `Aviso!`, description: `Não foi possivel liquidar parcelas!` });\r\n }\r\n ).finally(() => {\r\n carregando(false);\r\n });\r\n };\r\n\r\n function excluirRegistro(dados) {\r\n Modal.confirm({\r\n title: `Remover da lista a parcela Nº ${dados.prc_numeroparcela} no valor de ${FormatNumber(!!dados.prc_valor ? dados.prc_valor : 0, true)}?`,\r\n icon: ,\r\n onOk() {\r\n let listaTemp = [...listaParcelasPagar.listaParcelasPagar];\r\n let index = listaTemp.findIndex(item => item.prc_codigobarras === dados.prc_codigobarras);\r\n listaTemp.splice(index, 1);\r\n listaParcelasPagar.setListaParcelasPagar(listaTemp);\r\n }\r\n });\r\n };\r\n\r\n function buscarCodBarras(valor) {\r\n api.get(`Parcela/ListarParcelas?CodigoBarras=${valor}&PagarOuReceber=0`).then(res => {\r\n if (res.data.items.length > 0) {\r\n let listaTemp = [...listaParcelasPagar.listaParcelasPagar];\r\n let retornoParcela = res.data.items[0];\r\n\r\n if (listaTemp.filter(item => { return item.prc_codigobarras === retornoParcela.prc_codigobarras }).length > 0) {\r\n info(\"A parcela já esta adicionada na lista para pagamento!\");\r\n } else {\r\n if (retornoParcela.prc_status !== 2 && !retornoParcela.prc_estornado) {\r\n if (retornoParcela.pes_id === (!!dadosFornecedor.pes_id ? dadosFornecedor.pes_id : retornoParcela.pes_id)) {\r\n let valorReceber;\r\n retornoParcela.key = retornoParcela.cpr_id.toString().concat(retornoParcela.prc_id);\r\n retornoParcela.vencida = compararDatas(retornoParcela.prc_datavencimento, null, '<');\r\n retornoParcela.numeroDiasVencida = 0;\r\n retornoParcela.valorJuros = 0;\r\n retornoParcela.valorOriginal = parseFloat(retornoParcela.prc_valor);\r\n retornoParcela.prc_valor = parseFloat((retornoParcela.prc_valor - retornoParcela.valorQuitado + retornoParcela.valorJuros).toFixed(2));\r\n retornoParcela.valorPago = parseFloat(retornoParcela.prc_valor);\r\n retornoParcela.valorDesconto = 0.00;\r\n retornoParcela.valorAcrescimo = 0;\r\n retornoParcela.valorAReceber = retornoParcela.prc_valor;\r\n listaTemp.push(retornoParcela);\r\n listaParcelasPagar.setListaParcelasPagar(listaTemp);\r\n } else {\r\n info(`Parcela não é do cliente ${dadosFornecedor.pes_nome}!`);\r\n }\r\n } else {\r\n if (retornoParcela.prc_status === 2) {\r\n info(\"Esta Parcela já foi totalmente liquidada!\");\r\n }\r\n if (retornoParcela.prc_estornado === 1) {\r\n info(\"A Parcela foi estornada!\");\r\n }\r\n }\r\n }\r\n } else {\r\n info(\"Parcela não encontrada!\");\r\n }\r\n });\r\n };\r\n\r\n function rateioDesconto() {\r\n let valorDesconto = parseFloat(formulario.getFieldValue(\"valorDesconto\")) > 0 ? parseFloat(formulario.getFieldValue(\"valorDesconto\")) : 0;\r\n\r\n let valorTotalSemDesconto = (parseFloat(totalizadores.listaTotalizadores.valorTotal) + parseFloat(totalizadores.listaTotalizadores.valorTotalJuros) + parseFloat(totalizadores.listaTotalizadores.valorAcrescimo));\r\n if (valorDesconto > 0 && valorDesconto > valorTotalSemDesconto) {\r\n formulario.setFieldsValue({ valorDesconto: valorTotalSemDesconto });\r\n valorDesconto = valorTotalSemDesconto;\r\n }\r\n\r\n let listaTemp = [...listaParcelasPagar.listaParcelasPagar];\r\n let sobraDesconto = 0;\r\n\r\n for (const [idx, item] of listaTemp.entries()) {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n let valorParcela = parseFloat((valorTotal + parseFloat(item.valorAcrescimo) + parseFloat(item.valorJuros)).toFixed(2));\r\n\r\n //calcular percentual do total \r\n let percentualDesconto = (valorParcela * 100) / valorTotalSemDesconto;\r\n let desconto = (valorDesconto * percentualDesconto) / 100;\r\n sobraDesconto += desconto - parseFloat(desconto.toFixed(2));\r\n\r\n item.valorDesconto = parseFloat((parseFloat(desconto.toFixed(2)) + (idx === listaTemp.length - 1 ? sobraDesconto : 0)).toFixed(2));\r\n item.prc_valor = valorParcela - item.valorDesconto;\r\n item.valorPago = item.prc_valor;\r\n }\r\n\r\n listaParcelasPagar.setListaParcelasPagar(listaTemp);\r\n };\r\n\r\n function rateioAcrescimo() {\r\n let valorAcrescimo = parseFloat(formulario.getFieldValue(\"valorAcrescimo\")) > 0 ? parseFloat(formulario.getFieldValue(\"valorAcrescimo\")) : 0;\r\n\r\n let valorTotalSemAcrescimo = (parseFloat(totalizadores.listaTotalizadores.valorTotal) + parseFloat(totalizadores.listaTotalizadores.valorTotalJuros) - parseFloat(totalizadores.listaTotalizadores.valorDesconto));\r\n\r\n let listaTemp = [...listaParcelasPagar.listaParcelasPagar];\r\n let sobraAcrescimo = 0;\r\n\r\n for (const [idx, item] of listaTemp.entries()) {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n let valorParcela = parseFloat((valorTotal + parseFloat(item.valorJuros - parseFloat(item.valorDesconto))).toFixed(2));\r\n //calcular percentual do total \r\n let percentualAcrescimo = (valorParcela * 100) / valorTotalSemAcrescimo;\r\n let acrescimo = (valorAcrescimo * percentualAcrescimo) / 100;\r\n sobraAcrescimo += acrescimo - parseFloat(acrescimo.toFixed(2));\r\n\r\n item.valorAcrescimo = parseFloat((parseFloat(acrescimo.toFixed(2)) + (idx === listaTemp.length - 1 ? sobraAcrescimo : 0)).toFixed(2));\r\n item.prc_valor = valorParcela + item.valorAcrescimo;\r\n item.valorPago = item.prc_valor;\r\n }\r\n\r\n listaParcelasPagar.setListaParcelasPagar(listaTemp);\r\n };\r\n\r\n function validaIntervaloData() {\r\n var diasTolerancia = 30;\r\n if (formulario.getFieldValue().dataPagamentoRecebimento) {\r\n if (formulario.getFieldValue().dataPagamentoRecebimento > new Date()) {\r\n if (diferencaDatas(formulario.getFieldValue().dataPagamentoRecebimento) > diasTolerancia) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date(new Date().setDate(new Date().getDate() + 30))) });\r\n let dataFormatada = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('DD/MM/YYYY')\r\n info(`Data Movimento informada maior que tolerância de ${diasTolerancia} dias, Data Máxima ${dataFormatada}`);\r\n }\r\n } else {\r\n if (diferencaDatas(formulario.getFieldValue().dataPagamentoRecebimento) > diasTolerancia) {\r\n formulario.setFieldsValue({ dataPagamentoRecebimento: moment(new Date(new Date().setDate(new Date().getDate() - 30))) });\r\n let dataFormatada = moment(formulario.getFieldValue().dataPagamentoRecebimento).format('DD/MM/YYYY')\r\n info(`Data Movimento informada maior que tolerância de ${diasTolerancia} dias, Data Máxima ${dataFormatada}`);\r\n }\r\n }\r\n }\r\n }\r\n \r\n function windowHeight() {\r\n if(window.innerHeight > 800) {\r\n return 388;\r\n }\r\n else if (window.innerHeight < 800 && window.innerHeight > 740){\r\n return 288;\r\n }\r\n else {\r\n return 228;\r\n }\r\n \r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n } placeholder=\"Informe o Código de Barras\" onSearch={valor => {\r\n if (!!valor) buscarCodBarras(valor)\r\n }} allowClear />\r\n \r\n \r\n \r\n \r\n {listaParcelasPagar.listaParcelasPagar.length > 0 &&
\r\n
(\r\n \r\n {prc_numeroparcela} - {cpr_numeroparcelas}\r\n \r\n ),\r\n }, {\r\n title: 'Fornecedor',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vencimento',\r\n width: 85,\r\n render: ({ prc_datavencimento }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Par. (R$)',\r\n align: 'right',\r\n width: 75,\r\n render: ({ valorOriginal }) => (\r\n
\r\n \r\n {FormatNumber(!!valorOriginal ? valorOriginal : 0, true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Juros (R$)',\r\n align: 'right',\r\n width: 75,\r\n render: ({ valorJuros }) => (\r\n
\r\n \r\n {FormatNumber(!!valorJuros ? valorJuros : 0, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desc. (R$)',\r\n align: 'right',\r\n width: 75,\r\n render: ({ valorDesconto }) => (\r\n
\r\n \r\n {FormatNumber(!!valorDesconto ? valorDesconto : 0, true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Acrésc. (R$)',\r\n align: 'right',\r\n width: 75,\r\n render: ({ valorAcrescimo }) => (\r\n
\r\n \r\n {FormatNumber(!!valorAcrescimo ? valorAcrescimo : 0, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Pago (R$)',\r\n align: 'right',\r\n width: 75,\r\n render: ({ valorQuitado }) => (\r\n
\r\n \r\n {FormatNumber((!!valorQuitado ? valorQuitado : 0), true)}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'A Pagar (R$)',\r\n align: 'right',\r\n width: 115,\r\n render: ({ valorPago }) => (\r\n
\r\n \r\n {FormatNumber(!!valorPago ? valorPago : 0, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n title: 'Ações',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Cód. Barras: {prc_codigobarras || 'Não Informado'}\r\n \r\n \r\n Nº Documento: {cpr_numerodocumento || 'Não Informado'}\r\n \r\n \r\n ,\r\n expandIcon: ({ expanded, onExpand, record }) =>\r\n expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n )\r\n }} scroll={{ x: 900, y: windowHeight()}} columnWidth={30} \r\n />\r\n
\r\n
\r\n \r\n
\r\n validaIntervaloData()} />\r\n \r\n \r\n \r\n {\r\n return { label: item.cpg_descricao, value: item.cpg_id, key: item.cpg_id }\r\n })} filterOption={(input, option) => option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0} placeholder=\"Selecione a Condição de Pagamento...\" />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n {listaContaGerencialAgrupador.map(item => (\r\n \r\n {listaContaGerencial.filter((conta) => { return conta.ctc_id === item.ctc_id }).map(conta => (\r\n {conta.ctg_descricao}\r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n calcularPagamentoParcial()} onPressEnter={() => calcularPagamentoParcial()} name={'valorPago'} label={'Valor Pago (R$)'} />\r\n \r\n \r\n \r\n
\r\n \r\n {(!!totalizadores.listaTotalizadores.valorTotalParcelas && totalizadores.listaTotalizadores.valorTotalParcelas !== 0) &&\r\n
\r\n \r\n \r\n Valor Parcelas (R$):\r\n \r\n \r\n \r\n {FormatNumber(totalizadores.listaTotalizadores.valorTotalParcelas, true)}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n Acréscimos (R$):\r\n \r\n \r\n { rateioAcrescimo() }} />\r\n \r\n \r\n \r\n \r\n Descontos (R$):\r\n \r\n \r\n { rateioDesconto() }} />\r\n \r\n \r\n \r\n {(!!totalizadores.listaTotalizadores.valorTotalJuros && totalizadores.listaTotalizadores.valorTotalJuros !== 0) &&\r\n \r\n \r\n \r\n Valor Juros (R$):\r\n \r\n \r\n \r\n {FormatNumber(totalizadores.listaTotalizadores.valorTotalJuros, true)}\r\n \r\n \r\n \r\n \r\n }\r\n {(!!totalizadores.listaTotalizadores.valorAPagar && totalizadores.listaTotalizadores.valorAPagar !== 0) &&\r\n \r\n \r\n \r\n Valor à Pagar (R$):\r\n \r\n \r\n {FormatNumber(totalizadores.listaTotalizadores.valorAPagar, true)}\r\n \r\n \r\n \r\n }\r\n {(!!totalizadores.listaTotalizadores.troco && totalizadores.listaTotalizadores.troco !== 0) &&\r\n \r\n \r\n \r\n Troco (R$):\r\n \r\n \r\n {FormatNumber(totalizadores.listaTotalizadores.troco, true)}\r\n \r\n \r\n \r\n }\r\n {(!!totalizadores.listaTotalizadores.restantePagar && totalizadores.listaTotalizadores.restantePagar !== 0) &&\r\n \r\n \r\n \r\n Restante a Pagar (R$):\r\n \r\n \r\n {FormatNumber(totalizadores.listaTotalizadores.restantePagar, true)}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n }\r\n setOpenModalEditarParcela(false)} dadosLinha={dadosLinhaEditar} salvarDadosModal={salvarDadosModal} />\r\n \r\n )\r\n}","import React, { useState } from 'react';\r\nimport { Button, Col, Drawer, Form, Modal, Row } from \"antd\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions } from '../../actions';\r\nimport ManutencaoPagamento from './pagamento';\r\nimport { InputPreco } from \"../../components\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { CloseOutlined, ExclamationCircleOutlined, SaveOutlined } from '@ant-design/icons';\r\n\r\nexport default function DrawerPagamento({ formulario, calcularPagamentoParcial, listaParcelasPagar, totalizadores, limparListas, dadosFornecedor }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n limparListas();\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n { dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } }) }}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Button, Menu, Input, Form, Table, Checkbox, Dropdown } from \"antd\";\r\nimport { SearchOutlined, EyeOutlined, ArrowLeftOutlined, ArrowRightOutlined, FileDoneOutlined, DollarOutlined, MoreOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport DrawerPagamento from './drawerPagamento';\r\nimport { compararDatas, info } from \"../../services/funcoes\";\r\nimport { drawerActions, listagemActions } from \"../../actions\";\r\nimport DrawerDetalheNotaFiscal from \"./drawerDetalheNotaFiscal\";\r\nimport { FormatFone, MaskFormat, FormatNumber } from '../../ValueObjects';\r\nimport { BreadcrumbPage, BotaoAbrirChamado, TabelaDados, Data } from \"../../components\";\r\nimport ModalDetalheNotaFiscal from \"../notaFiscal/modalDetalheNotaFiscal\";\r\n\r\nexport default function PagamentoParcela() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaParcelasFornecedor, setListaParcelasFornecedor] = useState(false);\r\n const [listaParcelasPagar, setListaParcelasPagar] = useState([]);\r\n const [dadosFornecedor, setDadosFornecedor] = useState({});\r\n const [listaTotalizadores, setListaTotalizadores] = useState({});\r\n const [formulario] = Form.useForm();\r\n const [alterarValorPago, setAlterarValorPago] = useState(true);\r\n const [formParametros] = Form.useForm();\r\n const [listaParcelas, setListaParcelas] = useState([]);\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n const [openModalDetalhes, setOpenModalDetalhes] = useState(false);\r\n const [dadosModalNota, setDadosModalNota] = useState({});\r\n const [dadosDetalhesNota, setDadosDetalhesNota] = useState({});\r\n function selecionarParcelas(keys) {\r\n setSelectedRowKeys(keys);\r\n };\r\n\r\n const rowSelection = {\r\n selectedRowKeys,\r\n onChange: selecionarParcelas,\r\n };\r\n\r\n useEffect(() => {\r\n if (!!dadosFornecedor.pes_id) {\r\n api.get(`Parcela/ListarParcelas?PagarOuReceber=0&IdPessoa=${dadosFornecedor.pes_id}&StatusParcela=0,1&Estornado=false&PageSize=1000&Order=prc_datavencimento`).then(res => {\r\n listarParcelas(res.data.items);\r\n });\r\n }\r\n }, [dadosFornecedor]);\r\n\r\n function listarParcelas(dados) {\r\n let parcelasPagar = [];\r\n let keys = [];\r\n\r\n if (listaParcelasPagar.length > 0) {\r\n listaParcelasPagar.map((parcela) => {\r\n keys.push(parcela.key);\r\n });\r\n setSelectedRowKeys(keys);\r\n }\r\n\r\n dados.forEach((item) => {\r\n item.key = item.cpr_id.toString().concat(item.prc_id);\r\n item.vencida = compararDatas(item.prc_datavencimento, null, '<');\r\n item.valorOriginal = parseFloat(item.prc_valor);\r\n item.valorDesconto = 0.00;\r\n item.valorJuros = 0.00;\r\n item.valorAcrescimo = 0.00;\r\n item.prc_valor = parseFloat((item.prc_valor - item.valorQuitado).toFixed(2));\r\n item.valorPago = parseFloat(item.prc_valor);\r\n parcelasPagar.push(item);\r\n });\r\n setListaParcelas(parcelasPagar);\r\n };\r\n\r\n function selecionarVencidas(e) {\r\n let keys = [];\r\n if (e.target.checked) {\r\n listaParcelas.map((item) => {\r\n if (compararDatas(item.prc_datavencimento, null, \"<\")) {\r\n keys.push(item.key);\r\n }\r\n });\r\n }\r\n setSelectedRowKeys(keys);\r\n };\r\n\r\n function menuTable(dados) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n async function visualizarNota(dados) {\r\n let retorno = [];\r\n let vendedor = [];\r\n if (!!dados.ntf_id) {\r\n retorno = await api.get(`NotaFiscal/ListarNotaFiscal?IdNotaFiscal=${dados.ntf_id}`);\r\n if (retorno.status === 200) {\r\n retorno = retorno.data;\r\n if (!!retorno.ven_id) {\r\n vendedor = await api.get(`Vendedor/RetornaVendedor?idVendedor=${retorno.ven_id}`);\r\n if (vendedor.status === 200) {\r\n retorno.nomeVendedor = vendedor.data.pes_nome;\r\n }\r\n }\r\n retorno.itensNf.forEach((item) => {\r\n let totalItemSemDesconto = parseFloat((item.nfi_qtde * item.nfi_valorunitario)).toFixed(2);\r\n item.perc_desconto = parseFloat((item.nfi_valordesconto / (totalItemSemDesconto)) * 100).toFixed(2);\r\n let valorDesconto = item.nfi_valordesconto;\r\n item.valor_item_desconto = parseFloat(totalItemSemDesconto - valorDesconto).toFixed(2);\r\n });\r\n setDadosDetalhesNota(retorno);\r\n setOpenModalDetalhes(true);\r\n }\r\n }\r\n };\r\n\r\n\r\n async function showDrawerExtra(dados) {\r\n let retorno = [];\r\n let vendedor = [];\r\n if (!!dados.ntf_id) {\r\n retorno = await api.get(`NotaFiscal/ListarNotaFiscal?IdNotaFiscal=${dados.ntf_id}`);\r\n if (retorno.status === 200) {\r\n retorno = retorno.data;\r\n if (!!retorno.ven_id) {\r\n vendedor = await api.get(`Vendedor/listarVendedorCodigo?codigoVendedor=${retorno.ven_id}`);\r\n if (vendedor.status === 200) {\r\n retorno.nomeVendedor = vendedor.data.pes_nome;\r\n }\r\n }\r\n retorno.itensNf.forEach((item) => {\r\n let totalItemSemDesconto = parseFloat((item.nfi_qtde * item.nfi_valorunitario)).toFixed(2);\r\n item.perc_desconto = parseFloat((item.nfi_valordesconto / (totalItemSemDesconto)) * 100).toFixed(2);\r\n let valorDesconto = item.nfi_valordesconto;\r\n item.valor_item_desconto = parseFloat(totalItemSemDesconto - valorDesconto).toFixed(2);\r\n });\r\n\r\n setDadosModalNota(retorno);\r\n setOpenModalDetalhes(true);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } });\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n let lista = {};\r\n lista.valorTotal = 0;\r\n lista.valorTotalParcelas = 0;\r\n lista.valorTotalJuros = 0;\r\n lista.valorDesconto = 0;\r\n lista.valorAPagar = 0;\r\n lista.valorAcrescimo = 0;\r\n let valorRecebido = 0;\r\n if (listaParcelasPagar.length > 0) {\r\n listaParcelasPagar.map(item => {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n lista.valorTotalParcelas += parseFloat(item.valorOriginal);\r\n lista.valorTotalJuros += parseFloat(item.valorJuros);\r\n lista.valorDesconto += parseFloat(item.valorDesconto);\r\n lista.valorAcrescimo += parseFloat(item.valorAcrescimo > 0 ? item.valorAcrescimo : 0);\r\n lista.valorTotal += valorTotal;\r\n lista.valorAPagar += parseFloat((valorTotal + parseFloat(item.valorAcrescimo) + parseFloat(item.valorJuros) - parseFloat(item.valorDesconto)).toFixed(2))\r\n valorRecebido += parseFloat(!!item.valorPago ? item.valorPago : 0);\r\n });\r\n if (alterarValorPago) {\r\n formulario.setFieldsValue({ valorPago: parseFloat((valorRecebido).toFixed(2)) });\r\n }\r\n formulario.setFieldsValue({ valorAcrescimo: parseFloat(lista.valorAcrescimo.toFixed(2)), valorDesconto: parseFloat(lista.valorDesconto.toFixed(2)) });\r\n calcularSobra(lista);\r\n }\r\n }, [listaParcelasPagar]);\r\n\r\n function calcularSobra(lista = { ...listaTotalizadores }) {\r\n let sobra = parseFloat((parseFloat(!!formulario.getFieldValue(\"valorPago\") ? formulario.getFieldValue(\"valorPago\") : 0) - parseFloat(lista.valorAPagar)).toFixed(2));\r\n lista.restantePagar = 0;\r\n lista.troco = 0;\r\n if (sobra < 0) {\r\n lista.restantePagar = (parseFloat(sobra) * -1).toFixed(2);\r\n } else {\r\n lista.troco = parseFloat(sobra);\r\n }\r\n setAlterarValorPago(true);\r\n setListaTotalizadores(lista);\r\n };\r\n\r\n function calcularPagamentoParcial() {\r\n let valorInformado = parseFloat(formulario.getFieldValue(\"valorPago\"));\r\n if (valorInformado > 0) {\r\n let listaTemp = [...listaParcelasPagar];\r\n for (const item of listaTemp) {\r\n let valorTotal = parseFloat((!!item.valorOriginal ? item.valorOriginal : 0)) - parseFloat((!!item.valorQuitado ? item.valorQuitado : 0));\r\n let valorParcela = parseFloat((valorTotal - parseFloat(item.valorDesconto) + parseFloat(item.valorJuros) + parseFloat(item.valorAcrescimo)).toFixed(2));\r\n if (valorInformado > valorParcela) {\r\n item.prc_valor = valorParcela;\r\n item.valorPago = valorParcela;\r\n } else {\r\n item.prc_valor = valorInformado;\r\n item.valorPago = valorInformado;\r\n }\r\n valorInformado -= item.prc_valor;\r\n }\r\n setAlterarValorPago(false);\r\n\r\n setListaParcelasPagar(listaTemp);\r\n } else {\r\n calcularSobra();\r\n }\r\n };\r\n\r\n function pagarSelecionados(listaParcelas, selectedRowKeys) {\r\n if (selectedRowKeys.length === 0) {\r\n info(\"Selecione uma parcela!\");\r\n return;\r\n }\r\n let listaTemp = [...listaParcelasPagar];\r\n\r\n listaParcelas.map(parcela => {\r\n if (selectedRowKeys.indexOf(parcela.key) >= 0 && listaTemp.filter((item) => { return item.key === parcela.key }).length === 0) {\r\n listaTemp.push(parcela);\r\n }\r\n });\r\n\r\n setListaParcelasPagar(listaTemp);\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function limparListas() {\r\n setListaParcelasFornecedor(false);\r\n setDadosFornecedor({});\r\n setSelectedRowKeys([]);\r\n setListaParcelasPagar([]);\r\n setListaTotalizadores({});\r\n formulario.resetFields();\r\n };\r\n\r\n function filtrarPeriodo() {\r\n let valor = formParametros.getFieldValue().pesquisa;\r\n if (!!formParametros.getFieldValue().dataInicial && !!formParametros.getFieldValue().dataFinal) {\r\n let dataInicial = moment(formParametros.getFieldValue().dataInicial).format('YYYY-MM-DD');\r\n let dataFinal = moment(formParametros.getFieldValue().dataFinal).format('YYYY-MM-DD');\r\n api.get(`Parcela/ListarParcelas?filtro=${!!valor ? valor : ''}&Estornado=false&DataInicial=${dataInicial}&DataFinal=${dataFinal}&PagarOuReceber=0&StatusParcela=0,1&PageSize=1000&Order=prc_datavencimento`).then(res => {\r\n listarParcelas(res.data.items);\r\n });\r\n setListaParcelasFornecedor(true);\r\n setDadosFornecedor({});\r\n }\r\n };\r\n\r\n function filtrarFornecedor() {\r\n let valor = formParametros.getFieldValue().pesquisa;\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: '', outrosFiltros: `&Filtro=${valor}` } });\r\n setListaParcelasFornecedor(false);\r\n\r\n if (!!formParametros.getFieldValue().dataInicial && !!formParametros.getFieldValue().dataFinal) {\r\n filtrarPeriodo();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!listaParcelasFornecedor &&\r\n
\r\n (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n }, {\r\n title: 'CPF/CNPJ',\r\n width: 140,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, '', true) : MaskFormat(pej_cnpj, '', true)}\r\n
\r\n ),\r\n }, {\r\n title: 'Telefone',\r\n width: 125,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero)}\r\n
\r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n
\r\n ),\r\n },\r\n ]\r\n } />\r\n
\r\n }\r\n {listaParcelasFornecedor &&\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Parcelas em Aberto do Fornecedor
\r\n {dadosFornecedor.pes_nome || \"VÁRIOS\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Selecionar Vencidas\r\n \r\n
(\r\n
\r\n {cpr_numerodocumento || '--'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº Parcela',\r\n align: 'left',\r\n width: 80,\r\n render: ({ prc_numeroparcela }) => (\r\n
\r\n {prc_numeroparcela}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Fornecedor',\r\n width: 330,\r\n align: 'left',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Emissão',\r\n width: 85,\r\n render: ({ cpr_datainclusao }) => (\r\n
\r\n {moment(cpr_datainclusao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vencimento',\r\n width: 80,\r\n render: ({ prc_datavencimento, vencida }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Original (R$)',\r\n align: 'right',\r\n render: ({ valorOriginal }) => (\r\n
\r\n \r\n {FormatNumber(!!valorOriginal ? valorOriginal : 0, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Pago (R$)',\r\n align: 'right',\r\n render: ({ valorQuitado }) => (\r\n
\r\n \r\n {FormatNumber(!!valorQuitado ? valorQuitado : 0, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. A Pagar (R$)',\r\n align: 'right',\r\n render: ({ valorPago }) => (\r\n
\r\n \r\n {FormatNumber(!!valorPago ? valorPago : 0, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n \r\n
\r\n ),\r\n }]\r\n } rowSelection={rowSelection} scroll={{ x: 900 }} />\r\n \r\n { setOpenModalDetalhes(false) }} dadosModal={dadosDetalhesNota} />\r\n {/* { setOpenModalDetalhes(false) }} dadosDrawer={dadosModalNota} /> */}\r\n \r\n }\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Form, Select, Collapse, Input, Checkbox, Table, Modal, Divider, Popover, Tag } from 'antd';\r\nimport { CloseOutlined, ArrowDownOutlined, ArrowLeftOutlined, ArrowRightOutlined, ArrowUpOutlined, CheckOutlined, DeleteOutlined, RetweetOutlined, SearchOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { ModalSenhaLiberacao } from \"../../components/modals\";\r\nimport { FormatNumber, FormatDate } from '../../ValueObjects/';\r\nimport { manutencaoActions, drawerActions } from \"../../actions\";\r\nimport { info, isObjetoDiffVazio } from '../../services/funcoes';\r\nimport { BreadcrumbPage, BotaoAbrirChamado, DrawerLancamentoTransferencia, DrawerManutencaoCaixa, InputPreco, Excluir, LancamentoEntrada, LancamentoSaida, LancamentoTransferencia, Data, ComboData } from \"../../components\";\r\nimport { linkApi } from '../../services/auth';\r\nimport SelectPaginado from '../../components/selectPaginado';\r\n\r\nexport default function LancamentoCaixa() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openPesquisaAvancada, setOpenPesquisaAvancada] = useState(false);\r\n const [listaContaCorrenteSaldo, setListaContaCorrenteSaldo] = useState([]);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n const [listaPessoas, setListaPessoas] = useState([]);\r\n const [entradaSaida, setEntradaSaida] = useState(\"\");\r\n const [tipoMovimentacaoFinanceira, setTipoMovimentacaoFinanceira] = useState([]);\r\n const [listaCaixa, setListaCaixa] = useState([]);\r\n const [infoContas, setInfoContas] = useState({});\r\n const [openModalSenha, setOpenModalSenha] = useState(false);\r\n const [dadosLancamentoEstornar, setDadosLancamentoEstornar] = useState({});\r\n const [formulario] = Form.useForm();\r\n const [consuMovimentacao, setConsuMovimentacao] = useState(null);\r\n const [inputPesquisa, setInputPesquisa] = useState('');\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const togglePesquisa = () => {\r\n setOpenPesquisaAvancada(!openPesquisaAvancada);\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!listaContaCorrenteSaldo && listaContaCorrenteSaldo.length === 0) {\r\n setConsuMovimentacao(manutencao.dados);\r\n }\r\n }, [manutencao.dados, listaContaCorrenteSaldo]);\r\n\r\n useEffect(() => {\r\n if (!!consuMovimentacao) {\r\n listarCaixa(true, false, consuMovimentacao);\r\n }\r\n }, [consuMovimentacao]);\r\n\r\n useEffect(() => {\r\n listarCaixa(true);\r\n\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?filtro=&CodReceitaDespesa=${entradaSaida}`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n });\r\n\r\n api.get(`Pessoa/ListarPessoasAtivas?filtro=&ordem=+pes_nome`).then(res => {\r\n setListaPessoas(res.data);\r\n });\r\n\r\n api.get(`Enum/Listar?nome=TipoMovimentacaoFinanceira`).then(res => {\r\n setTipoMovimentacaoFinanceira(res.data);\r\n });\r\n\r\n formulario.setFieldsValue({ dataInicial: moment(new Date()), dataFinal: moment(new Date()) });\r\n }, []);\r\n\r\n async function listarCaixa(marcarTodos = false, pesquisaAvancada = false, ctc_id = null) {\r\n setCarregando(true)\r\n let contas = '';\r\n let info = {};\r\n let idContas = [];\r\n let contasSelecionadas = [];\r\n console.log(formulario.getFieldValue().filtro);\r\n /* Irá buscar a lista de contas selecionadas */\r\n if (!marcarTodos) {\r\n listaContaCorrenteSaldo.forEach((conta) => {\r\n if (conta.marcado) {\r\n contasSelecionadas.push(conta.ctc_id);\r\n }\r\n });\r\n }\r\n if (!!ctc_id) {\r\n contasSelecionadas.push(ctc_id);\r\n }\r\n\r\n let contaCorrente = await api.get(`ContaCorrente/ListarSaldoContaCorrente?tipoLancamento=1`);\r\n contaCorrente = contaCorrente.data;\r\n contaCorrente.forEach((conta) => {\r\n if (contasSelecionadas.includes(conta.ctc_id)) {\r\n conta.marcado = true;\r\n idContas.push(conta.ctc_id);\r\n }\r\n if (contasSelecionadas.length === 0) {\r\n idContas.push(conta.ctc_id);\r\n }\r\n if (marcarTodos) {\r\n conta.marcado = true;\r\n }\r\n });\r\n\r\n if (idContas.length > 1) {\r\n info.contaAtiva = 'Várias';\r\n } else {\r\n info.contaAtiva = contaCorrente.filter((conta) => { return conta.ctc_id === idContas[0] })[0].ctc_descricao;\r\n }\r\n contas = idContas.join(',');\r\n if (pesquisaAvancada && !!formulario.getFieldValue().reprocessarCaixa && formulario.getFieldValue().reprocessarCaixa) {\r\n await api.get(`ContaCorrente/reprocessarSaldoContaCorrentes?dataInicial=${FormatDate(!!formulario.getFieldValue().dataInicial ? formulario.getFieldValue().dataInicial.toDate().toLocaleDateString() : new Date().toLocaleDateString())}&contas=${contas}`).then(\r\n (retorno) => {\r\n if (retorno.data) {\r\n formulario.setFieldsValue({ reprocessarCaixa: false });\r\n listarCaixa(false, true);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n } else {\r\n setListaContaCorrenteSaldo(contaCorrente);\r\n let url = `MovimentoContaCorrente/ListarMovimentacao?IdsContaCorrente=${contas}\r\n &DataFinal=${FormatDate(!!formulario.getFieldValue().dataFinal ? formulario.getFieldValue().dataFinal.toDate().toLocaleDateString() : new Date().toLocaleDateString())}\r\n &DataInicial=${FormatDate(!!formulario.getFieldValue().dataInicial ? formulario.getFieldValue().dataInicial.toDate().toLocaleDateString() : new Date().toLocaleDateString())}\r\n &Filtro=${(!!formulario.getFieldValue().filtro ? formulario.getFieldValue().filtro : '')}\r\n &mostrarEstornados=${(!!formulario.getFieldValue().exibirEstornados ? formulario.getFieldValue().exibirEstornados : false)}\r\n &nroRegistros=1&ordem=-mcc_dataHora&pagina=1\r\n &TipoMovimentacao=${(!!formulario.getFieldValue().tipoMovimentacao ? formulario.getFieldValue().tipoMovimentacao.join(',') : '1,2,3')}\r\n &FiltroValorInicial=${(!!formulario.getFieldValue().lc_valor_final && formulario.getFieldValue().lc_valor_final > 0 ? formulario.getFieldValue().lc_valor_final : '')}\r\n &FiltroValorFinal=${(!!formulario.getFieldValue().lc_valor_inicial && formulario.getFieldValue().lc_valor_inicial > 0 ? formulario.getFieldValue().lc_valor_inicial : '')}`;\r\n\r\n if (!!formulario.getFieldValue().pes_id) {\r\n url += `&IdPessoa=${formulario.getFieldValue().pes_id}`;\r\n }\r\n if (!!formulario.getFieldValue().ctg_id) {\r\n url += `&IdContaGerencial=${formulario.getFieldValue().ctg_id}`;\r\n }\r\n\r\n let retorno = await api.get(url);\r\n let listaCaixaContas = (retorno.data.contas.length > 0 ? retorno.data.contas : []);\r\n let movimento = [];\r\n info.saldoAtual = retorno.data.saldoAtual\r\n\r\n for (const conta of listaCaixaContas) {\r\n let valormcc = conta.saldoAnterior;\r\n movimento = reverse(conta.movimento);\r\n movimento.forEach(\r\n (mov) => {\r\n if (mov.mcc_movimentoestornado == null) {\r\n if (mov.mcc_entradasaida === 1) {\r\n valormcc -= parseFloat(mov.mcc_valor);\r\n } else if (mov.mcc_entradasaida === 2) {\r\n valormcc += parseFloat(mov.mcc_valor);\r\n }\r\n mov.valormcc = valormcc;\r\n }\r\n mov.key = mov.mcc_id;\r\n });\r\n conta.saldoAtual = conta.saldoAtual;\r\n conta.movimento = reverse(movimento);\r\n }\r\n\r\n setInfoContas(info);\r\n setListaCaixa(listaCaixaContas);\r\n if (pesquisaAvancada) {\r\n formulario.setFieldsValue({ lc_valor_inicial: null, lc_valor_final: null, pes_id: null, lc_complemento: null, exibirEstornados: false, reprocessarCaixa: false });\r\n }\r\n }\r\n setCarregando(false);\r\n };\r\n\r\n function modalEstornar(record, event) {\r\n let dados = event.movimento[record];\r\n if (!!dados) {\r\n Modal.confirm({\r\n title: 'Estornar Parcela',\r\n icon: ,\r\n content: `Deseja realmente estornar o valor de ${FormatNumber(dados.mcc_valor, true)} referente ao lançamento na conta ${dados.ctc_descricao}?`,\r\n okText: 'Sim, quero estornar',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n setDadosLancamentoEstornar(dados);\r\n setOpenModalSenha(true);\r\n }\r\n });\r\n }\r\n };\r\n\r\n function retornoModalSenha(dados) {\r\n if (dados) {\r\n if (!!dadosLancamentoEstornar.mcc_id) {\r\n api.post(`MovimentoContaCorrente/EstornarLancamento?IdLancamento=${dadosLancamentoEstornar.mcc_id}`).then((retornoExclusao) => {\r\n if (!!retornoExclusao.data) {\r\n\r\n if (!!retornoExclusao.data.prc_id) {\r\n Modal.success({\r\n content: 'Lançamento estornado com sucesso!',\r\n });\r\n } else if (!!retornoExclusao.data.ntf_id) {\r\n info('Este movimento foi gerado a partir de uma Venda, para estornar este movimento é necessário CANCELAR a venda.', 'Operação de Estorno não foi executada!');\r\n } else if (!(!!retornoExclusao.data.mcc_estornado)) {\r\n info('Operação de Estorno não foi executada!');\r\n }\r\n listarCaixa();\r\n }\r\n });\r\n } else {\r\n info('Operação de Estorno não foi executada!');\r\n }\r\n } else {\r\n info('Operação de Estorno foi cancelada!');\r\n }\r\n };\r\n\r\n function reverse(lista) {\r\n let retorno = [];\r\n\r\n for (let i = lista.length - 1; i >= 0; i--) {\r\n retorno.push(lista[i])\r\n }\r\n return retorno;\r\n };\r\n\r\n function abrirLancamentoEntradaSaida(operacao) {\r\n setEntradaSaida(operacao);\r\n let dados = {};\r\n dados.operacao = operacao;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerManutencaoCaixa: true } });\r\n };\r\n\r\n function selecionarConta(contaSelecionada) {\r\n let listaContaCorrente = [...listaContaCorrenteSaldo];\r\n let conta = listaContaCorrente.filter((item) => { return item.ctc_id === contaSelecionada.ctc_id })[0];\r\n conta.marcado = (!!conta.marcado ? !conta.marcado : true);\r\n\r\n setListaContaCorrenteSaldo(listaContaCorrente);\r\n listarCaixa();\r\n };\r\n\r\n function marcarTodos() {\r\n let listaContaCorrente = [...listaContaCorrenteSaldo];\r\n listaContaCorrente.forEach((conta) => {\r\n conta.marcado = !conta.marcado;\r\n });\r\n\r\n setListaContaCorrenteSaldo(listaContaCorrente);\r\n listarCaixa();\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n } size=\"middle\" onClick={() => {\r\n abrirLancamentoEntradaSaida(\"2\");\r\n }}>\r\n Entradas\r\n \r\n
\r\n \r\n \r\n
\r\n } size=\"middle\" onClick={() => {\r\n abrirLancamentoEntradaSaida(\"1\");\r\n }}>\r\n Saídas\r\n \r\n
\r\n \r\n \r\n
\r\n } size=\"middle\" onClick={() => {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerTransferencia: true } });\r\n }}>\r\n Transferência\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { listarCaixa() }} />\r\n \r\n \r\n { listarCaixa() }} />\r\n \r\n \r\n {\r\n formulario.setFieldsValue({ dataFinal: moment(new Date()) });\r\n formulario.setFieldsValue({ dataInicial: moment(formulario.getFieldValue().dataPesquisa) });\r\n formulario.setFieldsValue({ dataFinal: moment(new Date()) });\r\n formulario.setFieldsValue({ dataInicial: moment(formulario.getFieldValue().dataPesquisa) });\r\n listarCaixa();\r\n }} />\r\n \r\n \r\n \r\n { listarCaixa() }} allowClear />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {openPesquisaAvancada ? : } Realizar uma pesquisa avançada\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({p.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Reprocessar Caixa?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Saldo Atual (R$): {FormatNumber(infoContas.saldoAtual, true)}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n marcarTodos()} />\r\n
\r\n
\r\n Contas \r\n \r\n \r\n \r\n \r\n {\r\n setInputPesquisa(e.target.value);\r\n }} />\r\n \r\n \r\n \r\n {listaContaCorrenteSaldo.filter((item) => { return !!!inputPesquisa || (item.ctc_descricao.toLowerCase().indexOf(inputPesquisa.toLowerCase()) >= 0 || item.ctc_id.toString().indexOf(inputPesquisa) >= 0) }).map(conta => (\r\n selecionarConta(conta)} span={24}>\r\n
\r\n {conta.marcado ? : ''}\r\n
\r\n \r\n \r\n {conta.ctc_descricao}\r\n \r\n \r\n {FormatNumber(conta.saldo, true)}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Data\r\n \r\n \r\n Conta Gerencial\r\n \r\n \r\n Entrada (R$)\r\n \r\n \r\n Saída (R$)\r\n \r\n \r\n Saldo (R$)\r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {ctc_descricao}\r\n \r\n \r\n \r\n \r\n {FormatNumber(entrada, true)}\r\n \r\n \r\n {FormatNumber(saida, true)}\r\n \r\n \r\n {(saldoAtual < 0) ? {FormatNumber(saldoAtual, true)} : {FormatNumber(saldoAtual, true)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {movimento.map((mov, record) => (\r\n
\r\n \r\n
\r\n
\r\n {moment(mov.mcc_dataHora).format('DD/MM/YYYY HH:mm:ss')}\r\n
\r\n \r\n \r\n
\r\n {mov.mcc_estornado || !!mov.mcc_movimentoestornado ? \r\n {(!!mov.mcc_transferencia ? \"Transferência / \" : \"\" + (!!mov.ctg_descricao ? mov.ctg_descricao : '-'))}\r\n : \r\n {(!!mov.mcc_transferencia ? \"Transferência / \" : \"\" + (!!mov.ctg_descricao ? mov.ctg_descricao : '-'))}\r\n }\r\n {!!mov.pes_nome ?\r\n
\r\n Pessoa: {mov.mcc_estornado || !!mov.mcc_movimentoestornado ? {mov.pes_nome} : {mov.pes_nome}}\r\n
\r\n : null}\r\n
\r\n \r\n \r\n
\r\n {mov.mcc_estornado || !!mov.mcc_movimentoestornado ? {(mov.mcc_entradasaida === 2) ? FormatNumber(!!mov.mcc_valor ? mov.mcc_valor : 0, true) : '-'}\r\n : {(mov.mcc_entradasaida === 2) ? FormatNumber(!!mov.mcc_valor ? mov.mcc_valor : 0, true) : '-'}}\r\n
\r\n \r\n \r\n
\r\n {mov.mcc_estornado || !!mov.mcc_movimentoestornado ? {(mov.mcc_entradasaida === 1) ? FormatNumber(!!mov.mcc_valor ? mov.mcc_valor : 0, true) : '-'}\r\n : {(mov.mcc_entradasaida === 1) ? FormatNumber(!!mov.mcc_valor ? mov.mcc_valor : 0, true) : '-'}}\r\n
\r\n \r\n \r\n
\r\n {(mov.valormcc < 0) ?\r\n {mov.mcc_estornado || !!mov.mcc_movimentoestornado ? {FormatNumber(mov.valormcc, true)} : {FormatNumber(mov.valormcc, true)}} :\r\n {mov.mcc_estornado || !!mov.mcc_movimentoestornado ? {FormatNumber(mov.valormcc, true)} : {FormatNumber(mov.valormcc, true)}}\r\n }\r\n
\r\n \r\n \r\n \r\n modalEstornar(record, event)} icon={} />\r\n \r\n \r\n \r\n \r\n {(!!mov.loc_descricao || !!mov.mcc_complemento || !!mov.mcc_numerodocumento || !!mov.mcc_valorjuros || !!mov.mcc_valormulta || !!mov.mcc_valordesconto) &&\r\n \r\n \r\n {!!mov.loc_descricao ?\r\n
\r\n \r\n {mov.loc_descricao}\r\n \r\n
\r\n : null}\r\n \r\n \r\n {!!mov.mcc_complemento ?\r\n
\r\n Compl.: {mov.mcc_complemento}\r\n
\r\n : null}\r\n \r\n \r\n {!!mov.mcc_numerodocumento ?\r\n
\r\n Nº Doc.: {mov.mcc_numerodocumento}\r\n
\r\n : null}\r\n \r\n \r\n {!!mov.mcc_valorjuros ?\r\n
\r\n Juros (R$): {FormatNumber(!!mov.mcc_valorjuros ? mov.mcc_valorjuros : 0, true)}\r\n
\r\n : null}\r\n \r\n \r\n {!!mov.mcc_valormulta ?\r\n
\r\n Multa (R$): {FormatNumber(!!mov.mcc_valormulta ? mov.mcc_valormulta : 0, true)}\r\n
\r\n : null}\r\n \r\n \r\n {!!mov.mcc_valordesconto ?\r\n
\r\n Descontos (R$): {FormatNumber(!!mov.mcc_valordesconto ? mov.mcc_valordesconto : 0, true)}\r\n
\r\n : null}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n Saldo Anterior (R$):\r\n \r\n \r\n \r\n {FormatNumber(!!saldoAnterior ? saldoAnterior : 0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n ]} dataSource={listaCaixa} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n { setOpenModalSenha(false); retornoModalSenha(retorno) }} />\r\n \r\n \r\n \r\n \r\n )\r\n}","import React from 'react';\r\nimport { Col, Divider, Row } from 'antd';\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaDiarioLocalAnalitico({ valoresProvisionados, tabelaFluxoCaixa, saldos }) {\r\n \r\n return (\r\n
\r\n {tabelaFluxoCaixa.map((fluxoLocal) => {\r\n return (\r\n
\r\n
\r\n Local: {tabelaFluxoCaixa[0]?.nomeLocal}\r\n
\r\n {fluxoLocal.listaFluxoSaldos.map((item) => (\r\n \r\n
\r\n
{item.nomeContaCorrente}: {FormatNumber(item.saldoInicial < 0 ? item.saldoInicial * -1 : item.saldoInicial, true, false)}
\r\n \r\n \r\n
{item.nomeContaCorrente}: \r\n {FormatNumber(\r\n ((!item.saldosConta && item.saldosConta !== 0 ) ? (item.saldosConta < 0 ? item.saldosConta * -1 : item.saldosConta) :\r\n (item.saldo < 0 ? item.saldo * -1 : item.saldo))\r\n , true, false)}
\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n
SALDO INICIAL: {FormatNumber(saldos.saldoInicial < 0 ? saldos.saldoInicial * -1 : saldos.saldoInicial, true, false)}
\r\n \r\n \r\n
SALDO FINAL: {FormatNumber(saldos.saldoFinal < 0 ? saldos.saldoFinal * -1 : saldos.saldoFinal, true, false)}
\r\n \r\n \r\n\r\n {!valoresProvisionados &&\r\n
\r\n \r\n
DATA\r\n ENTRADA\r\n SAÍDA\r\n \r\n
\r\n {fluxoLocal.listaFluxoItens.map((item) => (\r\n \r\n
{item.dataPgtoVencimento}\r\n {FormatNumber(item.valor_RealizadoEntrada, true, false)}\r\n {FormatNumber(item.valor_RealizadoSaida, true, false)}\r\n \r\n ))}\r\n \r\n TOTAL DO PERÍODO\r\n {FormatNumber(saldos.totalCreditoRealizado, true, false)}\r\n {FormatNumber(saldos.totalDebitoRealizado, true, false)}\r\n \r\n \r\n \r\n }\r\n {valoresProvisionados &&\r\n
\r\n \r\n
DATA\r\n \r\n \r\n ENTRADA\r\n \r\n \r\n PREVISTO\r\n REALIZADO\r\n \r\n \r\n \r\n \r\n SAÍDA\r\n \r\n \r\n PREVISTO\r\n REALIZADO\r\n \r\n \r\n \r\n
\r\n {fluxoLocal.listaFluxoItens.map((item) => (\r\n \r\n
{item.dataPgtoVencimento}\r\n \r\n \r\n {FormatNumber(item.valor_ProvisaoReceber, true, false)}\r\n {FormatNumber(item.valor_RealizadoEntrada, true, false)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(item.valor_ProvisaoPagar, true, false)}\r\n {FormatNumber(item.valor_RealizadoSaida, true, false)}\r\n \r\n \r\n \r\n ))}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n \r\n {FormatNumber(saldos.totalCreditoPrevisto, true, false)}\r\n {FormatNumber(saldos.totalCreditoRealizado, true, false)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(saldos.totalDebitoPrevisto, true, false)}\r\n {FormatNumber(saldos.totalDebitoRealizado, true, false)}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n )\r\n })}\r\n \r\n );\r\n}","import React from 'react';\r\nimport { Col, Row } from 'antd';\r\nimport moment from 'moment';\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaDiarioSintetico({ valoresProvisionados, tabelaFluxoCaixa, saldos }) {\r\n\r\n return (\r\n
\r\n
\r\n {!valoresProvisionados &&\r\n
\r\n \r\n
FLUXO DE CAIXA DE {moment(saldos.dataInicial).format('DD/MM/YYYY')} A {moment(saldos.dataFinal).format('DD/MM/YYYY')}\r\n SALDO INICIAL\r\n ENTRADA\r\n SAÍDA\r\n SALDO FINAL\r\n \r\n
\r\n {tabelaFluxoCaixa.map((fluxoLocal) => {\r\n return (\r\n \r\n
{fluxoLocal.nomeLocal}\r\n {FormatNumber(fluxoLocal.valor_SaldoInicial, true, false)}\r\n {FormatNumber(fluxoLocal.valor_RealizadoEntrada, true, false)}\r\n {FormatNumber(fluxoLocal.valor_RealizadoSaida, true, false)}\r\n {FormatNumber(fluxoLocal.valor_SaldoFinal, true, false)}\r\n \r\n )\r\n })}\r\n \r\n TOTAL DO PERÍODO\r\n {FormatNumber(saldos.saldoInicial < 0 ? saldos.saldoInicial * -1 : saldos.saldoInicial, true, false)}\r\n {FormatNumber(saldos.totalCreditoRealizado, true, false)}\r\n {FormatNumber(saldos.totalDebitoRealizado, true, false)}\r\n {FormatNumber(saldos.saldoFinal < 0 ? saldos.saldoFinal * -1 : saldos.saldoFinal, true, false)}\r\n \r\n \r\n \r\n }\r\n {valoresProvisionados &&\r\n
\r\n \r\n
FLUXO DE CAIXA DE {moment(saldos.dataInicial).format('DD/MM/YYYY')} A {moment(saldos.dataFinal).format('DD/MM/YYYY')}\r\n SALDO INICIAL\r\n \r\n \r\n ENTRADA\r\n \r\n \r\n PREVISTO\r\n REALIZADO\r\n \r\n \r\n \r\n \r\n SAÍDA\r\n \r\n \r\n PREVISTO\r\n REALIZADO\r\n \r\n \r\n SALDO FINAL\r\n \r\n
\r\n {tabelaFluxoCaixa.map((fluxoLocal) => {\r\n return (\r\n \r\n
{fluxoLocal.nomeLocal}\r\n {FormatNumber(fluxoLocal.valor_SaldoInicial, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.valor_ProvisaoReceber, true, false)}\r\n {FormatNumber(fluxoLocal.valor_RealizadoEntrada, true, false)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(fluxoLocal.valor_ProvisaoPagar, true, false)}\r\n {FormatNumber(fluxoLocal.valor_RealizadoSaida, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.valor_SaldoFinal, true, false)}\r\n \r\n )\r\n })}\r\n \r\n TOTAL DO PERÍODO\r\n {FormatNumber(saldos.saldoInicial < 0 ? saldos.saldoInicial * -1 : saldos.saldoInicial, true, false)}\r\n \r\n \r\n {FormatNumber(saldos.totalCreditoPrevisto, true, false)}\r\n {FormatNumber(saldos.totalCreditoRealizado, true, false)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(saldos.totalDebitoPrevisto, true, false)}\r\n {FormatNumber(saldos.totalDebitoRealizado, true, false)}\r\n \r\n \r\n {FormatNumber(saldos.saldoFinal < 0 ? saldos.saldoFinal * -1 : saldos.saldoFinal, true, false)}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n\r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../../services/api';\r\nimport { Col, Row } from 'antd';\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaMensalAnalitico({ valoresProvisionados, tabelaFluxoCaixa, saldos, form, filtros }) {\r\n\r\n const [saldoInicial, setSaldoInicial] = useState();\r\n const [saldoFinal, setSaldoFinal] = useState();\r\n const [listaFinal, setListaFinal] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!filtros) {\r\n tratarDados(filtros);\r\n }\r\n }, []);\r\n\r\n async function tratarDados(filtros) {\r\n api.get(`FluxoCaixa/SaldoFinal?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}&caixaOrganizacao=${filtros.fluxoOrganizacao}\r\n &dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosFinal = res.data;\r\n let FinalSaldo = (res.data[0].totalSaldoConta && res.data[0].totalSaldoConta !== 0) ? res.data[0].totalSaldosConta : res.data[0].totalSaldo;\r\n setSaldoFinal(FinalSaldo);\r\n setSaldoInicial(res.data[0].totalSaldoInicial);\r\n let saldoFinal = dadosFinal.map(item =>\r\n createFinal(\r\n item.codigoLocal,\r\n item.CodigoLocal,\r\n item.contaCorrente,\r\n item.nomeContaCorrente,\r\n item.saldo,\r\n item.saldosConta,\r\n item.saldoInicial,\r\n item.totalSaldo,\r\n item.totalSaldoInicial,\r\n item.totalSaldosConta\r\n )\r\n );\r\n setListaFinal(saldoFinal);\r\n }\r\n }\r\n ).catch(err => {\r\n }\r\n );\r\n }\r\n\r\n function createFinal(codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta) {\r\n return { codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
Fluxo de Caixa de {moment(filtros.dataInicial).format('DD/MM/YYYY')} a {moment(filtros.dataFinal).format('DD/MM/YYYY')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Contas: {tabelaFluxoCaixa[0]?.nomeLocal}\r\n
\r\n {listaFinal.map((row, index) => (\r\n
\r\n {row.nomeContaCorrente}: \r\n \r\n {FormatNumber(row.saldoInicial, true)}\r\n \r\n {row.nomeContaCorrente}: \r\n \r\n {FormatNumber(row.saldosConta, true)}\r\n \r\n
\r\n ))}\r\n
\r\n SALDO INICIAL: {FormatNumber(saldoInicial, true)}\r\n \r\n SALDO FINAL: {FormatNumber(saldoFinal, true)}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {!valoresProvisionados &&\r\n
\r\n \r\n {/* Cabeçalho da Tabela */}\r\n
DATA\r\n ENTRADA\r\n SAÍDA\r\n \r\n\r\n
\r\n {/* Mapeando os dados do fluxo de caixa */}\r\n {tabelaFluxoCaixa.map((fluxoLocal, index) => (\r\n \r\n
\r\n {fluxoLocal.mesExtenso + \"/\" + fluxoLocal.ano}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoEntradaMesAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoSaidaMesAno, true, false)}\r\n \r\n \r\n ))}\r\n\r\n {/* Linha de Totais */}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n {FormatNumber(saldos.realizadoEntrada, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoSaida, true)}\r\n \r\n \r\n \r\n \r\n }\r\n {valoresProvisionados &&\r\n
\r\n \r\n
Fluxo de Caixa de {moment(filtros.dataInicial).format('DD/MM/YYYY')} a {moment(filtros.dataFinal).format('DD/MM/YYYY')}\r\n {/* FLUXO DE CAIXA DE {moment(form.getFildValue().flx_mesInicial).format('DD/MM/YYYY')} A {moment(form.getFildValue().flx_mesFinal).format('DD/MM/YYYY')} */}\r\n DATA\r\n \r\n \r\n ENTRADA\r\n \r\n \r\n \r\n PREVISTO\r\n \r\n REALIZADO\r\n \r\n \r\n \r\n \r\n SAÍDA\r\n \r\n \r\n \r\n PREVISTO\r\n \r\n REALIZADO\r\n \r\n \r\n \r\n
\r\n {/* Mapeando os dados do fluxo de caixa */}\r\n {tabelaFluxoCaixa.map((fluxoLocal, index) => (\r\n \r\n
\r\n {fluxoLocal.mesExtenso + \"/\" + fluxoLocal.ano}\r\n \r\n \r\n {FormatNumber(fluxoLocal.prevReceberMesAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoEntradaMesAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.prevPagarMesAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoSaidaMesAno, true, false)}\r\n \r\n \r\n ))}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n {FormatNumber(saldos.prevReceber, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoEntrada, true)}\r\n \r\n \r\n {FormatNumber(saldos.prevPagar, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoSaida, true)}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../../services/api';\r\nimport { Col, Row } from 'antd';\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaMensalLocalSintetico({ valoresProvisionados, tabelaFluxoCaixa, saldos, form, filtros }) {\r\n\r\n return (\r\n
\r\n
\r\n
Fluxo de Caixa de {moment(filtros.dataInicial).format('DD/MM/YYYY')} a {moment(filtros.dataFinal).format('DD/MM/YYYY')}\r\n \r\n
\r\n
\r\n {!valoresProvisionados &&\r\n
\r\n \r\n {/* Cabeçalho da Tabela */}\r\n
DATA\r\n ENTRADA\r\n SAÍDA\r\n \r\n\r\n
\r\n {/* Mapeando os dados do fluxo de caixa */}\r\n {tabelaFluxoCaixa.map((fluxoLocal, index) => (\r\n \r\n
\r\n {fluxoLocal.mesExtenso + \"/\" + fluxoLocal.ano}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoEntradaMesAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoSaidaMesAno, true, false)}\r\n \r\n \r\n ))}\r\n\r\n {/* Linha de Totais */}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n {FormatNumber(saldos.realizadoEntrada, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoSaida, true)}\r\n \r\n \r\n \r\n \r\n }\r\n {valoresProvisionados &&\r\n
\r\n \r\n {/*
FLUXO DE CAIXA DE {moment(form.getFildValue().flx_mesInicial).format('DD/MM/YYYY')} A {moment(form.getFildValue().flx_mesFinal).format('DD/MM/YYYY')} */}\r\n DATA\r\n \r\n \r\n ENTRADA\r\n \r\n \r\n \r\n PREVISTO\r\n \r\n REALIZADO\r\n \r\n \r\n \r\n \r\n SAÍDA\r\n \r\n \r\n \r\n PREVISTO\r\n \r\n REALIZADO\r\n \r\n \r\n \r\n
\r\n {/* Mapeando os dados do fluxo de caixa */}\r\n {tabelaFluxoCaixa.map((fluxoLocal, index) => (\r\n \r\n
\r\n {fluxoLocal.mesExtenso + \"/\" + fluxoLocal.ano}\r\n \r\n \r\n {FormatNumber(fluxoLocal.prevReceberMesAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoEntradaMesAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.prevPagarMesAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoSaidaMesAno, true, false)}\r\n \r\n \r\n ))}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n {FormatNumber(saldos.prevReceber, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoEntrada, true)}\r\n \r\n \r\n {FormatNumber(saldos.prevPagar, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoSaida, true)}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../../services/api';\r\nimport { Col, Row } from 'antd';\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaAnualAnalitico({valoresProvisionados, tabelaFluxoCaixa, saldos, form, filtros }) {\r\n\r\n const [saldoInicial, setSaldoInicial] = useState();\r\n const [saldoFinal, setSaldoFinal] = useState();\r\n const [listaFinal, setListaFinal] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!filtros) {\r\n tratarDados(filtros);\r\n }\r\n }, []);\r\n\r\n async function tratarDados(filtros) {\r\n api.get(`FluxoCaixa/SaldoFinal?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}&caixaOrganizacao=${filtros.fluxoOrganizacao}\r\n &dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosFinal = res.data;\r\n let FinalSaldo = (res.data[0].totalSaldoConta && res.data[0].totalSaldoConta !== 0) ? res.data[0].totalSaldosConta : res.data[0].totalSaldo;\r\n setSaldoFinal(FinalSaldo);\r\n setSaldoInicial(res.data[0].totalSaldoInicial);\r\n let saldoFinal = dadosFinal.map(item =>\r\n createFinal(\r\n item.codigoLocal,\r\n item.CodigoLocal,\r\n item.contaCorrente,\r\n item.nomeContaCorrente,\r\n item.saldo,\r\n item.saldosConta,\r\n item.saldoInicial,\r\n item.totalSaldo,\r\n item.totalSaldoInicial,\r\n item.totalSaldosConta\r\n )\r\n );\r\n setListaFinal(saldoFinal);\r\n }\r\n }\r\n ).catch(err => {\r\n }\r\n );\r\n }\r\n\r\n function createFinal(codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta) {\r\n return { codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
Fluxo de Caixa de {moment(filtros.dataInicial).format('DD/MM/YYYY')} a {moment(filtros.dataFinal).format('DD/MM/YYYY')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Contas: {tabelaFluxoCaixa[0]?.nomeLocal}\r\n
\r\n {listaFinal.map((row, index) => (\r\n
\r\n {row.nomeContaCorrente}: \r\n \r\n {/* {row.nomeContaCorrente} */}\r\n {FormatNumber(row.saldoInicial, true)}\r\n \r\n {row.nomeContaCorrente}: \r\n \r\n {FormatNumber(row.saldosConta, true)}\r\n \r\n
\r\n ))}\r\n
\r\n SALDO INICIAL: {FormatNumber(saldoInicial, true)}\r\n \r\n SALDO FINAL: {FormatNumber(saldoFinal, true)}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {!valoresProvisionados &&\r\n
\r\n \r\n {/* Cabeçalho da Tabela */}\r\n
DATA\r\n ENTRADA\r\n SAÍDA\r\n \r\n\r\n
\r\n {/* Mapeando os dados do fluxo de caixa */}\r\n {tabelaFluxoCaixa.map((fluxoLocal, index) => (\r\n \r\n
\r\n {fluxoLocal.ano}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoEntradaAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoSaidaAno, true, false)}\r\n \r\n \r\n ))}\r\n\r\n {/* Linha de Totais */}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n {FormatNumber(saldos.realizadoEntrada, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoSaida, true)}\r\n \r\n \r\n \r\n \r\n }\r\n {valoresProvisionados &&\r\n
\r\n \r\n {/*
FLUXO DE CAIXA DE {moment(form.getFildValue().flx_mesInicial).format('DD/MM/YYYY')} A {moment(form.getFildValue().flx_mesFinal).format('DD/MM/YYYY')} */}\r\n DATA\r\n \r\n \r\n ENTRADA\r\n \r\n \r\n \r\n PREVISTO\r\n \r\n REALIZADO\r\n \r\n \r\n \r\n \r\n SAÍDA\r\n \r\n \r\n \r\n PREVISTO\r\n \r\n REALIZADO\r\n \r\n \r\n \r\n
\r\n {/* Mapeando os dados do fluxo de caixa */}\r\n {tabelaFluxoCaixa.map((fluxoLocal, index) => (\r\n \r\n
\r\n {fluxoLocal.ano}\r\n \r\n \r\n {FormatNumber(fluxoLocal.prevReceberAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoEntradaAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.prevPagarAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoSaidaAno, true, false)}\r\n \r\n \r\n ))}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n {FormatNumber(saldos.prevReceber, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoEntrada, true)}\r\n \r\n \r\n {FormatNumber(saldos.prevPagar, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoSaida, true)}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../../services/api';\r\nimport { Col, Row } from 'antd';\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaAnualLocalSintetico({valoresProvisionados, tabelaFluxoCaixa, saldos, form, filtros }) {\r\n\r\n const [saldoInicial, setSaldoInicial] = useState();\r\n const [saldoFinal, setSaldoFinal] = useState();\r\n const [listaInicial, setListaInicial] = useState([]);\r\n const [listaFinal, setListaFinal] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!filtros) {\r\n tratarDados(filtros);\r\n }\r\n }, []);\r\n\r\n async function tratarDados(filtros) {\r\n api.get(`FluxoCaixa/SaldoInicial?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}\r\n &caixaOrganizacao=${filtros.fluxoOrganizacao}&dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosInicial = res.data;\r\n let saldoInicial = dadosInicial.map(item =>\r\n createInicial(\r\n item.codigoLocal,\r\n item.CodigoLocal,\r\n item.contaCorrente,\r\n item.nomeContaCorrente,\r\n item.saldo,\r\n item.saldoConta,\r\n item.saldoInicial,\r\n item.totalSaldo,\r\n item.totalSaldoInicial,\r\n item.totalSaldosConta\r\n )\r\n );\r\n setListaInicial(dadosInicial);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n }\r\n );\r\n api.get(`FluxoCaixa/SaldoFinal?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}&caixaOrganizacao=${filtros.fluxoOrganizacao}\r\n &dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosFinal = res.data;\r\n setSaldoFinal(res.data[0].totalSaldosConta);\r\n setSaldoInicial(res.data[0].totalSaldoInicial);\r\n let saldoFinal = dadosFinal.map(item =>\r\n createFinal(\r\n item.codigoLocal,\r\n item.CodigoLocal,\r\n item.contaCorrente,\r\n item.nomeContaCorrente,\r\n item.saldo,\r\n item.saldosConta,\r\n item.saldoInicial,\r\n item.totalSaldo,\r\n item.totalSaldoInicial,\r\n item.totalSaldosConta\r\n )\r\n );\r\n setListaFinal(saldoFinal);\r\n }\r\n }\r\n ).catch(err => {\r\n }\r\n );\r\n }\r\n\r\n function createFinal(codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta) {\r\n return { codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta }\r\n };\r\n function createInicial(codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta) {\r\n return { codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
Fluxo de Caixa de {moment(filtros.dataInicial).format('DD/MM/YYYY')} a {moment(filtros.dataFinal).format('DD/MM/YYYY')}\r\n \r\n {/*
\r\n
\r\n
\r\n
\r\n Contas: Loja Matriz\r\n
\r\n {listaFinal.map((row, index) => (\r\n
\r\n {row.nomeContaCorrente}: \r\n \r\n {FormatNumber(row.saldoInicial, true)}\r\n \r\n {row.nomeContaCorrente}: \r\n \r\n {FormatNumber(row.saldosConta, true)}\r\n \r\n
\r\n ))}\r\n
\r\n SALDO INICIAL: {FormatNumber(saldoInicial, true)}\r\n \r\n SALDO FINAL: {FormatNumber(saldoFinal, true)}\r\n \r\n
\r\n \r\n \r\n */}\r\n
\r\n
\r\n {!valoresProvisionados &&\r\n
\r\n \r\n {/* Cabeçalho da Tabela */}\r\n
DATA\r\n ENTRADA\r\n SAÍDA\r\n \r\n\r\n
\r\n {/* Mapeando os dados do fluxo de caixa */}\r\n {tabelaFluxoCaixa.map((fluxoLocal, index) => (\r\n \r\n
\r\n {fluxoLocal.ano}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoEntradaAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoSaidaAno, true, false)}\r\n \r\n \r\n ))}\r\n\r\n {/* Linha de Totais */}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n {FormatNumber(saldos.realizadoEntrada, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoSaida, true)}\r\n \r\n \r\n \r\n \r\n }\r\n {valoresProvisionados &&\r\n
\r\n \r\n {/*
FLUXO DE CAIXA DE {moment(form.getFildValue().flx_mesInicial).format('DD/MM/YYYY')} A {moment(form.getFildValue().flx_mesFinal).format('DD/MM/YYYY')} */}\r\n DATA\r\n \r\n \r\n ENTRADA\r\n \r\n \r\n \r\n PREVISTO\r\n \r\n REALIZADO\r\n \r\n \r\n \r\n \r\n SAÍDA\r\n \r\n \r\n \r\n PREVISTO\r\n \r\n REALIZADO\r\n \r\n \r\n \r\n
\r\n {/* Mapeando os dados do fluxo de caixa */}\r\n {tabelaFluxoCaixa.map((fluxoLocal, index) => (\r\n \r\n
\r\n {fluxoLocal.ano}\r\n \r\n \r\n {FormatNumber(fluxoLocal.prevReceberAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoEntradaAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.prevPagarAno, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.realizadoSaidaAno, true, false)}\r\n \r\n \r\n ))}\r\n \r\n TOTAL DO PERÍODO\r\n \r\n {FormatNumber(saldos.prevReceber, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoEntrada, true)}\r\n \r\n \r\n {FormatNumber(saldos.prevPagar, true)}\r\n \r\n \r\n {FormatNumber(saldos.realizadoSaida, true)}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../../services/api';\r\nimport { Col, Row, Divider } from 'antd';\r\nimport { Table, TableBody, TableCell, TableRow } from \"@material-ui/core\";\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaDiarioGerencialAnalitico({ filtros, valoresProvisionados, form }) {\r\n\r\n const [receitaDespesa, setReceitaDespesa] = useState([]);\r\n const [categoria, setCategoria] = useState([]);\r\n const [contaGerencial, setContaGerencial] = useState([]);\r\n const [dataInicial, setDataInicial] = useState();\r\n const [dataFinal, setDataFinal] = useState();\r\n const [saldoInicial, setSaldoInicial] = useState();\r\n const [saldoFinal, setSaldoFinal] = useState();\r\n const [listaInicial, setListaInicial] = useState([]);\r\n const [listaFinal, setListaFinal] = useState([]);\r\n const [saldoPrevisto, setSaldoPrevisto] = useState();\r\n const [saldoRealizado, setSaldoRealizado] = useState();\r\n const [local, setLocal] = useState();\r\n\r\n //constantes utilizadas para criar uma nova lista de acordo com o filtro item.\r\n const ReceitaDespesa = (itens) => {\r\n // Criar um novo mapa para armazenar combinações únicas de categorias e contas gerenciais\r\n const mapaUnico = new Map();\r\n itens.forEach(item => {\r\n const chave = `${item.receitaDespesaCategoria}`;\r\n if (!mapaUnico.has(chave)) {\r\n mapaUnico.set(chave, item);\r\n }\r\n });\r\n // Converter o mapa de volta para uma lista de objetos únicos\r\n return Array.from(mapaUnico.values());\r\n };\r\n\r\n const FiltraCategoria = (itens) => {\r\n const mapaUnico = new Map();\r\n itens.forEach(item => {\r\n const chave = `${item.codigoCategoria}`;\r\n if (!mapaUnico.has(chave)) {\r\n mapaUnico.set(chave, item);\r\n }\r\n });\r\n return Array.from(mapaUnico.values());\r\n };\r\n\r\n const FiltraConta = (itens) => {\r\n const mapaUnico = new Map();\r\n itens.forEach(item => {\r\n const chave = `${item.codigoContaGerencial}`;\r\n if (!mapaUnico.has(chave)) {\r\n mapaUnico.set(chave, item);\r\n }\r\n });\r\n return Array.from(mapaUnico.values());\r\n };\r\n\r\n useEffect(() => {\r\n if (!!filtros) {\r\n tratarDados(filtros);\r\n }\r\n }, []);\r\n\r\n async function tratarDados(filtros) {\r\n setDataFinal(filtros.dataFinal);\r\n setDataInicial(filtros.dataInicial);\r\n api.get(`FluxoCaixa/ListarDiarioGerencialAnalitico?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}\r\n &caixaOrganizacao=${filtros.fluxoOrganizacao}&dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n setLocal(res.data[0].nomeLocal);\r\n let dadosReceita = ReceitaDespesa(res.data);\r\n setSaldoPrevisto((dadosReceita[0].totalProvisaoReceber - dadosReceita[0].totalProvisaoPagar));\r\n setSaldoRealizado((dadosReceita[0].totalEntradaRealizado - dadosReceita[0].totalSaidaRealizado))\r\n\r\n let dadosCategoria = FiltraCategoria(res.data);\r\n let dadosConta = FiltraConta(res.data);\r\n let ListaReceitaDespesa = dadosReceita.map(item =>\r\n createData(\r\n item.receitaDespesaCategoria,\r\n item.totalEntradaRealizado,\r\n item.totalProvisaoPagar,\r\n item.totalProvisaoReceber,\r\n item.totalSaidaRealizado\r\n )\r\n );\r\n setReceitaDespesa(ListaReceitaDespesa);\r\n let ListaCategoria = dadosCategoria.map(item =>\r\n createCategoria(\r\n item.receitaDespesaCategoria,\r\n item.descricaoCategoria,\r\n item.codigoCategoria,\r\n item.realizadoentradaCategoria,\r\n item.realizadosaidaCategoria,\r\n item.provisaopagarCategoria,\r\n item.provisaoreceberCategoria\r\n )\r\n );\r\n setCategoria(ListaCategoria);\r\n let ListaConta = dadosConta.map(item =>\r\n createConta(\r\n item.receitaDespesaCategoria,\r\n item.codigoCategoria,\r\n item.codigoContaGerencial,\r\n item.descricaoContaGerencial,\r\n item.valor_RealizadoEntrada,\r\n item.valor_RealizadoSaida,\r\n item.valor_ProvisaoPagar,\r\n item.valor_ProvisaoReceber\r\n )\r\n );\r\n setContaGerencial(ListaConta);\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n }\r\n );\r\n\r\n api.get(`FluxoCaixa/SaldoInicial?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}\r\n &caixaOrganizacao=${filtros.fluxoOrganizacao}&dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosInicial = res.data;\r\n let InicialSaldo = (!res.data[0].totalSaldoConta && res.data[0].totalSaldoConta !== 0) ? res.data[0].totalSaldosConta : res.data[0].totalSaldo;\r\n setSaldoInicial(InicialSaldo);\r\n\r\n let saldoInicial = dadosInicial.map(item =>\r\n createInicial(\r\n item.codigoLocal,\r\n item.CodigoLocal,\r\n item.contaCorrente,\r\n item.nomeContaCorrente,\r\n item.saldo,\r\n item.saldoConta,\r\n item.saldoInicial,\r\n item.totalSaldo,\r\n item.totalSaldoInicial,\r\n item.totalSaldosConta\r\n )\r\n );\r\n setListaInicial(dadosInicial);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n }\r\n );\r\n api.get(`FluxoCaixa/SaldoFinal?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}&caixaOrganizacao=${filtros.fluxoOrganizacao}\r\n &dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosFinal = res.data;\r\n let FinalSaldo = (!res.data[0].totalSaldoConta && res.data[0].totalSaldoConta !== 0 && res.data[0].totalSaldoConta !== undefined) ? res.data[0].totalSaldosConta : res.data[0].totalSaldo;\r\n setSaldoFinal(FinalSaldo);\r\n let saldoFinal = dadosFinal.map(item =>\r\n createFinal(\r\n item.codigoLocal,\r\n item.CodigoLocal,\r\n item.contaCorrente,\r\n item.nomeContaCorrente,\r\n item.saldo,\r\n item.saldosConta,\r\n item.saldoInicial,\r\n item.totalSaldo,\r\n item.totalSaldoInicial,\r\n item.totalSaldosConta\r\n )\r\n );\r\n setListaFinal(saldoFinal);\r\n }\r\n }\r\n ).catch(err => {\r\n }\r\n );\r\n }\r\n\r\n function createData(receitaDespesa, totalEntradaRealizado, totalProvisaoPagar, totalProvisaoReceber, totalSaidaRealizado) {\r\n return { receitaDespesa, totalEntradaRealizado, totalProvisaoPagar, totalProvisaoReceber, totalSaidaRealizado }\r\n };\r\n function createCategoria(receitaDespesaCategoria, descricaoCategoria, codigoCategoria, realizadoentradaCategoria, realizadosaidaCategoria, provisaopagarCategoria, provisaoreceberCategoria) {\r\n return { receitaDespesaCategoria, descricaoCategoria, codigoCategoria, realizadoentradaCategoria, realizadosaidaCategoria, provisaopagarCategoria, provisaoreceberCategoria }\r\n };\r\n function createConta(receitaDespesaCategoria, codigoCategoria, codigoContaGerencial, descricaoContaGerencial, valor_RealizadoEntrada, valor_RealizadoSaida, valor_ProvisaoPagar, valor_ProvisaoReceber) {\r\n return { receitaDespesaCategoria, codigoCategoria, codigoContaGerencial, descricaoContaGerencial, valor_RealizadoEntrada, valor_RealizadoSaida, valor_ProvisaoPagar, valor_ProvisaoReceber }\r\n };\r\n function createFinal(codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta) {\r\n return { codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta }\r\n };\r\n function createInicial(codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta) {\r\n return { codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldosConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Contas: {local}\r\n
\r\n {listaFinal.map((row, index) => (\r\n
\r\n {row.nomeContaCorrente}: \r\n \r\n {/* {row.nomeContaCorrente} */}\r\n {FormatNumber(row.saldoInicial, true)}\r\n \r\n {row.nomeContaCorrente}: \r\n \r\n {FormatNumber(((!row.saldosConta && row.saldosConta !== 0) ? row.saldosConta : row.saldo), true)}\r\n \r\n
\r\n ))}\r\n
\r\n SALDO INICIAL: {FormatNumber(saldoInicial, true)}\r\n \r\n SALDO FINAL: {FormatNumber(saldoFinal, true)}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
Fluxo de Caixa de {moment(dataInicial).format('DD/MM/YYYY')} a {moment(dataFinal).format('DD/MM/YYYY')}\r\n \r\n
\r\n
\r\n \r\n
\r\n {valoresProvisionados && (\r\n
\r\n PREVISTO\r\n
\r\n )}\r\n
\r\n REALIZADO\r\n
\r\n
\r\n
\r\n
\r\n \r\n {receitaDespesa.map((row) => {\r\n // Filtrando categorias de acordo com a receita/despesa\r\n const categoriasFiltradas = categoria.filter(\r\n (categoria) => categoria.receitaDespesaCategoria === row.receitaDespesa\r\n );\r\n return (\r\n \r\n {categoriasFiltradas.map((categoria) => {\r\n // Filtra a lista de contas gerenciais por categoria e tipo de receita/despesa\r\n const contasGerenciaisFiltradas = contaGerencial.filter(\r\n (conta) =>\r\n conta.codigoCategoria === categoria.codigoCategoria &&\r\n conta.receitaDespesaCategoria === row.receitaDespesa\r\n );\r\n return (\r\n \r\n {/* Linha para a categoria */}\r\n \r\n \r\n {categoria.descricaoCategoria}\r\n \r\n {/* Coluna de valores provisionados ou realizados de entrada ou saída */}\r\n \r\n {valoresProvisionados ? (\r\n categoria.receitaDespesaCategoria === 2 ? (\r\n FormatNumber(categoria.provisaoreceberCategoria, true)\r\n ) : (\r\n FormatNumber(categoria.provisaopagarCategoria, true)\r\n )\r\n ) : null}\r\n \r\n {/* Coluna de valores realizados de entrada ou saída */}\r\n \r\n {categoria.receitaDespesaCategoria === 2 ? (\r\n FormatNumber(categoria.realizadoentradaCategoria, true)\r\n ) : (\r\n FormatNumber(categoria.realizadosaidaCategoria, true)\r\n )}\r\n \r\n \r\n {/* Linhas para cada conta gerencial dentro da categoria */}\r\n {contasGerenciaisFiltradas.map((conta) => (\r\n \r\n \r\n {conta.descricaoContaGerencial}\r\n \r\n {/* Coluna de valores provisionados ou realizados de entrada ou saída */}\r\n \r\n {valoresProvisionados ? (\r\n row.receitaDespesa === 2 ? (\r\n FormatNumber(conta.valor_ProvisaoReceber, true)\r\n ) : (\r\n FormatNumber(conta.valor_ProvisaoPagar, true)\r\n )\r\n ) : null}\r\n \r\n {/* Coluna de valores realizados de entrada ou saída */}\r\n \r\n {row.receitaDespesa === 2 ? (\r\n FormatNumber(conta.valor_RealizadoEntrada, true)\r\n ) : (\r\n FormatNumber(conta.valor_RealizadoSaida, true)\r\n )}\r\n \r\n \r\n ))}\r\n \r\n );\r\n })}\r\n {/* Linha para totais de entradas */}\r\n {row.receitaDespesa === 2 && (\r\n \r\n \r\n TOTAL DE RECEITAS\r\n \r\n \r\n {valoresProvisionados && FormatNumber(row.totalProvisaoReceber, true)}\r\n \r\n \r\n {FormatNumber(row.totalEntradaRealizado, true)}\r\n \r\n \r\n )}\r\n {/* Linha para totais de saídas */}\r\n {row.receitaDespesa === 1 && (\r\n \r\n \r\n TOTAL DE DESPESAS\r\n \r\n \r\n {valoresProvisionados && FormatNumber(row.totalProvisaoPagar, true)}\r\n \r\n \r\n {FormatNumber(row.totalSaidaRealizado, true)}\r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n SALDO DO PERÍODO\r\n
\r\n {valoresProvisionados && (\r\n
\r\n {FormatNumber(saldoPrevisto)}\r\n
\r\n )}\r\n
\r\n {FormatNumber(saldoRealizado, true)}\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../../services/api';\r\nimport { Col, Row } from 'antd';\r\nimport { Table, TableBody, TableCell, TableRow } from \"@material-ui/core\";\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaDiarioGerencialSintetico({ filtros, valoresProvisionados, form }) {\r\n\r\n const [receitaDespesa, setReceitaDespesa] = useState([]);\r\n const [categoria, setCategoria] = useState([]);\r\n const [contaGerencial, setContaGerencial] = useState([]);\r\n const [dataInicial, setDataInicial] = useState();\r\n const [dataFinal, setDataFinal] = useState();\r\n const [saldoInicial, setSaldoInicial] = useState();\r\n const [saldoFinal, setSaldoFinal] = useState();\r\n const [listaInicial, setListaInicial] = useState([]);\r\n const [listaFinal, setListaFinal] = useState([]);\r\n //constantes utilizadas para criar uma nova lista de acordo com o filtro item.\r\n const ReceitaDespesa = (itens) => {\r\n // Criar um novo mapa para armazenar combinações únicas de categorias e contas gerenciais\r\n const mapaUnico = new Map();\r\n itens.forEach(item => {\r\n const chave = `${item.receitaDespesaCategoria}`;\r\n if (!mapaUnico.has(chave)) {\r\n mapaUnico.set(chave, item);\r\n }\r\n });\r\n // Converter o mapa de volta para uma lista de objetos únicos\r\n return Array.from(mapaUnico.values());\r\n };\r\n\r\n const FiltraCategoria = (itens) => {\r\n const mapaUnico = new Map();\r\n itens.forEach(item => {\r\n const chave = `${item.codigoCategoria}`;\r\n if (!mapaUnico.has(chave)) {\r\n mapaUnico.set(chave, item);\r\n }\r\n });\r\n return Array.from(mapaUnico.values());\r\n };\r\n\r\n const FiltraConta = (itens) => {\r\n const mapaUnico = new Map();\r\n itens.forEach(item => {\r\n const chave = `${item.codigoContaGerencial}`;\r\n if (!mapaUnico.has(chave)) {\r\n mapaUnico.set(chave, item);\r\n }\r\n });\r\n return Array.from(mapaUnico.values());\r\n };\r\n\r\n // const FiltraFinal = (itens) => {\r\n // const mapaUnico = new Map();\r\n // itens.forEach(item => {\r\n // const chave = `${item.contacorrente}`;\r\n // if (!mapaUnico.has(chave)) {\r\n // mapaUnico.set(chave, item);\r\n // }\r\n // });\r\n // return Array.from(mapaUnico.values());\r\n // };\r\n\r\n // const FiltraInicial = (itens) => {\r\n // const mapaUnico = new Map();\r\n // itens.forEach(item => {\r\n // const chave = `${item.contacorrente}`;\r\n // if (!mapaUnico.has(chave)) {\r\n // mapaUnico.set(chave, item);\r\n // }\r\n // });\r\n // return Array.from(mapaUnico.values());\r\n // };\r\n\r\n useEffect(() => {\r\n if (!!filtros) {\r\n tratarDados(filtros);\r\n }\r\n }, []);\r\n\r\n async function tratarDados(filtros) {\r\n setDataFinal(filtros.dataFinal);\r\n setDataInicial(filtros.dataInicial);\r\n api.get(`FluxoCaixa/ListarDiarioGerencialAnalitico?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}\r\n &caixaOrganizacao=${filtros.fluxoOrganizacao}&dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosReceita = ReceitaDespesa(res.data);\r\n let dadosCategoria = FiltraCategoria(res.data);\r\n let dadosConta = FiltraConta(res.data);\r\n let ListaReceitaDespesa = dadosReceita.map(item =>\r\n createData(\r\n item.receitaDespesaCategoria,\r\n item.totalEntradaRealizado,\r\n item.totalProvisaoPagar,\r\n item.totalProvisaoReceber,\r\n item.totalSaidaRealizado\r\n )\r\n );\r\n setReceitaDespesa(ListaReceitaDespesa);\r\n let ListaCategoria = dadosCategoria.map(item =>\r\n createCategoria(\r\n item.receitaDespesaCategoria,\r\n item.descricaoCategoria,\r\n item.codigoCategoria,\r\n item.realizadoentradaCategoria,\r\n item.realizadosaidaCategoria,\r\n item.provisaopagarCategoria,\r\n item.provisaoreceberCategoria\r\n )\r\n );\r\n setCategoria(ListaCategoria);\r\n let ListaConta = dadosConta.map(item =>\r\n createConta(\r\n item.receitaDespesaCategoria,\r\n item.codigoCategoria,\r\n item.codigoContaGerencial,\r\n item.descricaoContaGerencial,\r\n item.valor_RealizadoEntrada,\r\n item.valor_RealizadoSaida,\r\n item.valor_ProvisaoPagar,\r\n item.valor_ProvisaoReceber\r\n )\r\n );\r\n setContaGerencial(ListaConta);\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n }\r\n );\r\n api.get(`FluxoCaixa/SaldoFinal?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}&caixaOrganizacao=${filtros.fluxoOrganizacao}\r\n &dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosFinal = res.data;\r\n let FinalSaldo = (!res.data[0].totalSaldoConta && res.data[0].totalSaldoConta !== 0 && res.data[0].totalSaldoConta !== undefined) ? res.data[0].totalSaldosConta : res.data[0].totalSaldo;\r\n setSaldoFinal(FinalSaldo);\r\n let saldoFinal = dadosFinal.map(item =>\r\n createFinal(\r\n item.codigoLocal,\r\n item.CodigoLocal,\r\n item.contaCorrente,\r\n item.nomeContaCorrente,\r\n item.saldo,\r\n item.saldoConta,\r\n item.saldoInicial,\r\n item.totalSaldo,\r\n item.totalSaldoInicial,\r\n item.totalSaldosConta\r\n )\r\n );\r\n setListaFinal(saldoFinal);\r\n }\r\n }\r\n ).catch(err => {\r\n }\r\n );\r\n api.get(`FluxoCaixa/SaldoInicial?caixaPeriodo=${filtros.fluxoPeriodo}&caixaApresentacao=${filtros.fluxoApresentacao}&caixaOrganizacao=${filtros.fluxoOrganizacao}&dataInicial=${filtros.dataInicial}&dataFinal=${filtros.dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dadosInicial = res.data;\r\n setSaldoInicial(res.data[0].totalSaldoInicial);\r\n let totalInicial = dadosInicial.reduce((sum, item) => sum + item.saldoInicial, 0);\r\n let saldoInicial = dadosInicial.map(item =>\r\n createInicial(\r\n item.codigoLocal,\r\n item.CodigoLocal,\r\n item.contaCorrente,\r\n item.nomeContaCorrente,\r\n item.saldo,\r\n item.saldoConta,\r\n item.saldoInicial,\r\n item.totalSaldo,\r\n item.totalSaldoInicial,\r\n item.totalSaldosConta\r\n )\r\n );\r\n setListaInicial(saldoInicial);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n function createData(receitaDespesa, totalEntradaRealizado, totalProvisaoPagar, totalProvisaoReceber, totalSaidaRealizado) {\r\n return { receitaDespesa, totalEntradaRealizado, totalProvisaoPagar, totalProvisaoReceber, totalSaidaRealizado }\r\n };\r\n function createCategoria(receitaDespesaCategoria, descricaoCategoria, codigoCategoria, realizadoentradaCategoria, realizadosaidaCategoria, provisaopagarCategoria, provisaoreceberCategoria) {\r\n return { receitaDespesaCategoria, descricaoCategoria, codigoCategoria, realizadoentradaCategoria, realizadosaidaCategoria, provisaopagarCategoria, provisaoreceberCategoria }\r\n };\r\n function createConta(receitaDespesaCategoria, codigoCategoria, codigoContaGerencial, descricaoContaGerencial, valor_RealizadoEntrada, valor_RealizadoSaida, valor_ProvisaoPagar, valor_ProvisaoReceber) {\r\n return { receitaDespesaCategoria, codigoCategoria, codigoContaGerencial, descricaoContaGerencial, valor_RealizadoEntrada, valor_RealizadoSaida, valor_ProvisaoPagar, valor_ProvisaoReceber }\r\n };\r\n function createFinal(codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldoConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta) {\r\n return { codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldoConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta }\r\n };\r\n function createInicial(codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldoConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta) {\r\n return { codigoLocal, CodigoLocal, contaCorrente, nomeContaCorrente, saldo, saldoConta, saldoInicial, totalSaldo, totalSaldoInicial, totalSaldosConta }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n Fluxo de Caixa de {moment(dataInicial).format('DD/MM/YYYY')} a {moment(dataFinal).format('DD/MM/YYYY')}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {valoresProvisionados && (\r\n
\r\n PREVISTO\r\n
\r\n )}\r\n
\r\n REALIZADO\r\n
\r\n
\r\n\r\n
\r\n
\r\n SALDO INICIAL\r\n
\r\n {valoresProvisionados && (\r\n
\r\n {FormatNumber(saldoInicial, true)}\r\n
\r\n )}\r\n
\r\n {FormatNumber(saldoInicial, true)}\r\n
\r\n
\r\n
\r\n \r\n \r\n {receitaDespesa.map((row) => {\r\n // Filtrando categorias de acordo com a receita/despesa\r\n const categoriasFiltradas = categoria.filter(\r\n (categoria) => categoria.receitaDespesaCategoria === row.receitaDespesa\r\n );\r\n\r\n return (\r\n \r\n {categoriasFiltradas.map((categoria) => {\r\n // Filtra a lista de contas gerenciais por categoria e tipo de receita/despesa\r\n const contasGerenciaisFiltradas = contaGerencial.filter(\r\n (conta) =>\r\n conta.codigoCategoria === categoria.codigoCategoria &&\r\n conta.receitaDespesaCategoria === row.receitaDespesa\r\n );\r\n\r\n return (\r\n \r\n {/* Linha para a categoria */}\r\n \r\n \r\n {categoria.descricaoCategoria}\r\n \r\n {/* Coluna de valores provisionados ou realizados de entrada ou saída */}\r\n \r\n {valoresProvisionados ? (\r\n categoria.receitaDespesaCategoria === 2 ? (\r\n FormatNumber(categoria.provisaoreceberCategoria, true)\r\n ) : (\r\n FormatNumber(categoria.provisaopagarCategoria, true)\r\n )\r\n ) : null}\r\n \r\n {/* Coluna de valores realizados de entrada ou saída */}\r\n \r\n {categoria.receitaDespesaCategoria === 2 ? (\r\n FormatNumber(categoria.realizadoentradaCategoria, true)\r\n ) : (\r\n FormatNumber(categoria.realizadosaidaCategoria, true)\r\n )}\r\n \r\n \r\n\r\n {/* Linhas para cada conta gerencial dentro da categoria */}\r\n {contasGerenciaisFiltradas.map((conta) => (\r\n \r\n \r\n {conta.descricaoContaGerencial}\r\n \r\n {/* Coluna de valores provisionados ou realizados de entrada ou saída */}\r\n \r\n {valoresProvisionados ? (\r\n row.receitaDespesa === 2 ? (\r\n FormatNumber(conta.valor_ProvisaoReceber, true)\r\n ) : (\r\n FormatNumber(conta.valor_ProvisaoPagar, true)\r\n )\r\n ) : null}\r\n \r\n {/* Coluna de valores realizados de entrada ou saída */}\r\n \r\n {row.receitaDespesa === 2 ? (\r\n FormatNumber(conta.valor_RealizadoEntrada, true)\r\n ) : (\r\n FormatNumber(conta.valor_RealizadoSaida, true)\r\n )}\r\n \r\n \r\n ))}\r\n \r\n );\r\n })}\r\n\r\n {/* Linha para totais de entradas */}\r\n {row.receitaDespesa === 2 && (\r\n \r\n \r\n TOTAL DE ENTRADAS\r\n \r\n \r\n {valoresProvisionados && FormatNumber(row.totalProvisaoReceber, true)}\r\n \r\n \r\n {FormatNumber(row.totalEntradaRealizado, true)}\r\n \r\n \r\n )}\r\n\r\n {/* Linha para totais de saídas */}\r\n {row.receitaDespesa === 1 && (\r\n \r\n \r\n TOTAL DE SAÍDAS\r\n \r\n \r\n {valoresProvisionados && FormatNumber(row.totalProvisaoPagar, true)}\r\n \r\n \r\n {FormatNumber(row.totalSaidaRealizado, true)}\r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n
\r\n
\r\n SALDO FINAL\r\n
\r\n {valoresProvisionados && (\r\n
\r\n {FormatNumber((saldoFinal), true)}\r\n
\r\n )}\r\n
\r\n {FormatNumber((saldoFinal), true)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Col, Form, Row, Select, Checkbox, Button, DatePicker } from 'antd';\r\nimport { SearchOutlined } from '@ant-design/icons';\r\nimport moment from 'moment';\r\n\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport api from '../../services/api';\r\nimport { BreadcrumbPage, BotaoAbrirChamado, Data } from '../../components';\r\nimport {\r\n FluxoCaixaDiarioLocalAnalitico, FluxoCaixaDiarioLocalSintetico, FluxoCaixaMensalLocalAnalitico, FluxoCaixaAnualLocalAnalitico, FluxoCaixaDiarioGerencialAnalitico,\r\n FluxoCaixaDiarioGerencialSintetico, FluxoCaixaAnualLocalSintetico, FluxoCaixaMensalLocalSintetico\r\n} from './pages';\r\n\r\nexport default function FluxoCaixa() {\r\n\r\n const [formFluxoCaixa] = Form.useForm();\r\n const [tipoFluxoCaixa, setTipoFluxoCaixa] = useState(\"\");\r\n const [valoresProvisionados, setValoresProvisionados] = useState(false);\r\n const [periodo, setPeriodo] = useState([]);\r\n const [organizacao, setOrganizacao] = useState([]);\r\n const [formaApresentacao, setFormaApresentacao] = useState([]);\r\n const [tabelaFluxoCaixa, setTabelaFluxoCaixa] = useState([]);\r\n const [saldos, setSaldos] = useState({});\r\n const [filtros, setFiltros] = useState([]);\r\n const anoAtual = new Date().getFullYear(); // Obtém o ano atual\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=FluxoCaixaPeriodo`).then(res => {\r\n setPeriodo(res.data);\r\n });\r\n api.get(`Enum/Listar?nome=FluxoCaixaFormaApresentacao`).then(res => {\r\n setFormaApresentacao(res.data);\r\n });\r\n api.get(`Enum/Listar?nome=FluxoCaixaOrganizacao`).then(res => {\r\n let organizacaoFiltrada = res.data.filter(item => item.key !== 2);\r\n //colocado condição para que seja diferente de 3 para que não pegue a categoria, pois a mesma consta dentro da 2 que é por contagerencial\r\n setOrganizacao(organizacaoFiltrada);\r\n });\r\n }, []);\r\n\r\n function montaDataMes(mes) {\r\n let data = new Date(anoAtual, mes, 1); // `mes - 1` porque os meses são indexados a partir de 0\r\n return moment(data).toISOString();\r\n }\r\n\r\n function montaDataMesFim(mes) {\r\n let data = new Date(anoAtual, mes + 1, 0); // `mes + 1` porque os meses são indexados a partir de 0\r\n return moment(data).toISOString();\r\n }\r\n\r\n function montaDataAno(ano, dia) {\r\n let data = new Date(ano, 0, dia); // `0` representa janeiro, pois os meses são indexados de 0 a 11\r\n return moment(data).toISOString();\r\n }\r\n\r\n function montaDataAnoFim(ano, dia) {\r\n let data = new Date(ano, 11, dia); // `0` representa janeiro, pois os meses são indexados de 0 a 11\r\n return moment(data).toISOString();\r\n }\r\n\r\n async function verificarFluxo() {\r\n let tipo = \"\";\r\n let fluxoPeriodo = formFluxoCaixa.getFieldValue().flx_periodo;\r\n let fluxoOrganizacao = formFluxoCaixa.getFieldValue().flx_organizacao;\r\n let fluxoApresentacao = formFluxoCaixa.getFieldValue().flx_apresentacao;\r\n let dataInicial = moment(formFluxoCaixa.getFieldValue().flx_dataInicial).toISOString();\r\n let dataFinal = moment(formFluxoCaixa.getFieldValue().flx_dataFinal).toISOString();\r\n let mesInicial = moment(formFluxoCaixa.getFieldValue().flx_mesInicial).month();\r\n let mesFinal = moment(formFluxoCaixa.getFieldValue().flx_mesFinal).month();\r\n let anoInicial = moment(formFluxoCaixa.getFieldValue().flx_anoInicial).year();\r\n let anoFinal = moment(formFluxoCaixa.getFieldValue().flx_anoFinal).year();\r\n\r\n if (fluxoPeriodo === 1 && fluxoOrganizacao === 1 && fluxoApresentacao === 1) {\r\n tipo = \"diarioLocalAnalitico\";\r\n api.get(`FluxoCaixa/ListarDiarioLocal?caixaPeriodo=${fluxoPeriodo}&caixaApresentacao=${fluxoApresentacao}&caixaOrganizacao=${fluxoOrganizacao}&dataInicial=${dataInicial}\r\n &dataFinal=${dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let totais = {};\r\n totais.saldoInicial = 0;\r\n totais.saldoFinal = 0;\r\n totais.totalDebitoRealizado = 0;\r\n totais.totalDebitoPrevisto = 0;\r\n totais.totalCreditoRealizado = 0;\r\n totais.totalCreditoPrevisto = 0;\r\n setTabelaFluxoCaixa(res.data);\r\n res.data[0].listaFluxoSaldos.forEach((saldo) => {\r\n totais.saldoInicial += (!!saldo ? saldo.saldoInicial : 0);\r\n totais.saldoFinal += ((!!saldo.saldosConta && saldo.saldosConta !== undefined) ? saldo.saldosConta : saldo.saldo);\r\n });\r\n res.data[0].listaFluxoItens.forEach((item) => {\r\n totais.totalDebitoRealizado += item.valor_RealizadoSaida;\r\n totais.totalDebitoPrevisto += item.valor_ProvisaoPagar;\r\n totais.totalCreditoRealizado += item.valor_RealizadoEntrada;\r\n totais.totalCreditoPrevisto += item.valor_ProvisaoReceber;\r\n });\r\n setSaldos(totais);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n });\r\n } else if (fluxoPeriodo === 1 && fluxoOrganizacao === 1 && fluxoApresentacao === 2) {\r\n tipo = \"diarioLocalSintetico\";\r\n api.get(`FluxoCaixa/ListarDiarioLocalSintetico?DataInicial=${dataInicial}&DataFinal=${dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let totais = {};\r\n totais.dataInicial = formFluxoCaixa.getFieldValue().flx_dataInicial;\r\n totais.dataFinal = formFluxoCaixa.getFieldValue().flx_dataFinal;\r\n totais.totalDebitoRealizado = 0;\r\n totais.totalDebitoPrevisto = 0;\r\n totais.totalCreditoRealizado = 0;\r\n totais.totalCreditoPrevisto = 0;\r\n totais.saldoInicial = 0;\r\n totais.saldoFinal = 0;\r\n res.data.forEach((item) => {\r\n totais.saldoInicial += !!item.valor_SaldoInicial ? parseFloat(item.valor_SaldoInicial) : 0;\r\n totais.saldoFinal += \r\n (!!item.valor_SaldoInicial ? parseFloat(item.valor_SaldoInicial) : 0) + (!!item.valor_RealizadoEntrada ? parseFloat(item.valor_RealizadoEntrada) : 0) -\r\n (!!item.valor_RealizadoSaida ? parseFloat(item.valor_RealizadoSaida) : 0) ;\r\n totais.totalDebitoRealizado += !!item.valor_RealizadoSaida ? parseFloat(item.valor_RealizadoSaida) : 0;\r\n totais.totalDebitoPrevisto += !!item.valor_ProvisaoPagar ? parseFloat(item.valor_ProvisaoPagar) : 0;\r\n totais.totalCreditoRealizado += !!item.valor_RealizadoEntrada ? parseFloat(item.valor_RealizadoEntrada) : 0;\r\n totais.totalCreditoPrevisto += !!item.valor_ProvisaoReceber ? parseFloat(item.valor_ProvisaoReceber) : 0;\r\n });\r\n setSaldos(totais);\r\n setTabelaFluxoCaixa(res.data);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n });\r\n } else if (fluxoPeriodo === 4 && fluxoOrganizacao === 1 && fluxoApresentacao === 2) {\r\n let dataInicio = montaDataMes(mesInicial);\r\n let dataFim = montaDataMesFim(mesFinal);\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = dataInicio;\r\n filtro.dataFinal = dataFim;\r\n setFiltros(filtro);\r\n tipo = \"mensalLocalSintetico\";\r\n api.get(`FluxoCaixa/ListarMensalLocal?DataInicial=${dataInicio}&DataFinal=${dataFim}&caixaPeriodo=${fluxoPeriodo}&caixaApresentacao=${fluxoApresentacao}&caixaOrganizacao=${fluxoOrganizacao}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dados = res.data[0];\r\n let valores = {\r\n prevPagar: dados.prevPagar || 0,\r\n prevReceber: dados.prevReceber || 0,\r\n realizadoEntrada: dados.realizadoEntrada || 0,\r\n realizadoSaida: dados.realizadoSaida || 0\r\n };\r\n setSaldos(valores);\r\n setTabelaFluxoCaixa(res.data);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n });\r\n } else if (fluxoPeriodo === 4 && fluxoOrganizacao === 1 && fluxoApresentacao === 1) {\r\n let dataInicio = montaDataMes(mesInicial);\r\n let dataFim = montaDataMesFim(mesFinal);\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = dataInicio;\r\n filtro.dataFinal = dataFim;\r\n setFiltros(filtro);\r\n tipo = \"mensalLocalAnalitico\";\r\n api.get(`FluxoCaixa/ListarMensalLocal?DataInicial=${dataInicio}&DataFinal=${dataFim}&caixaPeriodo=${fluxoPeriodo}&caixaApresentacao=${fluxoApresentacao}&caixaOrganizacao=${fluxoOrganizacao}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dados = res.data[0];\r\n let valores = {\r\n prevPagar: dados.prevPagar || 0,\r\n prevReceber: dados.prevReceber || 0,\r\n realizadoEntrada: dados.realizadoEntrada || 0,\r\n realizadoSaida: dados.realizadoSaida || 0\r\n };\r\n setSaldos(valores);\r\n setTabelaFluxoCaixa(res.data);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n });\r\n\r\n } else if (fluxoPeriodo === 5 && fluxoOrganizacao === 1 && fluxoApresentacao === 1) {\r\n let dataInicio = montaDataAno(anoInicial, 0);\r\n let dataFim = montaDataAnoFim(anoFinal, 31);\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = dataInicio;\r\n filtro.dataFinal = dataFim;\r\n setFiltros(filtro);\r\n tipo = \"anualLocalAnalitico\";\r\n api.get(`FluxoCaixa/ListarAnualLocal?DataInicial=${dataInicio}&DataFinal=${dataFim}&caixaPeriodo=${fluxoPeriodo}&caixaApresentacao=${fluxoApresentacao}&caixaOrganizacao=${fluxoOrganizacao}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dados = res.data[0];\r\n let valores = {\r\n prevPagar: dados.prevPagar || 0,\r\n prevReceber: dados.prevReceber || 0,\r\n realizadoEntrada: dados.realizadoEntrada || 0,\r\n realizadoSaida: dados.realizadoSaida || 0\r\n };\r\n setSaldos(valores);\r\n setTabelaFluxoCaixa(res.data);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n });\r\n\r\n } else if (fluxoPeriodo === 5 && fluxoOrganizacao === 1 && fluxoApresentacao === 2) {\r\n let dataInicio = montaDataAno(anoInicial, 0);\r\n let dataFim = montaDataAnoFim(anoFinal,31);\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = dataInicio;\r\n filtro.dataFinal = dataFim;\r\n setFiltros(filtro);\r\n tipo = \"anualLocalSintetico\";\r\n api.get(`FluxoCaixa/ListarAnualLocal?DataInicial=${dataInicio}&DataFinal=${dataFim}&caixaPeriodo=${fluxoPeriodo}&caixaApresentacao=${fluxoApresentacao}&caixaOrganizacao=${fluxoOrganizacao}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dados = res.data[0];\r\n let valores = {\r\n prevPagar: dados.prevPagar || 0,\r\n prevReceber: dados.prevReceber || 0,\r\n realizadoEntrada: dados.realizadoEntrada || 0,\r\n realizadoSaida: dados.realizadoSaida || 0\r\n };\r\n setSaldos(valores);\r\n setTabelaFluxoCaixa(res.data);\r\n }\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n else if (fluxoPeriodo === 1 && fluxoOrganizacao === 3 && fluxoApresentacao === 1) {\r\n tipo = \"diarioGerencialAnalitico\";\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = dataInicial;\r\n filtro.dataFinal = dataFinal;\r\n setFiltros(filtro);\r\n } else if (fluxoPeriodo === 1 && fluxoOrganizacao === 3 && fluxoApresentacao === 2) {\r\n tipo = \"diarioGerencialSintetico\";\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = dataInicial;\r\n filtro.dataFinal = dataFinal;\r\n setFiltros(filtro);\r\n } else if (fluxoPeriodo === 4 && fluxoOrganizacao === 3 && fluxoApresentacao === 1) {\r\n tipo = \"mensalGerencialAnalitico\";\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = montaDataMes(mesInicial);\r\n filtro.dataFinal = montaDataMesFim(mesFinal);\r\n setFiltros(filtro);\r\n } else if (fluxoPeriodo === 4 && fluxoOrganizacao === 3 && fluxoApresentacao === 2) {\r\n tipo = \"mensalGerencialSintetico\";\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = montaDataMes(mesInicial);\r\n filtro.dataFinal = montaDataMesFim(mesFinal);\r\n setFiltros(filtro);\r\n } else if (fluxoPeriodo === 5 && fluxoOrganizacao === 3 && fluxoApresentacao === 1) {\r\n tipo = \"anualGerencialAnalitico\";\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = montaDataAno(anoInicial, 1);\r\n filtro.dataFinal = montaDataAnoFim(anoFinal, 31);\r\n setFiltros(filtro);\r\n } else if (fluxoPeriodo === 5 && fluxoOrganizacao === 3 && fluxoApresentacao === 2) {\r\n tipo = \"anualGerencialSintetico\";\r\n let filtro = [];\r\n filtro.fluxoPeriodo = fluxoPeriodo;\r\n filtro.fluxoApresentacao = fluxoApresentacao;\r\n filtro.fluxoOrganizacao = fluxoOrganizacao;\r\n filtro.dataInicial = montaDataAno(anoInicial, 1);\r\n filtro.dataFinal = montaDataAnoFim(anoFinal, 31);\r\n setFiltros(filtro);\r\n }\r\n\r\n setTipoFluxoCaixa(tipo);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.flx_periodo !== currentValues.flx_periodo} rules={[{ required: true}]}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('flx_periodo') === 1) return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n if (getFieldValue('flx_periodo') === 4) return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n if (getFieldValue('flx_periodo') === 5) return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.flx_periodo !== currentValues.flx_periodo || prevValues.flx_organizacao !== currentValues.flx_organizacao}>\r\n {({ getFieldValue }) => {\r\n // if (((getFieldValue('flx_periodo') === 1 || getFieldValue('flx_periodo') === 5) && (getFieldValue('flx_organizacao') === 1) || getFieldValue('flx_organizacao') === 3)) \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n // else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n setValoresProvisionados(event.target.checked)}>\r\n Mostrar Coluna de Valores Provisionados?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {tipoFluxoCaixa === \"diarioLocalAnalitico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"diarioLocalSintetico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"diarioGerencialSintetico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"diarioGerencialAnalitico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"mensalGerencialAnalitico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"anualGerencialAnalitico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"mensalGerencialSintetico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"anualGerencialSintetico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"mensalLocalAnalitico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"mensalLocalSintetico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"anualLocalAnalitico\" &&\r\n \r\n }\r\n {tipoFluxoCaixa === \"anualLocalSintetico\" &&\r\n \r\n }\r\n\r\n
\r\n
\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Button, Radio, Collapse, Card, Typography, Tag, InputNumber, Table, Modal, Select } from \"antd\";\r\nimport { SaveOutlined, CloseOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { FormatDate, FormatNumber } from '../../ValueObjects/';\r\nimport { BreadcrumbPage, BotaoAbrirChamado, Data } from \"../../components\";\r\n\r\nexport default function ConciliacaoCartoes() {\r\n\r\n const [listaMovimentacao, setListaMovimentacao] = useState([]);\r\n const [formulario] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n const [listaContaGerencialTaxas, setListaContaGerencialTaxas] = useState([]);\r\n const [listaContaGerencialAgrupadorTaxas, setListaContaGerencialAgrupadorTaxas] = useState([]);\r\n\r\n const toggleDetalhes = (bnd_id, fpg_tipopagamento) => {\r\n let listaTemp = [...listaMovimentacao];\r\n let mov = listaTemp.filter((item) => { return item.bnd_id === bnd_id && item.fpg_tipopagamento === fpg_tipopagamento })[0];\r\n mov.openDetalhes = !mov.openDetalhes;\r\n setListaMovimentacao(listaTemp);\r\n };\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ dataInicial: moment(new Date()), dataFinal: moment(new Date()) });\r\n listarContaGerencial();\r\n listarMovimentacao();\r\n }, []);\r\n\r\n function listarContaGerencial() {\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?CodReceitaDespesa=2`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n })\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?CodReceitaDespesa=1`).then(res => {\r\n setListaContaGerencialAgrupadorTaxas(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencialTaxas(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n })\r\n }\r\n function listarMovimentacao() {\r\n let filtro = `dataFinal=${FormatDate(!!formulario.getFieldValue().dataFinal ? formulario.getFieldValue().dataFinal.toDate().toLocaleDateString() : new Date().toLocaleDateString())}\r\n &dataInicial=${FormatDate(!!formulario.getFieldValue().dataInicial ? formulario.getFieldValue().dataInicial.toDate().toLocaleDateString() : new Date().toLocaleDateString())}\r\n ${(formulario.getFieldValue().tipo !== 1 ? `&tipoMovimentacao=${formulario.getFieldValue().tipo}` : '')}`;\r\n setListaMovimentacao([]);\r\n api.get(`ConciliacaoCartao/ListarMovimentacao?${filtro}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let dadosMovimentacao = res.data;\r\n for (var i = 0; i < dadosMovimentacao.length; i++) {\r\n let lancamentos = dadosMovimentacao[i].conciliacaoCartaoDetalhamento;\r\n let taxas = dadosMovimentacao[i].dadosTaxaCartaoCreditoParcela;\r\n dadosMovimentacao[i].totaltaxas = 0;\r\n dadosMovimentacao[i].totalBruto = 0;\r\n dadosMovimentacao[i].auxTotaltaxas = 0;\r\n dadosMovimentacao[i].auxTotalBruto = 0;\r\n\r\n lancamentos.forEach((item) => {\r\n item.key = item.rcc_id;\r\n });\r\n // usando reduce\r\n dadosMovimentacao[i].totalBruto = lancamentos.reduce((prevVal, elem) => {\r\n //usando filter\r\n if (taxas.length > 0) {\r\n let taxa = taxas.filter((tax, index, taxas) => {\r\n return (tax.tcp_parcelaminima <= elem.numeroParcelas && tax.tcp_parcelamaxima >= elem.numeroParcelas);\r\n });\r\n if (taxa.length > 0) {\r\n dadosMovimentacao[i].totaltaxas += parseFloat((elem.rcc_valor * taxa[0].tcp_taxa).toFixed(2));\r\n }\r\n } else {\r\n if (dadosMovimentacao[i].fpg_tipopagamento === 4) {\r\n dadosMovimentacao[i].totaltaxas += parseFloat((elem.rcc_valor * dadosMovimentacao[i].bce_taxapadraodebito).toFixed(2));\r\n } else {\r\n dadosMovimentacao[i].totaltaxas += parseFloat((elem.rcc_valor * dadosMovimentacao[i].bce_taxapadraocredito).toFixed(2));\r\n }\r\n }\r\n return prevVal + elem.rcc_valor;\r\n }, 0);\r\n\r\n dadosMovimentacao[i].bce_taxapadraodebito = parseFloat((dadosMovimentacao[i].bce_taxapadraodebito * 100).toFixed(2));\r\n dadosMovimentacao[i].bce_taxapadraocredito = parseFloat((dadosMovimentacao[i].bce_taxapadraocredito * 100).toFixed(2));\r\n dadosMovimentacao[i].openDetalhes = false;\r\n }\r\n setListaMovimentacao(dadosMovimentacao);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function calcularTaxaCartao(e, bnd_id, fpg_tipopagamento) {\r\n let value = e.target.value.replace('%', '').replace(',', '.');\r\n value = (value > 100 ? 100 : value);\r\n let listaTemp = [...listaMovimentacao];\r\n let mov = listaTemp.filter((item) => { return item.bnd_id === bnd_id && item.fpg_tipopagamento === fpg_tipopagamento })[0];\r\n\r\n if (mov.fpg_tipopagamento === 4) {\r\n mov.totaltaxas = parseFloat((mov.totalBruto * (parseFloat(value) / 100)).toFixed(2));\r\n mov.auxTotaltaxas = parseFloat((mov.auxTotalBruto * (parseFloat(value) / 100)).toFixed(2));\r\n } else if (mov.fpg_tipopagamento === 3) {\r\n mov.totaltaxas = parseFloat((mov.totalBruto * (parseFloat(value) / 100)).toFixed(2));\r\n mov.auxTotaltaxas = parseFloat((mov.auxTotalBruto * (parseFloat(value) / 100)).toFixed(2));\r\n }\r\n\r\n setListaMovimentacao(listaTemp);\r\n };\r\n\r\n function marcarDesmarcarTodos(selectedRowKeys, bnd_id, fpg_tipopagamento) {\r\n let listaTemp = [...listaMovimentacao];\r\n let dados = listaTemp.filter((item) => { return item.bnd_id === bnd_id && item.fpg_tipopagamento === fpg_tipopagamento })[0];\r\n let lancamentos = dados.conciliacaoCartaoDetalhamento;\r\n let taxas = dados.dadosTaxaCartaoCreditoParcela;\r\n dados.auxTotaltaxas = 0;\r\n dados.auxTotalBruto = 0;\r\n dados.auxTotalBruto = lancamentos.reduce((prevVal, elem) => {\r\n let somaTotal = 0;\r\n if ((selectedRowKeys === null && elem.marcado === true) || (selectedRowKeys !== null && selectedRowKeys.indexOf(elem.rcc_id) >= 0)) {\r\n if (taxas.length > 0) {\r\n let taxa = taxas.filter((tax, index, taxas) => {\r\n return (tax.tcp_parcelaminima <= elem.numeroParcelas && tax.tcp_parcelamaxima >= elem.numeroParcelas);\r\n });\r\n if (taxa.length > 0) {\r\n dados.auxTotaltaxas += parseFloat((elem.rcc_valor * taxa[0].tcp_taxa).toFixed(2));\r\n }\r\n } else {\r\n if (dados.fpg_tipopagamento === 4) {\r\n dados.auxTotaltaxas += parseFloat((elem.rcc_valor * (parseFloat(dados.bce_taxapadraodebito) / 100)).toFixed(2));\r\n } else {\r\n dados.auxTotaltaxas += parseFloat((elem.rcc_valor * (parseFloat(dados.bce_taxapadraocredito) / 100)).toFixed(2));\r\n }\r\n }\r\n elem.marcado = true;\r\n somaTotal += parseFloat((elem.rcc_valor).toFixed(2));\r\n } else {\r\n elem.marcado = false;\r\n }\r\n return prevVal + somaTotal;\r\n }, 0);\r\n setListaMovimentacao(listaTemp);\r\n };\r\n\r\n function efetuarConciliacao() {\r\n let dadosEnviar = {};\r\n let listaMov = [];\r\n\r\n dadosEnviar.ctg_id = formulario.getFieldValue().ctg_id;\r\n dadosEnviar.ctg_id_taxas = formulario.getFieldValue().ctg_id_taxas;\r\n dadosEnviar.observacao = !!formulario.getFieldValue().observacao ? formulario.getFieldValue().observacao : \"\";\r\n let listaComMovimentacao = listaMovimentacao.filter((tax, index, movimentacao) => {\r\n return (tax.auxTotalBruto > 0);\r\n });\r\n let indice = 0;\r\n for (let i = 0; i < listaComMovimentacao.length; i++) {\r\n let dados = {};\r\n dados.hcc_totalbrutodebito = 0;\r\n dados.hcc_taxadebito = 0;\r\n dados.hcc_totalliquidodebito = 0;\r\n dados.hcc_totalbrutocredito = 0;\r\n dados.hcc_taxacredito = 0;\r\n dados.hcc_totalliquidocredito = 0;\r\n if (listaComMovimentacao[i].fpg_tipopagamento === 4) {\r\n dados.hcc_totalbrutodebito = parseFloat(listaComMovimentacao[i].auxTotalBruto.toFixed(2));\r\n dados.hcc_taxadebito = parseFloat(listaComMovimentacao[i].auxTotaltaxas.toFixed(2));\r\n dados.hcc_totalliquidodebito = parseFloat((dados.hcc_totalbrutodebito - dados.hcc_taxadebito).toFixed(2));\r\n } else {\r\n dados.hcc_totalbrutocredito = parseFloat(listaComMovimentacao[i].auxTotalBruto.toFixed(2));\r\n dados.hcc_taxacredito = parseFloat(listaComMovimentacao[i].auxTotaltaxas.toFixed(2));\r\n dados.hcc_totalliquidocredito = parseFloat((dados.hcc_totalbrutocredito - dados.hcc_taxacredito).toFixed(2));\r\n }\r\n dados.bce_id = listaComMovimentacao[i].bce_id;\r\n dados.ctc_id = listaComMovimentacao[i].ctc_id;\r\n dados.bnd_id = listaComMovimentacao[i].bnd_id;\r\n let lista = listaComMovimentacao[i].conciliacaoCartaoDetalhamento;\r\n dados.conciliacaoCartaoDetalhamento = lista.filter((mov, index, lista) => {\r\n return (mov.marcado === true);\r\n });\r\n if (i > 0) {\r\n let listDados = listaMov.filter((list, index, listaMov) => {\r\n return (listaComMovimentacao[i].bce_id === list.bce_id && listaComMovimentacao[i].bnd_id === list.bnd_id);\r\n });\r\n if (listDados.length > 0) {\r\n let listaA = listaMov[listDados[0].indice].conciliacaoCartaoDetalhamento\r\n let listaConcatenada = listaA.concat(dados.conciliacaoCartaoDetalhamento);\r\n delete listaMov[listDados[0].indice].conciliacaoCartaoDetalhamento;\r\n listaMov[listDados[0].indice].conciliacaoCartaoDetalhamento = listaConcatenada;\r\n\r\n if (listaComMovimentacao[i].fpg_tipopagamento === 4) {\r\n listaMov[listDados[0].indice].hcc_totalbrutodebito = parseFloat(listaComMovimentacao[i].auxTotalBruto.toFixed(2));\r\n listaMov[listDados[0].indice].hcc_taxadebito = parseFloat(listaComMovimentacao[i].auxTotaltaxas.toFixed(2));\r\n listaMov[listDados[0].indice].hcc_totalliquidodebito = parseFloat((dados.hcc_totalbrutodebito - dados.hcc_taxadebito).toFixed(2));\r\n } else {\r\n listaMov[listDados[0].indice].hcc_totalbrutocredito = parseFloat(listaComMovimentacao[i].auxTotalBruto.toFixed(2));\r\n listaMov[listDados[0].indice].hcc_taxacredito = parseFloat(listaComMovimentacao[i].auxTotaltaxas.toFixed(2));\r\n listaMov[listDados[0].indice].hcc_totalliquidocredito = parseFloat((dados.hcc_totalbrutocredito - dados.hcc_taxacredito).toFixed(2));\r\n }\r\n } else {\r\n dados.indice = indice;\r\n listaMov.push(dados);\r\n indice++;\r\n }\r\n } else {\r\n dados.indice = indice;\r\n listaMov.push(dados);\r\n indice++;\r\n }\r\n }\r\n dadosEnviar.HistoricoConciliacaoCartao = listaMov;\r\n setCarregando(false);\r\n if (!dadosEnviar.ctg_id_taxas || !dadosEnviar.ctg_id) {\r\n error(\"Não foi possível realizar a conciliação de cartões, Favor selecionar uma conta Gerencial!\");\r\n }\r\n else if (dadosEnviar.HistoricoConciliacaoCartao == []) {\r\n error(\"Não foi possível realizar a conciliação de cartões, Favor selecionar os registros a serem conciliados e tente novamente!\");\r\n } else {\r\n setCarregando(true);\r\n api.post(`ConciliacaoCartao/efetuarConciliacao`, JSON.stringify(dadosEnviar), { headers: { 'Content-Type': 'application/json;charset=utf-8' } }).then(\r\n (retorno) => {\r\n if (retorno) {\r\n Modal.success({\r\n content: 'Conciliação de cartões efetivada com sucesso!',\r\n });\r\n } else {\r\n error('Não foi possível realizar a conciliação de cartões!');\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n error(erro.response.data.Message, \"Não foi possível realizar a conciliação de cartões!\");\r\n }\r\n ).finally(() => {\r\n formulario.resetFields();\r\n formulario.setFieldsValue({ dataInicial: moment(new Date()), dataFinal: moment(new Date()) });\r\n listarMovimentacao();\r\n setCarregando(false);\r\n });\r\n }\r\n };\r\n\r\n function calculaValores(bnd_id, fpg_tipopagamento, valor, dadosTaxa) {\r\n let listaTemp = [...listaMovimentacao];\r\n let dados = listaTemp.filter((item) => { return item.bnd_id === bnd_id && item.fpg_tipopagamento === fpg_tipopagamento })[0];\r\n let lancamentos = dados.conciliacaoCartaoDetalhamento;\r\n let taxas = dados.dadosTaxaCartaoCreditoParcela;\r\n dados.totaltaxas = 0;\r\n dados.totalBruto = 0;\r\n\r\n let taxaAlterar = taxas.filter((taxa) => {\r\n return (taxa.tcp_parcelaminima === dadosTaxa.tcp_parcelaminima && taxa.tcp_parcelamaxima === dadosTaxa.tcp_parcelamaxima);\r\n });\r\n if (taxaAlterar.length > 0) {\r\n taxaAlterar[0].tcp_taxa = parseFloat(valor) / 100;\r\n }\r\n\r\n dados.totalBruto = lancamentos.reduce((prevVal, elem) => {\r\n if (taxas.length > 0) {\r\n let taxa = taxas.filter((taxa, index, taxas) => {\r\n return (taxa.tcp_parcelaminima <= elem.numeroParcelas && taxa.tcp_parcelamaxima >= elem.numeroParcelas);\r\n });\r\n if (taxa.length > 0) {\r\n dados.totaltaxas += parseFloat((elem.rcc_valor * taxa[0].tcp_taxa).toFixed(2));\r\n }\r\n } else {\r\n if (dados.fpg_tipopagamento === 4) {\r\n dados.totaltaxas += parseFloat((elem.rcc_valor * (parseFloat(dados.bce_taxapadraodebito) / 100)).toFixed(2));\r\n } else {\r\n dados.totaltaxas += parseFloat((elem.rcc_valor * (parseFloat(dados.bce_taxapadraocredito) / 100)).toFixed(2));\r\n }\r\n }\r\n return parseFloat((prevVal + elem.rcc_valor).toFixed(2));\r\n }, 0);\r\n setListaMovimentacao(listaTemp);\r\n };\r\n\r\n function error(mensagem, title = 'Atenção!') {\r\n Modal.error({\r\n title: title,\r\n content: (\r\n
\r\n

{mensagem}

\r\n
\r\n )\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaMovimentacao.map((item) => (\r\n
\r\n \r\n \r\n \r\n
\r\n \"Visa\"\r\n
\r\n \r\n \r\n \r\n \r\n {item.fpg_tipopagamento === 3 ? \"Crédito\" : \"Débito\"} \r\n \r\n \r\n \r\n \r\n \r\n {item.bce_nomecredenciadora}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.ban_descricao} {item.ban_id} - {item.ban_descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Agência: {item.ctc_numeroagencia}\r\n \r\n \r\n \r\n \r\n Conta: {item.ctc_numeroconta}\r\n \r\n \r\n \r\n \r\n \r\n {item.dadosTaxaCartaoCreditoParcela.length === 0 &&\r\n \r\n {item.fpg_tipopagamento === 3 && { calcularTaxaCartao(e, item.bnd_id, item.fpg_tipopagamento) }}\r\n formatter={value => `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />}\r\n {item.fpg_tipopagamento === 4 && { calcularTaxaCartao(e, item.bnd_id, item.fpg_tipopagamento) }}\r\n formatter={value => `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />}\r\n \r\n }\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Total Bruto (R$): {FormatNumber(item.totalBruto, true, false)}\r\n \r\n \r\n \r\n \r\n Taxas (R$): {FormatNumber(item.totaltaxas, true, false)}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Total Líquido (R$):
\r\n {FormatNumber(item.totalBruto - item.totaltaxas, true, false)}\r\n
\r\n
\r\n \r\n
\r\n \r\n {item.dadosTaxaCartaoCreditoParcela.map((taxa) => (\r\n \r\n \r\n Modalidade\r\n Taxa\r\n \r\n \r\n \r\n Parcelado: {taxa.tcp_parcelaminima} a {taxa.tcp_parcelamaxima} vezes\r\n \r\n \r\n {\r\n calculaValores(item.bnd_id, item.fpg_tipopagamento, e.target.value.replace('%', '').replace(',', '.'), taxa);\r\n marcarDesmarcarTodos(null, item.bnd_id, item.fpg_tipopagamento);\r\n }}\r\n formatter={value => `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n (\r\n
\r\n {moment(rcc_datalancamento).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Previsão de Recebimento',\r\n width: 158,\r\n render: ({ rcc_previsaorecebimento }) => (\r\n
\r\n {moment(rcc_previsaorecebimento).format(\"DD/MM/YYYY\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Série',\r\n render: ({ ser_serie }) => (\r\n
\r\n {ser_serie || '-'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Doc. Fiscal',\r\n render: ({ ntf_numero }) => (\r\n
\r\n {ntf_numero || '-'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Parcela',\r\n width: 65,\r\n align: 'center',\r\n render: ({ rcc_parcelarecebimento, numeroParcelas }) => (\r\n
\r\n {rcc_parcelarecebimento}\r\n {item.fpg_tipopagamento === 3 && /{numeroParcelas}}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'NSU',\r\n render: ({ rcc_nsu }) => (\r\n
\r\n {rcc_nsu || '-'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ rcc_valor }) => (\r\n
\r\n {FormatNumber(rcc_valor, true)}\r\n
\r\n ),\r\n },\r\n ]\r\n } rowSelection={{\r\n onChange: (selectedRowKeys) => marcarDesmarcarTodos(selectedRowKeys, item.bnd_id, item.fpg_tipopagamento)\r\n }} scroll={{ x: 900 }} />\r\n {!!item.auxTotalBruto &&\r\n
\r\n \r\n
\r\n \r\n \r\n Total Bruto (R$):\r\n \r\n \r\n {FormatNumber(item.auxTotalBruto, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Tarifas (R$):\r\n \r\n \r\n {FormatNumber(item.auxTotaltaxas, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total Líquido (R$):\r\n \r\n \r\n {FormatNumber(item.auxTotalBruto - item.auxTotaltaxas, true)}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Modal } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { LancamentoCheque } from \"../../components\";\r\n\r\nexport default function ManutencaoCheque({ form, carregando, aoSalvar }) {\r\n\r\n const salvarManutencao = (values) => {\r\n carregando(true);\r\n api.post(`Cheque/Incluir?IdContaCorrente=${values.ctc_id}`, values.cheques).then(\r\n (retorno) => {\r\n if (retorno) {\r\n Modal.success({\r\n content: 'Cheque incluído com sucesso!',\r\n });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n error(erro.response.data.Message, \"Não foi possível incluir o cheque!\");\r\n }\r\n ).finally(() => {\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n };\r\n\r\n function error(mensagem, title = 'Atenção!') {\r\n Modal.error({\r\n title: title,\r\n content: (\r\n
\r\n

{mensagem}

\r\n
\r\n )\r\n });\r\n };\r\n\r\n return (\r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Form, Row, Col, Button, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport ManutencaoCheque from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerCheque() {\r\n\r\n const [formCheque] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) formCheque.setFieldsValue(manutencao.dados);\r\n else {\r\n //formCheque.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formCheque.resetFields();\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-chq_dataemissao' } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport moment from 'moment';\r\nimport { Row, Col, Form, Select, Button, Dropdown, Menu } from \"antd\";\r\nimport { MoreOutlined, CheckOutlined, FileDoneOutlined, SyncOutlined, BankOutlined, SendOutlined, UserSwitchOutlined, TeamOutlined } from \"@ant-design/icons\";\r\n\r\nimport DrawerCheque from './drawer';\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { ModalOcorrenciaCheque } from \"../../components/modals/\";\r\nimport { BreadcrumbIncluirDados, FiltroSearch, FiltroOrdenacao, TabelaDados } from \"../../components\";\r\n\r\nexport default function Cheque() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const [openModalOcorrencia, setOpenModalOcorrencia] = useState(false);\r\n const [statusCheque, setStatusCheque] = useState([]);\r\n const [dadosCheque, setDadosCheque] = useState({});\r\n const [ocorrencia, setOcorrencia] = useState(null);\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-chq_dataemissao' } });\r\n\r\n api.get(`Enum/Listar?nome=StatusCheque`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setStatusCheque(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }, []);\r\n\r\n function menuTable(dados) {\r\n return (\r\n \r\n {dados.chq_status !== 0 &&\r\n < Menu.Item key=\"1\">\r\n \r\n \r\n }\r\n {dados.chq_status === 0 &&\r\n \r\n \r\n \r\n }\r\n {(dados.chq_status === 1 || dados.chq_status === 7) &&\r\n \r\n \r\n \r\n }\r\n {(dados.chq_status === 1 || dados.chq_status === 7) &&\r\n \r\n \r\n \r\n }\r\n {(dados.chq_status === 6) &&\r\n \r\n \r\n \r\n }\r\n {(dados.chq_status === 0 || dados.chq_status === 6) &&\r\n \r\n \r\n \r\n }\r\n {(dados.chq_status === 0 || dados.chq_status === 6) &&\r\n \r\n \r\n \r\n }\r\n {(dados.chq_status === 0) &&\r\n \r\n \r\n \r\n }\r\n \r\n )\r\n };\r\n\r\n function filtrarStatusCheque(status) {\r\n if (typeof status != 'undefined') dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&status=${status}` } });\r\n else dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '' } });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {chq_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Banco',\r\n render: ({ ban_id, ban_descricao, chq_agencia, chq_contacorrente, banco }) => (\r\n
\r\n \r\n
\r\n {banco.ban_descricao}{ban_id} - {banco.ban_descricao}\r\n \r\n \r\n \r\n \r\n Agência: {chq_agencia}\r\n \r\n \r\n Conta: {chq_contacorrente}\r\n \r\n \r\n \r\n ),\r\n }, {\r\n render: ({ chq_status, pessoa }) => (\r\n
\r\n \r\n
\r\n Cheque Recebido de: {pessoa.pes_nome}\r\n \r\n \r\n {statusCheque.length > 0 &&\r\n \r\n \r\n Situação: {statusCheque[chq_status].value}\r\n \r\n \r\n }\r\n \r\n ),\r\n }, {\r\n title: 'Data',\r\n width: 150,\r\n render: ({ chq_dataemissao, chq_bompara }) => (\r\n
\r\n \r\n
\r\n Emitido em: {moment(chq_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n {!!chq_bompara &&\r\n \r\n \r\n Bom para: {moment(chq_bompara).format('DD/MM/YYYY')}\r\n \r\n \r\n }\r\n \r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n width: 180,\r\n render: ({ chq_valor }) => (\r\n
\r\n {FormatNumber(chq_valor, true, false)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n formulario.setFieldsValue({ DataFinal: moment(new Date()) });\r\n formulario.setFieldsValue({ DataInicial: moment(formulario.getFieldValue().dataPesquisa) });\r\n formulario.setFieldsValue({ dataFinal: moment(new Date()) });\r\n formulario.setFieldsValue({ dataInicial: moment(formulario.getFieldValue().dataPesquisa) });\r\n aplicarFiltrosAvancados();\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {openPesquisaAvancada ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { formulario.setFieldsValue({ ClienteId: null }); buscarClientes(dados); aplicarFiltrosAvancados() }}\r\n conteudo={\r\n cliente => ({cliente.pes_nome})} />\r\n \r\n \r\n \r\n \r\n { formulario.setFieldsValue({ ClienteId: null }); buscarBancos(dados); aplicarFiltrosAvancados() }}\r\n conteudo={\r\n banco => ( {banco.banc_id - banco.ban_descricao})} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {ban_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Informações',\r\n render: ({ pes_nome, ser_serie, ntf_numero, prc_numeroparcela, bol_numerodocumento }) => (\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n \r\n \r\n \r\n Nº Doc.: {bol_numerodocumento}\r\n \r\n \r\n Parcela: {prc_numeroparcela}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Data Emissão',\r\n align: 'center',\r\n render: ({ bol_dataemissao }) => (\r\n
\r\n {moment(bol_dataemissao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Vencimento',\r\n align: 'center',\r\n render: ({ bol_datavencimento }) => (\r\n
\r\n {moment(bol_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ bol_valor }) => (\r\n
\r\n {FormatNumber(bol_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n width: 65,\r\n align: 'center',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n } onClick={() => imprimirBoleto(record)}>Imprimir\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Select, Button, Table, Checkbox, notification } from \"antd\";\r\nimport { InfoCircleOutlined, RedoOutlined, InfoOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { Data } from \"../../components\";\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { ModalGerarRemessa, ModalInstrucaoRemessa } from \"../../components/modals/\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function ManutencaoRemessa({ formulario, aoSalvar }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [openModalInstrucaoRemessa, setOpenModalInstrucaoRemessa] = useState(false);\r\n const [openModalGerarRemessa, setOpenModalGerarRemessa] = useState(false);\r\n const [listaBancos, setListaBancos] = useState([]);\r\n const [listaParcelas, setListaParcelas] = useState([]);\r\n const [parcelaEditar, setParcelaEditar] = useState(null);\r\n const [dadosSelecionados, setDadosSelecionados] = useState({});\r\n const [banco, setBanco] = useState(null);\r\n const [idBanco, setIdBanco] = useState(null);\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ dataEmissao: moment(new Date()) });\r\n listarParcelas();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n if (!!manutencao.dados && !!manutencao.dados.bol_dataEmissao) {\r\n formulario.setFieldsValue({ bol_dataEmissao: moment(manutencao.dados.bol_dataEmissao) });\r\n } else if (!!!formulario.getFieldsValue().bol_dataEmissao) {\r\n formulario.setFieldsValue({ bol_dataEmissao: moment(new Date()) });\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n function selecionarItem(parcela) {\r\n let parcelas = [...listaParcelas];\r\n let itemEditar = parcelas.find((item) => { return item.bol_id === parcela });\r\n if (idBanco === itemEditar.ban_id || idBanco === null || idBanco === undefined) {\r\n itemEditar.selecionado = !itemEditar.selecionado;\r\n if(itemEditar.selecionado === false){\r\n setIdBanco(null);\r\n }\r\n else{\r\n setIdBanco(itemEditar.ban_id);\r\n }\r\n setListaParcelas(parcelas);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Selecione somente boletos do mesmo banco!' });\r\n return;\r\n }\r\n };\r\n\r\n function selecionarTodos(checked) {\r\n let parcelas = [...listaParcelas];\r\n // Verifica se todas as parcelas possuem o mesmo ban_id\r\n let verificaBanco = VerificaBanco(parcelas);\r\n if (verificaBanco === true) {\r\n parcelas.map((item) => {\r\n item.selecionado = (checked ? true : false);\r\n });\r\n setListaParcelas(parcelas);\r\n }\r\n else {\r\n notification.warning({ message: 'Aviso', description: 'Não é possível Selecionar todos, pois ha parcelas de bancos diferentes!' });\r\n return;\r\n }\r\n };\r\n\r\n // Função para verificar se todos os IDs dos bancos são iguais\r\n const VerificaBanco = (parcelas) => {\r\n let firstId = parcelas[0].ban_id;\r\n return parcelas.every(item => item.ban_id === firstId);\r\n };\r\n\r\n function salvarInstrucao(isp_codigo) {\r\n let parcelas = [...listaParcelas];\r\n if (!!parcelaEditar) {\r\n parcelas.find((parcela) => parcela.prc_id === parcelaEditar).isp_codigo = isp_codigo;\r\n setListaParcelas(parcelas);\r\n } else {\r\n parcelas.forEach((parcela, indice) => {\r\n parcela.isp_codigo = isp_codigo;\r\n if (indice === parcelas.length - 1) {\r\n setListaParcelas(parcelas);\r\n }\r\n });\r\n }\r\n setOpenModalInstrucaoRemessa(false);\r\n };\r\n\r\n async function gerarRemessa() {\r\n if (listaParcelas.filter((parcela) => { return parcela.selecionado }).length === 0) {\r\n notification.warning({ message: 'Aviso', description: 'É preciso selecionar pelo menos uma parcela!' });\r\n return;\r\n }\r\n let bancoId = listaParcelas.filter((parcela) => { return parcela.selecionado })[0].ban_id;\r\n if (!!formulario.getFieldValue().ban_id || !!bancoId) {\r\n let dados = {};\r\n //pega somente as parcelas selecionadas\r\n let parcelas = listaParcelas.filter((parcela) => { return parcela.selecionado });\r\n dados.ban_id = !!formulario.getFieldValue().ban_id ? formulario.getFieldValue().ban_id : bancoId;\r\n dados.ban_descricao = parcelas[0].ban_descricao;\r\n dados.rem_qtdeboletos = parcelas.length;\r\n dados.rem_valortotal = parcelas.reduce((total, bol) => total + bol.bol_valor, 0);\r\n let padraoArquivoRemessa = parcelas[0].dbl_padraoarquivoremessa;\r\n dados.padraoarquivoremessa = padraoArquivoRemessa;\r\n dados.dbl_extensaoarquivoremessa = parcelas[0].dbl_extensaoarquivoremessa;\r\n dados.dbl_nomearquivormessa = parcelas[0].dbl_nomearquivoremessa;\r\n dados.parcelaboleto = tratarParcelasBoletos(parcelas);\r\n setDadosSelecionados(dados);\r\n setOpenModalGerarRemessa(true);\r\n }\r\n };\r\n\r\n function tratarParcelasBoletos(parcelas){\r\n let parcelaboletos = [];\r\n parcelas.forEach((item) => {\r\n let dados = {\r\n prc_id: item.prc_id,\r\n bol_id: item.bol_id\r\n };\r\n parcelaboletos.push(dados);\r\n });\r\n return parcelaboletos;\r\n };\r\n\r\n function downloadArquivo() {\r\n let dados = dadosSelecionados;\r\n api.post(`RemessaBoleto/GerarRemessa`, dados).then((retornoRemessa) => {\r\n if (!!retornoRemessa) {\r\n var parts = retornoRemessa.headers['content-type'].split('/');\r\n var filename = parts[0];\r\n var contentType = parts[1];\r\n\r\n try {\r\n var blob = new Blob([retornoRemessa.data], { type: contentType });\r\n //verifica se o usuário usa IE\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./)) {\r\n window.navigator.msSaveBlob(blob, filename);\r\n } else //se for outro navegador, return 0\r\n {\r\n //Cria a url para o blob\r\n var url = window.URL.createObjectURL(blob);\r\n var linkElement = document.createElement('a');\r\n linkElement.setAttribute('href', url);\r\n linkElement.setAttribute(\"download\", filename);\r\n //Força o download\r\n var clickEvent = new MouseEvent(\"click\", {\r\n \"view\": window,\r\n \"bubbles\": true,\r\n \"cancelable\": false\r\n });\r\n linkElement.dispatchEvent(clickEvent);\r\n setOpenModalGerarRemessa(false);\r\n aoSalvar();\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n function buscarBancos(ban_id) {\r\n let filtro = [];\r\n setBanco(ban_id);\r\n filtro = !!formulario.getFieldValue().ban_id ? `CodigoBanco=${formulario.getFieldValue().ban_id}` : `CodigoBanco=${(!!ban_id ? ban_id : '')}`;\r\n filtro += !!formulario.getFieldValue().ban_descricao ? `&Nome=${formulario.getFieldValue().ban_descricao}` : \"\";\r\n api.get(`Banco/Listar?${filtro}&ordem=%2Bban_descricao`).then((res) => {\r\n if (res.status === 200) {\r\n setListaBancos(res.data);\r\n formulario.setFieldsValue({ ban_id: (!!formulario.getFieldValue().ban_id ? formulario.getFieldValue().ban_id : ban_id) });\r\n listarParcelas(res.data.items[0].ban_id);\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n async function listarParcelas(ban_id) {\r\n let emissao = !!formulario.getFieldValue().bol_dataEmissao ? formulario.getFieldValue().bol_dataEmissao.format('YYYY-MM-DD') : moment(new Date()).format('YYYY-MM-DD');\r\n let filtro = !!banco ? `CodigoBanco=${banco}` : (!!ban_id ? `CodigoBanco=${ban_id}` : '');\r\n filtro += `&DataInicial=${emissao}&DataFinal=${emissao}`\r\n api.get(`Boleto/ListarDados?${filtro}&ordem=%2Bbol_id`).then((res) => {\r\n if (res.status === 200) {\r\n setListaParcelas(res.data);\r\n if (!!ban_id || !!banco) {\r\n setOpenModalInstrucaoRemessa(true);\r\n }\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n {\r\n formulario.setFieldsValue({ ban_id: null });\r\n buscarBancos(dados);\r\n listarParcelas(dados);\r\n }} conteudo={\r\n ban => ({ban.ban_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{ return
{ selecionarTodos(event.target.checked) }} />
},\r\n align: 'center',\r\n width: 45,\r\n render: ({ bol_id, selecionado }) => (\r\n
\r\n { selecionarItem(bol_id) }} />\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Informações',\r\n render: ({ pes_nome, ser_serie, ntf_numero, prc_numeroparcela }) => (\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n \r\n \r\n \r\n Série: {ser_serie}\r\n \r\n \r\n Nº Doc.: {ntf_numero}\r\n \r\n \r\n Parcela: {prc_numeroparcela}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n render: ({ prc_datavencimento, ban_id, ban_descricao }) => (\r\n
\r\n \r\n
\r\n {ban_descricao}\r\n \r\n \r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ bol_valor }) => (\r\n
\r\n {FormatNumber(bol_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Collapse, Button, Select, Tag } from \"antd\";\r\nimport { PrinterOutlined, DownloadOutlined, ArrowUpOutlined, ArrowDownOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerRemessa from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { BreadcrumbIncluirDados, TabelaDados, Download, Data, FiltroSearch, ComboData } from \"../../components\";\r\n\r\nexport default function Remessa() {\r\n\r\n const [open, setOpen] = useState(false);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [clientes, setClientes] = useState([]);\r\n const [formulario] = Form.useForm();\r\n\r\n useEffect(() => {\r\n api.get(`Cliente/Listar?filtro=&ordem=%2brem_id`).then(\r\n res => {\r\n setClientes(res.data.items);\r\n }).catch(error => {\r\n console.log(error);\r\n })\r\n listarRemessas();\r\n formulario.setFieldsValue({ dataFinal: moment(new Date()), dataInicial: moment(formulario.getFieldValue().dataPesquisa) });\r\n }, [])\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\r\n };\r\n\r\n function listarRemessas() {\r\n let cliente = !!formulario.getFieldValue().codigoCliente ? formulario.getFieldValue().codigoCliente : 0;\r\n let notaFiscal = !!formulario.getFieldValue().notaFiscal ? formulario.getFieldValue().notaFiscal : 0;\r\n let dataInicial = !!formulario.getFieldValue().dataInicial ? moment(formulario.getFieldValue().dataInicial).format('YYYY-MM-DD') : moment(new Date()).format('YYYY-MM-DD');\r\n let dataFinal = !!formulario.getFieldValue().dataFinal ? moment(formulario.getFieldValue().dataFinal).format('YYYY-MM-DD') : moment(new Date()).format('YYYY-MM-DD');\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataInicial=${dataInicial}&dataFinal=${dataFinal}&codigoCliente=${cliente}&codigoNota=${notaFiscal}`, ordem: '-rem_id' } });\r\n }\r\n\r\n function downloadArquivo(dados) {\r\n api.post(`RemessaBoleto/DownloadArquivo`, dados).then((retornoRemessa) => {\r\n if (!!retornoRemessa) { \r\n var parts = retornoRemessa.headers['content-type'].split('/');\r\n var filename = parts[0];\r\n var contentType = parts[1];\r\n try {\r\n var blob = new Blob([retornoRemessa.data], { type: contentType });\r\n //verifica se o usuário usa IE\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./)) {\r\n window.navigator.msSaveBlob(blob, filename);\r\n } else //se for outro navegador, return 0\r\n {\r\n //Cria a url para o blob\r\n var url = window.URL.createObjectURL(blob);\r\n var linkElement = document.createElement('a');\r\n linkElement.setAttribute('href', url);\r\n linkElement.setAttribute(\"download\", filename);\r\n //Força o download\r\n var clickEvent = new MouseEvent(\"click\", {\r\n \"view\": window,\r\n \"bubbles\": true,\r\n \"cancelable\": false\r\n });\r\n linkElement.dispatchEvent(clickEvent);\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n formulario.setFieldsValue({ dataFinal: moment(new Date()) });\r\n formulario.setFieldsValue({ dataInicial: moment(formulario.getFieldValue().dataPesquisa) });\r\n listarRemessas();\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {rem_id}\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n render: ({ usu_id, ban_id, ban_descricao }) => (\r\n
\r\n \r\n
\r\n {ban_descricao}\r\n \r\n \r\n Usuário {usu_id}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 105,\r\n render: ({ rem_datageracao }) => (\r\n
\r\n {moment(rem_datageracao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Quant.',\r\n align: 'center',\r\n width: 75,\r\n render: ({ rem_qtdeboletos }) => (\r\n
\r\n {rem_qtdeboletos}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n width: 180,\r\n render: ({ rem_valortotal }) => (\r\n
\r\n {FormatNumber(rem_valortotal, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (dados) => (\r\n
\r\n \r\n {/*
\r\n } />\r\n */}\r\n \r\n } onClick={() => downloadArquivo(dados)} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Button, Dropdown, Menu, Table, Checkbox, Badge, notification, Divider, Select } from \"antd\";\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { BotaoAbrirChamado, BreadcrumbPage } from \"../../components\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { DownOutlined, SaveOutlined, ExclamationCircleOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\nimport { useLocation } from 'react-router-dom';\r\nimport moment from 'moment';\r\nimport api from \"../../services/api\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function RetornoBancarioLista() {\r\n\r\n const [form] = Form.useForm();\r\n const [listaParcelas, setListaParcelas] = useState([]);\r\n const location = useLocation();\r\n const { dadosRetorno, arquivo } = location.state || {};\r\n const [movimento, setMovimento] = useState(null);\r\n const [idBanco, setIdBanco] = useState(null);\r\n const [banco, setBanco] = useState(null);\r\n const [listaBancos, setListaBancos] = useState([]);\r\n const [expandedRowKey, setExpandedRowKey] = useState(null); // Estado para controlar a linha expandida\r\n const [motivoFiltro, setMotivoFiltro] = useState(\"\");\r\n\r\n // Constante para verificar se todos os IDs dos bancos são iguais e motivo\r\n const VerificaMovimento = (parcelas) => {\r\n let firstId = parcelas[0].codigoMovimentoRetorno;\r\n let firstIdBanco = parcelas[0].ban_id;\r\n return parcelas.every(item => item.codigoMovimentoRetorno === firstId && item.ban_id === firstIdBanco);\r\n };\r\n\r\n const isValid = value => value !== null && value !== undefined && value !== '';\r\n\r\n const handleExpand = (record) => {\r\n setExpandedRowKey(record.key === expandedRowKey ? null : record.key);\r\n };\r\n\r\n useEffect(() => {\r\n setListaParcelas(dadosRetorno, idBanco, motivoFiltro);\r\n }, [dadosRetorno, idBanco, motivoFiltro]);\r\n\r\n function selecionarTodos(checked) {\r\n let parcelas = [...dadosRetorno];\r\n // Verifica se todas as parcelas possuem o mesmo ban_id\r\n let verificaBanco = VerificaMovimento(parcelas);\r\n if (verificaBanco === true) {\r\n parcelas.forEach((item) => {\r\n item.selecionado = (checked ? true : false);\r\n });\r\n setListaParcelas(parcelas);\r\n }\r\n else {\r\n notification.warning({ message: 'Aviso', description: 'Não é possível Selecionar todos, pois ha parcelas de bancos diferentes!' });\r\n return;\r\n }\r\n };\r\n\r\n function selecionarItem(record) {\r\n let parcelas = [...dadosRetorno];\r\n let itemEditar = parcelas.find((item) => { return item.nossoNumero === record.nossoNumero });\r\n if (idBanco === itemEditar.ban_id || movimento === itemEditar.codigoMovimentoRetorno || movimento === null || movimento === undefined || idBanco === null || idBanco === undefined) {\r\n itemEditar.selecionado = !itemEditar.selecionado;\r\n if (itemEditar.selecionado === false) {\r\n setMovimento(null);\r\n setIdBanco(null);\r\n }\r\n else {\r\n setMovimento(itemEditar.codigoMovimentoRetorno);\r\n setIdBanco(itemEditar.ban_id);\r\n }\r\n setListaParcelas(parcelas);\r\n console.log(listaParcelas);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Selecione somente boletos do mesmo banco e que Estejam Liquidados!' });\r\n return;\r\n }\r\n };\r\n\r\n function efetuarPagamento() {\r\n let values = {};\r\n let parcelas = listaParcelas.filter((parcela) => { return parcela.selecionado });\r\n values.dataPagamentoRecebimento = moment(parcelas[0].dataPagamento).format('DD/MM/YYYY');\r\n values.valorTotalParcelas = parcelas.reduce((soma, parcela) => soma + (parcela.valorPago || 0), 0);\r\n values.parcelaboleto = tratarParcelas(parcelas);\r\n api.post('RetornoBoleto/IncluirRetorno', values).then(res => {\r\n notification.success({ message: 'Aviso!', description: 'Parcelas liquidadas com sucesso!' });\r\n \r\n }).catch(\r\n (erro) => {\r\n notification.warning({ message: `Aviso!`, description: `Não foi possivel liquidar parcelas!` });\r\n }\r\n ).finally(() => {\r\n });\r\n };\r\n\r\n function tratarParcelas(listaParcelas) {\r\n let parcelas = [];\r\n listaParcelas.forEach((item) => {\r\n let dados = {\r\n prc_id: isValid(item.prc_id) ? item.prc_id : null,\r\n prc_numeroparcela: item.prc_numeroparcela,\r\n valorParcela: isValid(item.prc_valor) ? item.prc_valor : 0,\r\n prc_datavencimento: isValid(item.datavencimento) ? item.datavencimento : null,\r\n dataPagamento: isValid(item.dataPagamento) ? item.dataPagamento : null,\r\n prc_status: 2,\r\n valorPagoRecebido: isValid(item.valorPago) ? item.valorPago : 0,\r\n valorAcrescimo: isValid(item.valorAcrescimo) ? item.valorAcrescimo : 0,\r\n valorDesconto: isValid(item.valorDesconto) ? item.valorDesconto : 0,\r\n valorMultaJuros: isValid(item.valorMultaJuros) ? item.valorMultaJuros : 0,\r\n fpg_id: isValid(item.fpg_id) ? item.fpg_id : null,\r\n ctc_id: isValid(item.ctc_id) ? item.ctc_id : null,\r\n cpg_id: isValid(item.cpg_id) ? item.cpg_id : null,\r\n valorFormaPgto: isValid(item.formaPgto) ? item.formaPgto : 0,\r\n valorDescontoFormaPgto: isValid(item.valorDescontoFormaPgto) ? item.valorDescontoFormaPgto : 0,\r\n valorJurosFormaPgto: isValid(item.valorJurosFormaPgto) ? item.valorJurosFormaPgto : 0,\r\n //bce_id: isValid(item.bce_id) ? item.bce_id : null,\r\n //imp_id: isValid(item.imp_id) ? item.imp_id : null,\r\n ctg_id: isValid(item.ctg_id) ? item.ctg_id : null,\r\n pes_id: isValid(item.codCliente) ? item.codCliente : null,\r\n cpr_numerodocumento: isValid(item.cpr_numerodocumento) ? item.cpr_numerodocumento : null,\r\n ntf_id: isValid(item.ntf_id) ? item.ntf_id : null,\r\n nfp_id: isValid(item.nfp_id) ? item.nfp_id : null,\r\n };\r\n parcelas.push(dados);\r\n });\r\n return parcelas;\r\n };\r\n\r\n function buscarBancos(ban_id) {\r\n let filtro = [];\r\n setBanco(ban_id);\r\n filtro = !!form.getFieldValue().ban_id ? `CodigoBanco=${form.getFieldValue().ban_id}` : `CodigoBanco=${(!!ban_id ? ban_id : '')}`;\r\n filtro += !!form.getFieldValue().ban_descricao ? `&Nome=${form.getFieldValue().ban_descricao}` : \"\";\r\n api.get(`Banco/Listar?${filtro}&ordem=%2Bban_descricao`).then((res) => {\r\n if (res.status === 200) {\r\n setListaBancos(res.data);\r\n form.setFieldsValue({ ban_id: (!!form.getFieldValue().ban_id ? form.getFieldValue().ban_id : ban_id) });\r\n filtrarParcelasPorBanco(ban_id); // Filtrar parcelas por banco selecionado\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n function filtrarParcelasPorBanco(ban_id) {\r\n const parcelasFiltradas = dadosRetorno.filter(parcela => parcela.ban_id === ban_id);\r\n setListaParcelas(parcelasFiltradas);\r\n };\r\n\r\n function FiltraMotivo(e) {\r\n const motivo = e.target.value;\r\n const parcelasFiltradas = dadosRetorno.filter(parcela => parcela.ocorrencia.toLowerCase().includes(motivo.toLowerCase()));\r\n setListaParcelas(parcelasFiltradas);\r\n };\r\n\r\n function FiltroLiquidada(){\r\n const parcelasFiltradas = dadosRetorno.filter(parcela => parcela.codigoMovimentoRetorno.includes(\"06\"));\r\n setListaParcelas(parcelasFiltradas);\r\n }\r\n\r\n function FiltroEntrada(){\r\n const parcelasFiltradas = dadosRetorno.filter(parcela => parcela.codigoMovimentoRetorno.includes(\"02\"));\r\n setListaParcelas(parcelasFiltradas);\r\n }\r\n\r\n function FiltroErro(){\r\n const parcelasFiltradas = dadosRetorno.filter(parcela => parcela.codigoMovimentoRetorno.includes(\"03\"));\r\n setListaParcelas(parcelasFiltradas);\r\n }\r\n\r\n function FiltroTodos(){\r\n const parcelasFiltradas = dadosRetorno;\r\n setListaParcelas(parcelasFiltradas);\r\n }\r\n\r\n function menu() {\r\n return (\r\n \r\n { FiltroLiquidada () }}>\r\n Liquidada \r\n \r\n { FiltroErro () }}>\r\n Erros \r\n \r\n { FiltroEntrada () }} > \r\n Entrada Confirmada \r\n \r\n { FiltroTodos () }}>\r\n Todos \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {\r\n form.setFieldsValue({ ban_id: null });\r\n buscarBancos(dados);\r\n }} conteudo={\r\n ban => ({ban.ban_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n FiltraMotivo(e)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
selecionarTodos(e.target.checked)} />,\r\n align: 'center',\r\n width: 20,\r\n render: (record) => (\r\n selecionarItem(record)}\r\n />\r\n )\r\n },\r\n {\r\n width: 20,\r\n render: (record) =>\r\n {record.ban_descricao},\r\n },\r\n {\r\n width: 140,\r\n title: 'Nº Doc.:',\r\n align: 'center',\r\n render: (record) => {record.nossoNumero},\r\n },\r\n {\r\n title: 'Cliente',\r\n width: 210,\r\n render: (record) => {record.cliente},\r\n },\r\n {\r\n width: 90,\r\n title: 'Cpf/CNPJ',\r\n align: 'center',\r\n render: (record) => {record.cpfCnpjCliente},\r\n },\r\n {\r\n width: 140,\r\n title: 'Motivo',\r\n render: (record) => {record.ocorrencia},\r\n },\r\n {\r\n width: 45,\r\n title: 'Série',\r\n align: 'center',\r\n render: (record) => {record.ser_serie},\r\n },\r\n {\r\n width: 25,\r\n title: 'Par.',\r\n align: 'center',\r\n render: (record) => {record.par_numeroParcela},\r\n },\r\n {\r\n width: 60,\r\n title: 'Dat. Venc.',\r\n align: 'center',\r\n render: (record) => {moment(record.datavencimento).format('DD/MM/YYYY')}\r\n },\r\n {\r\n width: 60,\r\n title: 'Dat. Pag.',\r\n align: 'center',\r\n render: (record) => {(record.dataPagamento != \"0001-01-01T00:00:00\" && record.dataPagamento != null) ?\r\n moment(record.dataPagamento).format('DD/MM/YYYY') : 'Sem data'}\r\n },\r\n {\r\n width: 80,\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: (record) => {FormatNumber(record.prc_valor, true)},\r\n }\r\n ]}\r\n expandable={{\r\n expandedRowKeys: expandedRowKey ? [expandedRowKey] : [],\r\n onExpand: (expanded, record) => handleExpand(record),\r\n expandedRowRender: (record) => (\r\n
\r\n \r\n
\r\n Descrição Ocorrência: {record.descricaoMotivoOcorrencia}\r\n \r\n \r\n \r\n ),\r\n expandIcon: ({ expanded, onExpand, record }) =>\r\n expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n )\r\n }}\r\n locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Row, Col, Upload, Button, message, notification, Form } from \"antd\";\r\nimport { CloudUploadOutlined, UploadOutlined, ArrowRightOutlined } from \"@ant-design/icons\";\r\n\r\nimport { BreadcrumbPage, BotaoAbrirChamado } from \"../../components\";\r\nimport { getBase64 } from \"../../services/funcoes\";\r\nimport api from \"../../services/api\";\r\nimport { buscarDadosBanco, buscarDadosTabela, buscarDadosTotal, criarBanco, excluirBancoDados, incluirBanco } from \"../../services/webSql\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\r\nimport RetornoBancarioLista from '../retornoBancarioLista';\r\n\r\nexport default function RetornoBancario() {\r\n\r\n const [arquivoBase64, setArquivoBase64] = useState(\"\");\r\n const [arquivo, setArquivo] = useState(null);\r\n const [form] = Form.useForm();\r\n const [openRetorno, setOpenRetorno] = useState(false);\r\n const [carregando, setCarregando] = useState(false);\r\n const [versionDB, setVersionDB] = useState(1);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosRetorno, setDadosRetorno] = useState([]);\r\n const history = useHistory();\r\n const props = {\r\n name: 'file',\r\n multiple: false,\r\n showUploadList: false,\r\n maxCount: 1,\r\n disabled: !!arquivo,\r\n beforeUpload(file) {\r\n convertToBase64(file).then(base64 => {\r\n setArquivoBase64(base64.split('base64,')[1]);\r\n setArquivo(file);\r\n });\r\n return false; // Evita upload automático\r\n }\r\n ,\r\n onRemove() {\r\n removerRetorno();\r\n }\r\n };\r\n\r\n const convertToBase64 = (file) => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n };\r\n\r\n \r\n useEffect(()=>{\r\n if(!!arquivoBase64){\r\n validarRetorno();\r\n }\r\n },[arquivoBase64])\r\n\r\n function validarRetorno() {\r\n setCarregando(true);\r\n let base64 = arquivoBase64;\r\n api.post(`RetornoBoleto/ImportarRetorno`, {base64}).then(\r\n res => {\r\n if (res.data && res.data.length > 0) {\r\n setDadosRetorno(res.data);\r\n console.log(res.data);\r\n history.push({\r\n pathname: '/retornobancariolista',\r\n state: { dadosRetorno: res.data, arquivo: arquivo }\r\n });\r\n } else {\r\n notification.error({ description: \"Arquivo sem conteúdo válido!\", message: 'Aviso' });\r\n removerRetorno();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n setCarregando(false);\r\n notification.error({ description: \"Erro ao importar arquivo!\", message:'Aviso' });\r\n removerRetorno();\r\n }\r\n ).finally(\r\n () => {\r\n setCarregando(false);\r\n }\r\n );\r\n };\r\n\r\n function removerRetorno() {\r\n setArquivoBase64(\"\");\r\n setArquivo(null);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n

\r\n \r\n

\r\n

\r\n Arraste o Arquivo de Retorno aqui!\r\n

\r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n \r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Table, Input, Checkbox, Tag, Button, Modal, notification, Divider } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, PlusOutlined, ExclamationCircleOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport { FormGW, Editar, Excluir } from \"../../components\";\r\nimport { getEmpresa, getLocal } from \"../../services/auth\";\r\n\r\nexport default function ManutencaoArmazemEstoque({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaSetor, setListaSetor] = useState([]);\r\n const [exibirAlterarSetor, setExibirAlterarSetor] = useState(false);\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const selecionarOpcao = (record, checked) => {\r\n let setores = [...listaSetor];\r\n setores.filter((setor => (record === setor)))[0].ses_ativo = checked;\r\n setListaSetor(setores);\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n buscarSetores();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n //#region alterações setor\r\n\r\n function buscarSetores() {\r\n api.get(`SetorEstoque/ListarPorArmazem?aes_id=${manutencao.dados.aes_id}&codigoLocal=${getLocal()}`).then(\r\n res => {\r\n if (manutencao.dados?.duplicar) {\r\n res.data.forEach(\r\n item => {\r\n item.aes_id = 0;\r\n item.ses_id = 0;\r\n }\r\n );\r\n }\r\n setListaSetor(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n if (manutencao.dados.duplicar) {\r\n formulario.setFieldsValue({ aes_id: 0 });\r\n }\r\n }\r\n )\r\n };\r\n\r\n function incluirSetor() {\r\n let setores = [...listaSetor];\r\n let setor = formulario.getFieldValue().ses_descricaoItem;\r\n if (!!setor) {\r\n let obj = {};\r\n obj.ses_id = 0;\r\n obj.aes_id = formulario.getFieldValue().aes_id;\r\n obj.ses_descricao = setor;\r\n obj.ses_ativo = true;\r\n setores.push(obj);\r\n setListaSetor(setores);\r\n formulario.setFieldsValue({ ses_descricaoItem: null });\r\n } else {\r\n notification.warning({ message: 'Aviso!', description: 'Informe a descrição do setor' });\r\n return false;\r\n }\r\n };\r\n\r\n function editarSetor(record) {\r\n formulario.setFieldsValue({ ses_id: record.ses_id });\r\n formulario.setFieldsValue({ ses_descricaoItem: record.ses_descricao });\r\n setExibirAlterarSetor(true);\r\n };\r\n\r\n function alterarSetor() {\r\n let setores = [...listaSetor];\r\n setores.filter((setor) => (setor.ses_id === formulario.getFieldValue().ses_id))[0].ses_descricao = formulario.getFieldValue().ses_descricaoItem;\r\n setListaSetor(setores);\r\n cancelarAlteracaoSetor();\r\n };\r\n\r\n function cancelarAlteracaoSetor() {\r\n formulario.setFieldsValue({ id: null });\r\n formulario.setFieldsValue({ ses_descricaoItem: null });\r\n setExibirAlterarSetor(false);\r\n };\r\n\r\n //#endregion\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+aes_descricao' } });\r\n };\r\n\r\n function excluirRegistro(dados) {\r\n let setores = [...listaSetor];\r\n setores = setores.filter((setor) => (setor !== dados));\r\n setListaSetor(setores);\r\n };\r\n\r\n function salvarManutencao(values) {\r\n values.setorestoques = listaSetor;\r\n values.emp_id = getEmpresa();\r\n values.loc_id = getLocal();\r\n\r\n carregando(true);\r\n if (values.aes_id) {\r\n editar(values);\r\n } else {\r\n incluir(values);\r\n };\r\n }\r\n\r\n function editar(values) {\r\n api.put(`ArmazemEstoque/Editar`, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Armazém de Estoque foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n function incluir(values) {\r\n api.post(`ArmazemEstoque/Incluir`, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Armazém de Estoque foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!exibirAlterarSetor && \r\n \r\n \r\n \r\n }\r\n {exibirAlterarSetor &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n Armazém Ativo?\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} dataSource={listaSetor} columns={\r\n [\r\n {\r\n title: 'Descrição do setor',\r\n render: ({ ses_descricao }) => (\r\n
\r\n {ses_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n align: 'center',\r\n render: (record) => (\r\n selecionarOpcao(record, checked)}\r\n >\r\n Ativo\r\n \r\n\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n render: (dados) => (\r\n
\r\n \r\n
\r\n } onClick={() => { editarSetor(dados) }} />\r\n \r\n \r\n } onClick={() => { modalExcluir(dados) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n );\r\n\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Form, Button, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoArmazemEstoque from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerArmazemEstoque() {\r\n\r\n const [formArmazemEstoque] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (!!manutencao.dados){\r\n formArmazemEstoque.setFieldsValue(manutencao.dados);\r\n }\r\n \r\n function fecharDrawer() {\r\n formArmazemEstoque.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n fecharDrawer={fecharDrawer}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Popover, Modal, notification } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport DrawerArmazemEstoque from './drawer';\r\nimport { getEmpresa, getLocal } from \"../../services/auth\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir, Duplicar } from \"../../components\";\r\n\r\nexport default function ArmazemEstoque() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n const modalDuplicarDados = (dados) => {\r\n Modal.confirm({\r\n title: 'Duplicar?',\r\n icon: ,\r\n content: `Deseja duplicar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n dados.duplicar = true;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+aes_descricao' } })\r\n }, []);\r\n\r\n function excluirRegistro(dados) {\r\n api.delete(`ArmazemEstoque/Excluir/${dados.aes_id}`).then(\r\n res => {\r\n notification.success({ description: `Armazém de Estoque excluido com sucesso!`, message: 'Sucesso' });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+aes_descricao' } });\r\n }\r\n ).catch(\r\n erro => {\r\n Modal.confirm({\r\n title: `Não foi possível excluir o Armazém de Estoque ${dados.aes_descricao}`,\r\n icon: ,\r\n content: `Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.put(`ArmazemEstoque/Inativar/${dados.aes_id}`).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: 'Armazém de Estoque inativado com sucesso!' });\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n notification.warning({ message: 'Aviso!', description: 'Não foi possivel inativar o Armazém de Estoque' });\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+aes_descricao' } });\r\n }\r\n );\r\n }\r\n });\r\n }\r\n )\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {aes_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Armazém de Estoque',\r\n render: ({ aes_descricao }) => (\r\n
\r\n {aes_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n } onClick={() => { modalDuplicarDados(dados) }} />\r\n \r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => { modalExcluir(dados) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} expandir={({ aes_endereco, aes_numero, aes_bairro }) => {\r\n return (\r\n
\r\n \r\n
\r\n Endereço: {aes_endereco || 'Não Informado'}{(!!aes_numero) ? (', ' + aes_numero) : ''}{!!(aes_bairro) ? (', ' + aes_bairro) : ''}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Row, Col, Typography, Input, Button, Tag, Table } from \"antd\";\r\nimport { SearchOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\n\r\nexport default function OutrasFiliais() {\r\n\r\n const searchInput = useRef();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [filtros, setFiltros] = useState([]);\r\n const [dadosEstoque, setDadosEstoque] = useState([]);\r\n const [dadosEstoqueGeral, setDadosEstoqueGeral] = useState([]);\r\n const [pagina, setPagina] = useState(1);\r\n const [registrosPorPagina, setRegistrosPorPagina] = useState(10);\r\n useEffect(() => {\r\n let items = [];\r\n dadosEstoqueGeral.filter(\r\n (estoque, index) => {\r\n\r\n let retorno = true;\r\n filtros.forEach((filtro, index, array) => {\r\n if (!(estoque[filtro.campo].toLowerCase().indexOf(filtro.valor.toLowerCase()) > -1) && filtro.valor !== '') {\r\n retorno = false;\r\n }\r\n if (index === array.length - 1 && retorno) {\r\n items.push(estoque)\r\n }\r\n\r\n })\r\n if (index === dadosEstoque.length - 1) {\r\n if (items.length > 0 || filtros.length > 0) {\r\n setDadosEstoque(items);\r\n } else {\r\n setDadosEstoque(dadosEstoqueGeral);\r\n }\r\n } else {\r\n setDadosEstoque(dadosEstoqueGeral);\r\n }\r\n }\r\n );\r\n }, [filtros]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n buscarDadosEstoque();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function buscarDadosEstoque() {\r\n api.get(`Estoque/Listar?CodProduto=${manutencao.dados.pro_id}&TipoLista=2`).then(\r\n res => {\r\n if (res.status === 200) {\r\n let sequencia = 1;\r\n res.data.items.forEach(item => {\r\n item.indice = sequencia;\r\n sequencia++;\r\n });\r\n setDadosEstoqueGeral(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (!!dadosEstoqueGeral && dadosEstoqueGeral.length > 0) {\r\n setDadosEstoque(dadosEstoqueGeral);\r\n }\r\n }, [dadosEstoqueGeral]);\r\n\r\n const getColumnSearchProps = dataIndex => ({\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, clearFilters }) => (\r\n
\r\n \r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => handleSearch(selectedKeys, dataIndex, clearFilters)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n filterIcon: filtered => ,\r\n onFilter: (value, record) =>\r\n record[dataIndex] ? record[dataIndex].toString().toLowerCase().includes(value.toLowerCase()) : '',\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => searchInput.current.focus());\r\n }\r\n },\r\n render: text => text\r\n });\r\n\r\n const handleSearch = (selectedKeys, dataIndex, clearFilters) => {\r\n let listaFiltros = [...filtros];\r\n let indice = listaFiltros.findIndex(f => f.campo === dataIndex);\r\n if (indice < 0) {\r\n listaFiltros.push({ campo: dataIndex, valor: selectedKeys[0], clearFilters });\r\n } else {\r\n listaFiltros[indice].valor = selectedKeys[0];\r\n }\r\n setFiltros(listaFiltros);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n A lista abaixo está sendo filtrada por:\r\n \r\n \r\n \r\n {filtros.map((_filtro, indice) => (\r\n {\r\n filtros[indice].clearFilters();\r\n let _filtros = [...filtros];\r\n _filtros.splice(indice, 1);\r\n setFiltros(_filtros);\r\n }}>\r\n {`${_filtro.valor}`}\r\n \r\n ))}\r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n {loc_codigo}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Produto',\r\n ...getColumnSearchProps('loc_descricao'),\r\n render: ({ loc_descricao }) => (\r\n
\r\n {loc_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Quantidade',\r\n align: 'center',\r\n width: 120,\r\n render: ({ pre_qtde }) => (\r\n
\r\n {pre_qtde}\r\n
\r\n ),\r\n },\r\n ]} dataSource={dadosEstoque} />\r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Row, Col, Typography, Input, Button, Tag, Table } from \"antd\";\r\nimport { SearchOutlined } from \"@ant-design/icons\";\r\n\r\nimport { TabelaDados } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function Armazem({ idProduto }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const searchInput = useRef();\r\n const [listaArmazens, setListaArmazens] = useState([]);\r\n const [filtros, setFiltros] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!idProduto)\r\n carregarDados(idProduto);\r\n }, [idProduto])\r\n\r\n useEffect(() => {\r\n console.log('Busca do Servidor com os Filtros: ', filtros);\r\n }, [filtros])\r\n\r\n function carregarDados(id) {\r\n api.get(`ArmazemEstoque/ListarArmazensProduto?idProduto=${id}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setListaArmazens(res.data);\r\n }\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n O Produto está nos seguintes armazéns:\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n {aes_descricao}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Quantidade',\r\n align: 'center',\r\n width: 150,\r\n render: ({ pre_qtde }) => (\r\n
\r\n {pre_qtde}\r\n
\r\n ),\r\n }\r\n ]}\r\n dataSource={listaArmazens}\r\n />\r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Select, Button, Tag, Drawer, Modal, Input, Checkbox } from \"antd\";\r\nimport { HomeOutlined, EyeOutlined, ArrowLeftOutlined, HddOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { OutrasFiliais, Armazem } from \"./pages\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { listaTabelaDadosActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BotaoAbrirChamado, BreadcrumbPage, SelectPaginacao, TabelaDados } from \"../../components\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { ModalGradeEstoque } from \"../../components/modals\";\r\n\r\nexport default function Estoque() {\r\n\r\n const [{ listaTabelaDados }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [openOutras, setOpenOutras] = useState(false);\r\n const [openArmazem, setOpenArmazem] = useState(false);\r\n const [consultaGeral, setConsultaGeral] = useState(false);\r\n const [listaMarca, setListaMarca] = useState([]);\r\n const [listaGrupo, setListaGrupo] = useState([]);\r\n const [listaSubGrupo, setListaSubGrupo] = useState([]);\r\n const [idProduto, setIdProduto] = useState(null);\r\n const [dadosProdutoGrade, setDadosProdutoGrade] = useState([]);\r\n const [carregando, setCarregando] = useState(false);\r\n const [totalEstoque, setTotalEstoque] = useState(0);\r\n const [totalPedido, setTotalPedido] = useState(0);\r\n const [totalCondicional, setTotalCondicional] = useState(0);\r\n const [totalPrevisoes, setTotalPrevisoes] = useState(0);\r\n const [exibeFooter, setExibeFooter] = useState(false);\r\n const [openModalEstoque, setOpenModalEstoque] = useState(false);\r\n const showDrawerOutras = record => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n setOpenOutras(true);\r\n };\r\n\r\n const onCloseOutras = () => {\r\n setOpenOutras(false);\r\n };\r\n\r\n function showDrawerArmazem(id) {\r\n setIdProduto(id);\r\n setOpenArmazem(true);\r\n };\r\n\r\n const onCloseArmazem = () => {\r\n setOpenArmazem(false);\r\n };\r\n\r\n function carregarDados() {\r\n popularDadosMarca();\r\n popularDadosGrupo();\r\n };\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: form.getFieldValue().ordem } });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!listaTabelaDados.itens && isObjetoDiffVazio(listaTabelaDados.itens)) {\r\n setCarregando(false);\r\n dispatch({ type: listaTabelaDadosActions.CHANGE, data: { itens: null } })\r\n }\r\n\r\n if (consultaGeral) {\r\n // let totalEstoque = 0;\r\n // let totalPedido = 0;\r\n // let totalCondicional = 0;\r\n // let totalPrevisoes = 0;\r\n\r\n if (!!listaTabelaDados.itens) {\r\n // listaTabelaDados.itens.forEach((item) => {\r\n // totalEstoque += parseFloat(item.pre_qtde);\r\n // totalPedido += parseFloat(item.pre_qtdePedido);\r\n // totalCondicional += parseFloat(item.pre_qtdeCondicional);\r\n // totalPrevisoes = totalEstoque - totalPedido - totalCondicional;\r\n // });\r\n // setTotalEstoque(totalEstoque); \r\n // setTotalPedido(totalPedido);\r\n // setTotalCondicional(totalCondicional);\r\n // setTotalPrevisoes(totalPrevisoes);\r\n setTotalEstoque(listaTabelaDados.itens[0].totalEstoque); \r\n setTotalPedido(listaTabelaDados.itens[0].totalPedido);\r\n setTotalCondicional(listaTabelaDados.itens[0].totalCondicional);\r\n setTotalPrevisoes(listaTabelaDados.itens[0].totalPrevisoes);\r\n }\r\n }\r\n }, [listaTabelaDados.itens]);\r\n\r\n function popularDadosMarca() {\r\n api.get('Marca/Listar?Ativa=true&order=+mar_nome').then(\r\n res => {\r\n setListaMarca(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function popularDadosGrupo() {\r\n api.get(`GrupoProduto/Listar?filtro&order=+gru_nome`).then(\r\n res => {\r\n setListaGrupo(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function popularDadosSubGrupo(gru_id) {\r\n api.get(`SubGrupo/Listar?CodigoGrupo=${gru_id}&ordem=+sgp_nome`).then(\r\n res => {\r\n setListaSubGrupo(res.data.items);\r\n form.setFieldsValue({ sgp_id: null });\r\n consultar();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function consultaTodosProd() {\r\n setConsultaGeral(true);\r\n consultar(true);\r\n };\r\n\r\n\r\n function filtro(tpLista = 1) {\r\n let grupo = !!form.getFieldValue().gru_id ? \"&CodGrupo=\" + form.getFieldValue().gru_id : '';\r\n let marca = !!form.getFieldValue().mar_id ? \"&CodMarca=\" + form.getFieldValue().mar_id : '';\r\n let produto = !!form.getFieldValue().pro_id ? \"&CodProduto=\" + form.getFieldValue().pro_id : '';\r\n let subGrupo = !!form.getFieldValue().sgp_id ? \"&CodSubGrupo=\" + form.getFieldValue().sgp_id : '';\r\n let filtroDesc = !!form.getFieldValue().filtro ? \"&filtro=\" + form.getFieldValue().filtro : '';\r\n let filtroTpEstoque = !!form.getFieldValue().tpEstoque ? \"&TpEstoque=\" + form.getFieldValue().tpEstoque : '';\r\n let ativo = !!form.getFieldValue().ativo ? \"&Ativo=\" + form.getFieldValue().ativo : '';\r\n let fil = `${filtroDesc + grupo + marca + produto + subGrupo + filtroTpEstoque + ativo + \"&TipoLista=\" + tpLista }`;\r\n\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: fil, filtro: '', ordem: '+pro_descricao' } });\r\n }\r\n\r\n function consultar() {\r\n filtro();\r\n };\r\n\r\n function buscarProduto() {\r\n filtro(3);\r\n };\r\n\r\n function listarGrades(record) {\r\n setDadosProdutoGrade(record);\r\n setOpenModalEstoque(true);\r\n };\r\n\r\n function pesqProdutoUnico() {\r\n setConsultaGeral(false);\r\n };\r\n\r\n function onChangeOrdem(val) {\r\n if (consultaGeral) {\r\n consultar(val);\r\n } else {\r\n buscarProduto();\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: form.getFieldValue().ordem } });\r\n }\r\n\r\n //onChangeAtivos\r\n function onChangeAtivos(val) {\r\n if (consultaGeral) {\r\n consultar(val);\r\n } else {\r\n buscarProduto();\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: form.getFieldValue().ordem } });\r\n }\r\n\r\n function mostrarFooter() {\r\n setExibeFooter(!exibeFooter);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n
\r\n
\r\n \r\n
\r\n {!consultaGeral &&\r\n \r\n { buscarProduto(value) }}\r\n conteudo={\r\n pro => (\r\n {pro.pro_codigo} - {pro.pro_descricao}
\r\n {!!pro.pro_ean ? 'EAN/GTIN:' + pro.pro_ean : ''}\r\n {!!pro.pro_ean && !!pro.prg_id ?
: ''}\r\n {!!pro.prg_id ? 'Grade: ' + pro.descricaograde : ''}\r\n
)\r\n } />\r\n
}\r\n {consultaGeral && \r\n { consultar() }} />\r\n }\r\n \r\n {consultaGeral && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n consultar()}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n \r\n {!!!consultaGeral &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!!consultaGeral &&\r\n <>\r\n \r\n \r\n { consultar() }}\r\n conteudo={mar => (\r\n {mar.mar_nome}\r\n )} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {mostrarFooter()}}>Exibir Totais\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n }\r\n
\r\n (\r\n
\r\n \r\n {pro_codigo}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Produto',\r\n width: 400,\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'EAN',\r\n width: 100,\r\n render: ({ pro_ean, possuiGrade }, record) => (\r\n
\r\n \r\n
\r\n {pro_ean || 'Não Informado'}\r\n \r\n \r\n {!!possuiGrade ?\r\n : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Preço (R$)',\r\n align: 'right',\r\n width: 90,\r\n render: ({ precoVendaMinimo, precoVendaMaximo }) => (\r\n
\r\n {parseFloat(precoVendaMaximo) > parseFloat(precoVendaMinimo) ?
\r\n {FormatNumber(precoVendaMinimo, true)} \r\n até {FormatNumber(precoVendaMaximo, true)} \r\n
:
\r\n {FormatNumber(precoVendaMinimo, true)} \r\n
}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Estoque',\r\n align: 'center',\r\n width: 100,\r\n render: ({ pre_qtde }) => (\r\n
\r\n {pre_qtde}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Pedido',\r\n align: 'center',\r\n width: 100,\r\n render: ({ pre_qtdePedido }) => (\r\n
\r\n {pre_qtdePedido}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Condicional',\r\n align: 'center',\r\n width: 100,\r\n render: ({ pre_qtdeCondicional }) => (\r\n
\r\n {pre_qtdeCondicional}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Previsão',\r\n align: 'center',\r\n width: 100,\r\n render: ({ pre_qtde, pre_qtdePedido, pre_qtdeCondicional }) => (\r\n
\r\n {parseFloat(pre_qtde) - parseFloat(pre_qtdePedido) - parseFloat(pre_qtdeCondicional)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Totalizador:\r\n \r\n \r\n \r\n Estoque: \r\n {FormatNumber(totalEstoque, true)}\r\n \r\n \r\n \r\n Pedidos: \r\n {FormatNumber(totalPedido, true)}\r\n \r\n \r\n \r\n Condicionais: \r\n {FormatNumber(totalCondicional, true)}\r\n \r\n \r\n \r\n Previsões: \r\n {FormatNumber(totalPrevisoes, true)}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setOpenModalEstoque(false)} />\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Descriptions, Select, Input, InputNumber, Button, Table, Tag, Tooltip } from \"antd\";\r\nimport { ArrowLeftOutlined, BarcodeOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { SelectProduto } from \"../../components\";\r\n\r\nexport default function CustosInventario({ formulario, exibirCustos, setExibirCustos, itensGrade, grade}) {\r\n\r\n const [itemProduto, setItemProduto] = useState(true);\r\n const [carregando, setCarregando] = useState(false);\r\n const [ehFracionado, setEhFracionado] = useState(false);\r\n const [ listaProduto, setListaProduto] = useState();\r\n\r\n const togglePesquisa = () => {\r\n resetarCampos();\r\n setItemProduto(!itemProduto);\r\n };\r\n\r\n const custoMedio = {\r\n title: 'Custo Médio (R$)',\r\n align: 'right',\r\n width: 140,\r\n render: ({ prg_id, pre_valorcustomedio }) => (\r\n
\r\n \r\n
\r\n )\r\n };\r\n\r\n const custoComIcms = {\r\n title: 'Custo com ICMS (R$)',\r\n align: 'right',\r\n width: 140,\r\n render: ({ prg_id, pre_valorcustocomicms }) => (\r\n
\r\n \r\n
\r\n )\r\n };\r\n\r\n const custoSemIcms = {\r\n title: 'Custo sem ICMS (R$)',\r\n align: 'right',\r\n width: 140,\r\n render: ({ prg_id, pre_valorcustosemicms }) => (\r\n
\r\n \r\n
\r\n )\r\n };\r\n\r\n const custoUltimaCompra = {\r\n title: 'Custo Ultima Compra (R$)',\r\n align: 'right',\r\n width: 140,\r\n render: ({ prg_id, pre_valorcustoultimacompra }) => (\r\n
\r\n \r\n
\r\n )\r\n };\r\n\r\n useEffect(() => {\r\n setListaProduto();\r\n }, []);\r\n\r\n function resetarCampos() {\r\n let custoMedio = !!formulario.getFieldValue().customedio;\r\n let custoComIcms = !!formulario.getFieldValue().custocomicms;\r\n let custoSemIcms = !!formulario.getFieldValue().custosemicms;\r\n let custoUltimaCompra = !!formulario.getFieldValue().custoultimacompra;\r\n let dataPosicao = formulario.getFieldValue().pre_dataposicao;\r\n formulario.resetFields();\r\n itensGrade.setItensGrade([]);\r\n grade.setPossuiGrade(false);\r\n formulario.setFieldsValue({ customedio: custoMedio, custocomicms: custoComIcms, custosemicms: custoSemIcms, custoultimacompra: custoUltimaCompra, pre_dataposicao: moment(dataPosicao) });\r\n }\r\n\r\n async function onChangeProCodigo() {\r\n if (!!formulario.getFieldValue().pro_codigo) {\r\n let produto = await (await api.get(`Produto/ListaProdutoFiltro?filtro=${formulario.getFieldValue().pro_codigo}`)).data.items[0];\r\n //substituido lista por uma busca direta, ja que a listaProduto sempre vinha vazia.\r\n // let produto = listaProduto.filter(\r\n // (produto) => (produto.pro_ean === formulario.getFieldValue().pro_codigo))[0];\r\n if (!!produto && !!produto.pro_id) {\r\n validarProduto(produto.pro_id);\r\n }\r\n }\r\n };\r\n\r\n function validarProduto(idProduto) {\r\n grade.setPossuiGrade(false);\r\n validarEstoqueProduto(idProduto);\r\n setCarregando(true);\r\n };\r\n\r\n function validarEstoqueProduto(idProduto) {\r\n api.get(`Inventario/ListarProdutoCodigoDTO?CodigoProduto=${idProduto}`).then(\r\n res => {\r\n if (!!res.data && JSON.stringify(res.data) !== `{}`) {\r\n let dados = res.data[0];\r\n dados.pro_codigo = formulario.getFieldValue().pro_codigo;\r\n dados.pre_justificativa = \"Registro incluído pelo usuário para manutenção do saldo\";\r\n dados.pre_dataposicao = formulario.getFieldValue().pre_dataposicao;\r\n setEhFracionado(dados.ump_casasdecimais > 0);\r\n formulario.setFieldsValue(dados);\r\n formulario.setFieldsValue({pre_qtde: dados.pre_qtde});\r\n formulario.setFieldsValue({pro_id: dados.pro_id});\r\n validarGradeProduto(idProduto);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(() => {\r\n setCarregando(false);\r\n });\r\n };\r\n\r\n function validarGradeProduto(produtoId) {\r\n api.get(`ProdutoGrade/ListarGradesProdutos?codigoProduto=${produtoId}&order=-mgp_id`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.length > 0) {\r\n grade.setPossuiGrade(true);\r\n res.data.forEach((dados) => {\r\n formulario.setFieldsValue({ [dados.prg_id + 'gradeCustoMedio']: dados.pre_valorcustomedio })\r\n formulario.setFieldsValue({ [dados.prg_id + 'gradeCustoComIcms']: dados.pre_custocomicms })\r\n formulario.setFieldsValue({ [dados.prg_id + 'gradeCustoSemIcms']: dados.pre_custosemicms })\r\n formulario.setFieldsValue({ [dados.prg_id + 'gradeCustoUltimaCompra']: dados.pre_custoultimacompra })\r\n formulario.setFieldsValue({ [dados.prg_id + 'pre_qtde']: dados.pre_qtde })\r\n });\r\n itensGrade.setItensGrade(res.data);\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function popularCustoMedioGrade() {\r\n if (grade.possuiGrade) {\r\n if (!!formulario.getFieldValue().pre_valorcustomedio && parseFloat(formulario.getFieldValue().pre_valorcustomedio) > 0) {\r\n itensGrade.itensGrade.forEach((item) => {\r\n let campo = item.prg_id + 'gradeCustoMedio';\r\n formulario.setFieldsValue({\r\n [campo]: parseFloat(formulario.getFieldValue().pre_valorcustomedio)\r\n });\r\n });\r\n }\r\n }\r\n };\r\n\r\n function popularCustoComIcmsGrade() {\r\n if (grade.possuiGrade) {\r\n if (!!formulario.getFieldValue().pre_custocomicms && parseFloat(formulario.getFieldValue().pre_custocomicms) > 0) {\r\n itensGrade.itensGrade.forEach((item) => {\r\n let campo = item.prg_id + 'gradeCustoComIcms';\r\n formulario.setFieldsValue({\r\n [campo]: parseFloat(formulario.getFieldValue().pre_custocomicms)\r\n });\r\n });\r\n }\r\n }\r\n };\r\n\r\n function popularCustoSemIcmsGrade() {\r\n if (grade.possuiGrade) {\r\n if (!!formulario.getFieldValue().pre_custosemicms && parseFloat(formulario.getFieldValue().pre_custosemicms) > 0) {\r\n itensGrade.itensGrade.forEach((item) => {\r\n let campo = item.prg_id + 'gradeCustoSemIcms';\r\n formulario.setFieldsValue({\r\n [campo]: parseFloat(formulario.getFieldValue().pre_custosemicms)\r\n });\r\n });\r\n }\r\n }\r\n };\r\n\r\n function popularCustoUltimaCompraGrade() {\r\n if (grade.possuiGrade) {\r\n if (!!formulario.getFieldValue().pre_custoultimacompra && parseFloat(formulario.getFieldValue().pre_custoultimacompra) > 0) {\r\n itensGrade.itensGrade.forEach((item) => {\r\n let campo = item.prg_id + 'gradeCustoUltimaCompra';\r\n formulario.setFieldsValue({\r\n [campo]: parseFloat(formulario.getFieldValue().pre_custoultimacompra)\r\n });\r\n });\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {exibirCustos &&
\r\n \r\n \r\n
\r\n \r\n \r\n {moment(formulario.getFieldValue().pre_dataposicao).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!itemProduto &&\r\n \r\n \r\n validarProduto(valor)} detalhes={true} placeholder=\"Selecione o Produto\" name=\"pro_id\" form={formulario} ordem={\"pro_descricao\"} /> \r\n \r\n \r\n }\r\n {!!!itemProduto &&\r\n \r\n \r\n onChangeProCodigo()} />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n {ehFracionado ? : }\r\n \r\n \r\n }\r\n {!!formulario.getFieldValue().customedio &&\r\n \r\n { popularCustoMedioGrade() }} />\r\n \r\n }\r\n {!!formulario.getFieldValue().custocomicms &&\r\n \r\n { popularCustoComIcmsGrade() }} />\r\n \r\n }\r\n {!!formulario.getFieldValue().custosemicms &&\r\n \r\n { popularCustoSemIcmsGrade() }} />\r\n \r\n }\r\n {!!formulario.getFieldValue().custoultimacompra &&\r\n \r\n { popularCustoUltimaCompraGrade() }} />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {grade.possuiGrade &&
(\r\n
\r\n \r\n
\r\n \r\n {ean}\r\n \r\n \r\n {atributos.map(atr => (\r\n \r\n {atr.mgp_descricao}\r\n \r\n ))}\r\n \r\n \r\n\r\n )\r\n },\r\n !!formulario.getFieldValue().customedio ? custoMedio :
,\r\n !!formulario.getFieldValue().custocomicms ? custoComIcms :
,\r\n !!formulario.getFieldValue().custosemicms ? custoSemIcms :
,\r\n !!formulario.getFieldValue().custoultimacompra ? custoUltimaCompra :
,\r\n {\r\n title: 'Quantidade',\r\n width: 100,\r\n render: ({ prg_id, qtdEstoque }) => (\r\n \r\n \r\n \r\n )\r\n }]} dataSource={itensGrade.itensGrade} scroll={{ x: 900 }} />}\r\n \r\n }\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Typography, Checkbox, Button, notification, Modal, Input } from \"antd\";\r\nimport { ArrowRightOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment, { min } from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { Data, FormGW } from \"../../components\";\r\nimport { getLocal } from \"../../services/auth\";\r\nimport CustosInventario from './custosInventario';\r\n\r\nexport default function ManutencaoEstoqueInventario({ formulario, carregando, aoSalvar, exibirCustos, setExibirCustos }) {\r\n\r\n const [itensGrade, setItensGrade] = useState([]);\r\n const [possuiGrade, setPossuiGrade] = useState(false);\r\n const [listaProduto, setListaProduto] = useState([]);\r\n const [dataHora, setDataHora] = useState([]);\r\n\r\n useEffect(() => {\r\n carregarData();\r\n }, []);\r\n\r\n function carregarData() {\r\n let dataAtual = moment(new Date());\r\n formulario.setFieldsValue({ pre_dataposicao: dataAtual });\r\n let hora = dataAtual.hours();\r\n let minuto = dataAtual.minutes();\r\n if (hora < 10) hora = '0' + hora;\r\n if (minuto < 10) minuto = '0' + minuto;\r\n formulario.setFieldsValue({ pre_hora: hora + ':' + minuto });\r\n let teste = formulario.getFieldValue().pre_hora;\r\n setDataHora(hora + ':' + minuto);\r\n };\r\n\r\n function modalConfirmacao(values) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Caso já existam registros com data posterior a data ${moment(formulario.getFieldValue().pre_dataposicao).format('DD/MM/YYYY')} eles serão excluídos, deseja continuar?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n salvarManutencao(values);\r\n }\r\n });\r\n };\r\n\r\n function changeExibirCustos() {\r\n if (!!formulario.getFieldValue().customedio || !!formulario.getFieldValue().custocomicms\r\n || !!formulario.getFieldValue().custosemicms || !!formulario.getFieldValue().custoultimacompra) {\r\n if (!!formulario.getFieldValue().pre_dataposicao) {\r\n setExibirCustos(!exibirCustos);\r\n } else {\r\n notification.warning({ description: `Informe a data da posição do inventário`, message: 'Aviso' })\r\n }\r\n } else {\r\n notification.warning({ description: 'Selecione pelo menos um custo para ser informado no inventário!', message: 'Aviso' })\r\n }\r\n };\r\n\r\n function validarValoresInformados(valores) {\r\n let retorno = true;\r\n let campos = [];\r\n if (!!formulario.getFieldValue().customedio && !!!valores.pre_valorcustomedio) {\r\n retorno = false;\r\n campos.push(\"Custo Médio\");\r\n }\r\n if (!!formulario.getFieldValue().custocomicms && !!!valores.pre_custocomicms) {\r\n retorno = false;\r\n campos.push(\"Custo com Icms\");\r\n }\r\n if (!!formulario.getFieldValue().custosemicms && !!!valores.pre_custosemicms) {\r\n retorno = false;\r\n campos.push(\"Custo sem Icms\");\r\n }\r\n if (!!formulario.getFieldValue().custoultimacompra && !!!valores.pre_custoultimacompra) {\r\n retorno = false;\r\n campos.push(\"Custo Ultima Compra\");\r\n }\r\n if (!retorno) {\r\n notification.error({ description: `Os campos: ${campos.join(\",\")} devem possuir valores maiores do que R$ 0,00`, message: \"Aviso\" });\r\n }\r\n return retorno;\r\n };\r\n\r\n function salvarManutencao(valores) {\r\n valores.pro_id = formulario.getFieldValue().pro_id;\r\n let teste = formulario.getFieldValue().pre_hora;\r\n let dados = {};\r\n let dadosItens = {};\r\n let listaInventario = [];\r\n let dataHoraPosicao = moment(formulario.getFieldValue().pre_dataposicao);\r\n let horas = '00';\r\n let minutos = '00';\r\n if (!!moment(formulario.getFieldValue().pre_hora) || !!moment(dataHora) ) {\r\n horas = (!!formulario.getFieldValue().pre_hora ? formulario.getFieldValue().pre_hora : dataHora).substring(0, 2);\r\n minutos = (!!formulario.getFieldValue().pre_hora ? formulario.getFieldValue().pre_hora : dataHora).substring(3, 5);\r\n }\r\n dataHoraPosicao.set(\"hour\", parseInt(horas)); // Setando a hora\r\n dataHoraPosicao.set(\"minute\", parseInt(minutos)); // Setando os minutos\r\n \r\n valores.pre_dataposicao = dataHoraPosicao;\r\n\r\n if (!!valores.pro_id) {\r\n carregando(true);\r\n let form = formulario.getFieldValue();\r\n if (!validarValoresInformados(valores)) {\r\n carregando(false);\r\n return;\r\n }\r\n if (itensGrade.length > 0) {\r\n itensGrade.forEach((item) => {\r\n dadosItens = {};\r\n dadosItens.pre_valorcustomedio = !!form[item.prg_id + 'gradeCustoMedio'] ? parseFloat(form[item.prg_id + 'gradeCustoMedio']) : null;\r\n dadosItens.pre_custocomicms = !!form[item.prg_id + 'gradeCustoComIcms'] ? parseFloat(form[item.prg_id + 'gradeCustoComIcms']) : null;\r\n dadosItens.pre_custosemicms = !!form[item.prg_id + 'gradeCustoSemIcms'] ? parseFloat(form[item.prg_id + 'gradeCustoSemIcms']) : null;\r\n dadosItens.pre_custoultimacompra = !!form[item.prg_id + 'gradeCustoUltimaCompra'] ? parseFloat(form[item.prg_id + 'gradeCustoUltimaCompra']) : null;\r\n dadosItens.pre_qtde = form[item.prg_id + 'pre_qtde'];\r\n dadosItens.pre_dataposicao = valores.pre_dataposicao;\r\n dadosItens.pre_justificativa = valores.pre_justificativa;\r\n dadosItens.pro_id = valores.pro_id;\r\n dadosItens.prg_id = item.prg_id;\r\n dadosItens.loc_id = parseInt(getLocal());\r\n listaInventario.push(dadosItens);\r\n });\r\n } else {\r\n dadosItens.pre_custocomicms = !!form.pre_custocomicms ? parseFloat(form.pre_custocomicms) : null;\r\n dadosItens.pre_valorcustomedio = !!form.pre_valorcustomedio ? parseFloat(form.pre_valorcustomedio) : null;\r\n dadosItens.pre_custosemicms = !!form.pre_custosemicms ? parseFloat(form.pre_custosemicms) : null;\r\n dadosItens.pre_custoultimacompra = !!form.pre_custoultimacompra ? parseFloat(form.pre_custoultimacompra) : null;\r\n dadosItens.pre_dataposicao = valores.pre_dataposicao;\r\n dadosItens.pre_justificativa = valores.pre_justificativa;\r\n dadosItens.pro_id = valores.pro_id;\r\n dadosItens.prg_id = valores.prg_id;\r\n dadosItens.pre_qtde = valores.pre_qtde;\r\n listaInventario.push(dadosItens);\r\n }\r\n dados.manutencaoInventario = listaInventario;\r\n console.log(\"dados\", dados);\r\n api.post(`Inventario/ManutencaoInventario`, dados).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: 'Inventário adicionado com sucesso!' });\r\n }\r\n ).catch(\r\n erro => {\r\n carregando(false);\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n formulario.resetFields();\r\n carregando(false);\r\n setPossuiGrade(false);\r\n setItensGrade([]);\r\n setExibirCustos(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n notification.warning({ description: 'Favor preencher o formulario!', message: 'Aviso' });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n {!!!exibirCustos &&
\r\n \r\n
\r\n \r\n Utilize este processo para registrar alterações no estoque de algum produto, isto é, alterar a quantidade já existente e que não condiz com o estoque real.\r\n \r\n \r\n \r\n \r\n \r\n \r\n Custo Médio \r\n \r\n \r\n \r\n \r\n Custo Com ICMS \r\n \r\n \r\n \r\n \r\n Custo Sem ICMS \r\n \r\n \r\n \r\n \r\n Custo Última Compra \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions } from '../../actions';\r\nimport ManutencaoEstoqueInventario from './manutencao';\r\n\r\nexport default function DrawerEstoque() {\r\n\r\n const [formEstoqueInventario] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [exibirCustos, setExibirCustos] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formEstoqueInventario.setFieldsValue(manutencao.dados);\r\n } else {\r\n //formEstoqueInventario.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formEstoqueInventario.resetFields();\r\n setExibirCustos(false);\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n fecharDrawer={() => { fecharDrawer() }}\r\n footer={\r\n
\r\n {!exibirCustos &&\r\n \r\n
\r\n \r\n \r\n }\r\n {exibirCustos &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Select, Button, Tag, InputNumber, Tooltip } from \"antd\";\r\nimport { SearchOutlined, BarcodeOutlined } from \"@ant-design/icons\";\r\nimport { FormGW, InputPreco, SelectProduto } from \"../../components\";\r\n\r\nimport DrawerEstoque from './drawer';\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions } from '../../actions';\r\nimport { BreadcrumbPage, BotaoAbrirChamado, TabelaDados, BotaoIncluirDados } from \"../../components\";\r\n\r\nexport default function EstoqueManutencao() {\r\n\r\n const [{ listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [formulario] = Form.useForm();\r\n const [filtroProd, setFiltroProd] = useState('');\r\n const [itemProduto, setItemProduto] = useState(true);\r\n const [listaProduto, setListaProduto] = useState([]);\r\n const [form] = Form.useForm();\r\n const [listaSelect, setListaSelect] = useState([]);\r\n const [atualizarListaProd, setAtualizarListaProd] = useState(false);\r\n\r\n const togglePesquisa = () => {\r\n setItemProduto(!itemProduto);\r\n };\r\n\r\n useEffect(() => {\r\n if (!!filtroProd) {\r\n setFiltroProd('');\r\n setAtualizarListaProd(true);\r\n }\r\n }, [filtroProd]);\r\n\r\n useEffect(() => {\r\n buscarProduto();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (listaSelectPaginacao?.itens.length > 0) {\r\n setListaSelect(listaSelectPaginacao.itens);\r\n }\r\n }, [listaSelectPaginacao?.itens]);\r\n\r\n function buscarProduto() {\r\n api.get(`Produto/ListaProdutoFiltro?&ordem=+pro_descricao`).then(\r\n res => {\r\n let sequencia = 1;\r\n res.data.items.forEach((produto) => {\r\n produto.index = sequencia;\r\n sequencia++;\r\n });\r\n setListaProduto(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function pesquisarInventario() {\r\n let dados = [...listaSelect];\r\n let key = formulario.getFieldValue().pro;\r\n let codProd = \"\";\r\n if (!!key || key == 0) {\r\n let pro = dados.find((item) => item.key === key);\r\n codProd = `&CodigoProduto=${pro.pro_id}`;\r\n }\r\n\r\n let mes = !!form.getFieldValue().inv_mes ? `&mes=${form.getFieldValue().inv_mes}` : ``;\r\n let ano = !!form.getFieldValue().inv_ano ? `&ano=${form.getFieldValue().inv_ano}` : ``;\r\n let parametro = `${mes}${ano}${codProd}`\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: parametro } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '%2Bpro_descricao' } });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } }); }}>\r\n LANÇAMENTO\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!itemProduto &&\r\n \r\n\r\n \r\n { pesquisarInventario(dados) }}\r\n filtroPesq={filtroProd} atualizaComponente={atualizarListaProd} />\r\n \r\n \r\n }\r\n {!!itemProduto === false &&\r\n \r\n \r\n { pesquisarInventario() }} />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {pro_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Inventário',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'EAN',\r\n width: 180,\r\n render: ({ pro_ean }) => (\r\n
\r\n {pro_ean || '-'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Mês',\r\n width: 80,\r\n align: 'center',\r\n render: ({ mes }) => (\r\n
\r\n {mes}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ano',\r\n width: 80,\r\n align: 'center',\r\n render: ({ ano }) => (\r\n
\r\n {ano}\r\n
\r\n )\r\n },\r\n {\r\n width: 100,\r\n align: 'center',\r\n title: 'Quantidade',\r\n render: ({ pre_qtde }) => (\r\n
\r\n {pre_qtde || '-'}\r\n
\r\n )\r\n },\r\n ]} />\r\n
\r\n \r\n \r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Table, Tag } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nexport default function Log({ dadosItens }) {\r\n\r\n return (\r\n
\r\n
(\r\n \r\n {pro_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Produto',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde',\r\n align: 'center',\r\n render: ({ iic_quantidade }) => (\r\n
\r\n {iic_quantidade}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data/Hora',\r\n align: 'center',\r\n render: ({ iic_datahora }) => (\r\n
\r\n {moment(iic_datahora).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Usuário',\r\n render: ({ usu_nome }) => (\r\n
\r\n {usu_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Grade',\r\n render: ({ grade }) => (\r\n
\r\n {grade}\r\n
\r\n ),\r\n },\r\n ]} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Input, Modal, notification, Form, Table } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { ModalItemInventario } from \"../../components/modals\";\r\nimport { TabelaDados } from \"../../components\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { useStateValue } from '../../state';\r\n\r\n\r\nexport default function Itens({ form, dadosItens, TipoCodigoProduto, onCloseModalItem }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [abrirModalItem, setAbrirModalItem] = useState();\r\n const [dadosRegistro, setDadosRegistro] = useState({});\r\n const [listaItem, setListaItem] = useState([]);\r\n\r\n const onCloseModal = () => {\r\n setAbrirModalItem(false);\r\n onCloseModalItem();\r\n };\r\n const [situacao] = useState({\r\n 0: 'Falta',\r\n 1: 'Ok',\r\n 2: 'Sobra'\r\n });\r\n\r\n const verificaSituacao = record => {\r\n let retorno = 0;\r\n if (record.ivi_estoqueanterior > record.ivi_estoqueatual) {\r\n retorno = 0;\r\n } else if (record.ivi_estoqueanterior === record.ivi_estoqueatual) {\r\n retorno = 1;\r\n } else if (record.ivi_estoqueanterior < record.ivi_estoqueatual) {\r\n retorno = 2;\r\n }\r\n return retorno;\r\n };\r\n const filtroItens = valor => {\r\n api.get(`Inventario/ListarItens?InventarioId=${form.getFieldValue().inv_id}&Filtro=${valor}&PageSize=100&Order=-ivi_id&PageNumber=1`).then(\r\n\r\n res => {\r\n res.data.items.forEach(item => {\r\n item.situacao_id = verificaSituacao(item);\r\n item.situacao = situacao[verificaSituacao(item)];\r\n });\r\n setListaItem(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n // let itens = [...dadosItens.listaDadosItens];\r\n // itens = itens.filter(dados => {\r\n // return (dados.grade.toLowerCase().indexOf(valor) > -1 || dados.pro_descricao.toLowerCase().indexOf(valor) > -1 || dados.pro_codigo.toString().indexOf(valor) > -1);\r\n // });\r\n // setListaItem(itens);\r\n };\r\n\r\n // useEffect(() => {\r\n // let sql = \"\";\r\n // sql += !!form.getFieldValue().inv_id ? `&InventarioId=${form.getFieldValue().inv_id}` : \"\";\r\n // dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: sql, ordem: '-ivi_id' } });\r\n // }, []);\r\n\r\n useEffect(() => {\r\n if (!!dadosItens.listaDadosItens) {\r\n setListaItem(dadosItens.listaDadosItens);\r\n if (!!form.getFieldValue().pesquisa) {\r\n filtroItens(form.getFieldValue().pesquisa);\r\n }\r\n }\r\n }, [dadosItens.listaDadosItens]);\r\n\r\n function excluirItem(dados) {\r\n Modal.confirm({\r\n title: `Remover produto ${dados.pro_descricao}?`,\r\n icon: ,\r\n onOk() {\r\n api.delete(`Inventario/RemoverItem/${dados.ivi_id}`).then(\r\n res => {\r\n notification.success({ description: 'Item do inventário excluído com sucesso!', message: 'Aviso!' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n onCloseModalItem();\r\n }\r\n )\r\n }\r\n });\r\n };\r\n return (\r\n
\r\n \r\n
\r\n \r\n { filtroItens(valor) }} allowClear />\r\n \r\n \r\n \r\n
\r\n
(\r\n \r\n {pro_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Produto',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Grade',\r\n render: ({ grade }) => (\r\n
\r\n {grade || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde. Anterior',\r\n align: 'center',\r\n width: 110,\r\n render: ({ ivi_estoqueanterior }) => (\r\n
\r\n {ivi_estoqueanterior}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde. Atual',\r\n align: 'center',\r\n width: 110,\r\n render: ({ ivi_estoqueatual }) => (\r\n
\r\n {ivi_estoqueatual}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Situação',\r\n align: 'center',\r\n width: 100,\r\n render: ({ situacao_id, situacao }) => (\r\n \r\n {situacao}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Inventário Nº: {!!inventario.inv_numero ? inventario.inv_numero : null}\r\n \r\n \r\n Iniciado em: {moment(dataAtual).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n \r\n \r\n Responsável: {inventario.usu_nome}\r\n \r\n \r\n \r\n \r\n \r\n { setValorFracionado(!valorFracionado); }}>\r\n Qtde Fracionada \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!produtoPorEAN &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { adicionarItem(valor) }} />\r\n \r\n \r\n \r\n \r\n { adicionarItemQuantidade() }}\r\n min={0}\r\n precision={valorFracionado ? 3 : 0} />\r\n \r\n \r\n \r\n }\r\n {produtoPorEAN &&\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { config.somLeituraItem = !config.somLeituraItem }}>\r\n Registrar um Item \r\n \r\n \r\n \r\n { config.somErroLeituraItem = !config.somErroLeituraItem }}>\r\n Ocorrer Erro ao Registrar um Item \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \"Totalizadores\" Totalizadores\r\n \r\n Abaixo encontra-se os Totalizadores do seu estoque. \r\n \r\n \r\n \r\n \r\n \r\n {inventario.qtdeEstoque}\r\n \r\n \r\n \r\n \r\n {inventario.qtdeEstoqueAnterior}\r\n \r\n \r\n \r\n \r\n {inventario.qtdeFalta}\r\n \r\n \r\n \r\n \r\n {inventario.qtdeSobra}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Log\r\n \r\n \r\n Itens\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!listaItem === false &&\r\n \r\n \r\n \r\n }\r\n {!!listaItem &&\r\n \r\n \r\n \r\n }\r\n \r\n { setExibirSenha(false); finalizarInventario(dados); }} />\r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { DrawerNav } from '../../components';\r\nimport { useStateValue } from '../../state';\r\nimport ManutencaoInventario from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerInventario() {\r\n\r\n const [formInventario] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [permiteSalvar, setPermiteSalvar] = useState(false);\r\n\r\n if (!!manutencao.dados) {\r\n formInventario.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n formInventario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-inv_numero' } });\r\n setPermiteSalvar(false);\r\n setCarregando(false);\r\n };\r\n\r\n const onClose = () => {\r\n fecharDrawer();\r\n\r\n // removido pq o inventario vai salvando a cada item lançado \r\n // Modal.confirm({\r\n // title: 'Cancelar?',\r\n // icon: ,\r\n // content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n // okText: 'Sim',\r\n // cancelText: 'Não',\r\n // centered: true,\r\n // onOk() {\r\n // fecharDrawer();\r\n // }\r\n // });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n fecharDrawer={fecharDrawer}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Button, notification, Modal, Input, Tag, Dropdown, Menu } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, SearchOutlined, ExclamationCircleOutlined, PlusOutlined, SaveOutlined, CloseOutlined, MoreOutlined, PrinterOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from '../../services/api';\r\nimport DrawerInventario from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\nimport { imprimirRelatorioJasper } from \"../../services/funcoes\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbPage, BotaoAbrirChamado, TabelaDados, Data } from \"../../components\";\r\n\r\nexport default function Inventario() {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [formulario] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [desabilitarBtnNovo, setDesabilitarBtnNovo] = useState(false);\r\n const [openModalInventario, setOpenModalInventario] = useState(false);\r\n const [dadosInventario, setDadosInventario] = useState({});\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-inv_numero' } });\r\n }, []);\r\n\r\n useEffect(() => {\r\n setDesabilitarBtnNovo(validarPermissaoTela(0));\r\n }, []);\r\n\r\n function abrirInventario() {\r\n api.post(`Inventario/Incluir`).then(\r\n res => {\r\n setDadosInventario(res.data);\r\n setOpenModalInventario(true);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n const modalExcluirInventario = dados => {\r\n Modal.confirm({\r\n title: 'Aviso: deseja excluir este inventario?',\r\n icon: ,\r\n content: `Ao realizar a exclusão de um inventário em andamento você irá remover todos os itens e log de contagem associados. Deseja realmente realizar a exclusão?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirInventario(dados);\r\n }\r\n });\r\n\r\n };\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function carregarProdInventario(dados) {\r\n setCarregando(true);\r\n let item = {};\r\n item.InventarioId = dados.inv_id;\r\n api.post(`Inventario/CarregarProdutosInventario`, item).then(\r\n res => {\r\n formulario.setFieldsValue({ inv_id: dados.inv_id });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { inv_id: dados.inv_id } } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true, editItem: false } });\r\n setCarregando(false);\r\n setOpenModalInventario(false);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n setCarregando(false);\r\n }\r\n );\r\n };\r\n\r\n function excluirInventario(dados) {\r\n api.delete(`Inventario/Excluir/${dados.inv_id}`).then(\r\n res => {\r\n notification.success({ description: 'Inventário excluído do sistema.', message: 'Aviso' });\r\n }\r\n ).catch(\r\n erro => {\r\n if (!!erro.response.data.Message) {\r\n notification.warning({ description: erro.response.data.Message, message: 'Aviso' });\r\n }\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-inv_numero' } });\r\n }\r\n );\r\n };\r\n\r\n function pesquisar() {\r\n let sql = \"\";\r\n if (!!formulario.getFieldValue().dataIncFinal && !!formulario.getFieldValue().dataIncInicial && !!formulario.getFieldValue().inventarioPesq) {\r\n sql += `&dataConclusao=${moment(formulario.getFieldValue().dataIncFinal).format('YYYY-MM-DD')}&dataInclusao=${moment(formulario.getFieldValue().dataIncInicial).format('YYYY-MM-DD')}&filtro=${formulario.getFieldValue().inventarioPesq}`\r\n }\r\n if (!!formulario.getFieldValue().inventarioPesq) {\r\n sql += `&filtro=${formulario.getFieldValue().inventarioPesq}`\r\n }\r\n if (!!formulario.getFieldValue().dataIncFinal) {\r\n sql += `&dataConclusao=${moment(formulario.getFieldValue().dataIncFinal).format('YYYY-MM-DD')}`\r\n }\r\n if (!!formulario.getFieldValue().dataIncInicial) {\r\n sql += `&dataInclusao=${moment(formulario.getFieldValue().dataIncInicial).format('YYYY-MM-DD')}`\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: sql, ordem: '-inv_numero' } });\r\n };\r\n\r\n function imprimirInventario(inv_id) {\r\n\r\n imprimirRelatorioJasper(32, { inventarioId: inv_id })\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n pesquisar(valor)} allowClear />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n {inv_numero}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Responsável',\r\n render: ({ usu_nome }) => (\r\n
\r\n {usu_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Incluído em',\r\n width: 100,\r\n render: ({ inv_datainclusao }) => (\r\n
\r\n {moment(inv_datainclusao).format(\"DD/MM/YYYY\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Situação',\r\n render: ({ inv_conclusao }) => (\r\n
\r\n {!!inv_conclusao ? ` Inventário conluído em: ${moment(inv_conclusao).format('DD/MM/YYYY HH:mm:ss')}` : 'Inventário em contagem'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Estoque',\r\n align: 'center',\r\n children: [\r\n {\r\n title: 'Atual',\r\n align: 'center',\r\n width: 110,\r\n render: ({ qtdeEstoque }) => (\r\n
\r\n {qtdeEstoque}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Anterior',\r\n align: 'center',\r\n width: 110,\r\n render: ({ qtdeEstoqueAnterior }) => (\r\n
\r\n {qtdeEstoqueAnterior}\r\n
\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: 'Itens',\r\n align: 'center',\r\n children: [\r\n {\r\n title: 'Com Sobra',\r\n align: 'center',\r\n width: 110,\r\n render: ({ qtdeSobra }) => (\r\n
\r\n {qtdeSobra}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Com Falta',\r\n align: 'center',\r\n width: 110,\r\n render: ({ qtdeFalta }) => (\r\n
\r\n {qtdeFalta}\r\n
\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record, { inv_conclusao }) => (\r\n
\r\n \r\n {!!inv_conclusao === false &&
\r\n \r\n \r\n \r\n O Inventário {dadosInventario.inv_numero} foi iniciado, deseja pré-carregar seu cadastro de produtos com a quantidade atual em estoque?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Form, Input, Checkbox, Upload, message, Tooltip, Button } from \"antd\";\r\nimport { LoadingOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport ImgCrop from \"antd-img-crop\";\r\nimport { DeleteOutlined } from \"@material-ui/icons\";\r\n\r\nexport default function TabFilial({ imageUrl, setImageUrl }) {\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [hover, setHover] = useState(false);\r\n\r\n function getBase64(img, callback) {\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () => callback(reader.result));\r\n reader.readAsDataURL(img);\r\n }\r\n\r\n function beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n if (!isJpgOrPng) {\r\n message.error('Você só pode fazer upload de arquivos JPG/PNG!');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('A imagem deve ter menos de 2 MB!');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n }\r\n\r\n const handleChange = (info) => {\r\n if (info.file.status === 'uploading') {\r\n setLoading(true);\r\n return;\r\n }\r\n getBase64(info.file.originFileObj, (imageUrl) => {\r\n setLoading(false);\r\n setImageUrl(imageUrl);\r\n });\r\n };\r\n\r\n const borderColor = hover ? \"#004b97\" : \"#d9d9d9\";\r\n const mouseEnter = () => { setHover(true); }\r\n const mouseLeave = () => { setHover(false); }\r\n const removerImagem = () => { setImageUrl(null); }\r\n\r\n const uploadButton = (\r\n
\r\n {loading ? : }\r\n
{loading ? 'Carregando...' : 'Selecionar Imagem'}
\r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Filial\" Filial\r\n \r\n \r\n Adicione as informações referente a Filial.\r\n \r\n \r\n \r\n \r\n \r\n \r\n setImageUrl(null)}\r\n maxCount={1}\r\n disabled={imageUrl}\r\n >\r\n {imageUrl ?\r\n \"avatar\"\r\n : uploadButton}\r\n \r\n \r\n { imageUrl &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Filial Ativa?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Row, Col, Typography, Divider, Form, Input } from \"antd\";\r\nimport { InputCep } from \"../../components\";\r\n\r\nexport default function TabEndereco({ verificaCep }) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Endereço\" Endereço\r\n \r\n \r\n Adicione abaixo as informações referente ao endereço.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Não sei o CEP\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Typography, Divider, Form, Input, Select, InputNumber, Checkbox, Tooltip } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { Data, InputPhone, InputCpfCnpj } from \"../../components\";\r\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function TabOutrasInformacoes() {\r\n\r\n const [exigibilidadeIssqn, setExigibilidadeIssqn] = useState([]);\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=ExigibilidadeIssqn`).then(res => {\r\n if (res.status === 200) {\r\n setExigibilidadeIssqn(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Outras Outras Informações\r\n \r\n \r\n Adicione abaixo as informações para realizar o cadastro com sucesso.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n Código ANTT\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Incentivo Fiscal ISSQN?\r\n \r\n \r\n \r\n \r\n Substituto Tributário?\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Form, Input, Button, notification } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { getIdUsuario } from \"../../services/auth\";\r\nimport { UnlockFilled } from '@ant-design/icons';\r\n\r\nexport default function TabSenhaGerencial(form) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [possuiSenha, setPossuiSenha] = useState(true);\r\n const [Usuario, setUsuario] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && isObjetoDiffVazio(manutencao.dados)) {\r\n if (!!manutencao.dados.loc_senhagerencial) {\r\n setPossuiSenha(true);\r\n } else {\r\n setPossuiSenha(false);\r\n }\r\n } else {\r\n setPossuiSenha(false);\r\n }\r\n carregarUsuario();\r\n }, [manutencao.dados]);\r\n\r\n function carregarUsuario() {\r\n let userId = parseInt(getIdUsuario());\r\n api.get(`Usuario/RetornaUsuarioId?IdUser=${userId}`).then(\r\n res => {\r\n setUsuario(res.data);\r\n console.log(\"usuario\", res.data);\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n })\r\n };\r\n\r\n function ValidarSenhaGerencial(value) {\r\n if (!!value && !!manutencao.dados.loc_id) {\r\n api.get(`Local/ValidarSenhaGerencial?LocalId=` + manutencao.dados.loc_id + `&SenhaGerencial=` + value).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n if (res.data == false)\r\n notification.error({ message: 'Atenção', description: \"Senha atual e nova senha não conferem!\" });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n notification.error({ message: 'Atenção', description: \"Não foi possível validar a senha gerencial!\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n //ta funcionando\r\n function RecuperaSenhaGerencial() {\r\n if (Usuario.usu_admin === true) {\r\n let emailUsuario = Usuario.usu_email;\r\n if (!!emailUsuario) {\r\n api.put(`Usuario/EnviarEmailRecuperarSenhaGerencial/${emailUsuario}`).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Enviamos um E-mail para você com as instruções para recuperar a senha gerencial!\" })\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({ message: `AVISO!`, description: `Usuário não encontrado!` });\r\n }\r\n )\r\n }\r\n }\r\n else {\r\n notification.error({ message: 'Atenção', description: \"Usuário não é Administrador\" });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Senha Senha Gerencial\r\n \r\n \r\n A Senha Gerencial é utilizada no Gestor Web para ser utilizada pelos gerentes e supervisores para liberar descontos acima do limite definido, vendas a prazo para clientes com limite de crétido abaixo do necessário, dentre outras operações.\r\n \r\n \r\n \r\n \r\n {possuiSenha && \r\n \r\n { ValidarSenhaGerencial(event.currentTarget.value); }} />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {possuiSenha &&\r\n \r\n }\r\n\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Tabs, Input, Select, Checkbox, Modal, notification } from \"antd\";\r\nimport { ConsoleSqlOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { Data, FormGW, InputCpfCnpj } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { consultaCNPJ, HasValue, isObjetoDiffVazio, validaForm, retornaSoNumeros } from \"../../services/funcoes\";\r\nimport { validarIE } from \"../../services/funcoesIE\";\r\nimport { TabFilial, TabEndereco, TabOutrasInformacoes, TabSenhaGerencial } from \"./tabPage\";\r\nimport { drawerActions, manutencaoActions, listagemActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoMatrizFilial({ formulario, carregando, aoSalvar, fechar }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [tipoContribuinte, setTipoContribuinte] = useState([]);\r\n const [regimeTributarioFiscal, setRegimeTributarioFiscal] = useState([]);\r\n const [imageUrl, setImageUrl] = useState(null);\r\n const [desabilitaCNPJ, setDesabilitaCNPJ] = useState(false);\r\n\r\n const salvarManutencao = () => {\r\n if (validaForm(formulario, listaValidacoes)) {\r\n carregando(true);\r\n verificaMatriz();\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n formulario.setFieldsValue(manutencao.dados);\r\n if (!!manutencao.dados?.loc_cnpj?.numero && !!manutencao.dados.loc_id) {\r\n if (!!manutencao.dados.loc_inscricaoestadual.numeroInscricaoEstadual) {\r\n formulario.setFieldsValue({ loc_inscricaoestadual: manutencao.dados.loc_inscricaoestadual.numeroInscricaoEstadual })\r\n } else {\r\n formulario.setFieldsValue({ loc_inscricaoestadual: '' })\r\n }\r\n if (!!manutencao.dados.loc_cnpj.numero) {\r\n formulario.setFieldsValue({ loc_cnpj: manutencao.dados.loc_cnpj.numero })\r\n }\r\n if (!!manutencao.dados.loc_cpfresponsavel && manutencao.dados.loc_cpfresponsavel.numero) {\r\n formulario.setFieldsValue({ loc_cpfresponsavel: manutencao.dados.loc_cpfresponsavel.numero })\r\n } else {\r\n formulario.setFieldsValue({ loc_cpfresponsavel: '' })\r\n }\r\n formulario.setFieldsValue({ loc_email: manutencao.dados.loc_email.endereco })\r\n formulario.setFieldsValue({ log_logradouro: manutencao.dados.logradouroCidade.logradouro.log_logradouro })\r\n formulario.setFieldsValue({ log_id: manutencao.dados.logradouroCidade.log_id })\r\n formulario.setFieldsValue({ cid_id: manutencao.dados.logradouroCidade.cidade.cid_id })\r\n formulario.setFieldsValue({ est_id: manutencao.dados.logradouroCidade.cidade.estado.est_id })\r\n formulario.setFieldsValue({ est_sigla: manutencao.dados.logradouroCidade.cidade.estado.est_sigla })\r\n formulario.setFieldsValue({ cid_descricao: manutencao.dados.logradouroCidade.cidade.cid_descricao })\r\n formulario.setFieldsValue({ bai_nome: manutencao.dados.logradouroCidade.bairro.bai_nome })\r\n formulario.setFieldsValue({ bai_id: manutencao.dados.logradouroCidade.bairro.bai_id })\r\n formulario.setFieldsValue({ cep_cep: manutencao.dados.logradouroCidade.cep.cep_cep })\r\n formulario.setFieldsValue({ cep_id: manutencao.dados.logradouroCidade.cep.cep_id })\r\n setDesabilitaCNPJ(true);\r\n if (!!manutencao.dados.loc_logo) setImageUrl(\"data:image/jpeg;base64,\" + manutencao.dados.loc_logo);\r\n else setImageUrl(null);\r\n }\r\n verificaCep(manutencao.dados.logradouroCidade.cep.cep_cep);\r\n } else {\r\n formulario.setFieldsValue({ loc_ativo: true })\r\n setDesabilitaCNPJ(false);\r\n }\r\n\r\n api.get(`dadosContribuinte/Buscar`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n formulario.setFieldsValue({ emp_regimetributario: res.data.emp_regimetributario })\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }, [manutencao.dados, ui.showDrawer])\r\n\r\n function verificaMatriz() {\r\n if (formulario.getFieldValue().loc_matriz) {\r\n api.get(`Local/BuscarLocalCnpj/${formulario.getFieldValue().loc_cnpj}`).then(retornoFilial => {\r\n if (retornoFilial.data.length > 0) {\r\n for (var i = 0; i < retornoFilial.data.length; i++) {\r\n if (retornoFilial.data[i].loc_cnpj.numero !== formulario.getFieldValue().loc_cnpj) {\r\n modalAlterarMatriz();\r\n } else {\r\n salvarFilial();\r\n }\r\n }\r\n } else {\r\n salvarFilial(true);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n } else {\r\n salvarFilial();\r\n }\r\n };\r\n\r\n const modalAlterarMatriz = () => {\r\n Modal.confirm({\r\n title: 'Alterar Matriz',\r\n icon: ,\r\n content: 'Esta empresa já possui um local definido como Matriz, deseja alterar para este local?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n salvarFilial(true);\r\n },\r\n onCancel() {\r\n salvarFilial();\r\n }\r\n });\r\n };\r\n\r\n function salvarFilial(matriz = false) {\r\n let values = { ...formulario.getFieldValue() };\r\n values.loc_inscricaoestadual = !!values.loc_inscricaoestadual ? values.loc_inscricaoestadual : '';\r\n values.loc_inscricaoestadual_ufestado = !!values.est_sigla ? values.est_sigla : '';\r\n if (!!values.loc_inscricaoestadual && !validarIE(values.loc_inscricaoestadual, values.loc_inscricaoestadual_ufestado)) {\r\n notification.warning({ message: 'Aviso', description: 'Inscrição Estadual informada é inválida' });\r\n return false;\r\n }\r\n values.alteraMatriz = matriz;\r\n var logo = (imageUrl == null ? \"\" : imageUrl);\r\n if (!!logo) {\r\n values.loc_logo = (logo.split(\",\", 2)[1]);\r\n } else {\r\n values.loc_logo = \"\";\r\n }\r\n if (!(!!values.loc_centrodistribuicao)) {\r\n values.loc_centrodistribuicao = false;\r\n }\r\n\r\n if (!!values.loc_senhagerencial) {\r\n if (values.novaSenhaGerencial === '') {\r\n delete values.novaSenhaGerencial;\r\n }\r\n if (values.senhaGerencialAtual === '') {\r\n delete values.senhaGerencialAtual;\r\n }\r\n }\r\n\r\n let enderecoUrl = 'local/';\r\n if (values.loc_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Local foram salvos com sucesso!\" });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Local foram salvos com sucesso!\" });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n };\r\n };\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: 'loc_descricao' } });\r\n };\r\n\r\n function error(mensagem, title = 'Atenção!') {\r\n Modal.error({\r\n title: title,\r\n content: (\r\n
\r\n

{mensagem}

\r\n
\r\n )\r\n });\r\n }\r\n\r\n const listaValidacoes = [\r\n { nome: 'loc_cnpj', obrigatorio: true, label: 'CNPJ' },\r\n { nome: 'loc_tipocontribuinte', obrigatorio: true, label: 'Tipo de Contribuinte' },\r\n { nome: 'emp_regimetributario', obrigatorio: true, label: 'Regime Tributário Fiscal' },\r\n { nome: 'loc_descricao', obrigatorio: true, label: 'Nome da Filial' },\r\n { nome: 'cep_cep', obrigatorio: true, label: 'CEP' },\r\n { nome: 'log_logradouro', obrigatorio: true, label: 'Endereço' },\r\n //{ nome: 'pee_numero', obrigatorio: true, label: 'Número' },\r\n { nome: 'bai_nome', obrigatorio: true, label: 'Bairro' },\r\n { nome: 'loc_telefone', obrigatorio: true, label: 'Telefone' }\r\n ];\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=TipoContribuinte`).then(res => {\r\n if (res.status === 200) {\r\n setTipoContribuinte(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=RegimeTributarioFiscal`).then(res => {\r\n if (res.status === 200) {\r\n setRegimeTributarioFiscal(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n }, []);\r\n\r\n function pesquisaInformacoesCep() {\r\n if (!!formulario.getFieldValue().loc_cep) {\r\n let cep = formulario.getFieldValue().loc_cep.replace('-', '');\r\n api.get(`Cidade/ListarCidadeCep?cep=${cep}`).then(retornoCep => {\r\n if (!!retornoCep.data[0]) {\r\n formulario.setFieldsValue({\r\n cid_id: retornoCep.data[0].cid_id,\r\n cep: retornoCep.data[0],\r\n loc_cep: retornoCep.data[0].cep_cep,\r\n cid_descricao: retornoCep.data[0].cid_descricao + \" / \" + retornoCep.data[0].est_sigla,\r\n siglaEstado: retornoCep.data[0].est_sigla\r\n });\r\n } else {\r\n pesquisaCepPostmon(cep, false);\r\n }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n }\r\n };\r\n\r\n function pesquisaCepPostmon(cep, possuiCep) {\r\n fetch(`https://api.postmon.com.br/v1/cep/${cep}`).then(\r\n res => res.json()\r\n ).then(\r\n retornoCep => {\r\n if (!possuiCep) {\r\n formulario.setFieldsValue({\r\n cep: {},\r\n loc_cep: retornoCep.cep,\r\n cid_descricao: retornoCep.cidade,\r\n siglaEstado: retornoCep.estado\r\n });\r\n }\r\n }, erro => {\r\n Modal.warning({\r\n content: `Cep (${cep}) não encontrado!`,\r\n });\r\n formulario.setFieldsValue({\r\n loc_cep: '',\r\n cid_descricao: ''\r\n });\r\n }\r\n );\r\n };\r\n\r\n function verificarLocal() {\r\n if (!!formulario.getFieldValue().loc_cnpj) {\r\n let cnpj = formulario.getFieldValue().loc_cnpj.replace(/\\D/g, '');\r\n api.get(`Local/BuscarLocalCnpj/${cnpj}`).then(retornoCnpjLocal => {\r\n if (!!retornoCnpjLocal.data) {\r\n Modal.warning({\r\n title: 'Aviso!',\r\n content: \"CNPJ já cadastrado!\",\r\n onOk() {\r\n formulario.setFieldsValue({ loc_cnpj: null });\r\n }\r\n });\r\n } else {\r\n consultaCNPJ(cnpj).then((retorno) => {\r\n if (retorno.status === \"ERROR\") {\r\n api.get(`Empresa/BuscarEmpresa?cnpj=${cnpj}`).then(retornoCnpj => {\r\n if (retornoCnpj.data.length > 0) {\r\n formulario.setFieldsValue({\r\n loc_inscricaoestadual: retornoCnpj.data[0].pej_inscricaoestadual,\r\n loc_telefone: retornoCnpj.data[0].psc_numero,\r\n loc_descricao: retornoCnpj.data[0].pes_nome,\r\n loc_nomefantasia: retornoCnpj.data[0].pej_nomefantasia,\r\n loc_cep: retornoCnpj.data[0].cep_cep,\r\n cidade: retornoCnpj.data[0].cid_descricao + \" / \" + retornoCnpj.data[0].est_sigla,\r\n loc_numeroestabelecimento: retornoCnpj.data[0].pee_numero,\r\n bai_nome: retornoCnpj.data[0].bai_nome,\r\n loc_complemento: retornoCnpj.data[0].pee_complemento\r\n });\r\n pesquisaInformacoesCep();\r\n }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n } else {\r\n formulario.setFieldsValue({\r\n loc_inscricaoestadual: \"\",\r\n loc_telefone: retorno.telefone.replaceAll('(', '').replaceAll(')', '').replaceAll(' ', '').replaceAll('-', ''),\r\n loc_descricao: retorno.nome,\r\n loc_nomefantasia: retorno.fantasia,\r\n loc_cep: retorno.cep.replace('.', '').replace('-', ''),\r\n cidade: retorno.municipio + \" / \" + retorno.uf,\r\n loc_numeroestabelecimento: retorno.numero,\r\n bai_nome: retorno.bairro,\r\n loc_complemento: retorno.complemento,\r\n endereco: retorno.logradouro\r\n });\r\n pesquisaInformacoesCep();\r\n }\r\n }, (erro) => {\r\n console.log('ERRO:', erro);\r\n });\r\n }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n }\r\n };\r\n\r\n const verificaCep = (cep) => {\r\n if (HasValue(cep)) {\r\n cep = retornaSoNumeros(cep);\r\n api.get(`Cidade/BuscaCidadeCep?cep=${cep}`).then(\r\n res => {\r\n if (!!res.data) {\r\n formulario.setFieldsValue({ cid_descricao: `${res.data[0].cid_descricao} / ${res.data[0].est_sigla}`, est_sigla: res.data[0].est_sigla, cep_id: res.data.cep_id });\r\n } else {\r\n fetch(`https://viacep.com.br/ws/${cep.replace(`-`, ``)}/json/`)\r\n .then(\r\n res => res.json()\r\n ).then(\r\n result => {\r\n formulario.setFieldsValue({ cid_descricao: `${result.localidade} / ${result.uf}`, est_sigla: result.uf });\r\n }).catch(\r\n error => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n );\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n )\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return { label: item.value, value: item.key, key: item.key }\r\n })} filterOption={(input, option) => option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0} placeholder=\"Selecione o Regime Tributário Fiscal\" disabled={true} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Matriz?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoMatrizFilial from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerMatrizFilial({ listarFiliais }) {\r\n\r\n const [formMatrizFilial] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formMatrizFilial.resetFields();\r\n setCarregando(false);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n { fecharDrawer();}} fechar={fecharDrawer} />\r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Popover, Form } from \"antd\";\r\nimport { EditOutlined, } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerMatrizFilial from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { info } from \"../../services/funcoes\";\r\nimport { MaskFormat, FormatFone } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { Editar, TabelaDados, BreadcrumbIncluirDados, PesquisaOrdenacao } from \"../../components\";\r\n\r\nexport default function MatrizFilial() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n function mascaraIE(iscricaoEstadual, uf) {\r\n if(iscricaoEstadual.toUpperCase() == \"ISENTO\"){\r\n return 'ISENTO';\r\n }\r\n if (uf === 'AC') {\r\n return MaskFormat(iscricaoEstadual, '00.000.000/000-00');\r\n } else if (uf === 'AM' || uf === 'GO' || uf === 'RN') {\r\n return MaskFormat(iscricaoEstadual, '00.000.000-0');\r\n } else if (uf === 'BA') {\r\n return MaskFormat(iscricaoEstadual, '000000-00');\r\n } else if (uf === 'CE' || uf === 'PB' || uf === 'RR') {\r\n return MaskFormat(iscricaoEstadual, '00000000-0');\r\n } else if (uf === 'DF') {\r\n return MaskFormat(iscricaoEstadual, '00000000000-00');\r\n } else if (uf === 'MT') {\r\n return MaskFormat(iscricaoEstadual, '0000000000-0');\r\n } else if (uf === 'MG') {\r\n return MaskFormat(iscricaoEstadual, '000.000.000-0000');\r\n } else if (uf === 'PA') {\r\n return MaskFormat(iscricaoEstadual, '00-000000-0');\r\n } else if (uf === 'PR') {\r\n return MaskFormat(iscricaoEstadual, '00000000-00');\r\n } else if (uf === 'PE') {\r\n return MaskFormat(iscricaoEstadual, '00.0.000.0000000-0');\r\n } else if (uf === 'RJ') {\r\n return MaskFormat(iscricaoEstadual, '00.000.00-0');\r\n } else if (uf === 'RS') {\r\n return MaskFormat(iscricaoEstadual, '000/0000000');\r\n } else if (uf === 'RO') {\r\n return MaskFormat(iscricaoEstadual, '000.00000-0');\r\n } else if (uf === 'SC') {\r\n return MaskFormat(iscricaoEstadual, '000.000.000');\r\n } else if (uf === 'SP') {\r\n return MaskFormat(iscricaoEstadual, '000.000.000.000');\r\n } else if (uf === 'SE') {\r\n return MaskFormat(iscricaoEstadual, '000000000-0');\r\n } else {\r\n return iscricaoEstadual;\r\n }\r\n };\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: 'loc_descricao' } }), []);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {loc_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Filial',\r\n width: '30%',\r\n render: ({ loc_matriz, loc_ativo, loc_descricao }) => (\r\n
\r\n \r\n
\r\n \r\n \r\n {loc_matriz ? 'Matriz' : 'Filial'}\r\n \r\n \r\n \r\n \r\n {loc_descricao}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CNPJ',\r\n render: ({ loc_cnpj }) => (\r\n
\r\n {MaskFormat(loc_cnpj.numero, '', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'I.E',\r\n render: ({ loc_inscricaoestadual }) => (\r\n
\r\n {(!!loc_inscricaoestadual.numeroInscricaoEstadual) ? (mascaraIE(loc_inscricaoestadual.numeroInscricaoEstadual, loc_inscricaoestadual.ufEstado)) : 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'I.M',\r\n render: ({ loc_inscricaomunicipal }) => (\r\n
\r\n {(!!loc_inscricaomunicipal) ? (loc_inscricaomunicipal) : 'Não Informada'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n render: ({ loc_telefone }) => (\r\n
\r\n {(!!loc_telefone) ? FormatFone(loc_telefone) : 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={}\r\n />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} expandir={({ loc_numeroestabelecimento, loc_email, loc_telefone, logradouroCidade }) => {\r\n return (\r\n
\r\n \r\n
\r\n Endereco : {logradouroCidade.logradouro.log_logradouro} {loc_numeroestabelecimento}, {logradouroCidade.bairro.bai_nome}, {logradouroCidade.cidade.cid_descricao}-{logradouroCidade.cidade.estado.est_sigla}\r\n \r\n \r\n Email: {loc_email.endereco}\r\n \r\n \r\n Telefone: {loc_telefone}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Typography, Input, Button, Radio, Divider, message, notification, Modal, Select } from \"antd\";\r\nimport { CloseOutlined, CloudUploadOutlined, ContainerOutlined, SaveOutlined, UploadOutlined, ExclamationCircleOutlined, EyeOutlined } from \"@ant-design/icons\";\r\nimport Dragger from \"antd/lib/upload/Dragger\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { getLocal, linkApi } from \"../../services/auth\";\r\nimport { getBase64 } from \"../../services/funcoes\";\r\nimport { BreadcrumbAbrirChamado } from \"../../components\";\r\n\r\nexport default function ConfiguracaoNfeNfce() {\r\n const [formulario] = Form.useForm();\r\n const [config, setConfig] = useState({});\r\n const [exibeMotivoContingencia, setExibeMotivoContingencia] = useState(false);\r\n const [exibeMotivoContingenciaNFCe, setExibeMotivoContingenciaNFCe] = useState(false);\r\n const [certificadoValido, setCertificadoValido] = useState(false);\r\n const [ambienteEmissao, setAmbienteEmissao] = useState(1);\r\n const [formaEmissaoNormal, setFormaEmissaoNormal] = useState([]);\r\n useEffect(() => {\r\n carregarDados();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!formulario.getFieldValue().lcn_ambienteemissao) {\r\n setAmbienteEmissao(parseInt(formulario.getFieldValue().lcn_ambienteemissao));\r\n }\r\n }, [formulario])\r\n\r\n\r\n // Gerado em https://designer.mocky.io/manage\r\n const props = {\r\n name: 'file',\r\n multiple: false,\r\n action: `${linkApi}LocalConfigNfe/RetornaOk`,\r\n headers: {\r\n authorization: 'authorization-text',\r\n },\r\n onChange(info) {\r\n if (info.file.status !== 'uploading') {\r\n console.log(info.file, info.fileList);\r\n }\r\n if (info.file.status === 'done') {\r\n getBase64(info.file.originFileObj).then(\r\n base64 => {\r\n let dados = { ...config };\r\n dados.conteudo = base64;\r\n dados.nome = info.file.name;\r\n dados.loc_id = getLocal();\r\n setConfig(dados);\r\n message.success(`${info.file.name} arquivo enviado com sucesso.`);\r\n }\r\n );\r\n } else if (info.file.status === 'error') {\r\n message.error(`${info.file.name} falha no envio do arquivo.`);\r\n }\r\n },\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n window.location = '/Home#/'\r\n }\r\n });\r\n };\r\n function salvarConf(valores) {\r\n let dados = { ...valores, ...config };\r\n if (!(!!!config.conteudo) && certificadoValido == false) {\r\n notification.warning({ description: \"Certificado ou senha informada invalido!\", message: \"Aviso\" });\r\n } else {\r\n\r\n let enderecoUrl = 'LocalConfigNfe/';\r\n if (dados.lcn_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, dados).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Configuração do envio de NF-e salvos com sucesso!\" });\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }).finally(\r\n () => {\r\n });\r\n } else {\r\n enderecoUrl += `Incluir`;\r\n api.post(enderecoUrl, dados).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Configuração do envio de NF-e salvos com sucesso!\" });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n }\r\n );\r\n }\r\n }\r\n };\r\n\r\n function carregarDados() {\r\n api.get(`Enum/Listar?nome=FormaRetornoEmissaoNormalSefaz`).then(res => {\r\n setFormaEmissaoNormal(res.data);\r\n });\r\n\r\n api.get(`LocalConfigNfe/Listar`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dados = { ...config };\r\n dados.lcn_validadecertificado = res.data.lcn_validadecertificado;\r\n setAmbienteEmissao(res.data.lcn_ambienteemissao);\r\n if (res.data.lcn_tipoemissao > 1) {\r\n setExibeMotivoContingencia(true);\r\n }\r\n if (res.data.lcn_tipoemissaonfce > 1) {\r\n setExibeMotivoContingenciaNFCe(true);\r\n }\r\n setConfig(dados);\r\n formulario.setFieldsValue(res.data);\r\n } else {\r\n let conf = {};\r\n conf.lcn_ambienteemissao = 2;\r\n conf.lcn_tipoemissao = 1;\r\n setAmbienteEmissao(conf.lcn_ambienteemissao);\r\n\r\n formulario.setFieldsValue(conf);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function consultaStatusSefaz() {\r\n api.get(`Nfe/ConsultaStatus`).then(\r\n res => {\r\n if (res.data) {\r\n if (res.data.retorno.cStat === 107)\r\n notification.success({ message: res.data.retorno.cStat, description: res.data.retorno.xMotivo });\r\n else\r\n notification.warning({ message: res.data.retorno.cStat, description: res.data.retorno.xMotivo });\r\n } else {\r\n notification.warning({ description: \"Erro ao consultar status sefaz !\", message: \"Aviso\" });\r\n }\r\n console.log(\"RES\", res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n notification.warning({ description: \"A senha especificada não está correta.\", message: \"Aviso\" });\r\n }\r\n );\r\n };\r\n function validarCertificado() {\r\n if (!!config && JSON.stringify(config) !== '{}') {\r\n let dados = { ...config, ...formulario.getFieldValue() };\r\n api.post(`LocalConfigNfe/RetornaValidadeCertificado`, dados).then(\r\n res => {\r\n if (res.data.validaCnpj) {\r\n setCertificadoValido(true);\r\n dados = { ...config, ...formulario.getFieldValue() };\r\n dados.lcn_validadecertificado = res.data.dataValidade;\r\n setConfig(dados);\r\n } else {\r\n notification.warning({ description: \"CNPJ do certificado não é compativel com o CNPJ do local !\", message: \"Aviso\" });\r\n }\r\n console.log(\"RES\", res.data);\r\n }\r\n\r\n ).catch(\r\n erro => {\r\n notification.warning({ description: \"A senha especificada não está correta.\", message: \"Aviso\" });\r\n }\r\n );\r\n }\r\n };\r\n\r\n const exibeContingencia = tipoEmissao => {\r\n tipoEmissao = tipoEmissao.target.value;\r\n if (tipoEmissao > 1) {\r\n setExibeMotivoContingencia(true);\r\n } else {\r\n setExibeMotivoContingencia(false);\r\n }\r\n };\r\n const exibeContingenciaNFCe = tipoEmissao => {\r\n tipoEmissao = tipoEmissao.target.value;\r\n if (tipoEmissao == 1) {\r\n setExibeMotivoContingenciaNFCe(false);\r\n } else {\r\n setExibeMotivoContingenciaNFCe(true);\r\n }\r\n };\r\n\r\n function trocarAmbiente(event) {\r\n setAmbienteEmissao(event.target.value);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n { trocarAmbiente(value) }}>\r\n Produção\r\n Homologação\r\n \r\n \r\n \r\n {ambienteEmissao === 1 && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {ambienteEmissao === 2 && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (exibeContingencia(value))}>\r\n Emissão Normal\r\n Contingência FS-IA\r\n Contingência SCAN\r\n Contingência EPEC\r\n Contingência FS-DA\r\n Contingência SVC-AN\r\n Contingência SVC-RS\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (exibeContingenciaNFCe(value))}>\r\n Emissão Normal\r\n Contingência off-line da NFC-e\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Informe Informe os dados do certificado a ser utilizado\r\n \r\n * Caso nenhum certificado seja informado, será utilizado o certificado da Matriz como Padrão! \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {!!!config.conteudo &&
\r\n \r\n
\r\n

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

Arraste o certificado digital aqui!

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

(o arquivo deve estar no formato .pfx, modelo A1)

\r\n \r\n \r\n \r\n \r\n \r\n {!!config.lcn_validadecertificado &&\r\n Certificado Válido até: {moment(config.lcn_validadecertificado).format('DD/MM/YYYY')}\r\n }\r\n \r\n \r\n }\r\n {!!config.conteudo &&
\r\n \r\n
\r\n

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

{config.nome}

\r\n \r\n \r\n {!!config.lcn_validadecertificado &&\r\n Certificado Válido até: {moment(config.lcn_validadecertificado).format('DD/MM/YYYY')}\r\n }\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n { validarCertificado() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { SelectPaginacao } from '../../components';\r\nimport { Form, Row, Col, Input, Button, Tooltip, Select, notification, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, QuestionCircleOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { BreadcrumbAbrirChamado } from \"../../components\";\r\n\r\nexport default function ParametrosLocal() {\r\n const [formulario] = Form.useForm();\r\n const [controleAvisoEstoque, setControleAvisoEstoque] = useState([]);\r\n const [tipoTef, setTipoTef] = useState([]);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n\r\n api.get('Enum/Listar?nome=ControleEstoque').then(res => {\r\n if (res.status === 200) {\r\n setControleAvisoEstoque(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get('Enum/Listar?nome=TipoTEF').then(res => {\r\n if (res.status === 200) {\r\n setTipoTef(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, []);\r\n\r\n\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n window.location = '/Home#/'\r\n }\r\n });\r\n };\r\n const salvarConf = valores => {\r\n let dados = { ...valores };\r\n\r\n api.put('ParametroLocal/Editar', dados).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Configuração do envio de NF-e salvos com sucesso!\" });\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }).finally(\r\n () => {\r\n });\r\n };\r\n\r\n function carregarDados() {\r\n api.get(`ParametroLocal/BuscarParametros`).then(\r\n res => {\r\n if (!!res.data) {\r\n formulario.setFieldsValue(res.data);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n % Máximo Desconto\r\n \r\n \r\n \r\n \r\n } placeholder=\"Informe o % desconto máximo \" name=\"par_maximodesconto\" cifrao={false}>\r\n \r\n \r\n \r\n Markup Local\r\n \r\n \r\n \r\n \r\n } placeholder=\"Informe o Markup Padrão\" name=\"par_markupproduto\" cifrao={false}>\r\n \r\n \r\n \r\n ({op.ope_id} - {op.ope_descricao}
\r\n
)\r\n } />\r\n
\r\n \r\n \r\n \r\n Aviso Estoque Insuficiente\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n Tipo TEF\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Dropdown, Menu, Form, Select } from \"antd\";\r\n\r\nimport { listagemActions } from \"../../actions\";\r\nimport { useStateValue } from '../../state';\r\nimport { ModalExibirAcaoUsuario } from \"../../components/modals/\";\r\nimport { FormatDate } from '../../ValueObjects/';\r\nimport { TabelaDados, FiltroOrdenacao, BreadcrumbPage, BotaoAbrirChamado, FiltroSearch, Data } from \"../../components\";\r\nimport { EyeOutlined } from \"@ant-design/icons\";\r\nimport SelectPaginado from '../../components/selectPaginado';\r\nimport moment from \"moment\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function AcaoUsuario() {\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n const [dadosModal, setDadosModal] = useState([]);\r\n const [listaTipoEntidade, setListaTipoEntidade] = useState([]);\r\n const [{ }, dispatch] = useStateValue();\r\n const [formulario] = Form.useForm();\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ DataInicial: moment(new Date()) });\r\n formulario.setFieldsValue({ DataFinal: moment(new Date()) });\r\n\r\n retornaTipoEntidade();\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '-aco_datahora' } })\r\n }, []);\r\n\r\n function carregarDados() {\r\n let data = `&DataInicial=${FormatDate(formulario.getFieldValue().DataInicial.toDate().toLocaleDateString())}\r\n &DataFinal=${FormatDate(formulario.getFieldValue().DataFinal.toDate().toLocaleDateString())}`\r\n if (formulario.getFieldValue().loc_id)\r\n data += `&CodigoLocal=${formulario.getFieldValue().loc_id}`\r\n if (formulario.getFieldValue().usu_id)\r\n data += `&CodigoUsuario=${formulario.getFieldValue().usu_id}`\r\n if (formulario.getFieldValue().TipoEntidade)\r\n data += `&TipoEntidade=${formulario.getFieldValue().TipoEntidade}`\r\n\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: data } });\r\n };\r\n\r\n function menuTableOutros(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n async function visualizar(Id) {\r\n api.get(`acaousuario/Buscar/${Id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setOpenModal(true);\r\n setDadosModal(res);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n \r\n \r\n \r\n };\r\n\r\n\r\n\r\n\r\n function retornaTipoEntidade() {\r\n api.get('Enum/Listar?nome=TipoTabelaAcaoUsuario').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setListaTipoEntidade(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n carregarDados()}\r\n conteudo={\r\n l => ({l.loc_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n carregarDados()}\r\n conteudo={\r\n u => ({u.usu_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n carregarDados()}\r\n placeholder=\"Tipo Entidade\"\r\n >\r\n {listaTipoEntidade.map((x) => (\r\n {x.value}\r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n { carregarDados(value) }} name=\"DataInicial\" label=\"Data Inicial\" />\r\n \r\n \r\n { carregarDados(value) }} name=\"DataFinal\" label=\"Data Inicial\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n (\r\n
\r\n {moment(aco_datahora).format('DD-MM-YYYY HH:mm:ss')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Tipo Ação',\r\n width: 12,\r\n render: ({ aco_tipoacao }) => (\r\n
\r\n
\r\n {aco_tipoacao}\r\n
\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Usuário',\r\n width: 20,\r\n render: ({ usu_nome }) => (\r\n
\r\n
\r\n {usu_nome}\r\n
\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Titulo',\r\n width: 50,\r\n render: ({ aco_titulo }) => (\r\n
\r\n {aco_titulo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 5,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {pdv_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Nº do Caixa',\r\n width: 105,\r\n align: 'center',\r\n render: ({ pdv_numerocaixa }) => (\r\n
\r\n {(!!pdv_numerocaixa) ? (pdv_numerocaixa) : 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Computador',\r\n render: ({ pdv_nomecomputador }) => (\r\n
\r\n {(!!pdv_nomecomputador) ? (pdv_nomecomputador) : '--'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Nº Registro',\r\n render: ({ pdv_registro }) => (\r\n
\r\n {pdv_registro}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 145,\r\n render: ({ pdv_dataregistro }) => (\r\n
\r\n {moment(pdv_dataregistro).format('DD/MM/YYYY HH:mm:ss')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'PDV Ativo?',\r\n align: 'center',\r\n width: 78,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n ativarDesativarPDV(record)} />\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n IP: {pdv_ipredelocal}\r\n \r\n \r\n Série Fiscal: {(!!ser_id) ? (ser_id) : 'Não Informado'}\r\n \r\n \r\n Registrado por: {usu_nome}\r\n \r\n\r\n \r\n E-mail: {usu_email}\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n { onCloseModalSerie() }} dadosPdv={dadosPdv} setDadosPdv={setDadosPdv} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Select, Input, Table, Button, Typography, Divider, InputNumber, Modal } from \"antd\";\r\nimport { DeleteOutlined, EditOutlined, PlusOutlined, ExclamationCircleOutlined, CloseOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function TabRespostas({ formulario, respostas }) {\r\n\r\n const [formResposta] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaSomaSubtrai, setListaSomaSubtrai] = useState([]);\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=SomaSubtrai`).then(res => {\r\n if (!!res) {\r\n setListaSomaSubtrai(res.data);\r\n }\r\n });\r\n }, []);\r\n\r\n function editarRegistro(item) {\r\n let itemTemp = { ...item };\r\n if (typeof itemTemp.rlc_somasubtrai === 'object') {\r\n itemTemp.rlc_somasubtrai = itemTemp.rlc_somasubtrai.key;\r\n }\r\n formResposta.setFieldsValue(itemTemp);\r\n }\r\n\r\n function removerRegistro(registro) {\r\n let lista = [...respostas.respostasLimiteCredito];\r\n let index = lista.findIndex(item => item === registro);\r\n\r\n if (index !== -1) {\r\n lista.splice(index, 1);\r\n if (lista.length > 0) {\r\n lista.map((item, indice) => {\r\n if (item.rlc_ordem > registro.rlc_ordem) {\r\n item.rlc_ordem = (item.rlc_ordem !== 1 ? (item.rlc_ordem - 1) : item.rlc_ordem);\r\n }\r\n\r\n if ((indice + 1) === lista.length) {\r\n respostas.setRespostasLimiteCredito(lista);\r\n }\r\n });\r\n } else {\r\n respostas.setRespostasLimiteCredito(lista);\r\n }\r\n }\r\n }\r\n\r\n const adicionarResposta = (values) => {\r\n let listaTemp = [...respostas.respostasLimiteCredito];\r\n if (!!values.rlc_id)\r\n {\r\n let itemEditar = listaTemp.find((item) => (item.rlc_id === values.rlc_id));\r\n itemEditar.rlc_percentual = values.rlc_percentual;\r\n itemEditar.rlc_resposta = values.rlc_resposta;\r\n itemEditar.rlc_somasubtrai = values.rlc_somasubtrai;\r\n }else{\r\n values.rlc_somasubtrai = values.rlc_somasubtrai;\r\n values.rlc_ordem = listaTemp.length + 1;\r\n listaTemp.push(values);\r\n }\r\n respostas.setRespostasLimiteCredito(listaTemp);\r\n formResposta.resetFields();\r\n };\r\n\r\n const modalExcluir = (item) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n removerRegistro(item);\r\n }\r\n });\r\n };\r\n\r\n function alterarOrdem(ordemAtual, ordemNova){\r\n let listaTemp = [...respostas.respostasLimiteCredito];\r\n let itemAtual = listaTemp.find(item => item.rlc_ordem === ordemAtual);\r\n let itemEditar = listaTemp.find(item => item.rlc_ordem === ordemNova);\r\n itemAtual.rlc_ordem = ordemNova;\r\n itemEditar.rlc_ordem = ordemAtual;\r\n\r\n listaTemp.sort(function (x, y){\r\n return x.rlc_ordem - y.rlc_ordem;\r\n });\r\n \r\n respostas.setRespostasLimiteCredito(listaTemp);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \"Informações Respostas\r\n \r\n \r\n Adicione a resposta aqui.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n \r\n {rlc_ordem !== 1 &&\r\n \r\n \r\n \r\n }\r\n {rlc_ordem !== respostas.respostasLimiteCredito.length &&\r\n \r\n \r\n \r\n }\r\n \r\n ),\r\n },\r\n {\r\n title: 'Ordem',\r\n width: 75,\r\n align: 'center',\r\n render: ({ rlc_ordem }) => (\r\n
\r\n {rlc_ordem}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Resposta',\r\n render: ({ rlc_resposta }) => (\r\n
\r\n {rlc_resposta}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Soma / Subtrai ',\r\n align: 'right',\r\n render: ({ rlc_somasubtrai, rlc_percentual }) => (\r\n
\r\n { (typeof rlc_somasubtrai === 'number')\r\n ?\r\n {listaSomaSubtrai.filter((item) => (item.key === rlc_somasubtrai)).length > 0 ? listaSomaSubtrai.filter((item) => (item.key === rlc_somasubtrai))[0].value : ''} - {rlc_percentual}%\r\n :\r\n {rlc_somasubtrai.value} - {rlc_percentual}%\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (item) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Tabs, Input, Select, notification, Button } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport TabRespostas from './tabRespostas';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { getEmpresa } from \"../../services/auth\";\r\nimport { validaForm } from \"../../services/funcoes\";\r\nimport { ArrowRightOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ManutencaoLimiteCreditoCliente({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [listaTipoResposta, setListaTipoResposta] = useState([]);\r\n const [showRespostas, setShowRespostas] = useState(false);\r\n const [respostasLimiteCredito, setRespostasLimiteCredito] = useState([]);\r\n\r\n useEffect(() => {\r\n setAbaSelecionada(\"1\");\r\n carregarListaTipoResposta();\r\n }, [manutencao.dados])\r\n\r\n function carregarListaTipoResposta() {\r\n api.get(`Enum/Listar?nome=TipoResposta`).then(res => {\r\n if (!!res) {\r\n setListaTipoResposta(res.data);\r\n }\r\n });\r\n\r\n if (!!manutencao.dados) {\r\n tipoResposta(manutencao.dados.qlc_tiporesposta);\r\n setRespostasLimiteCredito(manutencao.dados.respostalimitecreditos.sort((a, b) => a.rlc_ordem - b.rlc_ordem));\r\n } else {\r\n tipoResposta(1);\r\n }\r\n };\r\n\r\n const salvarManutencao = (values) => {\r\n if (respostasLimiteCredito.length === 0 && values.qlc_tiporesposta === 2) {\r\n notification.warning({ message: 'Aviso', description: 'É preciso adicionar pelo menos uma resposta!' });\r\n return;\r\n }\r\n if (validaForm(formulario, listaValidacoes)) {\r\n values.qlc_tiporesposta = listaTipoResposta.find((item) => (item.key === values.qlc_tiporesposta)).key;\r\n values.respostalimitecreditos = respostasLimiteCredito;\r\n\r\n if (!!values.qlc_id) {\r\n editarLimiteCredito(values);\r\n } else {\r\n incluirLimiteCredito(values);\r\n }\r\n }\r\n };\r\n\r\n function incluirLimiteCredito(values) {\r\n carregando(true);\r\n api.post(`QuestaoLimiteCredito/Incluir`, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados foram salvos com sucesso!\" });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+qlc_ordem', outrosFiltros: `&codigoEmpresa=${getEmpresa()}` } });\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n function editarLimiteCredito(values) {\r\n carregando(true);\r\n api.put(`QuestaoLimiteCredito/Editar`, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados foram salvos com sucesso!\" });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+qlc_ordem', outrosFiltros: `&codigoEmpresa=${getEmpresa()}` } });\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n const listaValidacoes = [\r\n { nome: 'qlc_questao', obrigatorio: true, label: 'Pergunta' },\r\n { nome: 'qlc_tiporesposta', obrigatorio: true, label: 'Tipo de Resposta' }\r\n ];\r\n\r\n const tipoResposta = (value) => {\r\n if (value === 2) {\r\n setShowRespostas(true);\r\n } else {\r\n setShowRespostas(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n verificaCep(record)} />\r\n \r\n \r\n \r\n Não sei o CEP \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Card, Button, Form, Input, notification, Alert } from \"antd\";\r\nimport { ArrowLeftOutlined, CheckOutlined, EyeOutlined, ShoppingOutlined, CloudUploadOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { getEmailUsuario } from \"../../services/auth\";\r\nimport { ModalPlano } from \"../../components/modals/\";\r\nimport { compararDatas ,encodeBase64} from \"../../services/funcoes\";\r\n\r\nexport default function Planos() {\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n const [recursosPlano, setRecursosPlano] = useState([]);\r\n const [alterarPlano, setAlterarPlano] = useState(false);\r\n const [listaPlanos, setListaPlanos] = useState([]);\r\n const [planoAtual, setPlanoAtual] = useState({});\r\n const [planoSelecionado, setPlanoSelecionado] = useState({});\r\n const [formAlterarPlano] = Form.useForm();\r\n const [comparaPlano, setComparaPlano] = useState(null);\r\n\r\n useEffect(() => {\r\n listarPlanos();\r\n }, []);\r\n\r\n async function listarPlanos() {\r\n let lista = [];\r\n try {\r\n var planoUsuario = await api.get(`LocalPlano/VerificarStatusPlano`);\r\n setPlanoAtual({ pla_nome: planoUsuario.data.plano.pla_nome, pla_valor: planoUsuario.data.plano.pla_valor, lcp_id: planoUsuario.data.lcp_id, validade: planoUsuario.data.lcp_validadeplano });\r\n\r\n var retornoPlanos = await api.get(`Plano/ListarPlanosAtivos`);\r\n retornoPlanos.data.items.forEach((listaPlano) => {\r\n let plano = listaPlano;\r\n plano.planoUsuario = false;\r\n if (plano.pla_id === planoUsuario.data.plano.pla_id) {\r\n plano.planoUsuario = true;\r\n };\r\n if (plano.pla_nivel >= planoUsuario.data.plano.pla_nivel) {\r\n lista.push(plano);\r\n }\r\n });\r\n lista.forEach((item) => {\r\n item.diferenciais = JSON.parse(item.pla_diferenciais);\r\n });\r\n lista = lista.reverse();\r\n setListaPlanos(lista);\r\n\r\n } catch (erro) {\r\n console.log(erro);\r\n };\r\n };\r\n\r\n async function confirmarMudancaPlano(values) {\r\n try {\r\n var senhaValida = await api.get(`Usuario/ValidaSenhaAtual?email=${getEmailUsuario()}&senha=${encodeBase64(values.senhaUsuario)}`);\r\n if (senhaValida.data != \"\") {\r\n var retornoMudancaPlano = await api.put(`LocalPlano/MudarLocalPlanoUsuario?novoPlano=${planoSelecionado.pla_id}`);\r\n if (retornoMudancaPlano.status == 200) {\r\n notification.success({ message: 'Seu plano foi alterado com sucesso', description: `Bem-vindo ao plano ${planoSelecionado.pla_nome}` });\r\n setAlterarPlano(false);\r\n listarPlanos();\r\n formAlterarPlano.resetFields();\r\n } else {\r\n notification.warning({ message: 'Não foi possível mudar o plano', description: 'Tente mais tarde. Se o problema persistir contate o suporte do Gestor Web.' });\r\n }\r\n } else {\r\n notification.error({ message: 'Senha inválida!', description: 'Verifique a senha informada.' });\r\n }\r\n } catch (erro) {\r\n notification.error({ message: 'Não foi possível mudar o plano', description: 'Tente mais tarde. Se o problema persistir contate o suporte do Gestor Web.' });\r\n };\r\n };\r\n\r\n return (\r\n\r\n
\r\n {!alterarPlano &&\r\n
\r\n \r\n {compararDatas(planoAtual.validade, null, \"<\") &&\r\n
\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n Você possui o Plano:\r\n \r\n \r\n \r\n
\r\n \r\n {planoAtual.pla_nome}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n R$\r\n \r\n \r\n \r\n \r\n {FormatNumber(planoAtual.pla_valor, true, false)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {listaPlanos.map((plano) => (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {plano.pla_nome}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n R$\r\n \r\n \r\n \r\n \r\n {FormatNumber(plano.pla_valor, true, false)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Por CNPJ\r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n setOpenModal(false)} recursosPlano={recursosPlano} />\r\n \r\n }\r\n {alterarPlano &&\r\n
\r\n
\r\n \r\n
\r\n \r\n Para confirmar a mudança de plano é necessário informar sua senha.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n\r\n );\r\n}","import React from \"react\";\r\n\r\nimport Planos from \"./planos\";\r\nimport { BreadcrumbAbrirChamado } from \"../../components\";\r\n\r\nexport default function Plano() {\r\n\r\n return (\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, Select, Typography, Divider, InputNumber, Radio, Table, Modal, notification } from \"antd\";\r\nimport { DeleteOutlined, PlusOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { getLocal, linkApi } from \"../../services/auth\";\r\nimport { FormGW, Adicionar, Excluir, InputCpfCnpj, InputPercentual } from \"../../components\";\r\nimport { consultaCNPJ, info, validaForm } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoBandeiraCartaoEmpresa({ formulario, carregando, aoSalvar }) {\r\n\r\n const [value, setValue] = useState(1);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [contaCorrente, setContaCorrente] = useState([]);\r\n const [dadosCartao, setDadosCartao] = useState([]);\r\n const [listaTaxasCartao, setListaTaxasCartao] = useState([]);\r\n const [formularioTaxas] = Form.useForm();\r\n\r\n const listaValidacoes = [\r\n { nome: 'bce_cnpjcredenciadora', obrigatorio: true, label: 'CNPJ da Credenciadora' },\r\n { nome: 'ctc_id', obrigatorio: true, label: 'Conta Bancária para Recebimento' }\r\n ];\r\n\r\n useEffect(() => {\r\n api.get(`ContaCorrente/AtivosTipoConta?tipoConta=2&ordem=+ctc_descricao`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setContaCorrente(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (manutencao.dados !== null) {\r\n if (manutencao.dados.taxasCartaoCreditoParcelados.length > 0) {\r\n setValue(2);\r\n let indice = 1;\r\n manutencao.dados.taxasCartaoCreditoParcelados.map((taxa) => {\r\n taxa.key = indice++;\r\n });\r\n setListaTaxasCartao(manutencao.dados.taxasCartaoCreditoParcelados);\r\n } else {\r\n setValue(1);\r\n setListaTaxasCartao([]);\r\n }\r\n if (manutencao.dados.bce_id === null) {\r\n formulario.setFieldsValue({ bce_ativo: true });\r\n }\r\n if (manutencao.dados.ctc_id !== null && contaCorrente.filter((conta) => { return conta.ctc_id === manutencao.dados.ctc_id }).length === 0) {\r\n formulario.setFieldsValue({ ctc_id: manutencao.dados.ctc_descricao });\r\n }\r\n setDadosCartao(manutencao.dados);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function buscarDadosCNPJ(event) {\r\n let cnpj = event.target.value;\r\n consultaCNPJ(cnpj).then(\r\n res => {\r\n formulario.setFieldsValue({ bce_nomecredenciadora: res.nome });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function adicionarTaxa(values) {\r\n let listaTemp = [...listaTaxasCartao];\r\n if (values.tcp_taxa > 0) {\r\n values.tcp_taxa = parseFloat(values.tcp_taxa) / 100;\r\n values.key = listaTemp.length + 1;\r\n listaTemp.push(values);\r\n setListaTaxasCartao(listaTemp);\r\n } else {\r\n info('Informe a Taxa!');\r\n }\r\n };\r\n\r\n function excluirTaxa(id) {\r\n let lista = [...listaTaxasCartao];\r\n let index = lista.findIndex(i => i.key === id);\r\n lista.splice(index, 1);\r\n setListaTaxasCartao(lista);\r\n };\r\n\r\n function salvarManutencao(values) {\r\n if (validaForm(formulario, listaValidacoes)) {\r\n\r\n if (isNaN(values.ctc_id) && !!dadosCartao.ctc_id) {\r\n values.ctc_id = dadosCartao.ctc_id;\r\n values.ctc_descricao = dadosCartao.ctc_descricao;\r\n } else {\r\n values.ctc_id = parseInt(values.ctc_id);\r\n values.ctc_descricao = contaCorrente.filter((conta) => { return conta.ctc_id === values.ctc_id })[0].ctc_descricao;\r\n }\r\n\r\n if (!!values.bce_taxapadraocredito) {\r\n values.bce_taxapadraocredito = parseFloat(parseFloat(values.bce_taxapadraocredito) / 100);\r\n }\r\n if (!!values.bce_taxapadraodebito) {\r\n values.bce_taxapadraodebito = parseFloat(parseFloat(values.bce_taxapadraodebito) / 100);\r\n }\r\n\r\n values.ban_id = dadosCartao.ban_id;\r\n values.ban_descricao = dadosCartao.ban_descricao;\r\n values.bnd_id = dadosCartao.bnd_id;\r\n values.bnd_nome = dadosCartao.bnd_nome;\r\n values.ctc_digitoverificadoragencia = dadosCartao.ctc_digitoverificadoragencia;\r\n values.ctc_digitoverificadorconta = dadosCartao.ctc_digitoverificadorconta;\r\n values.ctc_numeroagencia = dadosCartao.ctc_numeroagencia;\r\n values.ctc_numeroconta = dadosCartao.ctc_numeroconta;\r\n values.ctc_numeroconta = dadosCartao.ctc_numeroconta;\r\n values.loc_id = getLocal();\r\n values.taxasCartaoCreditoParcelados = (value === 2 ? listaTaxasCartao : []);\r\n\r\n carregando(true);\r\n if (!!values.bce_id) {\r\n editar(values);\r\n } else {\r\n incluir(values);\r\n }\r\n }\r\n };\r\n\r\n function editar(values) {\r\n api.put(`BandeiraCartaoEmpresa/Editar`, values).then(res => {\r\n notification.success({ message: 'Operação concluída!', description: 'Bandeira de Cartão de Crédito salva com sucesso!' });\r\n }).catch(error => {\r\n console.log(error);\r\n notification.warning({ message: 'Aviso!', description: error.response.data.Message });\r\n }).finally(() => {\r\n carregando(false);\r\n setDadosCartao([]);\r\n setListaTaxasCartao([]);\r\n aoSalvar();\r\n })\r\n }\r\n\r\n function incluir(values) {\r\n api.post(`BandeiraCartaoEmpresa/Incluir`, values).then(res => {\r\n notification.success({ message: 'Operação concluída!', description: 'Bandeira de Cartão de Crédito salva com sucesso!' });\r\n }).catch(error => {\r\n console.log(error);\r\n notification.warning({ message: 'Aviso!', description: error.response.data.Message });\r\n }).finally(() => {\r\n carregando(false);\r\n setDadosCartao([]);\r\n setListaTaxasCartao([]);\r\n aoSalvar();\r\n })\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {dadosCartao.bnd_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { buscarDadosCNPJ(value) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ativo?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Cartão Cartão de Débito\r\n \r\n \r\n Informações referente a Cartão de Débito.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Cartão Cartão de Crédito\r\n \r\n \r\n Informações referente a Cartão de Crédito.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {value === 1 &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n setValue(e.target.value)} value={value}>\r\n \r\n Taxa Única\r\n \r\n \r\n Taxa Variável por Parcelas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {value === 2 &&\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } block onClick={() => { formularioTaxas.submit() }}> Adicionar \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n De {tcp_parcelaminima} parcela(s)\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Parcela Máxima',\r\n render: ({ tcp_parcelamaxima }) => (\r\n
\r\n Até {tcp_parcelamaxima} parcela(s)\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Taxa %',\r\n align: 'right',\r\n render: ({ tcp_taxa }) => (\r\n
\r\n {FormatNumber(parseFloat(tcp_taxa) * 100, true, false)}%\r\n
\r\n ),\r\n }, {\r\n title: 'Ações',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n align: 'center',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n excluirTaxa(record.key)} icon={} />\r\n \r\n \r\n \r\n ),\r\n }\r\n ]\r\n } scroll={{ x: 900 }} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n }\r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoBandeiraCartaoEmpresa from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerBandeiraCartaoEmpresa({consultar}) {\r\n\r\n const [formBandeiraCartao] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formBandeiraCartao.setFieldsValue(manutencao.dados);\r\n } else {\r\n //formBandeiraCartao.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formBandeiraCartao.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n consultar();\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Button, Divider, Typography, Card, Tooltip, Modal } from \"antd\";\r\nimport { QuestionCircleOutlined, EditOutlined, SettingOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { linkApi } from \"../../services/auth\";\r\nimport DrawerBandeiraCartaoEmpresa from './drawer';\r\nimport { FormatNumber, MaskFormat } from \"../../ValueObjects\";\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport { ModalTaxasCartaoCredito } from \"../../components/modals/\";\r\nimport { BreadcrumbAbrirChamado, Editar } from \"../../components\";\r\n\r\nexport default function BandeiraCartaoEmpresa() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [bandeirasCartao, setBandeirasCartao] = useState([]);\r\n const [openModalTaxas, setOpenModalTaxas] = useState(false);\r\n const [dadosTaxaCartao, setDadosTaxaCartao] = useState({});\r\n const [formPesquisa] = Form.useForm();\r\n\r\n useEffect(() => {\r\n consultar();\r\n }, []);\r\n\r\n function consultar() {\r\n let filtro = '';\r\n if (!!formPesquisa.getFieldValue().pesquisa) {\r\n filtro = formPesquisa.getFieldValue().pesquisa;\r\n }\r\n\r\n api.get(`BandeiraCartao/Listar?filtro=${filtro}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setBandeirasCartao(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function ativarBandeiraCartaoEmpresa(cartao) {\r\n cartao.bce_ativo = true;\r\n api.put(`BandeiraCartaoEmpresa/Editar`, cartao).then(res => {\r\n if (res.status === 200) {\r\n Modal.success({\r\n content: 'Bandeira de Cartão de Crédito ativada com sucesso!',\r\n });\r\n }\r\n }, erro => {\r\n Modal.error({\r\n title: \"Não foi possivel ativar a Bandeira de Cartão de Crédito!\",\r\n content: (\r\n
\r\n

{erro.response.data.Message}

\r\n
\r\n )\r\n });\r\n }).finally(() => {\r\n consultar();\r\n });\r\n };\r\n\r\n function abrirModalTaxas(cartao) {\r\n setDadosTaxaCartao(cartao);\r\n setOpenModalTaxas(true);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n Selecione abaixo uma das bandeiras de cartão de crédito.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pesquisar por\r\n \r\n \r\n \r\n \r\n }>\r\n { consultar() }} placeholder=\"Cartão de crédito, Credenciadora...\" allowClear />\r\n \r\n \r\n \r\n \r\n {bandeirasCartao.map((cartao) => (\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n {cartao.bnd_nome}\r\n \r\n {cartao.bce_id !== null && cartao.bce_ativo &&\r\n
\r\n } onClick={() => {\r\n let dados = { ...cartao };\r\n dados.bce_taxapadraocredito = (parseFloat(dados.bce_taxapadraocredito) * 100).toFixed(2);\r\n dados.bce_taxapadraodebito = (parseFloat(dados.bce_taxapadraodebito) * 100).toFixed(2);\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }}>\r\n Editar\r\n \r\n
\r\n }\r\n \r\n \r\n {cartao.bce_id !== null && cartao.bce_ativo &&\r\n
\r\n
\r\n \r\n
\r\n \r\n Credenciadora: {!!cartao.bce_nomecredenciadora ? cartao.bce_nomecredenciadora : 'Não Informada'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n CNPJ da Credenciadora: {MaskFormat(cartao.bce_cnpjcredenciadora, '', true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Banco: {cartao.ban_descricao}\r\n {cartao.ban_descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ag.: {cartao.ctc_numeroagencia}\r\n \r\n \r\n \r\n \r\n Conta: {cartao.ctc_numeroconta}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Débito (R$):\r\n \r\n \r\n
\r\n \r\n {FormatNumber((parseFloat(cartao.bce_taxapadraodebito) * 100), true, false)}%\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {cartao.bce_nrodiasrecebimentodebito} dias\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Crédito (R$):\r\n \r\n {cartao.taxasCartaoCreditoParcelados.length > 0 &&\r\n abrirModalTaxas(cartao)}>\r\n
\r\n Ver Taxas\r\n
\r\n \r\n }{cartao.taxasCartaoCreditoParcelados.length === 0 &&\r\n \r\n
\r\n {FormatNumber((parseFloat(cartao.bce_taxapadraocredito) * 100), true, false)}% \r\n
\r\n \r\n }\r\n \r\n
\r\n \r\n {cartao.bce_nrodiasrecebimentocredito} dias\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {cartao.bce_id === null &&\r\n
\r\n \r\n
\r\n
\r\n \r\n Não configurado!\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n }\r\n {cartao.bce_id !== null && !cartao.bce_ativo &&\r\n
\r\n \r\n
\r\n
\r\n \r\n Bandeira de Cartão INATIVA.\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setOpenModalTaxas(false);\r\n setDadosTaxaCartao({});\r\n }} dadosTaxaCartao={dadosTaxaCartao}/>\r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Form, Input, notification } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { InputCep } from \"../../components\";\r\n\r\nexport default function TabEndereco({ formulario }) {\r\n\r\n const [cidade, setCidade] = useState(null);\r\n const verificaCep = (cep) => {\r\n if (!!cep || !!formulario.getFieldValue().cep_cep) {\r\n cep = !!cep ? cep : formulario.getFieldValue().cep_cep;\r\n api.get(`Cidade/BuscaCidadeCep?cep=${cep}`).then(\r\n res => {\r\n if (!!res.data) {\r\n setCidade(res.data[0]);\r\n formulario.setFieldsValue({ cid_descricao: `${res.data[0].cid_descricao} / ${res.data[0].est_sigla}`, est_sigla: res.data[0].est_sigla, cep_id: res.data.cep_id });\r\n } else {\r\n fetch(`https://viacep.com.br/ws/${cep.replace(`-`, ``)}/json/`)\r\n .then(\r\n res => res.json()\r\n ).then(\r\n result => {\r\n setCidade(result);\r\n formulario.setFieldsValue({ cid_descricao: `${result.localidade} / ${result.uf}`, est_sigla: result.uf });\r\n }).catch(\r\n error => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n );\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n )\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Endereço\" Endereço\r\n \r\n \r\n Adicione abaixo as informações referente ao endereço.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Não sei o CEP\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Row, Col, Typography, Divider, Form, Input } from \"antd\";\r\nimport { InputCpfCnpj, InputPhone } from \"../../components\";\r\n\r\nexport default function TabResponsavel({ formulario }) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Outras Outras Informações\r\n \r\n \r\n Adicione abaixo as informações para realizar o cadastro com sucesso.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Tabs, Input, Checkbox, notification } from \"antd\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { TabEndereco, TabResponsavel } from \"./tabPage\";\r\nimport { validaForm, validarCpf } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoCentroDistribuicao({ formulario, carregando, aoSalvar, listar }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [filialInexistente, setFilialInexistente] = useState(false);\r\n const [centroCadastrado, setCentroCadastrado] = useState(false);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const listaValidacoes = [\r\n { nome: 'loc_cnpj', obrigatorio: true, label: 'CNPJ' },\r\n { nome: 'loc_descricao', obrigatorio: true, label: 'Nome do Centro de Distribuição' },\r\n { nome: 'cep_cep', obrigatorio: true, label: 'CEP' },\r\n { nome: 'log_logradouro', obrigatorio: true, label: 'Endereço' },\r\n { nome: 'loc_numeroestabelecimento', obrigatorio: true, label: 'Número' },\r\n { nome: 'bai_nome', obrigatorio: true, label: 'Bairro' },\r\n { nome: 'loc_email', obrigatorio: true, label: 'E-mail' },\r\n { nome: 'loc_cpfresponsavel', obrigatorio: true, label: 'CPF do Responsável' }\r\n ];\r\n\r\n const salvarManutencao = () => {\r\n if (filialInexistente) {\r\n notification.warn({ message: 'Atenção!', description: \"Nenhuma Filial com esse CNPJ, O centro de distribuição deve pertencer a uma filial!\" });\r\n return false;\r\n }\r\n if (centroCadastrado) {\r\n notification.warn({ message: 'Atenção!', description: \"Já existe um Centro de Distribuição com esse CNPJ!\" });\r\n return false;\r\n }\r\n\r\n let values = formulario.getFieldValue();\r\n\r\n if (!!values.loc_cpfresponsavel && !validarCpf(values.loc_cpfresponsavel)) {\r\n notification.warn({ message: 'Atenção!', description: \"CPF do responsável informado não é valido!\" });\r\n return false;\r\n }\r\n\r\n if (validaForm(formulario, listaValidacoes)) {\r\n carregando(true);\r\n let enderecoUrl = 'CentroDistribuicao/';\r\n if (values.loc_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Filial foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Atenção!', description: \"Não foi possivel incluir os dados desta filial!\" });\r\n }).finally(() => {\r\n aoSalvar();\r\n carregando(false);\r\n atualizarPagina();\r\n });\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, values).then(res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Filial foram salvos com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Atenção!', description: \"Não foi possivel incluir os dados desta filial!\" });\r\n }).finally(() => {\r\n aoSalvar();\r\n carregando(false);\r\n atualizarPagina();\r\n });\r\n };\r\n };\r\n };\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+loc_descricao' } });\r\n listar();\r\n };\r\n\r\n function buscarDadosFilial(e) {\r\n let cnpj = e.target.value.replaceAll('.', '').replaceAll('/', '').replaceAll('-', '');\r\n if (cnpj.length === 14) {\r\n api.get(`CentroDistribuicao/VerificarCentroExistente?cnpjLocal=${cnpj}`).then(\r\n (centroExiste) => {\r\n if (!centroExiste.data) {\r\n api.get(`Local/BuscarLocalCnpj/${cnpj}`).then(\r\n (retorno) => {\r\n let dados = retorno.data;\r\n if (!!dados) {\r\n let dadosCentroDistribuicao = {\r\n loc_cnpj: dados.loc_cnpj.numero,\r\n loc_codigo: dados.loc_codigo,\r\n loc_descricao: dados.loc_descricao,\r\n loc_numeroestabelecimento: dados.loc_numeroestabelecimento,\r\n loc_complemento: dados.loc_complemento,\r\n loc_pontoreferencia: dados.loc_pontoreferencia,\r\n loc_email: dados.loc_email.endereco,\r\n loc_telefone: dados.loc_telefone,\r\n loc_responsavelestabelecimento: dados.loc_responsavelestabelecimento,\r\n loc_cpfresponsavel: dados.loc_cpfresponsavel.numero,\r\n loc_tipocontribuinte: dados.loc_tipocontribuinte\r\n };\r\n formulario.setFieldsValue(dadosCentroDistribuicao);\r\n setFilialInexistente(false);\r\n setCentroCadastrado(false);\r\n } else {\r\n if (!!!formulario.getFieldValue().loc_id) {\r\n setFilialInexistente(true);\r\n setCentroCadastrado(false);\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n } else {\r\n if (!!!formulario.getFieldValue().loc_id) {\r\n setFilialInexistente(false);\r\n setCentroCadastrado(true);\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n buscarDadosFilial(e)}\r\n />\r\n \r\n {!!filialInexistente && * Sem filiais com esse CNPJ}\r\n {!!centroCadastrado && * Já Existe um Centro de Distribuição com esse CNPJ}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Centro de Distribuição Ativo?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveFilled, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoCentroDistribuicao from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerCentroDistribuicao({listar}) {\r\n\r\n const [formCentroDistribuicao] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) formCentroDistribuicao.setFieldsValue(manutencao.dados);\r\n else {\r\n formCentroDistribuicao.setFieldsValue({ loc_ativo: true });\r\n }\r\n\r\n function fecharDrawer() {\r\n formCentroDistribuicao.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Popover, Form, Table, Select, Input, notification } from \"antd\";\r\nimport { EditOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport DrawerCentroDistribuicao from './drawer';\r\nimport { MaskFormat, FormatFone } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, Editar, TabelaDados, PesquisaOrdenacao } from \"../../components\";\r\nimport { getEmpresa, setEmpresa, setLocal, setNomeLocal } from \"../../services/auth\";\r\n\r\nexport default function CentroDistribuicao() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formPesquisa] = Form.useForm();\r\n\r\n function editarCentro(record) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true, editItem: true } });\r\n };\r\n\r\n function listar(filtro = null, ordem = null) {\r\n if (!!formPesquisa.getFieldValue().filtro) {\r\n filtro = formPesquisa.getFieldValue().filtro;\r\n }\r\n if (!!formPesquisa.getFieldValue().ordem) {\r\n ordem = formPesquisa.getFieldValue().ordem;\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { campoFiltro: 'Filtro', filtro: filtro, ordem: ordem } });\r\n };\r\n\r\n async function acessarCentroDistribuicao(centro) {\r\n let codigoEmpresa = getEmpresa();\r\n if (codigoEmpresa) {\r\n let listaLocaisUsuario = await api.get(`/Local/ListarLocalUsuario?codigoEmpresa=${codigoEmpresa}`);\r\n if (!!listaLocaisUsuario.data.items && listaLocaisUsuario.data.items.length > 0) {\r\n let local = listaLocaisUsuario.data.items.find((item) => { return item.loc_id === centro.loc_id });\r\n if (!!local) {\r\n setEmpresa(codigoEmpresa);\r\n setLocal(local.loc_id);\r\n setNomeLocal(local.loc_descricao);\r\n window.location = \"/Home\";\r\n } else {\r\n notification.warning({ message: 'Aviso!', description: 'Você não possui acesso a esta filial!' });\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {loc_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Centro de Distribuição',\r\n render: ({ loc_descricao }) => (\r\n
\r\n {loc_descricao || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CNPJ',\r\n render: ({ loc_cnpj }) => (\r\n
\r\n {MaskFormat(loc_cnpj, '', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n render: ({ loc_telefone }) => (\r\n
\r\n {(!!loc_telefone) ? FormatFone(loc_telefone) : 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n editarCentro(record)} icon={} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n ]} expandir={\r\n (record) => {\r\n return (\r\n
\r\n \r\n
\r\n Endereço: {record.log_logradouro || 'Não Informado'}{(!!record.loc_numeroestabelecimento) ? (', ' + record.loc_numeroestabelecimento) : ''} {!!(record.cid_descricao) ? ('- ' + record.cid_descricao) : ''}\r\n {!!(record.est_sigla) ? ('/ ' + record.est_sigla) : ''}\r\n \r\n \r\n E-mail: {(!!record.loc_email) ? (record.loc_email) : 'Não Informado'}\r\n \r\n \r\n Responsável: {(!!record.loc_responsavelestabelecimento) ? (record.loc_responsavelestabelecimento) : 'Não Informado'}\r\n \r\n \r\n \r\n )\r\n }\r\n } scroll={{ x: 900 }} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Form, Row, Col, Select, Button, Input } from \"antd\";\r\nimport { PrinterOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport { BreadcrumbAbrirChamado, TabelaDados } from \"../../components\";\r\n\r\nexport default function Relatorios() {\r\n\r\n const [{ listagem, manutencao }, dispatch] = useStateValue();\r\n const [grupos, setGrupos] = useState([]);\r\n const [formulario] = Form.useForm();\r\n\r\n useEffect(() => {\r\n api.get(`RelatorioJasper/ListarGruposRelatorio`).then(res => {\r\n if (res.status === 200) {\r\n setGrupos(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, []);\r\n\r\n function filtroGrupo(val) {\r\n if (val) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&MostrarList=true&Sistema=1&CodigoGrupo=${val}` } })\r\n }\r\n else {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&MostrarList=true&Sistema=1` } })\r\n }\r\n }\r\n\r\n function visualizarRelatorio(dados) {\r\n\r\n };\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '&MostrarList=true&Sistema=1', filtro: '', ordem: '+rel_nome' } }), []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: valor } })} allowClear />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {rel_nome}\r\n
\r\n )\r\n },\r\n {\r\n title: \"Descrição do Relatório\",\r\n render: ({ rel_descricao }) => (\r\n
\r\n {rel_descricao}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n localStorage.setItem(\"@GestorWeb-FiltrosRelatorio\", JSON.stringify({ id: record.rel_id, nomeArquivo: record.rel_nomearquivo, nomeRelatorio: record.rel_nome, retorno: \"/relatorios\" }))\r\n }}>\r\n \r\n }\r\n />\r\n \r\n \r\n\r\n );\r\n\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Checkbox, Input, Form, Tabs, notification, Select } from 'antd';\r\nimport { ArrowRightOutlined, UploadOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from '../../actions';\r\nimport { EditorFormularioRelatorio, FormGW } from '../../components';\r\n\r\nexport default function Formularios({ formulario, carregando, aoSalvar, grupos }) {\r\n const [{ listagem, manutencao }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [elementosFormulario, setElementosFormulario] = useState([]);\r\n const [aoUpload, setAoUpload] = useState(false);\r\n const [sistema, setSistema] = useState([]);\r\n\r\n function atribuiNomeRelatorio(nomeRel) {\r\n //formulario.setFieldsValue({ rel_nomearquivo: nomeRel.replace(' ','_')})\r\n }\r\n\r\n useEffect(() => {\r\n let sis = sistema.filter((s) => { return s.key === formulario.getFieldValue().rel_sistema });\r\n if (sis.length > 0) {\r\n if (!(!!formulario.getFieldValue().rel_sistema)) {\r\n formulario.setFieldsValue({ rel_sistema: sis[0].key });\r\n }\r\n }\r\n }, [sistema]);\r\n\r\n function carregarEnumSistema() {\r\n api.get(`Enum/Listar?nome=Sistema`).then(\r\n res => {\r\n if (res.status === 200) {\r\n res.data = res.data.filter((item) => { return item.key > 0 });\r\n setSistema(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => console.error(erro)\r\n );\r\n };\r\n\r\n function carregarDados() {\r\n carregando(false)\r\n if (!!formulario.getFieldValue().rel_id) {\r\n console.log(formulario.getFieldValue().rel_id);\r\n api.get(`RelatorioJasper/BuscarRelatorio/${formulario.getFieldValue().rel_id}`).then(\r\n res => {\r\n console.log(\"BuscarRelatorio\", res.data)\r\n setElementosFormulario(!!res.data.relatorioParametro ? res.data.relatorioParametro : []);\r\n }).catch(\r\n erro =>\r\n console.error(erro)\r\n );\r\n\r\n } else {\r\n setElementosFormulario([]);\r\n }\r\n\r\n carregarEnumSistema();\r\n }\r\n\r\n const salvarManutencao = values => {\r\n carregando(true);\r\n aoSalvar();\r\n values.rel_nomearquivo = values.rel_nomearquivo.replace(/[\\\\\"]/g, \"/\");\r\n let elementosOrdem = []\r\n elementosFormulario.map((elemento, indice) => {\r\n if (elemento.rpj_ordem != indice) {\r\n elemento.rpj_ordem = indice\r\n !!elemento.status == false ? elemento.status = 2 : elemento.status = elemento.status\r\n }\r\n elementosOrdem.push(elemento)\r\n })\r\n values.RelatorioParametro = elementosOrdem;\r\n console.log({ values });\r\n let url = 'Incluir'\r\n if (!!values.rel_id) {\r\n url = 'Editar';\r\n api.put(`RelatorioJasper/${url}`, values).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: `Relatório Jasper ${url === 'Incluir' ? 'incluído' : 'editado'} com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n notification.error({ message: 'Erro ao Gravar Relatório Jasper.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: listagem.ordem } });\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n } else {\r\n api.post(`RelatorioJasper/${url}`, values).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: `Relatório Jasper ${url === 'Incluir' ? 'incluído' : 'editado'} com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n notification.error({ message: 'Erro ao Gravar Relatório Jasper.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: listagem.ordem } });\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n };\r\n\r\n function uploadRelatorio() {\r\n setAoUpload(true)\r\n let arquivoRel = formulario.getFieldValue().rel_nomearquivo;\r\n let sistema = formulario.getFieldValue().rel_sistema;\r\n api.post(`RelatorioJasper/UploadRelatorios?SalvarEm=${arquivoRel}&sistema=${sistema}`).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: `Upload do Relatório para o servidor realizado com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n notification.error({ message: 'Aviso', description: 'Erro ao Atualizar Relatório.\\n' + erro })\r\n }\r\n ).finally(\r\n () => {\r\n setAoUpload(false)\r\n\r\n });\r\n }\r\n\r\n useEffect(() => carregarDados(), [!!formulario.getFieldValue().rel_id]);\r\n useEffect(() => console.log({ grupos }), []);\r\n\r\n return (\r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {grupos.map((grupo) => (\r\n {grupo.grj_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {sistema.map((sis) => (\r\n {sis.value}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Mostrar na Lista de Impressão?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React,{ useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nimport Formularios from './manutencao';\r\nimport { DrawerNav } from '../../components';\r\n\r\nexport default function DrawerPersonalizacao({grupos}) {\r\n\r\n const [ formFormulario ] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n const idRel = 0\r\n \r\n\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n formFormulario.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() =>{\r\n if (manutencao.dados !== null) {\r\n formFormulario.setFieldsValue(manutencao.dados);\r\n console.log(\"manutenção\",manutencao.dados);\r\n } else {\r\n formFormulario.resetFields();\r\n }\r\n },[!!manutencao.dados])\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Form, Button, Tag, Popconfirm, notification, Select } from 'antd';\r\nimport { EditOutlined, DeleteOutlined, PrinterOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerPersonalizacao from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados } from \"../../components\";\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport default function PersonalizacaoRelatorios({ }) {\r\n\r\n const [{ listagem, manutencao }, dispatch] = useStateValue();\r\n const [grupos, setGrupos] = useState([]);\r\n const [listaSistema, setSistema] = useState([]);\r\n const [formPesquisaAvancada] = Form.useForm();\r\n\r\n\r\n function editarFormRelatorio(valores) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function excluirRegistro(record) {\r\n api.delete(`RelatorioJasper/Excluir/${record.rel_id}`).then(\r\n (res) => {\r\n notification.success({ message: `Sucesso!`, description: `Relatório Jasper excluído com sucesso!` })\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao excluir Telatório!');\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+rel_nome' } });\r\n }\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n api.get('Enum/Listar?nome=Sistema').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setSistema(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`RelatorioJasper/ListarGruposRelatorio`).then(res => {\r\n if (res.status === 200) {\r\n setGrupos(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, []);\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+rel_nome' } }), []);\r\n\r\n\r\n function retornoPesquisaAvancada() {\r\n var filtrosTela = ``;\r\n if (formPesquisaAvancada.getFieldsValue().grupo) filtrosTela += `&CodigoGrupo=${formPesquisaAvancada.getFieldsValue().grupo}`;\r\n if (formPesquisaAvancada.getFieldsValue().sistema) filtrosTela += `&Sistema=${formPesquisaAvancada.getFieldsValue().sistema}`;\r\n if (filtrosTela) dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtrosTela, filtro: '', ordem: '+rel_nome' } })\r\n else dispatch({ type: listagemActions.CHANGE, data: { filtro: '', outrosFiltros: '', ordem: '+rel_nome' } })\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada()}\r\n placeholder=\"Selecionar Relatórios por Grupo\"\r\n allowClear\r\n showSearch\r\n optionFilterProp=\"children\"\r\n >\r\n {grupos.map((grupo) => (\r\n {grupo.grj_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n retornoPesquisaAvancada()}\r\n placeholder=\"Sistema\"\r\n allowClear\r\n >\r\n {listaSistema.map((s) => (\r\n {s.value}\r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {rel_id}\r\n \r\n )\r\n },\r\n {\r\n title: 'Nome Relatório',\r\n width: '20%',\r\n render: ({ rel_nome }) => (\r\n
\r\n {rel_nome}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ rel_descricao }) => (\r\n
\r\n {rel_descricao}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Disponível',\r\n render: ({ rel_nomearquivo }) => (\r\n
\r\n {rel_nomearquivo}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 100,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n //dispatch({ type: manutencaoActions.CHANGE, data: { dados: produto } });\r\n localStorage.setItem(\"@GestorWeb-FiltrosRelatorio\", JSON.stringify({ id: record.rel_id, nomeArquivo: record.rel_nomearquivo, nomeRelatorio: record.rel_nome, retorno: \"/personalizacaoRelatorios\" }))\r\n }}>\r\n \r\n \r\n excluirRegistro(record)} okText=\"Sim\" cancelText=\"Não\">\r\n \r\n \r\n \"Título {tituloRelatorio}\r\n \r\n \r\n Filtre os dados abaixo para gerar o relatório.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.tipoRelatorio !== currentValues.tipoRelatorio}>\r\n {({ getFieldValue }) => {\r\n let elemento = getFieldValue('tipoRelatorio');\r\n if (elemento !== 'PDF' && !!elemento)\r\n return (\r\n setimprimirSomenteCorpo(value.target.checked)}>Imprimir somente corpo do Relatório\r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Button, Divider } from \"antd\";\r\nimport { StopOutlined, SaveOutlined, CheckOutlined, DeleteFilled } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { ModalDefinirHorario } from \"../../components/modals\";\r\nimport { DataUsage } from \"@material-ui/icons\";\r\n\r\nexport default function TabHorariosAcessoUsuario({ formulario }) {\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n const [idDay, setIdDay] = useState(null);\r\n const [listHorarios, setListHorarios] = useState(\r\n [{\r\n id: 0,\r\n name: 'Domingo',\r\n disabled: false,\r\n description: 'Domingo',\r\n day: []\r\n }, {\r\n id: 1,\r\n name: 'Segunda',\r\n disabled: false,\r\n description: 'Segunda-feira',\r\n day: []\r\n }, {\r\n id: 2,\r\n name: 'Terca',\r\n disabled: false,\r\n description: 'Terça-feira',\r\n day: []\r\n }, {\r\n id: 3,\r\n name: 'Quarta',\r\n disabled: false,\r\n description: 'Quarta-feira',\r\n day: []\r\n }, {\r\n id: 4,\r\n name: 'Quinta',\r\n disabled: false,\r\n description: 'Quinta-feira',\r\n day: []\r\n }, {\r\n id: 5,\r\n name: 'Sexta',\r\n disabled: false,\r\n description: 'Sexta-feira',\r\n day: []\r\n }, {\r\n id: 6,\r\n name: 'Sabado',\r\n disabled: false,\r\n description: 'Sábado',\r\n day: []\r\n },]);\r\n\r\n useEffect(() => {\r\n carregarListaHorariosAcesso();\r\n }, [])\r\n\r\n const carregarListaHorariosAcesso = async () => {\r\n if (!!formulario.getFieldValue('usu_id')) {\r\n var res = await api.get(`Usuario/ListaHorariosAcesso?codigoUsuario=${formulario.getFieldValue('usu_id')}`);\r\n if (res.status === 200) {\r\n let array = [...listHorarios];\r\n res.data.forEach(element => {\r\n if (element.uac_dia > -1) {\r\n array[element.uac_dia].disabled = element.uac_bloqueado;\r\n array[element.uac_dia].day.push({\r\n uac_id: element.uac_id,\r\n bloqueado: element.uac_bloqueado,\r\n horaInicial: element.uac_horainicial != null ? moment(element.uac_horainicial) : null,\r\n horaFinal: element.uac_horafinal != null ? moment(element.uac_horafinal) : null\r\n });\r\n }\r\n });\r\n setListHorarios(array);\r\n transformList(array, false);\r\n }\r\n }\r\n }\r\n\r\n const setDataModal = (id) => {\r\n setIdDay(id);\r\n setOpenModal(true);\r\n }\r\n\r\n const onChangeHorario = (id, disabled = false, desbloquear = false, horaInicial = null, horaFinal = null,) => {\r\n\r\n let array = [...listHorarios];\r\n\r\n array[id].disabled = disabled;\r\n\r\n if (desbloquear) {\r\n array[id].day = []\r\n } else {\r\n array[id].day.push(\r\n {\r\n horaInicial: horaInicial != null ? horaInicial : \"\",\r\n horaFinal: horaFinal != null ? horaFinal : \"\",\r\n bloqueado: disabled\r\n });\r\n }\r\n\r\n setListHorarios(array);\r\n transformList(array, true);\r\n }\r\n\r\n const deleteHorario = (id, key) => {\r\n let array = [...listHorarios];\r\n array[id].day.splice(key, 1);\r\n setListHorarios(array);\r\n transformList(array, true);\r\n }\r\n\r\n const transformList = (array, change) => {\r\n let usuarioacessos = [];\r\n\r\n array.forEach(e => {\r\n e.day.forEach(d => {\r\n var obj = {\r\n uac_dia: e.id,\r\n usu_id: formulario.getFieldValue('usu_id'),\r\n uac_horainicial: new Date(d.horaInicial),\r\n uac_horafinal: new Date(d.horaFinal),\r\n uac_bloqueado: d.bloqueado\r\n };\r\n\r\n if (d.uac_id != null || typeof d.uac_id != 'undefined' || d.uac_id != \"\") obj.uac_id = d.uac_id;\r\n\r\n usuarioacessos.push(obj);\r\n })\r\n })\r\n formulario.setFieldsValue({ usuarioacessos: usuarioacessos, mudarAcesso: change });\r\n }\r\n\r\n return (\r\n
\r\n \r\n {listHorarios.map(({ id, description, disabled, day }, idx) => (\r\n
\r\n \r\n \r\n {description}\r\n \r\n \r\n \r\n {!disabled && \r\n {day.map((x, idx) => (\r\n \r\n \r\n \r\n {moment(x.horaInicial).format(\"HH:mm\")} até {moment(x.horaFinal).format(\"HH:mm\")}\r\n \r\n \r\n }\r\n type=\"link\"\r\n onClick={() => deleteHorario(id, idx)} />\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {disabled && \r\n \r\n

Bloqueado

\r\n \r\n \r\n \r\n \r\n }\r\n \r\n ))}\r\n \r\n setOpenModal(false)} />\r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Tag, Divider, Button, Table, notification } from \"antd\";\r\nimport { CheckOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\n\r\nexport default function TabPermissoesUsuario({ formulario }) {\r\n\r\n const [load, setLoad] = useState(false);\r\n const [listPermissoes, setListPermissoes] = useState([]);\r\n const [pagina, setPagina] = useState(1);\r\n const [nroRegistros, setNroRegistros] = useState(10);\r\n const [ordem, setOrdem] = useState('loc_id');\r\n\r\n useEffect(() => { loadPermissoes() }, [pagina, nroRegistros]);\r\n\r\n async function loadPermissoes() {\r\n setLoad(true);\r\n\r\n var _listaPermissoesPagina = await api.get(`PermissaoUsuario/ListarPermissoesPaginas`);\r\n if (_listaPermissoesPagina.status === 200) {\r\n const list = _listaPermissoesPagina.data;\r\n let userId = formulario.getFieldValue('usu_id');\r\n if (userId) {\r\n try {\r\n var _listarPersmissoesMongo = await api.get(`PermissaoUsuario/Listar?idUser=${userId}`);\r\n if (_listarPersmissoesMongo.status === 200) {\r\n let dataAcess = _listarPersmissoesMongo.data;\r\n for (let i in list) {\r\n let idx = dataAcess.findIndex(x => x.pru_nome === list[i].pagina);\r\n if (idx > -1) {\r\n let obj = JSON.parse(dataAcess[idx].pru_permissoes);\r\n let { api, sistema } = obj[0];\r\n var permissoes = list[i].permissoes;\r\n let acessoModulo = false;\r\n if (typeof api != \"undefined\" && sistema != \"undefined\") {\r\n var permissoesApi = api[0].metodos;\r\n permissoes.forEach(e => {\r\n var indexMetodo = permissoesApi.findIndex(pm => pm.nome == e.metodo);\r\n e.acesso = permissoesApi[indexMetodo].acesso;\r\n if (!acessoModulo) acessoModulo = permissoesApi[indexMetodo].acesso ? true : false;\r\n });\r\n } else {\r\n var acessoPermissoesMongo = obj;\r\n permissoes.forEach(e => {\r\n var indexMetodo = acessoPermissoesMongo.findIndex(pm => pm.metodo == e.metodo);\r\n e.acesso = acessoPermissoesMongo[indexMetodo].acesso;\r\n if (!acessoModulo) acessoModulo = acessoPermissoesMongo[indexMetodo].acesso ? true : false;\r\n });\r\n }\r\n if (acessoModulo) {\r\n list[i].acesso = true\r\n }\r\n }\r\n }\r\n setListPermissoes(list.map((x, idx) => ({ key: idx, ...x })));\r\n }\r\n } catch (error) {\r\n const array = list.map((x, idx) => ({ key: idx, ...x }));\r\n setListPermissoes(array);\r\n setLoad(false)\r\n }\r\n } else {\r\n const array = list.map((x, idx) => ({ key: idx, ...x }));\r\n setListPermissoes(array);\r\n }\r\n }\r\n setLoad(false)\r\n }\r\n\r\n const handleChangeBloqueioPagina = (key, metodo = null) => {\r\n let array = [...listPermissoes];\r\n let index = array.findIndex(x => x.key == key);\r\n if (index > -1) {\r\n if (metodo != null) {\r\n let idx = array[index].permissoes.findIndex(x => x.metodo == metodo);\r\n if (idx > -1)\r\n array[index].permissoes[idx].acesso = !array[index].permissoes[idx].acesso;\r\n }\r\n else {\r\n array[index].acesso = !array[index].acesso;\r\n for (let y in array[index].permissoes)\r\n array[index].permissoes[y].acesso = array[index].acesso;\r\n }\r\n setListPermissoes(array);\r\n formulario.setFieldsValue({ listaPermissoesPaginas: array });\r\n }\r\n }\r\n\r\n const handleChangeBloqueioAll = (option, list = null) => {\r\n\r\n let array = (list != null) ? list : [...listPermissoes];\r\n for (let i in array) {\r\n array[i].acesso = option;\r\n for (let y in array[i].permissoes) {\r\n array[i].permissoes[y].acesso = option;\r\n }\r\n }\r\n setListPermissoes(array);\r\n formulario.setFieldsValue({ listaPermissoesPaginas: array });\r\n }\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n
\r\n handleChangeBloqueioPagina(record.key)}\r\n >\r\n {(!!acesso) ? 'Liberado' : 'Bloqueado'}\r\n \r\n \r\n \r\n {pagina}\r\n \r\n \r\n {acesso &&\r\n
\r\n \r\n \r\n {permissoes.map((item, idx) =>\r\n
\r\n \r\n \r\n {item.metodo}\r\n \r\n \r\n handleChangeBloqueioPagina(record.key, item.metodo)}>\r\n {(item.acesso) ? 'Sim' : 'Não'}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n }\r\n \r\n ),\r\n },\r\n ]}\r\n dataSource={listPermissoes} scroll={{ x: 900 }}\r\n />\r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tag, Table, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { MaskFormat } from '../../ValueObjects';\r\n\r\nexport default function TabFiliaisUsuario({ formulario }) {\r\n\r\n const [load, setLoad] = useState(false);\r\n const [locais, setLocais] = useState({});\r\n const [pagina, setPagina] = useState(1);\r\n const [nroRegistros, setNroRegistros] = useState(10);\r\n const [pageRows, setPageRows] = useState([]);\r\n const [ordem, setOrdem] = useState('loc_id');\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n const [validaLocId, setValidaLocId] = useState(true);\r\n const [outrosLocId, setOutrosLocId] = useState([]);\r\n\r\n useEffect(() => {\r\n //if (formulario.getFieldValue('usu_id') != undefined)\r\n loadLocais()\r\n }, [pagina, nroRegistros, formulario.getFieldValue('usu_id')]);\r\n\r\n async function loadLocais() {\r\n var keys = []\r\n setSelectedRowKeys([]);\r\n setLoad(true);\r\n var itens = [];\r\n\r\n try {\r\n var resListar = await api.get(`Local/Listar?PageNumber=${pagina}&PageSize=${nroRegistros}&Order=${ordem}`)\r\n\r\n if (resListar.status === 200) {\r\n\r\n resListar.data.items.map(i => {\r\n itens.push(i.loc_id)\r\n });\r\n setPageRows(itens);\r\n\r\n resListar.data.items = await resListar.data.items.map((x) => ({ key: x.loc_id, ...x }));\r\n formulario.setFieldsValue({usuarioslocais: resListar.data.items});\r\n setLocais({dados: resListar.data.items, totalItens: resListar.data.totalItems})\r\n \r\n }\r\n var usu_id = formulario.getFieldValue('usu_id');\r\n if (typeof usu_id != 'undefined') {\r\n var resLocais = await api.get(`Local/LocaisSelecionadosUsuario?idUser=${usu_id}`)\r\n\r\n if (resLocais.status === 200) {\r\n resLocais.data.items = await resLocais.data.map((x) => ({ key: x.loc_id, ...x }));\r\n let locaisSelecionados = resLocais.data.items;\r\n locaisSelecionados.forEach(e => {\r\n keys.push(e.key);\r\n });\r\n setSelectedRowKeys(keys);\r\n formulario.setFieldsValue({locaisselecionados: locaisSelecionados});\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error.response)\r\n } finally {\r\n setLoad(false)\r\n }\r\n };\r\n\r\n const rowSelection = {\r\n selectedRowKeys,\r\n onChange: (keys, selectedRows) => {\r\n var others = [];\r\n\r\n if (keys.length == 0) {\r\n return notification.info({description: \"Ao menos uma filial deve permanecer selecionada. Para desativar o usuário desmarque a opção \\\"Usuário Ativo?\\\".\"})\r\n }\r\n\r\n if (validaLocId) {\r\n var is = false;\r\n var justOutCheck = [];\r\n pageRows.forEach(p => {\r\n for (var i = 0; i < keys.length; i++) {\r\n is = p == keys[i] ? true : false;\r\n if (is) break;\r\n }\r\n if (!is) justOutCheck.push(p);\r\n is = false;\r\n });\r\n\r\n var selected = selectedRowKeys;\r\n var sel_page = keys;\r\n\r\n is = false;\r\n selected.forEach(s => {\r\n for (var i = 0; i < sel_page.length; i++) {\r\n is = s == sel_page[i] ? true : false;\r\n if (is) break;\r\n }\r\n if (!is) others.push(s);\r\n var is = false;\r\n })\r\n\r\n justOutCheck.forEach(o => {\r\n for (var i = 0; i < others.length; i++) {\r\n if (others[i] == o) others.pop(o);\r\n }\r\n })\r\n setValidaLocId(false);\r\n setOutrosLocId(others);\r\n }\r\n\r\n var include = others.concat(keys);\r\n let list = include.map(x => ({ loc_id: x }));\r\n\r\n if (!others.length > 0) others = outrosLocId;\r\n \r\n setSelectedRowKeys(keys);\r\n\r\n formulario.setFieldsValue({ locaisselecionados: list });\r\n },\r\n };\r\n\r\n return (\r\n
\r\n (\r\n \r\n {loc_id}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Filial',\r\n render: ({ loc_descricao }) => (\r\n {loc_descricao}\r\n ),\r\n },\r\n {\r\n title: 'CNPJ',\r\n render: ({ loc_cnpj: { numero } }) => (\r\n {MaskFormat(numero, \"00.000.000/0000-00\")}\r\n ),\r\n\r\n },\r\n ]}\r\n pagination={{\r\n current: pagina,\r\n pageSize: nroRegistros,\r\n total: locais.totalItens,\r\n onChange: (pg) => setPagina(pg),\r\n onShowSizeChange: (current, page) => setNroRegistros(page)\r\n }} scroll={{ x: 900 }} />\r\n
\r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Upload, Checkbox, Tabs, notification, Modal } from \"antd\";\r\nimport { LoadingOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport ImgCrop from 'antd-img-crop';\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW } from \"../../components\";\r\nimport { TabFiliaisUsuario, TabPermissoesUsuario, TabHorariosAcessoUsuario } from \"./tabPage\";\r\n\r\nimport { getEmpresa, getIdUsuario } from '../../services/auth'\r\n\r\nexport default function ManutencaoUsuario({ formulario, carregando, aoSalvar }) {\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [imageUrl, setImageUrl] = useState(null);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [userId, setUserId] = useState(null);\r\n const [fileList, setFileList] = useState([]);\r\n const [array, setArray] = useState([]);\r\n const [emailAtual, setEmailAtual] = useState(formulario.getFieldValue('usu_email'));\r\n\r\n useEffect(() => {\r\n carregarAvatar();\r\n getPermissoesDefault();\r\n formulario.setFieldsValue({ usu_email: emailAtual });\r\n }, []);\r\n\r\n const getBase64 = async (img, callback) => {\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () => callback(reader.result));\r\n reader.readAsDataURL(img);\r\n }\r\n\r\n const beforeUpload = async (file) => {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n if (!isJpgOrPng) {\r\n notification.error('Você só pode fazer upload de arquivos JPG/PNG!');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n notification.error('A imagem deve ter menos de 2 MB!');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n }\r\n\r\n const setImageComponent = (img_avatar) => {\r\n if (formulario.getFieldValue('usu_id')) {\r\n setUserId(formulario.getFieldValue('usu_id'));\r\n let img = [\r\n {\r\n uid: '-1',\r\n name: 'image.png',\r\n status: 'done',\r\n url: img_avatar,\r\n },\r\n ];\r\n\r\n setFileList(img);\r\n }\r\n };\r\n\r\n const carregarAvatar = async () => {\r\n if (!!formulario.getFieldValue('usu_email')) {\r\n await api.get(`Usuario/Avatar?email=${formulario.getFieldValue('usu_email')}`).then(\r\n res => {\r\n if (res.data.length > 100) {\r\n var caminho_avatar = `data:image/png;base64,${res.data}`;\r\n setImageComponent(caminho_avatar);\r\n setImageUrl(caminho_avatar);\r\n } else {\r\n let img = [\r\n {\r\n uid: res.data,\r\n name: 'image.png',\r\n status: 'done'\r\n },\r\n ];\r\n\r\n setFileList(img);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro)\r\n }\r\n )\r\n }\r\n };\r\n\r\n const getPermissoesDefault = async () => {\r\n let permissaoDefault;\r\n await api.get(`PermissaoUsuario/ListarPermissoesPaginas`).then(\r\n res => {\r\n permissaoDefault = res.data.map(\r\n (x, idx) =>\r\n ({ key: idx, ...x })\r\n );\r\n permissaoDefault.forEach(e => {\r\n e.acesso = true;\r\n e.permissoes.forEach(p => {\r\n p.acesso = true;\r\n });\r\n });\r\n setArray(permissaoDefault);\r\n }).catch(\r\n (err) => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n function salvarManutencao(values) {\r\n values.usu_sac = false;\r\n values.usu_suporte = false;\r\n var usuarios_locais = [];\r\n if (typeof values.locaisselecionados == 'undefined') {\r\n Modal.warning({\r\n title: \"Verifique os Locais de acesso!\",\r\n content: \"Não foi selecionado local de acesso para o usuário!\",\r\n });\r\n return;\r\n }\r\n values.locaisselecionados.forEach(l => {\r\n usuarios_locais.push({ usu_id: getIdUsuario(), loc_id: l.loc_id })\r\n })\r\n delete values.locaisselecionados;\r\n values.usuarioslocais = usuarios_locais;\r\n\r\n\r\n if (!values.listaPermissoesPaginas && !values.usu_id) {\r\n values.listaPermissoesPaginas = array;\r\n }\r\n\r\n if (typeof values.usuarioacessos != 'undefined') {\r\n values.usuarioacessos.map(item => {\r\n item.emp_id = getEmpresa();\r\n })\r\n }\r\n\r\n //tratamento senha\r\n if (values.usu_senha == \"\" || values.usu_confirmaSenha == \"\" || values.usu_senha != values.usu_confirmaSenha) {\r\n delete values.usu_senha;\r\n delete values.usu_confirmaSenha;\r\n }\r\n\r\n //tratmento do avatar\r\n if ((imageUrl != null) && (fileList != '')) {\r\n values.avatar = { data: imageUrl, type: fileList[0].type };\r\n } else {\r\n delete values.usu_avatar;\r\n }\r\n if (!!values.usu_id) {\r\n editar(values);\r\n } else {\r\n incluir(values);\r\n }\r\n }\r\n \r\n function incluir(values) {\r\n //tratamento dos campos\r\n carregando(true);\r\n api.post(`Usuario/Incluir`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Usuário foram salvos com sucesso, um e-mail foi enviado para a definição de senha!\" });\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n notification.error({ message: 'Aviso!', description: 'Problema ao incluir Usuario!' });\r\n }).finally(() => {\r\n carregando(false);\r\n formulario.resetFields();\r\n aoSalvar();\r\n })\r\n }\r\n \r\n function editar(values) {\r\n carregando(true);\r\n api.put(`Usuario/Editar`, values).then(\r\n res => {\r\n notification.success({ message: 'Sucesso!', description: 'Usuário alterado com Sucesso' });\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n notification.error({ message: 'Aviso!', description: 'Problema ao editar Usuário!' });\r\n }).finally(() => {\r\n carregando(false);\r\n formulario.resetFields();\r\n aoSalvar();\r\n })\r\n }\r\n const handleChange = (info) => {\r\n if (info.file.status === 'uploading') {\r\n setLoading(true);\r\n }\r\n if (info.file.status !== 'removed') {\r\n getBase64(info.file.originFileObj, (base64) => {\r\n setLoading(false);\r\n setImageUrl(base64);\r\n });\r\n }\r\n if (info.file.status === 'removed')\r\n setImageUrl(null);\r\n\r\n setFileList(info.fileList);\r\n };\r\n\r\n const onBlurVerificaEmail = async () => {\r\n var usuario;\r\n setEmailAtual(formulario.getFieldValue('usuEmail'));\r\n let emailNovo = formulario.getFieldValue('usu_email');\r\n let idUsuario = formulario.getFieldValue('usu_id');\r\n try {\r\n if (typeof idUsuario != 'undefined' & idUsuario != 0) usuario = `&idUsuario=${idUsuario}`;\r\n var result = await api.get(`Usuario/ValidarEmailEmpresa?email=${emailNovo}`);\r\n if (result.status == 200) {\r\n if (result.data) {\r\n formulario.setFieldsValue(result.data)\r\n carregarAvatar();\r\n }\r\n }\r\n } catch (err) {\r\n console.log('err :>> ', err);\r\n };\r\n }\r\n\r\n const uploadButton = (\r\n
\r\n {loading ? : }\r\n
\r\n {loading ? 'Carregando...' : 'Selecionar Imagem'}\r\n
\r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n setImageUrl(null)}\r\n maxCount={1}\r\n >\r\n {fileList.length == 0 && uploadButton}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {userId != null &&\r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value)\r\n return Promise.resolve();\r\n\r\n const regexNumber = /[0-9]/;\r\n const regexLetrasMaiuscula = /[A-Z]/;\r\n const regexLetrasMinuscula = /[a-z]/;\r\n\r\n if (regexNumber.test(value) === false) {\r\n return Promise.reject(new Error('A senha deve conter números!'));\r\n } else if (regexLetrasMaiuscula.test(value) === false) {\r\n return Promise.reject(new Error('A senha deve conter letras maiúsculas!'));\r\n } else if (regexLetrasMinuscula.test(value) === false) {\r\n return Promise.reject(new Error('A senha deve conter letras minúscula!'));\r\n } else if (value.length < 6) {\r\n return Promise.reject(new Error('A senha deve conter no mínimo 6 caracteres!'));\r\n } else if ((value == \" \") || (value == \"\")) {\r\n return Promise.reject(new Error('A senha não pode ser vazia'));\r\n }\r\n else\r\n return Promise.resolve();\r\n },\r\n }),\r\n ]}\r\n label=\"Nova Senha\"\r\n name=\"usu_senha\">\r\n \r\n \r\n \r\n \r\n ({\r\n required: getFieldValue('usu_confirmaSenha'),\r\n message: 'Informe a confirmação de sua senha!',\r\n }),\r\n ({ getFieldValue }) => ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('usu_senha') === value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('As senhas informadas não conferem!'));\r\n },\r\n\r\n })\r\n ]}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Este usuário irá possuir privilégios de administrador no sistema?\r\n \r\n \r\n \r\n \r\n Este usuário irá possuir acesso apenas no PDV?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport ManutencaoUsuario from './manutencao';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, manutencaoActions, listagemActions } from '../../actions';\r\n\r\nexport default function DrawerUsuario() {\r\n\r\n const [formUsuario] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formUsuario.setFieldsValue(manutencao.dados, {usu_sac: false, usu_suporte: false});\r\n }\r\n else {\r\n formUsuario.setFieldsValue({ usu_ativo: false, usu_usuariopdv: false, usu_admin: false, usu_sac: false, usu_suporte: false, listaFiliais: [] });\r\n }\r\n\r\n\r\n function fecharDrawer() {\r\n formUsuario.resetFields();\r\n \r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+usu_nome' } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n });\r\n };\r\n\r\n return (\r\n { fecharDrawer() }}\r\n closeIcon={}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Popover, Modal, notification } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, PrinterOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport DrawerUsuario from './drawer';\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir, Imprimir } from \"../../components\";\r\n\r\nexport default function Usuario() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: \"&Ativos=1\", ordem: '+usu_nome' } }), []);\r\n\r\n const loadData = (record) => {\r\n record.usuEmail = record.usu_email;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o usuário: ${dados.usu_nome}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n const modalInativarRegistro = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir usuário ${dados.usu_nome}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(dados);\r\n }\r\n });\r\n };\r\n function inativarRegistro(dados) {\r\n api.put(`Usuario/Inativar/${dados.usu_id}`).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Usuario(a) inativado(a) com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: \"&Ativos=1\", ordem: '+usu_nome' } });\r\n }\r\n )\r\n }\r\n function excluirRegistro(dados) {\r\n api.delete(`Usuario/Excluir/${dados.usu_id}`).then((res) => {\r\n if (res.data == false) {\r\n modalInativarRegistro(dados);\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, (err) => {\r\n console.error(err);\r\n modalInativarRegistro(dados);\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: \"&Ativos=1\", ordem: '+usu_nome' } });\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {usu_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Usuário',\r\n render: ({ usu_nome }) => (\r\n
\r\n {usu_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'E-mail',\r\n render: ({ usu_email }) => (\r\n
\r\n {usu_email}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Inclusão',\r\n render: ({ usu_datainclusao }) => (\r\n
\r\n {(usu_datainclusao ? moment(usu_datainclusao).format(\"DD/MM/YYYY\") : '')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n {/*
\r\n }/>\r\n */}\r\n \r\n loadData(record)} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluir(dados)} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Button, Divider } from \"antd\";\r\nimport { StopOutlined, SaveOutlined, CheckOutlined, DeleteFilled } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport { ModalDefinirHorario } from \"../../components/modals/\";\r\n\r\nexport default function TabHorariosAcessoGrupo({ listHorarios, transformList }) {\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n const [idDay, setIdDay] = useState(null);\r\n\r\n const setDataModal = (id) => {\r\n setIdDay(id);\r\n setOpenModal(true);\r\n }\r\n\r\n const onChangeHorario = (id, disabled = false, horaInicial = null, horaFinal = null) => {\r\n let array = [...listHorarios.listHorarios];\r\n array[id].disabled = disabled;\r\n if (horaInicial != null && horaFinal != null)\r\n array[id].day.push(\r\n {\r\n horaInicial: horaInicial != null ? horaInicial : null,\r\n horaFinal: horaFinal != null ? horaFinal : null,\r\n bloqueado: disabled,\r\n });\r\n listHorarios.setListHorarios(array);\r\n transformList(array);\r\n }\r\n\r\n const deleteHorario = (id, key) => {\r\n let array = [...listHorarios.listHorarios];\r\n array[id].day.splice(key, 1);\r\n listHorarios.setListHorarios(array);\r\n transformList(array);\r\n }\r\n\r\n return (\r\n
\r\n \r\n {listHorarios.listHorarios.map(({ id, description, disabled, day }, idx) => (\r\n
\r\n \r\n \r\n {description}\r\n \r\n \r\n \r\n {!disabled && \r\n {day.map((x, idx) => (\r\n\r\n \r\n \r\n \r\n {moment(x.horaInicial).format(\"HH:mm\")} até {moment(x.horaFinal).format(\"HH:mm\")}\r\n \r\n \r\n }\r\n type=\"link\"\r\n onClick={() => deleteHorario(id, idx)} />\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {disabled && \r\n \r\n

Bloqueado

\r\n \r\n \r\n \r\n \r\n }\r\n \r\n ))}\r\n \r\n setOpenModal(false)} />\r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Row, Col, Tag, Divider, Button, Table } from \"antd\";\r\nimport { CheckOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function TabPermissoesGrupo({ listPermissoes, load, handleChangeBloqueioAll }) {\r\n\r\n const handleChangeBloqueioPagina = (key, metodo = null) => {\r\n let array = [...listPermissoes.listPermissoes];\r\n let index = array.findIndex(x => x.key == key);\r\n if (index > -1) {\r\n if (metodo != null) {\r\n let idx = array[index].permissoes.findIndex(x => x.metodo == metodo);\r\n if (idx > -1)\r\n array[index].permissoes[idx].acesso = !array[index].permissoes[idx].acesso;\r\n }\r\n else {\r\n array[index].acesso = !array[index].acesso;\r\n for (let y in array[index].permissoes)\r\n array[index].permissoes[y].acesso = array[index].acesso;\r\n }\r\n listPermissoes.setListPermissoes(array);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n
\r\n handleChangeBloqueioPagina(record.key)}\r\n >\r\n {(!!acesso) ? 'Liberado' : 'Bloqueado'}\r\n \r\n \r\n \r\n {pagina}\r\n \r\n \r\n {acesso &&\r\n
\r\n \r\n \r\n {permissoes.map((item, idx) =>\r\n
\r\n \r\n \r\n {item.metodo}\r\n \r\n \r\n handleChangeBloqueioPagina(record.key, item.metodo)}>\r\n {(item.acesso) ? 'Sim' : 'Não'}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n }\r\n \r\n ),\r\n },\r\n ]}\r\n dataSource={listPermissoes.listPermissoes}\r\n />\r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Button, Typography, Divider, Card, Modal } from \"antd\";\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { ModalAdicionarUsuario } from \"../../components/modals/\";\r\n\r\nexport default function TabUsuarioGrupo({ formulario, usuarios }) {\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n\r\n function incluirRemoverUsuario(user, incluir, mensagem = '') {\r\n let lista = [...usuarios.usuarios];\r\n let indice = usuarios.usuarios.findIndex((element) => {\r\n return element.usu_email === user.usu_email;\r\n });\r\n lista[indice].incluido = incluir;\r\n\r\n formulario.setFieldsValue({ usuarios: lista.filter((user) => { return user.incluido }) });\r\n usuarios.setUsuarios(lista);\r\n if (!!mensagem){\r\n Modal.success({\r\n content: mensagem,\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Usuário Informações Usuário do Grupo\r\n \r\n \r\n Adicione um novo usuário.\r\n \r\n \r\n \r\n {/* \r\n \r\n
\r\n
\r\n \r\n */}\r\n
\r\n \r\n {usuarios.usuarios.filter((user) => { return !user.usu_email.includes('@newerp.com.br') }).map((item) => (\r\n
\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n {!item.incluido &&\r\n \r\n \r\n \r\n }\r\n {item.incluido &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n setOpenModal(false)} incluirRemoverUsuario={incluirRemoverUsuario}/>\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Checkbox, Tabs, notification } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { TabUsuarioGrupo, TabHorariosAcessoGrupo, TabPermissoesGrupo } from \"./tabPage\";\r\n\r\nexport default function ManutencaoGrupoUsuario({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [usuarios, setUsuarios] = useState([]);\r\n const [listPermissoes, setListPermissoes] = useState([]);\r\n const [load, setLoad] = useState(false);\r\n const [telaDuplicar, setTelaDuplicar] = useState(false);\r\n const [listHorarios, setListHorarios] = useState(\r\n [{\r\n id: 0,\r\n name: 'dom',\r\n disabled: false,\r\n description: 'Domingo',\r\n day: []\r\n }, {\r\n id: 1,\r\n name: 'seg',\r\n disabled: false,\r\n description: 'Segunda-feira',\r\n day: []\r\n }, {\r\n id: 2,\r\n name: 'ter',\r\n disabled: false,\r\n description: 'Terça-feira',\r\n day: []\r\n }, {\r\n id: 3,\r\n name: 'qua',\r\n disabled: false,\r\n description: 'Quarta-feira',\r\n day: []\r\n }, {\r\n id: 4,\r\n name: 'qui',\r\n disabled: false,\r\n description: 'Quinta-feira',\r\n day: []\r\n }, {\r\n id: 5,\r\n name: 'sex',\r\n disabled: false,\r\n description: 'Sexta-feira',\r\n day: []\r\n }, {\r\n id: 6,\r\n name: 'sab',\r\n disabled: false,\r\n description: 'Sábado',\r\n day: []\r\n },]);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n carregarUsuarios();\r\n loadPermissoes();\r\n carregarHorariosAcesso();\r\n if (!!manutencao.dados && manutencao.dados.duplicar) {\r\n setTelaDuplicar(true);\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n useEffect(() => {\r\n if (telaDuplicar) {\r\n formulario.setFieldsValue({ gru_ativo: true, gru_nome: null, gru_descricao: null });\r\n }\r\n }, [telaDuplicar]);\r\n\r\n function loadPermissoes() {\r\n setLoad(true);\r\n api.get(`PermissaoUsuario/ListarPermissoesPaginas`).then(res => {\r\n if (res.status === 200) {\r\n const list = res.data;\r\n let gru_id = formulario.getFieldValue('gru_id');\r\n if (gru_id) {\r\n api.get(`PermissaoGrupo/Listar?codigoGrupoUsuario=${gru_id}`).then((result) => {\r\n if (result.status === 200) {\r\n let dataAcess = result.data;\r\n for (let i in list) {\r\n let idx = dataAcess.findIndex(x => x.prg_nome === list[i].pagina);\r\n if (idx > -1) {\r\n let obj = JSON.parse(dataAcess[idx].prg_permissoes);\r\n if (!!obj) {\r\n let { api, sistema } = obj[0];\r\n if (api.length > 0 && sistema.length > 0 && sistema[0].acesso) {\r\n list[i].acesso = sistema[0].acesso;\r\n if (api[0].controller)\r\n list[i].permissoes = sistema[0].elementos.map((x) => ({ controller: api[0].controller, ...x }));\r\n }\r\n }\r\n }\r\n }\r\n setListPermissoes(list.map((x, idx) => ({ key: idx, ...x })));\r\n }\r\n }).catch((err) => {\r\n console.log(err.response)\r\n }).finally(() => setLoad(false));\r\n } else {\r\n const array = list.map((x, idx) => ({ key: idx, ...x }));\r\n handleChangeBloqueioAll(true, array);\r\n setLoad(false)\r\n }\r\n\r\n }\r\n }, err => {\r\n console.log(err.response)\r\n setLoad(false)\r\n });\r\n }\r\n\r\n const handleChangeBloqueioAll = (option, list = null) => {\r\n let array = (list != null) ? list : [...listPermissoes];\r\n for (let i in array) {\r\n array[i].acesso = option;\r\n for (let y in array[i].permissoes) {\r\n array[i].permissoes[y].acesso = option;\r\n }\r\n }\r\n setListPermissoes(array);\r\n };\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ listaPermissoesPaginas: listPermissoes });\r\n }, [listPermissoes]);\r\n\r\n async function carregarUsuarios() {\r\n let usuariosEmpresa = await api.get(`Usuario/ListarUsuarioAcessos?Ativo=true&PageSize=500&filtro=`);\r\n if (usuariosEmpresa.status === 200 && usuariosEmpresa.data.items.length > 0) {\r\n const list = usuariosEmpresa.data.items;\r\n let usuariosGrupo = [];\r\n let gru_id = formulario.getFieldValue('gru_id');\r\n if (gru_id) {\r\n let listaUsuarios = await api.get(`Usuario/ListarUsuariosGrupo?IdGrupo=${gru_id}`);\r\n if (listaUsuarios.status === 200 && listaUsuarios.data.length > 0) {\r\n listaUsuarios.data.forEach((value) => {\r\n let indice = list.findIndex((element) => {\r\n return element.usu_email === value.usu_email;\r\n });\r\n if (indice >= 0) {\r\n list[indice].incluido = true;\r\n usuariosGrupo.push(list[indice]);\r\n }\r\n });\r\n }\r\n }\r\n setUsuarios(list.map((x, idx) => ({ key: idx, ...x })));\r\n formulario.setFieldsValue({ usuarios: usuariosGrupo });\r\n }\r\n };\r\n\r\n function carregarHorariosAcesso() {\r\n if (formulario.getFieldValue('gru_id')) {\r\n api.get(`GrupoUsuario/ListarHorariosAcessoGrupo?IdGrupo=${formulario.getFieldValue('gru_id')}`).then((result) => {\r\n if (result.status === 200) {\r\n let array = [...listHorarios];\r\n result.data.forEach(element => {\r\n array[element.uac_dia].disabled = element.uac_bloqueado;\r\n if (!element.uac_bloqueado) {\r\n array[element.uac_dia].day.push({\r\n bloqueado: element.uac_bloqueado,\r\n horaInicial: element.uac_horainicial != null ? moment(element.uac_horainicial) : null,\r\n horaFinal: element.uac_horafinal != null ? moment(element.uac_horafinal) : null\r\n });\r\n }\r\n });\r\n setListHorarios(array)\r\n transformList(array);\r\n }\r\n }).catch((err) => {\r\n console.log(err.response);\r\n });\r\n }\r\n };\r\n\r\n const transformList = (array) => {\r\n let obj = {};\r\n for (let i in array) {\r\n if (array[i].disabled)\r\n obj[array[i].name] = [{ horaInicial: null, horaFinal: null, bloqueado: true }];\r\n else\r\n obj[array[i].name] = array[i].day.length > 0 ? array[i].day.map((x) => (\r\n {\r\n horaInicial: new Date(x.horaInicial),\r\n horaFinal: new Date(x.horaFinal),\r\n bloqueado: x.bloqueado\r\n })) : [];\r\n\r\n }\r\n formulario.setFieldsValue({ listaDefinicaoHorario: { ...obj } });\r\n }\r\n\r\n function salvarManutencao(values) {\r\n values.usuariogrupousuarios = values.usuarios;\r\n carregando(true);\r\n if (!!values.gru_id) {\r\n editar(values);\r\n } else {\r\n incluir(values);\r\n }\r\n }\r\n \r\n function incluir(values) {\r\n //tratamento dos campos\r\n api.post(`GrupoUsuario/Incluir`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: `Grupo de Usuários ${values.duplicar ? 'duplicado' : 'salvo'} com sucesso!` });\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n notification.error({ message: 'Aviso!', description: 'Problema ao incluir Grupo de Usuários!' });\r\n }).finally(() => {\r\n formulario.resetFields();\r\n aoSalvar();\r\n carregando(false);\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+gru_nome' } });\r\n })\r\n }\r\n \r\n function editar(values) {\r\n api.put(`GrupoUsuario/Editar`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: `Grupo de Usuários ${values.duplicar ? 'duplicado' : 'salvo'} com sucesso!` });\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n notification.error({ message: 'Aviso!', description: 'Problema ao editar Grupo de Usuários!' });\r\n }).finally(() => {\r\n formulario.resetFields();\r\n aoSalvar();\r\n carregando(false);\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+gru_nome' } });\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Grupo Ativo?\r\n \r\n \r\n \r\n \r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoGrupoUsuario from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerUsuario() {\r\n\r\n const [formGrupoUsuario] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n if (manutencao.dados !== null) {\r\n formGrupoUsuario.setFieldsValue(manutencao.dados);\r\n } else {\r\n //formGrupoUsuario.resetFields();\r\n formGrupoUsuario.setFieldsValue({ mar_ativa: true });\r\n }\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formGrupoUsuario.resetFields();\r\n\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Button, Dropdown, Menu, Tag, Popover, notification, Modal} from \"antd\";\r\nimport { EditOutlined, MoreOutlined, DeleteOutlined, PrinterOutlined, CopyOutlined, ToTopOutlined, CloseCircleOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport DrawerGrupoUsuario from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir, Duplicar, Exportar, Imprimir } from \"../../components\";\r\n\r\nexport default function GrupoUsuario() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+gru_nome' } }), []);\r\n\r\n function menuTable(dados) {\r\n return (\r\n \r\n \r\n } onClick={() => abrirManutencaoDuplicar(dados)}> Duplicar \r\n \r\n \r\n }> Exportar \r\n \r\n \r\n }> Imprimir \r\n \r\n \r\n )\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Excluir o grupo de usuários ${dados.gru_nome}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n function abrirManutencaoDuplicar(dados){\r\n let dadosDuplicar = {...dados};\r\n dadosDuplicar.duplicar = true;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosDuplicar } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function excluirRegistro(dados) {\r\n api.post(`GrupoUsuario/Excluir?grupoUsuarioId=${dados.gru_id}`).then((res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Grupo de usuários excluído com sucesso!\" });\r\n }\r\n }, (err) => {\r\n modalInativarGrupo(dados);\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+gru_nome' } });\r\n });\r\n }\r\n\r\n const modalInativarGrupo = (dados) => {\r\n Modal.confirm({\r\n title: `Não foi possível excluir o grupo de usuários ${dados.gru_nome}!`,\r\n icon: ,\r\n content: `Deve conter referências com outros registros!`,\r\n okText: 'Inativar Registro',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n dados.gru_ativo = false;\r\n dados.usuarios = [];\r\n dados.usuarios = [];\r\n api.post(`GrupoUsuario/Editar`, dados).then((res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Grupo de Usuários inativado com sucesso!\" });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+gru_nome' } });\r\n });\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {gru_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Grupos de Usuários',\r\n render: ({ gru_nome }) => (\r\n
\r\n {gru_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluir(dados)} />\r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Gerar Bloco K? \r\n \r\n \r\n \r\n \r\n Gerar registro C170 para todos os modelos de documentos? \r\n \r\n \r\n \r\n \r\n Gerar registro 0150 para documentos modelo 65? \r\n \r\n \r\n \r\n \r\n Gerar registro C176 para vendas interestaduais? \r\n \r\n \r\n \r\n \r\n Empresa optante pela dispensa da informação das NFC-es - IN 48/20? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } size=\"large\" htmlType=\"submit\">\r\n Salvar\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Modal, Button } from \"antd\";\r\nimport { CheckOutlined, ExclamationCircleOutlined, EyeOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { BreadcrumbAbrirChamado, TabelaDados } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function Notificacao() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n function excluirNotificacao(record) {\r\n api.delete(`Notificacao/Excluir/${record.id}`).then(\r\n res => {\r\n console.log(`Notificações excluidas com sucesso!`);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+not_datahora' } });\r\n }\r\n )\r\n };\r\n function visualizar(record) {\r\n Modal.info({\r\n title: ('Notificação!'),\r\n content: (\r\n
\r\n

\r\n {record.not_descricao}\r\n

\r\n
\r\n ),\r\n });\r\n };\r\n\r\n const modalExcluirNotificacao = (record) => {\r\n Modal.confirm({\r\n Title: 'Aviso',\r\n icon: ,\r\n content: 'Deseja excluir essa notificação?',\r\n okText: 'Excluir',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirNotificacao(record);\r\n }\r\n });\r\n };\r\n\r\n function excluirTodasNotificacao() {\r\n Modal.confirm({\r\n Title: 'Aviso',\r\n icon: ,\r\n content: 'Deseja excluir todas as notificações?',\r\n okText: 'Excluir',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.delete(`Notificacao/ExcluirTodos`).then(\r\n res => {\r\n console.log(`Notificacões excluidas com sucesso!`);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+not_datahora' } });\r\n }\r\n )\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-not_datahora' } });\r\n }, [])\r\n\r\n return (\r\n
\r\n \r\n
\r\n (\r\n
\r\n {moment(not_datahora).format('DD/MM/YYYY HH:mm:ss')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Notificações',\r\n render: ({ not_descricao }) => (\r\n
\r\n {not_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: excluirTodasNotificacao()} />,\r\n width: 95,\r\n align: 'center',\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n\r\n } />\r\n\r\n \r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Row, Col, Form, Select, Checkbox, InputNumber } from \"antd\";\r\n\r\nexport default function TabPdv({ impressaoComprovantes, listaContaGerencial, listaContaGerencialAgrupador }) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Comandar emissão de NFC-e Manualmente?\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Tabs, Select, Checkbox, Tooltip, Input, Upload, message, InputNumber, Button, Modal } from \"antd\";\r\nimport { QuestionCircleOutlined, CloseOutlined, SaveOutlined, LoadingOutlined, PlusOutlined } from \"@ant-design/icons\";\r\nimport ImgCrop from \"antd-img-crop\";\r\n\r\nimport TabPdv from './tabPdv';\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { parametrosEmpresaActions } from \"../../actions\";\r\nimport { getEmpresa, linkApi } from \"../../services/auth\";\r\nimport { isNotNullOrEmpty } from \"../../services/funcoes\";\r\n\r\nexport default function ParametrosEmpresa() {\r\n\r\n const [{ manutencao, parametrosEmpresa }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [carregando, setCarregando] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [listaImagens, setListaImagens] = useState([]);\r\n const [imageUrl, setImageUrl] = useState(null);\r\n const [formulario] = Form.useForm();\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n const [custo, setCusto] = useState([]);\r\n const [tipoMarkup, setTipoMarkup] = useState([]);\r\n const [impressaoComprovantes, setImpressaoComprovantes] = useState([]);\r\n const [regimeTributarioFiscal, setRegimeTributarioFiscal] = useState([]);\r\n const [enquadramentoFiscal, setEnquadramentoFiscal] = useState([]);\r\n const [codigoBarrasBalanca, setCodigoBarrasBalanca] = useState([]);\r\n const [numeroDigitosBalanca, setNumeroDigitosBalanca] = useState([]);\r\n const [modeloBalanca, setModeloBalanca] = useState([]);\r\n\r\n const onChange = (info) => {\r\n if (info.file.status === 'uploading') {\r\n setLoading(true);\r\n }\r\n if (info.file.status !== 'removed') {\r\n getBase64(info.file.originFileObj, (imageUrl) => {\r\n setLoading(false);\r\n setImageUrl(imageUrl);\r\n });\r\n }\r\n if (info.file.status === 'removed') {\r\n setImageUrl(null);\r\n }\r\n\r\n setListaImagens(info.fileList);\r\n };\r\n\r\n function getBase64(img, callback) {\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () => callback(reader.result));\r\n reader.readAsDataURL(img);\r\n }\r\n\r\n function beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n if (!isJpgOrPng) {\r\n message.error('Você só pode fazer upload de arquivos JPG/PNG!');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('A imagem deve ter menos de 2 MB!');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n }\r\n\r\n const uploadButton = (\r\n
\r\n {loading ? : }\r\n
{loading ? 'Carregando...' : 'Selecionar Imagem'}
\r\n
\r\n );\r\n\r\n useEffect(() => {\r\n api.get(`Empresa/Buscar/${getEmpresa()}`).then(retornoEmpresa => {\r\n formulario.setFieldsValue({\r\n emp_nomefantasia: retornoEmpresa.data.emp_nomefantasia,\r\n emp_razaosocial: retornoEmpresa.data.emp_razaosocial,\r\n emp_regimetributario: retornoEmpresa.data.emp_regimetributario,\r\n emp_enquadramentofiscal: retornoEmpresa.data.emp_enquadramentofiscal\r\n });\r\n let url = `${linkApi}Empresa/RetornaLogo?id=${getEmpresa()}`;\r\n setImageUrl(retornoEmpresa.data.emp_logo);\r\n setListaImagens([{ url: url, uid: 1 }]);\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get('ContaGerencial/ListarAtivosEstruturadoPelaCategoria?filtro=&').then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get('Enum/Listar?nome=TipoPrecoUtilizar').then(res => {\r\n if (res.status === 200) {\r\n setCusto(res.data.filter((item) => { return item.key > 0; }));\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get('Enum/Listar?nome=TipoMarkup').then(res => {\r\n if (res.status === 200) {\r\n setTipoMarkup(res.data.filter((item) => { return item.key > 0; }));\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n\r\n api.get('Enum/Listar?nome=ImpressaoComprovantes').then(res => {\r\n if (res.status === 200) {\r\n setImpressaoComprovantes(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get('/ParametroEmpresa/BuscarParametros').then(res => {\r\n if (res.status === 200) {\r\n dispatch({ type: parametrosEmpresaActions.CHANGE, data: res.data });\r\n formulario.setFieldsValue(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=RegimeTributarioFiscal`).then(res => {\r\n if (res.status === 200) {\r\n setRegimeTributarioFiscal(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=EnquadramentoFiscal`).then(res => {\r\n if (res.status === 200) {\r\n setEnquadramentoFiscal(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n\r\n api.get(`Enum/Listar?nome=ModeloBalanca`).then(res => {\r\n if (res.status === 200) {\r\n setModeloBalanca(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get(`Enum/Listar?nome=NumeroDigitosBalanca`).then(res => {\r\n if (res.status === 200) {\r\n setNumeroDigitosBalanca(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n api.get(`Enum/Listar?nome=CodigoBarrasBalanca`).then(res => {\r\n if (res.status === 200) {\r\n setCodigoBarrasBalanca(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }, []);\r\n\r\n function salvarParametros() {\r\n let dadosParametrosEmpresa = formulario.getFieldValue();\r\n dadosParametrosEmpresa.par_contagerencialsangriapdv = !!dadosParametrosEmpresa.par_contagerencialsangriapdv ? dadosParametrosEmpresa.par_contagerencialsangriapdv : null;\r\n dadosParametrosEmpresa.par_contagerencialsuprimentopdv = !!dadosParametrosEmpresa.par_contagerencialsuprimentopdv ? dadosParametrosEmpresa.par_contagerencialsuprimentopdv : null;\r\n dadosParametrosEmpresa.par_contagerencialvalepresente = isNotNullOrEmpty(dadosParametrosEmpresa.par_contagerencialvalepresente) ? dadosParametrosEmpresa.par_contagerencialvalepresente : null;\r\n dadosParametrosEmpresa.par_contagervalepresenteprazo = isNotNullOrEmpty(dadosParametrosEmpresa.par_contagervalepresenteprazo) ? dadosParametrosEmpresa.par_contagervalepresenteprazo : null;\r\n dadosParametrosEmpresa.par_ctg_recebimentoparcela = isNotNullOrEmpty(dadosParametrosEmpresa.par_ctg_recebimentoparcela) ? dadosParametrosEmpresa.par_ctg_recebimentoparcela : null;\r\n dadosParametrosEmpresa.par_viasimpressaonfce = !!dadosParametrosEmpresa.par_viasimpressaonfce ? dadosParametrosEmpresa.par_viasimpressaonfce : 1;\r\n dadosParametrosEmpresa.par_impressaodavls = isNotNullOrEmpty(dadosParametrosEmpresa.par_impressaodavls) ? dadosParametrosEmpresa.par_impressaodavls : null;\r\n dadosParametrosEmpresa.par_impressaonfce = isNotNullOrEmpty(dadosParametrosEmpresa.par_impressaonfce) ? dadosParametrosEmpresa.par_impressaonfce : null;\r\n dadosParametrosEmpresa.par_impressaocondicional = isNotNullOrEmpty(dadosParametrosEmpresa.par_impressaocondicional) ? dadosParametrosEmpresa.par_impressaocondicional : null;\r\n dadosParametrosEmpresa.par_impressaorecbtoparcela = isNotNullOrEmpty(dadosParametrosEmpresa.par_impressaorecbtoparcela) ? dadosParametrosEmpresa.par_impressaorecbtoparcela : null;\r\n dadosParametrosEmpresa.par_custopadraonftransferencia = isNotNullOrEmpty(dadosParametrosEmpresa.par_custopadraonftransferencia) ? dadosParametrosEmpresa.par_custopadraonftransferencia : null;\r\n dadosParametrosEmpresa.ope_id = isNotNullOrEmpty(dadosParametrosEmpresa.ope_id) ? dadosParametrosEmpresa.ope_id : null;\r\n dadosParametrosEmpresa.par_impressaocarne = isNotNullOrEmpty(dadosParametrosEmpresa.par_impressaocarne) ? dadosParametrosEmpresa.par_impressaocarne : null;\r\n dadosParametrosEmpresa.par_viasimpressaocarne = !!dadosParametrosEmpresa.par_viasimpressaocarne ? dadosParametrosEmpresa.par_viasimpressaocarne : 1;\r\n dadosParametrosEmpresa.emp_id = getEmpresa();\r\n dadosParametrosEmpresa.emp_logo = imageUrl;\r\n\r\n setCarregando(true);\r\n api.put(\"ParametroEmpresa/Editar\", dadosParametrosEmpresa).then(res => {\r\n if (res.status === 200) {\r\n Modal.success({\r\n title: 'Parametros da empresa atualizados',\r\n content: 'As definições dos parâmetros do Gestor ERP para sua empresa foram atualizados com sucesso!',\r\n onOk() {\r\n onOk();\r\n }\r\n });\r\n } else {\r\n Modal.error({\r\n title: 'Não foi possivel salvar os parâmetros.',\r\n onOk() {\r\n onOk();\r\n }\r\n });\r\n }\r\n }, erro => {\r\n Modal.error({\r\n title: 'Não foi possivel salvar os parâmetros.',\r\n content: erro.message,\r\n onOk() {\r\n onOk();\r\n }\r\n });\r\n }).finally(() => {\r\n atualizarParametrosEmpresa();\r\n setCarregando(false);\r\n });\r\n };\r\n\r\n function onOk() {\r\n window.history.back();\r\n };\r\n\r\n function atualizarParametrosEmpresa() {\r\n api.get('/ParametroEmpresa/BuscarParametros').then(res => {\r\n if (res.status === 200) {\r\n dispatch({ type: parametrosEmpresaActions.CHANGE, data: res.data });\r\n }\r\n }).catch((erro) => console.error(erro));\r\n };\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaImagens.length === 0 && uploadButton}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Conta Gerencial Recebimento\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Usar Limite de Crédito? \r\n \r\n \r\n \r\n \r\n % da Renda Limite de Crédito\r\n \r\n \r\n \r\n \r\n } placeholder=\"Informe o Percentual do Limite de Crédito\" name=\"par_percentuallimitecredito\" cifrao={false}>\r\n \r\n \r\n \r\n Markup Padrão\r\n \r\n \r\n \r\n \r\n } placeholder=\"Informe o Markup Padrão (R$)\" name=\"par_markupproduto\" cifrao={false}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nº Dias Tolerância\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n Nº Dias Tolerância\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n % Juros\r\n \r\n \r\n \r\n \r\n }>\r\n `${value} %`}\r\n decimalSeparator={','}\r\n />\r\n \r\n \r\n \r\n \r\n Valor Multa\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n Custo Padrão\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Imprimir Desconto em cada Item do Cupom Fiscal? \r\n \r\n \r\n \r\n \r\n Usa Promissória? \r\n \r\n {/* \r\n \r\n \r\n Validar Estoque? \r\n \r\n */}\r\n \r\n \r\n \r\n Calcular preço de venda automático pelas notas de compra? \r\n \r\n \r\n prevValues.par_calculaprecovenda !== currentValues.par_calculaprecovenda}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue().par_calculaprecovenda) return (\r\n \r\n \r\n Markup Definido em :\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n prevValues.par_usanotapromissoria !== currentValues.par_usanotapromissoria}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue().par_usanotapromissoria) return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Form, Select, Layout, Card, notification } from \"antd\";\r\nimport { CheckOutlined, PrinterFilled } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { formatarCnpj } from \"../../services/funcoes\";\r\nimport { getEmpresa, getNomeEmpresa } from \"../../services/auth\";\r\nimport { Data } from \"../../components\";\r\n\r\nexport default function AnaliseInadimplenciaCliente() {\r\n const [form] = Form.useForm();\r\n const [listaIndice, setListaIndice] = useState([]);\r\n const [listaLocais, setListaLocais] = useState([]);\r\n const [logoEmpresa, setLogoEmpresa] = useState(\"\");\r\n const [listaDadosInadimplencia, setListaDadosInadimplencia] = useState([]);\r\n const [tiposPagamento, setTiposPagamento] = useState([])\r\n const [indiceSelecionado, setIndiceSelecionado] = useState(0);\r\n const [totalizadores, setTotalizadores] = useState({});\r\n const [imprimir, setImprimir] = useState(false);\r\n const [mostrarScroll, setMostrarScroll] = useState(false)\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => {\r\n carregarDadosIndice();\r\n carregarDadosLocal();\r\n BuscarParametrosEmpresa();\r\n popularTipoCobranca();\r\n setarFuncaoTamanho();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!listaLocais && listaLocais.length > 0) {\r\n carregarLocaisPadroes();\r\n }\r\n }, [listaLocais]);\r\n\r\n useEffect(() => {\r\n if (!!tiposPagamento && tiposPagamento.length > 0) {\r\n popularLabelTpPag();\r\n }\r\n }, [tiposPagamento]);\r\n\r\n useEffect(() => {\r\n if (!!window.outerHeight) {\r\n if (window.outerHeight < 800) {\r\n setMostrarScroll(true);\r\n } else {\r\n setMostrarScroll(false);\r\n }\r\n }\r\n }, [window]);\r\n\r\n function carregarDadosIndice() {\r\n let indices = [];\r\n let numeroIndice = 30;\r\n for (let i = 0; i < 6; i++) {\r\n indices.push({ key: i, label: `Indice +${numeroIndice} dias.`, value: numeroIndice });\r\n numeroIndice += 30;\r\n }\r\n setListaIndice(indices);\r\n };\r\n\r\n function carregarDadosLocal() {\r\n api.get(`Local/ListarLocalUsuario?CodigoEmpresa=${getEmpresa()}`).then(\r\n res => {\r\n setListaLocais(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function carregarLocaisPadroes() {\r\n let locais = []\r\n listaLocais.forEach((local) => {\r\n locais.push(local.loc_id);\r\n });\r\n form.setFieldsValue({ loc_id: locais });\r\n };\r\n\r\n function BuscarParametrosEmpresa() {\r\n api.get(`Empresa/Buscar/${getEmpresa()}`).then(\r\n res => {\r\n setLogoEmpresa(res.data.emp_logo);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function popularTipoCobranca() {\r\n let listaTpCobranca = [];\r\n listaTpCobranca.push({ id: 1, value: 'Cheques' });\r\n listaTpCobranca.push({ id: 2, value: 'Crediario' });\r\n setTiposPagamento(listaTpCobranca);\r\n };\r\n\r\n function popularLabelTpPag() {\r\n let formTiposCobranca = form.getFieldValue().tiposCobranca;\r\n let retorno = []\r\n tiposPagamento.forEach(\r\n (tpCobranca) => {\r\n if (formTiposCobranca.indexOf(tpCobranca.id) > -1) {\r\n retorno.push(tpCobranca.value);\r\n }\r\n }\r\n );\r\n form.setFieldsValue({ tipoCobrancaLabel: retorno.join(', ') });\r\n };\r\n\r\n function setarFuncaoTamanho() {\r\n window.addEventListener(\"resize\", () => {\r\n if (!!window.outerHeight) {\r\n if (window.outerHeight < 800 && listaDadosInadimplencia.length > 1) {\r\n setMostrarScroll(true);\r\n } else {\r\n setMostrarScroll(false);\r\n }\r\n }\r\n });\r\n };\r\n\r\n async function buscarDadosInadimplencia() {\r\n if (!!!form.getFieldValue().dataAnalise) {\r\n notification.warning({ description: 'Favor informe uma data para análise!', message: 'Aviso' });\r\n return false;\r\n }\r\n let formTiposCobranca = form.getFieldValue().tiposCobranca;\r\n let dadosCrediario = [];\r\n let dadosCheques = [];\r\n let listaDados = [];\r\n let dadosTabela = [];\r\n let obj = {};\r\n let localAtual = 0;\r\n\r\n setCarregando(true);\r\n\r\n if (formTiposCobranca.indexOf(1) > -1) {\r\n let reqCheques = await api.get(`AnaliseInadimplenciaClientes/ListarCheques?filiais=${form.getFieldValue().loc_id.join(',')}&dataBase=${moment(form.getFieldValue().dataAnalise).format(\"YYYY-MM-DD\")}`);\r\n if (reqCheques.status === 200) {\r\n dadosCheques = reqCheques.data;\r\n }\r\n }\r\n\r\n if (formTiposCobranca.indexOf(2) > -1) {\r\n let reqCrediario = await api.get(`AnaliseInadimplenciaClientes/ListarCrediario?filiais=${form.getFieldValue().loc_id.join(',')}&dataBase=${moment(form.getFieldValue().dataAnalise).format(\"YYYY-MM-DD\")}`);\r\n if (reqCrediario.status === 200) {\r\n dadosCrediario = reqCrediario.data;\r\n }\r\n }\r\n\r\n if (dadosCheques.length > 0) {\r\n listaDados.push(dadosCheques);\r\n }\r\n\r\n if (dadosCrediario.length > 0) {\r\n listaDados.push(dadosCrediario);\r\n }\r\n\r\n listaDados = dadosCheques.concat(dadosCrediario);\r\n //localAtual = parseInt(listaDados[0].codigoLocal);\r\n limparVariaveis(obj);\r\n\r\n listaDados.forEach((dados, idx, array) => {\r\n obj.codigoLocal = dados.codigoLocal;\r\n obj.nomeLocal = dados.nomeLocal;\r\n obj.cnpjLocal = dados.cnpjLocal;\r\n obj.vlr_AVencer += parseFloat(dados.vlr_AVencer);\r\n obj.vlr_Ate30dias += parseFloat(dados.vlr_Ate30dias);\r\n obj.vlr_Ate60dias += parseFloat(dados.vlr_Ate60dias);\r\n obj.vlr_Ate90dias += parseFloat(dados.vlr_Ate90dias);\r\n obj.vlr_Ate120dias += parseFloat(dados.vlr_Ate120dias);\r\n obj.vlr_Ate150dias += parseFloat(dados.vlr_Ate150dias);\r\n obj.vlr_Ate180dias += parseFloat(dados.vlr_Ate180dias);\r\n obj.vlr_Acima180dias += parseFloat(dados.vlr_Acima180dias);\r\n obj.vlr_Vencidos += parseFloat(dados.vlr_Vencidos);\r\n obj.vlr_Total += parseFloat(dados.vlr_Total);\r\n obj.vlr_Indicador_Acima30dias += parseFloat(dados.vlr_Indicador_Acima30dias);\r\n obj.vlr_Indicador_Acima60dias += parseFloat(dados.vlr_Indicador_Acima60dias);\r\n obj.vlr_Indicador_Acima90dias += parseFloat(dados.vlr_Indicador_Acima90dias);\r\n obj.vlr_Indicador_Acima120dias += parseFloat(dados.vlr_Indicador_Acima120dias);\r\n obj.vlr_Indicador_Acima150dias += parseFloat(dados.vlr_Indicador_Acima150dias);\r\n obj.vlr_Indicador_Acima180dias += parseFloat(dados.vlr_Indicador_Acima180dias);\r\n\r\n if (localAtual !== parseInt(dados.codigoLocal)) {\r\n localAtual = parseInt(dados.codigoLocal);\r\n dadosTabela.push({ ...obj });\r\n limparVariaveis(obj);\r\n } else if (idx === array.length - 1) {\r\n dadosTabela.push(obj);\r\n }\r\n });\r\n setCarregando(false);\r\n setListaDadosInadimplencia(dadosTabela);\r\n calcularTotal(dadosTabela);\r\n };\r\n\r\n function limparVariaveis(obj) {\r\n obj.vlr_AVencer = 0;\r\n obj.vlr_Ate30dias = 0;\r\n obj.vlr_Ate60dias = 0;\r\n obj.vlr_Ate90dias = 0;\r\n obj.vlr_Ate120dias = 0;\r\n obj.vlr_Ate150dias = 0;\r\n obj.vlr_Ate180dias = 0;\r\n obj.vlr_Acima180dias = 0;\r\n obj.vlr_Vencidos = 0;\r\n obj.vlr_Total = 0;\r\n obj.vlr_Indicador_Acima30dias = 0;\r\n obj.vlr_Indicador_Acima60dias = 0;\r\n obj.vlr_Indicador_Acima90dias = 0;\r\n obj.vlr_Indicador_Acima120dias = 0;\r\n obj.vlr_Indicador_Acima150dias = 0;\r\n obj.vlr_Indicador_Acima180dias = 0;\r\n };\r\n\r\n function calcularTotal(dadosTabela) {\r\n let objTotalizador = {};\r\n objTotalizador.vlr_AVencer = 0;\r\n objTotalizador.vlr_Ate30dias = 0;\r\n objTotalizador.vlr_Ate60dias = 0;\r\n objTotalizador.vlr_Ate90dias = 0;\r\n objTotalizador.vlr_Ate120dias = 0;\r\n objTotalizador.vlr_Ate150dias = 0;\r\n objTotalizador.vlr_Ate180dias = 0;\r\n objTotalizador.vlr_Acima180dias = 0;\r\n objTotalizador.vlr_Vencidos = 0;\r\n objTotalizador.vlr_Total = 0;\r\n objTotalizador.vlr_Indicador_Acima30dias = 0;\r\n objTotalizador.vlr_Indicador_Acima60dias = 0;\r\n objTotalizador.vlr_Indicador_Acima90dias = 0;\r\n objTotalizador.vlr_Indicador_Acima120dias = 0;\r\n objTotalizador.vlr_Indicador_Acima150dias = 0;\r\n objTotalizador.vlr_Indicador_Acima180dias = 0;\r\n\r\n dadosTabela.forEach((dados => {\r\n objTotalizador.vlr_AVencer += dados.vlr_AVencer;\r\n objTotalizador.vlr_Ate30dias += dados.vlr_Ate30dias;\r\n objTotalizador.vlr_Ate60dias += dados.vlr_Ate60dias;\r\n objTotalizador.vlr_Ate90dias += dados.vlr_Ate90dias;\r\n objTotalizador.vlr_Ate120dias += dados.vlr_Ate120dias;\r\n objTotalizador.vlr_Ate150dias += dados.vlr_Ate150dias;\r\n objTotalizador.vlr_Ate180dias += dados.vlr_Ate180dias;\r\n objTotalizador.vlr_Acima180dias += dados.vlr_Acima180dias;\r\n objTotalizador.vlr_Vencidos += dados.vlr_Vencidos;\r\n objTotalizador.vlr_Total += dados.vlr_Total;\r\n objTotalizador.vlr_Indicador_Acima30dias += dados.vlr_Indicador_Acima30dias;\r\n objTotalizador.vlr_Indicador_Acima60dias += dados.vlr_Indicador_Acima60dias;\r\n objTotalizador.vlr_Indicador_Acima90dias += dados.vlr_Indicador_Acima90dias;\r\n objTotalizador.vlr_Indicador_Acima120dias += dados.vlr_Indicador_Acima120dias;\r\n objTotalizador.vlr_Indicador_Acima150dias += dados.vlr_Indicador_Acima150dias;\r\n objTotalizador.vlr_Indicador_Acima180dias += dados.vlr_Indicador_Acima180dias;\r\n }));\r\n\r\n setTotalizadores(objTotalizador);\r\n };\r\n\r\n function impressao() {\r\n setImprimir(true);\r\n window.print();\r\n };\r\n\r\n return (\r\n
\r\n \r\n {!imprimir &&\r\n \r\n \r\n
\r\n \"Gestor\r\n \r\n \r\n Análise de Inadimplência de Clientes\r\n \r\n \r\n \r\n }\r\n \r\n \r\n {!imprimir &&
\r\n \r\n
\r\n \r\n \r\n {listaLocais.map(local => (\r\n {local.loc_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { popularLabelTpPag() }}\r\n mode=\"multiple\">\r\n {tiposPagamento.map((tpPag) => (\r\n {tpPag.value}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {listaDadosInadimplencia.length > 0 &&\r\n
\r\n \r\n \r\n
\r\n \"Logo\"\r\n \r\n \r\n \r\n \r\n {getNomeEmpresa()}\r\n \r\n \r\n \r\n \r\n Data base da análise: {moment(form.getFieldValue().dataAnalise).format(\"DD/MM/YYYY\")}\r\n \r\n \r\n \r\n \r\n Tipos de cobrança: {form.getFieldValue().tipoCobrancaLabel}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Data: {moment(new Date()).format(\"DD/MM/YYYY\")}\r\n \r\n \r\n \r\n \r\n Hora: {moment(new Date()).format(\"HH:mm:ss\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n A Vencer\r\n \r\n \r\n Até 30 dias\r\n \r\n \r\n Até 60 dias\r\n \r\n \r\n Até 90 dias\r\n \r\n \r\n Até 120 dias\r\n \r\n \r\n Até 150 dias\r\n \r\n \r\n Até 180 dias\r\n \r\n \r\n Mais de 180 dias\r\n \r\n \r\n Vencidos\r\n \r\n \r\n Total\r\n \r\n {indiceSelecionado === 0 &&\r\n \r\n Indice (+30)\r\n \r\n }\r\n {indiceSelecionado === 1 &&\r\n \r\n Indice (+60)\r\n \r\n }\r\n {indiceSelecionado === 2 &&\r\n \r\n Indice (+90)\r\n \r\n }\r\n {indiceSelecionado === 3 &&\r\n \r\n Indice (+120)\r\n \r\n }\r\n {indiceSelecionado === 4 &&\r\n \r\n Indice (+150)\r\n \r\n }\r\n {indiceSelecionado === 5 &&\r\n \r\n Indice (+180)\r\n \r\n }\r\n \r\n {listaDadosInadimplencia.map((dados) => (\r\n
\r\n \r\n
\r\n {getNomeEmpresa()} / {dados.nomeLocal} \r\n \r\n \r\n CNPJ: {formatarCnpj(dados.cnpjLocal)}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {FormatNumber(dados.vlr_AVencer, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Ate30dias, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Ate60dias, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Ate90dias, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Ate120dias, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Ate150dias, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Ate180dias, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Acima180dias, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Vencidos, 2)}\r\n \r\n \r\n {FormatNumber(dados.vlr_Total, 2)}\r\n \r\n {indiceSelecionado === 0 &&\r\n \r\n {FormatNumber(dados.vlr_Indicador_Acima30dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 1 &&\r\n \r\n {FormatNumber(dados.vlr_Indicador_Acima60dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 2 &&\r\n \r\n {FormatNumber(dados.vlr_Indicador_Acima90dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 3 &&\r\n \r\n {FormatNumber(dados.vlr_Indicador_Acima120dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 4 &&\r\n \r\n {FormatNumber(dados.vlr_Indicador_Acima150dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 5 &&\r\n \r\n {FormatNumber(dados.vlr_Indicador_Acima180dias, 2)}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n % {(((dados.vlr_AVencer * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n % {(((dados.vlr_Ate30dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n % {(((dados.vlr_Ate60dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n % {(((dados.vlr_Ate90dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n % {(((dados.vlr_Ate120dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n % {(((dados.vlr_Ate150dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n % {(((dados.vlr_Ate180dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n % {(((dados.vlr_Acima180dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n % {(((dados.vlr_Vencidos * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n \r\n \r\n {indiceSelecionado === 0 &&\r\n \r\n % {(((dados.vlr_Indicador_Acima30dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n }\r\n {indiceSelecionado === 1 &&\r\n \r\n % {(((dados.vlr_Indicador_Acima60dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n }\r\n {indiceSelecionado === 2 &&\r\n \r\n % {(((dados.vlr_Indicador_Acima90dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n }\r\n {indiceSelecionado === 3 &&\r\n \r\n % {(((dados.vlr_Indicador_Acima120dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n }\r\n {indiceSelecionado === 4 &&\r\n \r\n % {(((dados.vlr_Indicador_Acima150dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n }\r\n {indiceSelecionado === 5 &&\r\n \r\n % {(((dados.vlr_Indicador_Acima180dias * 100) / (dados.vlr_Total > 0 ? dados.vlr_Total : 1)).toFixed(2)).replaceAll(\".\", \",\")}\r\n }\r\n \r\n \r\n\r\n \r\n ))}\r\n \r\n \r\n Totais (R$):\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_AVencer, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Ate30dias, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Ate60dias, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Ate90dias, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Ate120dias, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Ate150dias, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Ate180dias, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Acima180dias, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Vencidos, 2)}\r\n \r\n \r\n {FormatNumber(totalizadores.vlr_Total, 2)}\r\n \r\n {indiceSelecionado === 0 &&\r\n \r\n {FormatNumber(totalizadores.vlr_Indicador_Acima30dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 1 &&\r\n \r\n {FormatNumber(totalizadores.vlr_Indicador_Acima60dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 2 &&\r\n \r\n {FormatNumber(totalizadores.vlr_Indicador_Acima90dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 3 &&\r\n \r\n {FormatNumber(totalizadores.vlr_Indicador_Acima120dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 4 &&\r\n \r\n {FormatNumber(totalizadores.vlr_Indicador_Acima150dias, 2)}\r\n \r\n }\r\n {indiceSelecionado === 5 &&\r\n \r\n {FormatNumber(totalizadores.vlr_Indicador_Acima180dias, 2)}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n};","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Layout, Row, Col, Typography, Divider, Radio, Form, Card, Tag, Input, Select, Button, Modal } from \"antd\";\r\nimport { RocketOutlined, ArrowRightOutlined, ShoppingOutlined, EyeOutlined, ArrowLeftOutlined } from \"@ant-design/icons\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\n\r\nimport { ModalContrato, ModalPlano } from \"../../components/modals/\";\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { consultaCNPJ, removerCarcaterEspecial, textoAleatorio, validaForm } from \"../../services/funcoes\";\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { InputCep, InputCpfCnpj, InputPhone } from \"../../components\";\r\n\r\nexport default function NovaEmpresa() {\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n const [listaPlanos, setListaPlanos] = useState([]);\r\n const [recursosPlano, setRecursosPlano] = useState([]);\r\n const [formulario] = Form.useForm();\r\n const [periodoAssinatura, setPeriodoAssinatura] = useState(1);\r\n const [planoSelecionado, setPlanoSelecionado] = useState({});\r\n const [testeGratuito, setTesteGratuito] = useState(false);\r\n const [urlContrato, setUrlContrato] = useState('');\r\n const [dadosNovaEmpresa, setDadosNovaEmpresa] = useState({});\r\n const [informacoes, setInformacoes] = useState({});\r\n const [openModalContrato, setOpenModalContrato] = useState(false);\r\n const [codigoSegurancaContrato, setCodigoSegurancaContrato] = useState('');\r\n const TEST_SITE_KEY = \"6LeoNSQcAAAAANE1sxJTZvTYWXi9rzrNH_LuWf9e\";\r\n const [captcha, setCaptcha] = useState('');\r\n const reCaptchaRef = React.createRef();\r\n const inputEmail = useRef();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const dadosLocalAtivacao = {\r\n loc_id: 10086,\r\n emp_id: 1022,\r\n pla_id: 1\r\n };\r\n\r\n const formasPagamento = {\r\n cartaoCredito: 1,\r\n boleto: 2\r\n };\r\n\r\n const [dadosContrato, setDadosContrato] = useState({\r\n codigoSegurancaContrato: '',\r\n formaPagamento: formasPagamento.boleto,\r\n diaPagamento: 10,\r\n emailEnvioCobranca: '',\r\n periodoAssinatura: 1,\r\n cartaoCredito: {\r\n numero: '',\r\n nome: '',\r\n mesValidade: '',\r\n anoValidade: '',\r\n cvv: '',\r\n dadosTitular: {\r\n cpfCnpj: '',\r\n endereco: {\r\n cep: '',\r\n cidade: '',\r\n uf: '',\r\n logradouro: '',\r\n bairro: '',\r\n numero: '',\r\n complemento: ''\r\n }\r\n }\r\n },\r\n planoId: null\r\n });\r\n\r\n const handleChange = (value) => {\r\n if (value !== null) {\r\n setCaptcha(value);\r\n } else {\r\n setCaptcha('');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`Plano/ListarPlanosAtivos`).then(retornoPlanos => {\r\n let lista = retornoPlanos.data.items.reverse();\r\n lista.forEach((item) => {\r\n item.diferenciais = JSON.parse(item.pla_diferenciais);\r\n });\r\n setListaPlanos(lista);\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n }, []);\r\n\r\n function selecionarPlano(plano, teste) {\r\n setPlanoSelecionado(plano);\r\n setTesteGratuito(teste);\r\n setTimeout(() => inputEmail.current.focus(), [500]);\r\n };\r\n\r\n function pesquisaEmail() {\r\n if (!!formulario.getFieldsValue().usu_email) {\r\n api.get(`Usuario/RetornaUsuarioEmail?email=${formulario.getFieldsValue().usu_email}`).then(retornoPesquisaEmail => {\r\n if (!!retornoPesquisaEmail.data) {\r\n formulario.setFieldsValue({ usu_nome: retornoPesquisaEmail.data.usu_nome, usu_email: retornoPesquisaEmail.data.usu_email, usu_id: retornoPesquisaEmail.data.usu_id });\r\n }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n }\r\n };\r\n\r\n function pesquisaCNPJ() {\r\n if (!!formulario.getFieldsValue().loc_cnpj) {\r\n let cnpj = formulario.getFieldsValue().loc_cnpj.replaceAll('.', '').replaceAll('-', '').replaceAll('/', '');\r\n api.get(`Local/BuscarLocalCnpj/${cnpj}`).then(\r\n retornoCnpjLocal => {\r\n if (!!retornoCnpjLocal.data || retornoCnpjLocal !== \"\") {\r\n consultaCNPJ(formulario.getFieldsValue().loc_cnpj).then((retorno) => {\r\n if (retorno.status === \"ERROR\") {\r\n api.get(`Empresa/BuscarDadosNovaEmpresa?cnpj=${formulario.getFieldsValue().loc_cnpj}`).then(retornoCnpj => {\r\n if (!!retornoCnpj.data) {\r\n formulario.setFieldsValue({\r\n loc_inscricaoestadual: retornoCnpj.data.pej_inscricaoestadual,\r\n loc_telefone: retornoCnpj.data.psc_numero,\r\n emp_razaosocial: retornoCnpj.data.pes_nome,\r\n emp_nomefantasia: retornoCnpj.data.pej_nomefantasia,\r\n cep_cep: retornoCnpj.data.cep_cep,\r\n log_logradouro: retornoCnpj.data.log_logradouro,\r\n cidade: retornoCnpj.data.cid_descricao + \" / \" + retornoCnpj.data.est_sigla,\r\n loc_numeroestabelecimento: retornoCnpj.data.pee_numero,\r\n bai_nome: retornoCnpj.data.bai_nome,\r\n loc_complemento: retornoCnpj.data.pee_complemento\r\n });\r\n pesquisaInformacoesCep();\r\n }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n } else {\r\n formulario.setFieldsValue({\r\n loc_inscricaoestadual: \"\",\r\n loc_telefone: retorno.telefone.replaceAll('(', '').replaceAll(')', '').replaceAll(' ', '').replaceAll('-', ''),\r\n emp_razaosocial: retorno.nome,\r\n emp_nomefantasia: retorno.fantasia,\r\n cep_cep: retorno.cep.replace('.', '').replace('-', ''),\r\n cidade: retorno.municipio + \" / \" + retorno.uf,\r\n loc_numeroestabelecimento: retorno.numero,\r\n bai_nome: retorno.bairro,\r\n loc_complemento: retorno.complemento,\r\n log_logradouro: retorno.logradouro\r\n });\r\n pesquisaInformacoesCep();\r\n }\r\n }, (erro) => {\r\n console.log('ERRO:', erro);\r\n });\r\n } else {\r\n Modal.warning({\r\n title: 'Você já é nosso cliente!',\r\n content: \"Caso não lembre sua senha utilize a opção de 'Esqueci a Senha'\",\r\n onOk() {\r\n window.location = \"/\";\r\n }\r\n });\r\n }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n }\r\n };\r\n\r\n function pesquisaInformacoesCep() {\r\n if (!!formulario.getFieldValue().cep_cep) {\r\n let cep = formulario.getFieldValue().cep_cep.replace('-', '');\r\n api.get(`Cidade/BuscaCidadeCep?cep=${cep}`).then(retornoCep => {\r\n if (!!retornoCep.data[0]) {\r\n formulario.setFieldsValue({\r\n cid_id: retornoCep.data[0].cid_id,\r\n cep: retornoCep.data[0],\r\n cep_cep: retornoCep.data[0].cep_cep,\r\n cidade: retornoCep.data[0].cid_descricao + \" / \" + retornoCep.data[0].est_sigla,\r\n siglaEstado: retornoCep.data[0].est_sigla\r\n });\r\n } else {\r\n pesquisaCepPostmon(cep, false);\r\n }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n }\r\n };\r\n\r\n function pesquisaCepPostmon(cep, possuiCep) {\r\n fetch(`https://api.postmon.com.br/v1/cep/${cep}`).then(\r\n res => res.json()\r\n ).then(\r\n retornoCep => {\r\n if (!possuiCep) {\r\n formulario.setFieldsValue({\r\n cep: {},\r\n cep_cep: retornoCep.cep,\r\n cidade: retornoCep.cidade,\r\n siglaEstado: retornoCep.estado\r\n });\r\n }\r\n }, erro => {\r\n Modal.warning({\r\n content: `Cep (${cep}) não encontrado!`,\r\n });\r\n formulario.setFieldsValue({\r\n cep_cep: '',\r\n cidade: ''\r\n });\r\n }\r\n );\r\n };\r\n\r\n function salvar(values) {\r\n if (!(!!values.loc_inscricaoestadual)) {\r\n values.loc_inscricaoestadual = \"ISENTO\";\r\n }\r\n let novaEmpresa = {};\r\n novaEmpresa.usu_email = values.usu_email;\r\n novaEmpresa.usu_nome = values.usu_nome;\r\n novaEmpresa.usu_id = values.usu_id;\r\n novaEmpresa.loc_cnpj = values.loc_cnpj.replaceAll('.', '').replaceAll('/', '').replaceAll('-', '');\r\n novaEmpresa.loc_inscricaoestadual = values.loc_inscricaoestadual;\r\n novaEmpresa.loc_telefone = values.loc_telefone.replaceAll('(', '').replaceAll(')', '').replaceAll('-', '').replaceAll(' ', '');\r\n novaEmpresa.emp_razaosocial = values.emp_razaosocial;\r\n novaEmpresa.emp_nomefantasia = values.emp_nomefantasia;\r\n novaEmpresa.cep_cep = values.cep_cep;\r\n novaEmpresa.est_sigla = values.cep.est_sigla;\r\n novaEmpresa.cid_descricao = values.cep.cid_descricao;\r\n novaEmpresa.log_logradouro = values.log_logradouro;\r\n novaEmpresa.logradouro = values.endereco;\r\n novaEmpresa.bai_nome = values.bai_nome;\r\n novaEmpresa.loc_numeroestabelecimento = values.loc_numeroestabelecimento;\r\n novaEmpresa.loc_complemento = values.loc_complemento;\r\n novaEmpresa.emp_regimetributario = values.emp_regimetributario;\r\n novaEmpresa.enquadramentoFiscal = 3;\r\n novaEmpresa.loc_tipoContribuinte = values.loc_tipoContribuinte;\r\n novaEmpresa.loc_cpfresponsavel = values.loc_cpfresponsavel.replaceAll('.', '').replaceAll('-', '');\r\n novaEmpresa.planoSelecionado = {};\r\n novaEmpresa.planoSelecionado.plano = planoSelecionado;\r\n novaEmpresa.pla_id = planoSelecionado.pla_id;\r\n novaEmpresa.pla_numeropdvs = planoSelecionado.pla_numeropdvs;\r\n novaEmpresa.planoSelecionado.testeGratuito = testeGratuito;\r\n setDadosNovaEmpresa(novaEmpresa);\r\n setCarregando(true);\r\n if (testeGratuito) {\r\n let dados = { ...dadosContrato };\r\n dados.codigoSegurancaContrato = textoAleatorio(4);\r\n dados.periodoAssinatura = periodoAssinatura;\r\n setCodigoSegurancaContrato(dados.codigoSegurancaContrato);\r\n setUrlContrato(`${linkApi}Contrato/gerar?codigoaceite=${dados.codigoSegurancaContrato}&localid=${dadosLocalAtivacao.loc_id}&planoId=${planoSelecionado.pla_id}&periodoAssinatura=${periodoAssinatura}&cnpj=${values.loc_cnpj}`);\r\n setDadosContrato(dados);\r\n setOpenModalContrato(true);\r\n } else {\r\n cadastrarEmpresa(novaEmpresa);\r\n }\r\n };\r\n\r\n function cadastrarEmpresa(novaEmpresa = dadosNovaEmpresa) {\r\n novaEmpresa.captcha = captcha;\r\n api.post(`Empresa/Incluir`, novaEmpresa).then((retornoNovaEmpresa) => {\r\n if (retornoNovaEmpresa.status === 200) {\r\n let informacoes = {};\r\n informacoes.nome = novaEmpresa.usu_nome;\r\n informacoes.email = novaEmpresa.usu_email;\r\n informacoes.chave = retornoNovaEmpresa.data.chave;\r\n informacoes.loc_id = retornoNovaEmpresa.data.loc_id;\r\n informacoes.emp_id = retornoNovaEmpresa.data.emp_id;\r\n informacoes.lcp_id = retornoNovaEmpresa.data.lcp_id;\r\n informacoes.pla_id = planoSelecionado.pla_id;\r\n informacoes.periodoAssinatura = periodoAssinatura;\r\n setInformacoes(informacoes);\r\n\r\n if (testeGratuito) {\r\n api.post(`EnviaEmail/EnviaEmailAtivacaoEmpresa`, informacoes).then((retornoEmail) => {\r\n if (!!retornoEmail) {\r\n Modal.success({\r\n title: 'Quase tudo pronto!',\r\n content: `Acesse o e-mail cadastrado (${novaEmpresa.usu_email}) para ativar sua conta e definir sua senha de acesso.`,\r\n onOk() {\r\n window.location = \"/\";\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n let dados = { ...dadosContrato };\r\n dados.codigoSegurancaContrato = textoAleatorio(4);\r\n dados.periodoAssinatura = periodoAssinatura;\r\n setCodigoSegurancaContrato(dados.codigoSegurancaContrato);\r\n setUrlContrato(`${linkApi}Contrato/Gerar?codigoAceitacao=${dados.codigoSegurancaContrato}&localId=${informacoes.loc_id}&planoId=${informacoes.pla_id}&periodoAssinatura=${periodoAssinatura}&cnpj=${novaEmpresa.loc_cnpj}`);\r\n dados.emailEnvioCobranca = informacoes.email;\r\n dados.planoId = informacoes.pla_id;\r\n setDadosContrato(dados);\r\n setOpenModalContrato(true);\r\n }\r\n }\r\n }).catch(err => {\r\n Modal.error({\r\n title: 'Não foi possível incluir a empresa!',\r\n content: (\r\n
{err.response.data.Message}
\r\n ),\r\n onOk() {\r\n setOpenModalContrato(false);\r\n }\r\n });\r\n }).finally(() => {\r\n setCarregando(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!openModalContrato) {\r\n setCarregando(false);\r\n }\r\n }, [openModalContrato]);\r\n\r\n function assinarContrato(periodoTeste = false) {\r\n dadosContrato.periodoTeste = periodoTeste;\r\n dadosContrato.localId = informacoes.loc_id;\r\n api.post(`Assinatura/AssinarPlano`, dadosContrato).then(\r\n (retornoAssinatura) => {\r\n if (retornoAssinatura.status === 200) {\r\n api.post(`EnviaEmail/EnviaEmailAtivacaoEmpresa`, informacoes).then(\r\n (retornoEmail) => {\r\n if (retornoEmail.status === 200) {\r\n Modal.success({\r\n title: 'Quase tudo pronto!',\r\n content: `Acesse o e-mail cadastrado ('${informacoes.email}') para ativar sua conta e definir sua senha de acesso.`,\r\n onOk() {\r\n window.location = \"/\";\r\n }\r\n });\r\n } else {\r\n console.log('Erro envio Email:', retornoEmail)\r\n }\r\n }).catch(\r\n err => {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
Não foi enviar e-mail de ativação!
\r\n \r\n ),\r\n });\r\n }\r\n );\r\n } else {\r\n console.log('Erro EnviaEmailAtivacaoEmpresa:', retornoAssinatura)\r\n Modal.success({\r\n title: 'Assinatura realizada com sucesso!',\r\n onOk() {\r\n window.location = \"/\";\r\n }\r\n });\r\n }\r\n }\r\n ).catch(\r\n err => {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
Não foi possível realizar a assinatura!
\r\n \r\n ),\r\n });\r\n }\r\n );\r\n };\r\n\r\n function validarRazaoSocial() {\r\n let razao = formulario.getFieldValue().emp_razaosocial;\r\n razao = removerCarcaterEspecial(razao);\r\n formulario.setFieldsValue({ emp_razaosocial: razao });\r\n };\r\n\r\n function fecharModalContrato() {\r\n assinarContrato(true);\r\n setOpenModalContrato(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n \"Gestor\r\n \r\n \r\n \r\n \r\n {JSON.stringify(planoSelecionado) === \"{}\" &&\r\n
\r\n \r\n
\r\n \r\n \"Planos\" Planos\r\n \r\n Abaixo selecione o plano mais adequado às necessidades de sua empresa. \r\n \r\n \r\n \r\n \r\n Selecione o Período da Assinatura\r\n \r\n \r\n \r\n { setPeriodoAssinatura(e.target.value) }} size=\"large\" optionType=\"button\" buttonStyle=\"solid\" defaultValue={1} options={[{ label: 'Mensal', value: 1 }, { label: 'Anual (-10%)', value: 2 }]} />\r\n \r\n \r\n \r\n
\r\n \r\n {listaPlanos.map((plano) => (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {plano.pla_nome}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n R$\r\n \r\n \r\n \r\n \r\n {periodoAssinatura === 1 ? FormatNumber(plano.pla_valor, true, false) : FormatNumber(((plano.pla_valor - (plano.pla_valor * 0.1)) * 12), true, false)}\r\n \r\n \r\n \r\n {periodoAssinatura === 1 ? 'ao Mês' : 'ao Ano'} | Por CNPJ\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n setOpenModal(false)} recursosPlano={recursosPlano} />\r\n \r\n }\r\n {JSON.stringify(planoSelecionado) !== \"{}\" &&\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Você escolheu o Plano:\r\n \r\n \r\n \r\n
\r\n \r\n {planoSelecionado.pla_nome}\r\n \r\n
\r\n \r\n \r\n {testeGratuito && \r\n \r\n \r\n Teste gratuito de 15 dias\r\n \r\n \r\n }\r\n \r\n \r\n \r\n R$\r\n \r\n \r\n \r\n \r\n {periodoAssinatura === 1 ? FormatNumber(planoSelecionado.pla_valor, true, false) : FormatNumber(((planoSelecionado.pla_valor - (planoSelecionado.pla_valor * 0.1)) * 12), true, false)}\r\n \r\n \r\n \r\n {periodoAssinatura === 1 ? 'ao Mês' : 'ao Ano'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \"Usuário\" Usuário\r\n \r\n Informe abaixo os dados do Usuário. \r\n \r\n \r\n \r\n \r\n \r\n pesquisaEmail()} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \"Empresa\" Empresa\r\n \r\n Informe abaixo os dados do Empresa. \r\n \r\n \r\n \r\n \r\n pesquisaCNPJ()} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { validarRazaoSocial() }} />\r\n \r\n \r\n \r\n \r\n < Input placeholder=\"Informe a Nome Fantasia\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n * No momento estamos atendento apenas empresas do Simples Nacional.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n pesquisaInformacoesCep('', true)} />\r\n \r\n \r\n \r\n \r\n Não sei o CEP\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { pesquisaBairro() }} */ />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \"Cobrança/Faturamento\" Cobrança/Faturamento\r\n \r\n Informações referente a cobrança e faturamento de sua assinatura. \r\n \r\n \r\n \r\n \r\n {testeGratuito ?\r\n \r\n Não existe cobrança para o periodo de testes de 15 dias.\r\n

Se você assinar o plano após o período de teste, a cobrança será via Boleto Bancário com vencimento dia 10 de cada mês.

\r\n :\r\n \r\n Cobrança via Boleto Bancário com vencimento dia 10 de cada mês.\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {testeGratuito ? :\r\n }\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n fecharModalContrato()} urlContrato={urlContrato} testeGratuito={testeGratuito} cadastrarEmpresa={cadastrarEmpresa} assinarContrato={assinarContrato} codigoSeguranca={codigoSegurancaContrato} />\r\n
\r\n \r\n \r\n
\r\n comercial.gestor@abase.com.br \r\n \r\n \r\n (55) 3535-4900\r\n \r\n \r\n www.gestorweb.com.br \r\n \r\n \r\n Copyright © Gestor Web\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Layout, Row, Col, Form, Input, Button, Typography, Modal } from 'antd';\r\nimport { UnlockFilled, SendOutlined } from '@ant-design/icons';\r\n\r\nimport { SlideLogin } from \"../../components\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function AtivarUsuarioPlano() {\r\n const [dadosUsuario, setDadosUsuario] = useState({});\r\n const [senhaValida, setSenhaValida] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n useEffect(() => {\r\n carregarUsuario();\r\n }, []);\r\n\r\n function carregarUsuario() {\r\n let url = window.location.href;\r\n let dadosUsuario = atob(url.substr(url.lastIndexOf('/') + 1)).split('|');\r\n api.get(`Usuario/RetornaUsuarioEmail?email=${dadosUsuario[0]}`).then(\r\n res => {\r\n if (!!res.data) {\r\n if (!!res.data.usu_ativo) {\r\n ativarEmpresaLocal();\r\n Modal.warning({\r\n title: 'Atenção!',\r\n content: 'Usuário já está ativo! caso não lembre sua senha clique em \"Esqueci minha senha\"',\r\n onOk() {\r\n voltarLogin();\r\n }\r\n });\r\n } else {\r\n setDadosUsuario(res.data)\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n function ativarEmpresaLocal() {\r\n let url = window.location.href;\r\n let dadosUsuario = atob(url.substr(url.lastIndexOf('/') + 1)).split('|');\r\n let dados = {\r\n email: dadosUsuario[0],\r\n senha: null\r\n };\r\n api.post(`Empresa/AtivarNovaEmpresa`, dados).then(\r\n res => {\r\n console.log(res);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n function ativarUsuario() {\r\n let url = window.location.href;\r\n let dadosUsuario = atob(url.substr(url.lastIndexOf('/') + 1)).split('|');\r\n \r\n let dados = {\r\n email: dadosUsuario[0],\r\n senha: btoa(form.getFieldValue().usu_senha)\r\n };\r\n api.post(`Empresa/AtivarNovaEmpresa`, dados).then(\r\n res => {\r\n Modal.success({\r\n title: 'Aviso!',\r\n content: 'Sua conta foi ativada com sucesso!',\r\n onOk() {\r\n voltarLogin();\r\n }\r\n });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function validarSenha() {\r\n let usu_senha = '';\r\n let usu_confirmaSenha = '';\r\n if (!!form.getFieldValue().usu_senha) {\r\n usu_senha = form.getFieldValue().usu_senha.trim();\r\n }\r\n if (!!form.getFieldValue().usu_confirmaSenha) {\r\n usu_confirmaSenha = form.getFieldValue().usu_confirmaSenha.trim();\r\n }\r\n\r\n form.setFieldsValue({ usu_senha: usu_senha, usu_confirmaSenha: usu_confirmaSenha });\r\n if (usu_senha.length >= 6 && usu_senha === usu_confirmaSenha) {\r\n let letrasMinusculas = /[a-z]+/.test(usu_senha);\r\n let letrasMaiusculas = /[A-Z]+/.test(usu_senha);\r\n let numeros = /[0-9]+/.test(usu_senha);\r\n if (letrasMinusculas && letrasMaiusculas && numeros) {\r\n setSenhaValida(true);\r\n } else {\r\n setSenhaValida(false);\r\n }\r\n } else {\r\n setSenhaValida(false);\r\n }\r\n };\r\n\r\n function voltarLogin() {\r\n window.location = '/';\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Gestor\r\n \r\n \r\n \r\n Olá {dadosUsuario.usu_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Antes de ativar sua conta, precisamos definir sua senha de acesso.
\r\n A senha deve atender os seguintes requisitos:

\r\n
\r\n \r\n \r\n 1. Mínimo de 6 caracteres;\r\n \r\n \r\n 2. Deve conter números e letras (maiúsculas e minúsculas);\r\n \r\n \r\n \r\n \r\n \r\n } onChange={() => { validarSenha() }} />\r\n \r\n \r\n \r\n \r\n } onChange={() => { validarSenha() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { notification } from 'antd';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from '../../actions';\r\nimport { EditorCamposPersonalizados, FormGW } from '../../components';\r\n\r\nexport default function CamposPersonalizados({formulario, carregando, aoSalvar, tipoEntidade}) {\r\n const [{ listagem, manutencao }, dispatch] = useStateValue();\r\n const [ elementosFormulario, setElementosFormulario ] = useState([]);\r\n\r\n const salvarManutencao = values => {\r\n carregando(true);\r\n console.log(\"valores Salvar: \"+{values});\r\n let elementosOrdem=[]\r\n elementosFormulario.map((elemento, indice) =>{\r\n if (elemento.cap_ordem != (indice+1)){\r\n elemento.cap_ordem = (indice+1)\r\n !!elemento.status==false?elemento.status = 1 : elemento.status = elemento.status\r\n }\r\n elemento.cap_tipoentidade = tipoEntidade;\r\n elementosOrdem.push(elemento)\r\n })\r\n console.log({elementosOrdem});\r\n api.post(`CamposPersonalizados/Salvar`, elementosOrdem).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: `Campos Personalizados Salvos com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro.response.status);\r\n notification.error({ message: 'Erro ao Gravar Campos Personalizados.', description: JSON.stringify(erro.response.status == 500?`Campo personalizado possui vínculo com outra informação! `:erro.response) \r\n });\r\n carregando(false);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: listagem.ordem } });\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n };\r\n\r\n useEffect(() => setElementosFormulario(manutencao.dados),[!!manutencao.dados]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}","import React,{ useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nimport Manutencao from './manutencao';\r\nimport { DrawerNav } from '../../components';\r\n\r\nexport default function DrawerPersonalizacao({tipoEntidade, carregaCamposPersonalizados}) {\r\n\r\n const [ formFormulario ] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n const [ entidade, setEntidade ] = useState(\"\");\r\n const idRel = 0\r\n \r\n \r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n formFormulario.resetFields();\r\n carregaCamposPersonalizados();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() =>{\r\n console.log({tipoEntidade});\r\n switch (tipoEntidade) {\r\n case \"1\": \r\n setEntidade(\"Cliente\");\r\n break;\r\n case \"2\": \r\n setEntidade(\"Fornecedor\");\r\n break;\r\n default: \r\n setEntidade(\"Outros\");\r\n };\r\n },[]);\r\n\r\n useEffect(() =>{\r\n if (manutencao.dados !== null) {\r\n formFormulario.setFieldsValue(manutencao.dados);\r\n console.log(\"manutenção\",manutencao.dados);\r\n } else {\r\n formFormulario.resetFields();\r\n }\r\n },[!!manutencao.dados])\r\n\r\n return (\r\n\r\n }\r\n destroyOnClose\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Button, Tag, Table, Tabs, Divider } from 'antd';\r\nimport { EditOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport DrawerPersonalizacao from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbAbrirChamado } from \"../../components\";\r\n\r\nexport default function CamposPersonalizados() {\r\n const [ abaSelecionada, setAbaSelecionada ] = useState(\"1\");\r\n const [{ listagem, manutencao }, dispatch] = useStateValue();\r\n const [ camposPersonalizados, setCamposPersonalizados ] = useState([]);\r\n\r\n function editarCamposPersonalizados(valores) {\r\n var camposPersonalizadosTemp = [];\r\n valores.map((data, idx) => {\r\n delete(data.key);\r\n data.key = idx;\r\n data.status = 2;\r\n camposPersonalizadosTemp.push(data)\r\n });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: camposPersonalizadosTemp } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function carregaCamposPersonalizados() {\r\n api.get(`CamposPersonalizados/ListarTodos?PageNumber=1&PageSize=1000&Order=+cap_ordem`).then(res => {\r\n console.log(res);\r\n if (res.status === 200) {\r\n var camposPersonalizadosTemp = [];\r\n res.data.items.map((data, idx) => {\r\n data.key = idx;\r\n data.status = 2;\r\n camposPersonalizadosTemp.push(data)\r\n });\r\n setCamposPersonalizados(camposPersonalizadosTemp);\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao carregar Campos personalizados!');\r\n }\r\n );\r\n };\r\n\r\n const ListaCamposPersonalizados = (dataSource) => {\r\n return (\r\n
\r\n
(\r\n \r\n {cap_ordem}\r\n \r\n )\r\n },\r\n {\r\n title: 'Nome Elemento',\r\n render: ({cap_nomeelemento}) => (\r\n
\r\n {cap_nomeelemento}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Tipo Elemento',\r\n render: ({cap_tipoelemento}) => (\r\n
\r\n {cap_tipoelemento}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Obrigatorio',\r\n align: 'right',\r\n width: 80,\r\n render: ({cap_mensagemobrigatorio}) => (\r\n
\r\n {cap_mensagemobrigatorio ? \"SIM\":\"NÃO\"}\r\n
\r\n )\r\n },\r\n \r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n useEffect(() => carregaCamposPersonalizados() , []);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n {ListaCamposPersonalizados(camposPersonalizados.filter(f => f.cap_tipoentidade == 1 ))}\r\n \r\n \r\n {ListaCamposPersonalizados(camposPersonalizados.filter(f => f.cap_tipoentidade == 2 ))}\r\n \r\n \r\n {ListaCamposPersonalizados(camposPersonalizados.filter(f => f.cap_tipoentidade == 3 ))}\r\n \r\n \r\n {ListaCamposPersonalizados(camposPersonalizados.filter(f => f.cap_tipoentidade == 4 ))}\r\n \r\n \r\n {ListaCamposPersonalizados(camposPersonalizados.filter(f => f.cap_tipoentidade == 5 ))}\r\n \r\n \r\n {ListaCamposPersonalizados(camposPersonalizados.filter(f => f.cap_tipoentidade == 6 ))}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Planos } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\n\r\n\r\nexport default function RenovarPlano() {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n \r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Button, Card, Input, Select, notification } from \"antd\";\r\nimport { CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormGW, SelectProduto } from \"../../components\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoFornecedorProduto({ form, carregando, aoSalvar, editando }) {\r\n const [{ ui, manutencao, listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [editandoRegistro, setEditandoRegistro] = useState(false);\r\n const [filtroProd, setFiltroProd] = useState('')\r\n\r\n const salvarManutencao = values => {\r\n let retornoDrawer = []\r\n let enderecoUrl = 'FornecedorProduto/';\r\n let listaProdutos = [...listaSelectPaginacao?.itens];\r\n let produto = listaProdutos.filter((pro) => pro.key === form.getFieldValue().pro_id)[0];\r\n if (!!!produto && !isObjetoDiffVazio(produto)) {\r\n return;\r\n }\r\n values.pro_id = produto.pro_id;\r\n values.prg_id = produto.prg_id;\r\n if (!!values.fpr_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(\r\n res => {\r\n retornoDrawer = res.data;\r\n notification.success({ message: 'Operação concluída', description: \"Os dados foram salvos com sucesso!\" });\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }).finally(\r\n () => {\r\n aoSalvar(retornoDrawer);\r\n });\r\n } else {\r\n enderecoUrl += `Incluir`;\r\n\r\n api.post(enderecoUrl, values).then(\r\n res => {\r\n retornoDrawer = res.data;\r\n notification.success({ message: 'Operação concluída', description: \"Os dados foram salvos com sucesso!\" });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n aoSalvar(retornoDrawer);\r\n }\r\n );\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && isObjetoDiffVazio(manutencao.dados)) {\r\n let lista = [];\r\n if (!!manutencao.dados.for_id) {\r\n lista.push({ name: \"for_id\", campo: \"FornecedorId\", value: manutencao.dados.for_id });\r\n }\r\n if (!!manutencao.dados.pro_id) {\r\n if (!!manutencao.dados.prg_id) {\r\n lista.push({ name: \"pro_id\", campo: \"IdGrade\", value: manutencao.dados.prg_id });\r\n } else {\r\n lista.push({ name: \"pro_id\", campo: \"IdProduto\", value: manutencao.dados.pro_id });\r\n }\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n function editarRegistro() {\r\n setEditandoRegistro(true);\r\n };\r\n\r\n function buscarProdutoFornecedor() {\r\n let listaProdutos = [...listaSelectPaginacao?.itens];\r\n let produto = listaProdutos.filter((pro) => pro.key === form.getFieldValue().pro_id)[0];\r\n if (!!!produto && !isObjetoDiffVazio(produto)) {\r\n return;\r\n }\r\n let forId = form.getFieldValue().for_id;\r\n let parametro = \"\";\r\n if (!!produto && isObjetoDiffVazio(produto) && !!produto.prg_id) parametro = \"&GradeId=\" + produto.prg_id;\r\n api.get(`FornecedorProduto/Listar?FornecedorId=${forId}&ProdutoId=${produto.pro_id}` + parametro).then(\r\n res => {\r\n if (res.data.items.length > 0) {\r\n let dados = res.data.items[0];\r\n form.setFieldsValue({ fpr_id: dados.fpr_id, fpr_codigo: dados.fpr_codigo, fpr_descricao: dados.fpr_descricao });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n \r\n {!editandoRegistro &&\r\n \r\n
\r\n \r\n { buscarProdutoFornecedor() }} conteudo={\r\n forn => ({forn.for_codigo} - {forn.pes_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n { buscarProdutoFornecedor() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {editandoRegistro &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Form, Row, Col, Button, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoFornecedorProduto from './manutencao';\r\nimport { drawerActions, listagemActions } from '../../actions';\r\n\r\nexport default function DrawerFornecedorProduto() {\r\n const [formFornecedorProduto] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [edit, setEdit] = useState(false);\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados && !edit) {\r\n if (!!manutencao.dados.for_id) {\r\n setEdit(true);\r\n }\r\n formFornecedorProduto.setFieldsValue(manutencao.dados);\r\n } else {\r\n formFornecedorProduto.setFieldsValue({ cli_ativo: true });\r\n }\r\n\r\n function fecharDrawer() {\r\n formFornecedorProduto.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } });\r\n setEdit(false);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n fecharDrawer={() => { fecharDrawer() }}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, notification, Modal } from \"antd\";\r\nimport { DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport DrawerFornecedorProduto from './drawer';\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, TabelaDados, BreadcrumbAbrirChamado, Editar, Excluir } from \"../../components\";\r\n\r\nexport default function RelacionamentoFornecedorProduto() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', ordem: '+pes_nome' } })\r\n }, []);\r\n\r\n function editarRegistro(record) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function modalExcluirRegistro(record) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: 'Deseja realmente excluir este registro?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(record);\r\n }\r\n });\r\n };\r\n\r\n function excluirRegistro(record) {\r\n api.delete(`fornecedorProduto/Excluir/${record.fpr_id}`).then(\r\n res => {\r\n notification.success({ description: 'Registro excluído com sucesso!', message: 'Aviso' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pes_nome' } });\r\n }\r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {pro_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Produto',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Cód. Prod./Fornec.',\r\n width: 150,\r\n align: 'center',\r\n render: ({fpr_codigo }) => (\r\n
\r\n {fpr_codigo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Fornecedor',\r\n render: ({for_codigo, pes_nome }) => (\r\n
\r\n {for_codigo}-{pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Último Custo (R$)',\r\n align: 'right',\r\n width: 150,\r\n render: ({ ultimocusto }) => (\r\n
\r\n {FormatNumber(ultimocusto, true)}\r\n
\r\n ),\r\n }, {\r\n\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n } onClick={() => {\r\n editarRegistro(record);\r\n }}/>\r\n \r\n \r\n } onClick={() => {\r\n modalExcluirRegistro(record)\r\n }}/>\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Select } from \"antd\";\r\nimport api from \"../../services/api\";\r\nimport { InputCep } from \"../../components\";\r\n\r\nexport default function TabEndereco({ formulario, listaTipoEndereco, cidade, setCidade, listaPais }) {\r\n\r\n const [openDropdown, setOpenDropdown] = useState(false);\r\n\r\n function verificaCep(cep) {\r\n if (!!cep) {\r\n api.get(`Cidade/ListarCidadeCep?Cep=${cep.match(/\\d+/g).join('')}`).then(\r\n res => {\r\n formulario.setFieldsValue({ cid_descricao: res.data.length > 0 ? res.data[0].cid_descricao : '' });\r\n setCidade(res.data[0]);\r\n formulario.setFieldsValue({ est_sigla: res.data.length > 0 ? res.data[0].est_sigla : '' });\r\n }\r\n )\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {listaPais.map(pais => (\r\n {pais.pse_nome}\r\n ))}\r\n \r\n \r\n \r\n \r\n verificaCep(cep.target.value)} onPressEnter={(cep) => verificaCep(cep.target.value)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { setOpenDropdown(true) }}\r\n onBlur={() => setOpenDropdown(false)}\r\n onSelect={() => setOpenDropdown(false)}\r\n allowClear\r\n showSearch\r\n open={openDropdown}\r\n optionFilterProp=\"children\"\r\n placeholder=\"Informe o Tipo de Endereço\">\r\n {listaTipoEndereco.map((te) => (\r\n {te.tpe_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n MAPA\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Checkbox, Input, Select, Slider, notification, Tabs, Typography, Divider } from \"antd\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\r\n\r\nimport api from \"../../services/api\";\r\nimport TabEndereco from './tabEndereco';\r\nimport { useStateValue } from '../../state';\r\nimport { InputPreco, InputPhone, SelectPaginado } from \"../../components\";\r\n\r\nexport default function ManutencaoRestaurante({ formulario, aoSalvar, carregando }) {\r\n\r\n const valueMaximo = 10;\r\n const inputRef = React.createRef();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [listaTipoRestaurante, setListaTipoRestaurante] = useState([]);\r\n const [valorPreferencia, setValorPreferencia] = useState(0);\r\n const [valuePreferenciaSlider, setValuePreferenciaSlider] = useState(0);\r\n const [listaTiposEndereco, setListaTiposEndereco] = useState([]);\r\n const [tiposContatos, setTiposContatos] = useState([]);\r\n const [cidade, setCidade] = useState({});\r\n const [desabilitarCfpCnpj, setDesabilitarCpfCnpj] = useState(false);\r\n const [listaPais, setListaPais] = useState([]);\r\n const handleChange = (value) => {\r\n setValorPreferencia(value);\r\n setValuePreferenciaSlider(value);\r\n };\r\n\r\n function carregarDados() {\r\n api.get('Enum/Listar?nome=TipoRestaurante').then(\r\n res => {\r\n setListaTipoRestaurante(res.data);\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n });\r\n api.get(`TipoEndereco/Listar`).then(\r\n res => {\r\n setListaTiposEndereco(res.data);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n api.get(`TipoOutroContato/Listar`).then(\r\n res => {\r\n setTiposContatos(res.data);\r\n }\r\n ).catch(\r\n (erro) => console.error(erro)\r\n );\r\n api.get(`Pais/Listar`).then(\r\n res => {\r\n setListaPais(res.data);\r\n }\r\n ).catch(\r\n (erro) => console.error(erro)\r\n );\r\n }\r\n\r\n function salvarManutencao(values) {\r\n let operacao = !!values.res_id ? 'Editar' : 'Incluir';\r\n let coordenadas = !!values.coordenadas ? values.coordenadas.split(',') : ['', ''];\r\n let enderecoTemp = {\r\n cep_cep: values.cep_cep,\r\n cid_descricao: values.cid_descricao,\r\n est_sigla: values.est_sigla,\r\n log_logradouro: values.log_logradouro,\r\n pee_complemento: values.pee_complemento,\r\n pee_localreferencia: values.pee_localreferencia,\r\n pee_numero: values.pee_numero,\r\n tpe_id: values.tpe_id,\r\n bai_nome: values.bai_nome,\r\n pee_enderecoprincipal: true,\r\n pee_latitude: coordenadas[0],\r\n pee_longitude: coordenadas[1]\r\n }\r\n let telefoneTemp = {\r\n psc_numero: values.psc_numero,\r\n tpt_id: values.tpt_id,\r\n psc_ramal: values.psc_ramal\r\n\r\n }\r\n let emailTemp = {\r\n pem_email: values.pem_email,\r\n pem_emailprincipal: true,\r\n pem_ativo: true\r\n }\r\n let outroContato = {\r\n toc_id: 3,\r\n out_ativo: true,\r\n out_descricao: values.res_site\r\n }\r\n values.OutrosContatos = !!values.res_site ? [outroContato] : [];\r\n values.Emails = !!values.pem_email ? [emailTemp] : [];\r\n values.Enderecos = [enderecoTemp];\r\n values.Telefones = [telefoneTemp];\r\n values.cpfCnpj = values.cpfCnpj.replaceAll('-', '').replaceAll('/', '').replaceAll('.', '');\r\n values.pes_fisicajuridica = values.cpfCnpj.length <= 11 ? 1 : 2;\r\n values.res_notaavaliacao = valuePreferenciaSlider;\r\n values.pej_databaixasefaz = !!values.pej_databaixasefaz ? values.pej_databaixasefaz : null;\r\n values.pej_baixadoreceita = !!values.pej_baixadoreceita ? values.pej_baixadoreceita : false;\r\n if (!!values.cpfCnpj) {\r\n if (values.pes_fisicajuridica === 1) {\r\n values.pef_cpf = values.cpfCnpj.replace(/\\D/g, '');\r\n values.pef_rguf = values.Enderecos.filter((end) => (end.pee_enderecoprincipal === true))[0].est_sigla;\r\n } else {\r\n values.pej_cnpj = values.cpfCnpj.replace(/\\D/g, '');\r\n values.pej_inscuf = values.Enderecos.filter((end) => (end.pee_enderecoprincipal === true))[0].est_sigla;\r\n }\r\n }\r\n carregando(true);\r\n api.post(`Restaurante/${operacao}`, values).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Restaurante ${operacao === 'Editar' ? 'editado' : 'incluido'} com sucesso!` });\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({ message: `Aviso!`, description: `Erro ao ${operacao === 'Editar' ? 'editar' : 'incluir'} o Restaurante` });\r\n }\r\n ).finally(() => {\r\n aoSalvar();\r\n })\r\n\r\n }\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n setDesabilitarCpfCnpj(!!manutencao.dados && !!manutencao.dados.cpfCnpj ? true : false);\r\n setValorPreferencia(!!manutencao.dados && !!manutencao.dados.res_notaavaliacao ? manutencao.dados.res_notaavaliacao : 0);\r\n setValuePreferenciaSlider(!!manutencao.dados && !!manutencao.dados.res_notaavaliacao ? manutencao.dados.res_notaavaliacao : 0);\r\n manutencao.dados.res_site = manutencao.dados.out_descricao;\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [manutencao.dados])\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, [])\r\n\r\n return (\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTipoRestaurante.map((tr) => (\r\n {tr.value}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Almoço \r\n \r\n \r\n \r\n \r\n Jantar \r\n \r\n \r\n \r\n \r\n Café da Manhã \r\n \r\n \r\n \r\n \r\n Ativo \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Telefone(s)\" Telefone(s)\r\n \r\n \r\n Adicione o(s) telefone(s) do cliente aqui.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({tp.tpt_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoRestaurante from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerRestaurante() {\r\n\r\n const [ formularioRestaurante ] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (manutencao.dados !== null) {\r\n formularioRestaurante.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+res_id' } });\r\n setCarregando(false);\r\n formularioRestaurante.resetFields();\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Button, notification, Modal } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CheckOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerRestaurante from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatFone, FormatNumber } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, Editar, PesquisaOrdenacao, TabelaDados } from \"../../components\";\r\n\r\nexport default function Restaurante() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaTiposRestaurante, setListaTiposRestaurantes] = useState([]);\r\n\r\n function excluirRegistro(record) {\r\n api.post(`Restaurante/Excluir?codigoRestaurante=${record.res_id}`).then(\r\n (res) => {\r\n notification.success({ message: 'Operação concluída', description: \"Registro excluído com sucesso!\" });\r\n }).catch((erro) => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+res_id' } });\r\n });\r\n }\r\n\r\n function carregarDados() {\r\n api.get('Enum/Listar?nome=TipoRestaurante').then(\r\n res => {\r\n setListaTiposRestaurantes(res.data);\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function editarRestaurante(record) {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n record.cpfCnpj = !!record.pef_cpf ? record.pef_cpf : record.pej_cnpj;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n }\r\n\r\n function modalExcluir(record) {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(record);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+res_id' } })\r\n carregarDados();\r\n }, [])\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 105,\r\n render: ({ psc_numero }) => (\r\n
\r\n {psc_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Endereço',\r\n render: ({ log_logradouro }) => (\r\n
\r\n {log_logradouro || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Preferência',\r\n align: 'center',\r\n render: ({ res_notaavaliacao }) => (\r\n
\r\n {res_notaavaliacao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Buffet Livre (R$)',\r\n align: 'right',\r\n render: ({ res_preco_buffetlivre }) => (\r\n
\r\n {FormatNumber(!!res_preco_buffetlivre ? res_preco_buffetlivre : 0, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor por KG (R$)',\r\n align: 'right',\r\n render: ({ res_preco_kg }) => (\r\n
\r\n {FormatNumber(!!res_preco_kg ? res_preco_kg : 0, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Tipo',\r\n render: ({ res_tipo }) => (\r\n
\r\n {res_tipo ? listaTiposRestaurante.filter(res => (res.res_tipo = res_tipo))[0].value : 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Café da Manhã',\r\n align: 'center',\r\n width: 105,\r\n render: ({ res_cafemanha }) => (\r\n
\r\n {!!res_cafemanha ? : }\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Almoço',\r\n align: 'center',\r\n width: 58,\r\n render: ({ res_almoco }) => (\r\n
\r\n {!!res_almoco ? : }\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Jantar',\r\n align: 'center',\r\n width: 55,\r\n render: ({ res_janta }) => (\r\n
\r\n {!!res_janta ? : }\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n width: 65,\r\n align: 'center',\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {listaPaises.map((lp) => (\r\n {lp.pse_nome}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTipoEndereco.map((lte) => (\r\n {lte.tpe_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n MAPA\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Checkbox, Input, Select, Slider, notification, Tabs, Typography, Divider } from \"antd\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\r\n\r\nimport api from \"../../services/api\";\r\nimport TabEndereco from './tabEndereco';\r\nimport { useStateValue } from '../../state';\r\nimport { InputPhone, InputPreco, SelectPaginado } from \"../../components\";\r\n\r\nexport default function ManutencaoHotel({ formulario, aoSalvar, carregando }) {\r\n\r\n const valueMaximo = 10;\r\n const inputRef = React.createRef();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [valorPreferencia, setValorPreferencia] = useState(0);\r\n const [valuePreferenciaSlider, setValuePreferenciaSlider] = useState(0);\r\n const [listaTipoHotel, setListaTipoHotel] = useState([]);\r\n const [listaTipoEndereco, setListaTipoEndereco] = useState([]);\r\n const [listaPais, setListaPais] = useState([]);\r\n\r\n const handleChange = (value) => {\r\n setValorPreferencia(value);\r\n setValuePreferenciaSlider(value);\r\n };\r\n\r\n function salvarManutencao(values) {\r\n let operacao = !!values.hot_id ? 'Editar' : 'Incluir';\r\n let coordenadas = !!values.coordenadas ? values.coordenadas.split(',') : ['', ''];\r\n let enderecoTemp = {\r\n cep_cep: values.cep_cep,\r\n cid_descricao: values.cid_descricao,\r\n est_sigla: values.est_sigla,\r\n log_logradouro: values.log_logradouro,\r\n pee_complemento: values.pee_complemento,\r\n pee_localreferencia: values.pee_localreferencia,\r\n pee_numero: values.pee_numero,\r\n tpe_id: values.tpe_id,\r\n bai_nome: values.bai_nome,\r\n pee_enderecoprincipal: true,\r\n pee_latitude: coordenadas[0],\r\n pee_longitude: coordenadas[1]\r\n }\r\n let telefoneTemp = {\r\n psc_numero: values.psc_numero,\r\n tpt_id: values.tpt_id,\r\n psc_ramal: values.psc_ramal\r\n\r\n }\r\n let emailTemp = {\r\n pem_email: values.pem_email,\r\n pem_emailprincipal: true,\r\n pem_ativo: true\r\n }\r\n let outroContato = {\r\n toc_id: 3,\r\n out_ativo: true,\r\n out_descricao: values.out_descricao\r\n }\r\n values.OutrosContatos = !!values.out_descricao ? [outroContato] : [];\r\n values.Emails = !!values.pem_email ? [emailTemp] : [];\r\n values.Enderecos = [enderecoTemp];\r\n values.Telefones = [telefoneTemp];\r\n values.hot_nota_avaliacao = valuePreferenciaSlider;\r\n\r\n\r\n api.post(`Hotel/${operacao}`, values).then(res => {\r\n notification.success({ message: 'Sucesso!', description: `Hotel ${operacao === 'Editar' ? 'editado' : 'incluido'} com sucesso!` });\r\n }).catch(\r\n error => {\r\n notification.warn({ message: 'Aviso!', description: `Erro ao ${operacao === 'Editar' ? 'editar' : 'incluir'} o hotel!` });\r\n console.log(error);\r\n }\r\n ).finally(() => {\r\n aoSalvar();\r\n })\r\n }\r\n\r\n function carregarDados() {\r\n api.get('Enum/Listar?nome=TipoHotel').then(\r\n res => {\r\n setListaTipoHotel(res.data);\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n });\r\n api.get(`TipoEndereco/Listar`).then(\r\n res => {\r\n setListaTipoEndereco(res.data);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n api.get(`Pais/Listar`).then(\r\n res => {\r\n setListaPais(res.data);\r\n }\r\n ).catch(\r\n (erro) => console.error(erro)\r\n );\r\n }\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n manutencao.dados.coordenadas = !!manutencao.dados.pee_latitude && !!manutencao.dados.pee_longitude ? manutencao.dados.pee_latitude + ',' + manutencao.dados.pee_longitude : '';\r\n formulario.setFieldsValue(manutencao.dados);\r\n setValorPreferencia(!!manutencao.dados.hot_nota_avaliacao ? manutencao.dados.hot_nota_avaliacao : 0);\r\n setValuePreferenciaSlider(!!manutencao.dados.hot_nota_avaliacao ? manutencao.dados.hot_nota_avaliacao : 0);\r\n }\r\n }, [manutencao.dados])\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, [])\r\n\r\n return (\r\n
\r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTipoHotel.map((th) => (\r\n {th.value}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ativo \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Telefone(s)\" Telefone(s)\r\n \r\n \r\n Adicione o(s) telefone(s) do cliente aqui.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({tp.tpt_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport ManutencaoHotel from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerHotel() {\r\n\r\n const [formularioHotel] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n if (manutencao.dados !== null) {\r\n formularioHotel.setFieldsValue(manutencao.dados);\r\n }\r\n else {\r\n formularioHotel.setFieldsValue({ id: null });\r\n }\r\n\r\n function fecharDrawer() {\r\n formularioHotel.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { ordem: '+id' } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Button, notification, Modal, Input } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, EnvironmentOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport DrawerHotel from \"./drawer\";\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { ModalMapa } from \"../../components/modals\";\r\nimport { FormatFone, FormatNumber } from \"../../ValueObjects\";\r\nimport { drawerActions, manutencaoActions, listagemActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados } from \"../../components\";\r\n\r\nexport default function Hotel() {\r\n\r\n const [formHotel] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openModalMapa, setOpenModalMapa] = useState(false);\r\n \r\n function excluirRegistro(id) {\r\n api.delete(`/Hotel/${id}`).then((res) => {\r\n notification.success({ message: 'Operação concluída', description: \"Registro excluído com sucesso!\" });\r\n }).catch(erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+Descricao' } })\r\n });\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+hot_id' } });\r\n }, [])\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Tipo',\r\n width: 115,\r\n render: ({ hot_tipo }) => (\r\n
\r\n {hot_tipo === 1 ? 'Hotel' : (hot_tipo === 2 ? 'Airbnb' : 'Não Informado')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 110,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Endereço',\r\n render: ({ log_logradouro, bai_nome, cid_descricao, pee_numero, est_sigla }) => (\r\n
\r\n {log_logradouro + `, ${pee_numero}` + `, ${bai_nome}` + `, ${cid_descricao}` + `, ${est_sigla}`}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Standard (R$)',\r\n align: 'right',\r\n width: 130,\r\n render: ({ hot_preco_standard }) => (\r\n
\r\n {FormatNumber(!!hot_preco_standard ? hot_preco_standard : 0, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Duplo (R$)',\r\n align: 'right',\r\n width: 130,\r\n render: ({ hot_preco_duplo }) => (\r\n
\r\n {FormatNumber(!!hot_preco_duplo ? hot_preco_duplo : 0, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Triplo (R$)',\r\n align: 'right',\r\n width: 130,\r\n render: ({ hot_preco_triplo }) => (\r\n
\r\n {FormatNumber(!!hot_preco_triplo ? hot_preco_triplo : 0, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n width: 95,\r\n align: 'center',\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n setarFormulario(id)}\r\n conteudo={\r\n mar => ({mar.mar_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Marca Ativa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Button, Checkbox, Col, Divider, Form, Input, Modal, notification, Row, Select, Table, Tag, Tooltip } from \"antd\";\r\nimport { BotaoAbrirChamado, BreadcrumbPage } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport api from \"../../services/api\";\r\nimport { QuestionCircleOutlined, ExclamationCircleOutlined, SaveOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function ManutencaoProduto() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [carregandoGerar, setCarregandoGerar] = useState(false);\r\n const [considerarVigencia, setConsiderarVigencia] = useState(true);\r\n const [marcado, setMarcado] = useState(true);\r\n const [listaCest, setListaCest] = useState([]);\r\n const [listaCestAlterar, setListaCestAlterar] = useState([]);\r\n const [dadosProdutos, setDadosProdutos] = useState([]);\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n const [form] = Form.useForm();\r\n const [formAlterar] = Form.useForm();\r\n\r\n function buscarCest(ncm, cestAlterar = false) {\r\n if (!!ncm) {\r\n api.get(`produto/BuscarCest?IdNcm=${ncm}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (cestAlterar) {\r\n setListaCestAlterar(res.data);\r\n formAlterar.setFieldsValue({ cen_id: null });\r\n } else {\r\n setListaCest(res.data);\r\n form.setFieldsValue({ cen_id: null });\r\n }\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n if (cestAlterar) {\r\n setListaCestAlterar([]);\r\n formAlterar.setFieldsValue({ cen_id: null });\r\n } else {\r\n setListaCest([]);\r\n form.setFieldsValue({ cen_id: null });\r\n }\r\n }\r\n };\r\n\r\n function buscarProdutos() {\r\n if (!form.getFieldsValue().filtro && !form.getFieldsValue().filtroNcm && !form.getFieldsValue().filtroCest && !form.getFieldsValue().ncm_id\r\n && !form.getFieldsValue().cen_id && !form.getFieldsValue().icm_id && !form.getFieldsValue().SomenteNcmInativos && !form.getFieldsValue().EANInvalidos) {\r\n notification.warning({ message: 'Aviso!', description: 'É necessário informar pelo menos um filtro!' });\r\n return;\r\n }\r\n\r\n let outrosFiltros = `&filtro=${!!form.getFieldsValue().filtro ? form.getFieldsValue().filtro : ''}`;\r\n outrosFiltros += `&Ncm=${!!form.getFieldsValue().filtroNcm ? form.getFieldsValue().filtroNcm : ''}`;\r\n outrosFiltros += `&Cest=${!!form.getFieldsValue().filtroCest ? form.getFieldsValue().filtroCest : ''}`;\r\n outrosFiltros += `&SomenteNcmInativos=${form.getFieldsValue().SomenteNcmInativos}`;\r\n outrosFiltros += `&EANInvalidos=${form.getFieldsValue().EANInvalidos}`;\r\n if (form.getFieldsValue().ncm_id) outrosFiltros += `&IdNcm=${form.getFieldsValue().ncm_id}`;\r\n if (form.getFieldsValue().cen_id) outrosFiltros += `&IdCest=${form.getFieldsValue().cen_id}`;\r\n if (form.getFieldsValue().icm_id) outrosFiltros += `&IdIcms=${form.getFieldsValue().icm_id}`;\r\n\r\n setCarregando(true);\r\n api.get(`Produto/ListaProdutoManutencao?ordem=+pro_descricao${outrosFiltros}`).then(res => {\r\n if (res.status === 200) {\r\n let keys = [];\r\n res.data.map((item, idx) => {\r\n item.key = idx;\r\n keys.push(item.key);\r\n })\r\n setSelectedRowKeys(keys);\r\n setMarcado(true);\r\n setDadosProdutos(res.data.map((item, idx) => ({ key: idx, ...item })));\r\n }\r\n }, err => {\r\n console.log(err.response);\r\n }).finally(() => setCarregando(false));\r\n }\r\n\r\n function marcarDesmarcarTodos(e) {\r\n let keys = [];\r\n if (e.target.checked) {\r\n for (const item of dadosProdutos) {\r\n keys.push(item.key);\r\n }\r\n }\r\n setMarcado(e.target.checked);\r\n setSelectedRowKeys(keys);\r\n }\r\n\r\n const rowSelection = {\r\n selectedRowKeys,\r\n hideSelectAll: true,\r\n onChange: (keys, selectedRows) => {\r\n setSelectedRowKeys(keys);\r\n },\r\n };\r\n\r\n function confirmarIcms(values) {\r\n Modal.confirm({\r\n title: 'Deseja continuar?',\r\n icon: ,\r\n content: 'Essa operação irá alterar o ICMS dos itens selecionados! Após confirmar, não poderá ser desfeito!',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n gerarManutencao(values);\r\n }\r\n });\r\n };\r\n\r\n function confirmar(values) {\r\n Modal.confirm({\r\n title: 'Deseja continuar?',\r\n icon: ,\r\n content: 'Essa operação irá alterar os itens selecionados! Após confirmar, não poderá ser desfeito!',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n gerarManutencao(values);\r\n }\r\n });\r\n };\r\n\r\n function validarManutencao(values) {\r\n if (selectedRowKeys.length === 0) {\r\n notification.warning({ message: 'Aviso!', description: 'É necessário selecionar pelo menos um item!' });\r\n return;\r\n }\r\n if (!!values.pro_eaninvalido) {\r\n gerarManutencao(values);\r\n } else {\r\n if (!values.icm_id && !values.ncm_id) {\r\n notification.warning({ message: 'Aviso!', description: 'Favor informar o NCM ou ICMS que deseja alterar!' });\r\n return;\r\n }\r\n if (considerarVigencia && !!values.icm_id && !values.vig_id) {\r\n notification.warning({ message: 'Aviso!', description: 'Favor informar a vigência!' });\r\n return;\r\n }\r\n if (considerarVigencia && !!values.icm_id) {\r\n gerarManutencao(values);\r\n } else {\r\n confirmar(values);\r\n }\r\n }\r\n };\r\n\r\n function gerarManutencao(values) {\r\n let dados = {};\r\n dados.produtos = [];\r\n for (const item of dadosProdutos) {\r\n if (selectedRowKeys.indexOf(item.key) >= 0) {\r\n dados.produtos.push({ pro_id: item.pro_id, icm_id: item.icm_id });\r\n }\r\n }\r\n dados.ncm_id = !!values.ncm_id ? values.ncm_id : null;\r\n dados.cen_id = !!values.cen_id ? values.cen_id : null;\r\n dados.vig_id = !!values.vig_id ? values.vig_id : null;\r\n dados.icm_id = !!values.icm_id ? values.icm_id : null;\r\n dados.pro_eaninvalido = !!values.pro_eaninvalido ? values.pro_eaninvalido : null;\r\n setCarregandoGerar(true);\r\n api.post(`Produto/ManutencaoProduto`, dados).then(res => {\r\n if (res.data) {\r\n notification.success({ message: 'Aviso!', description: 'Manutenção realizada com sucesso!' });\r\n form.setFieldsValue({ produtos: [] });\r\n setSelectedRowKeys([]);\r\n } else {\r\n notification.error({ message: 'Aviso!', description: 'Não foi possível realizar a manutenção dos produtos selecionados!' });\r\n }\r\n }, err => {\r\n console.log(err.response);\r\n }).finally(() => {\r\n buscarProdutos();\r\n setCarregandoGerar(false);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({icm.icm_id} - {icm.icm_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n { buscarCest(ncm) }} conteudo={\r\n ncm => ({ncm.ncm_codigo.codigoNcm} - {ncm.ncm_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Somente NCM inativos?\r\n \r\n \r\n \r\n \r\n \r\n \r\n Somente EAN Inválidos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Marcar/Desmarcar Todos\r\n \r\n \r\n (\r\n \r\n {pro_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'EAN',\r\n align: 'center',\r\n width: 90,\r\n render: ({ pro_ean }) => (\r\n {pro_ean}\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ pro_descricao }) => (\r\n {pro_descricao}\r\n ),\r\n },\r\n {\r\n title: 'ICMS',\r\n render: ({ icm_id, icm_descricao }) => (\r\n {icm_id} - {icm_descricao}\r\n ),\r\n },\r\n {\r\n title: 'NCM',\r\n render: ({ ncm_codigo }) => (\r\n {ncm_codigo}\r\n ),\r\n },\r\n {\r\n title: 'CEST',\r\n render: ({ cet_id }) => (\r\n {!!cet_id ? cet_id : '-'}\r\n ),\r\n }\r\n ]} scroll={{ x: 900, size:20 }} />\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n ({icm.icm_id} - {icm.icm_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n { setConsiderarVigencia(e.target.checked) }}>Considerar Vigência\r\n \r\n \r\n {considerarVigencia && \r\n \r\n ({vig.vig_id} - {vig.vig_descricao})\r\n }\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n { buscarCest(ncm) }} conteudo={\r\n ncm => ({ncm.ncm_codigo.codigoNcm} - {ncm.ncm_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Marcar EAN Inválidos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { Data, FormGW } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport moment from \"moment\";\r\n\r\nexport default function ManutencaoVigencia({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const salvarManutencao = (values) => {\r\n carregando(true);\r\n let enderecoUrl = 'VigenciaFiscal/';\r\n\r\n if (values.vig_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Vigência Fiscal salvos com sucesso!\" });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Vigência Fiscal salvos com sucesso!\" });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n };\r\n };\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vig_id' } });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoVigencia from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\nimport moment from 'moment';\r\n\r\nexport default function DrawerVigencia() {\r\n\r\n const [form] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n \r\n if (manutencao.dados !== null) {\r\n form.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n function fecharDrawer() {\r\n form.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }> \r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Tag, Popover, notification, Modal, Form } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport DrawerVigencia from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, TabelaDados, Editar, Excluir, FiltroSearch } from \"../../components\";\r\nimport moment from 'moment';\r\n\r\nexport default function VigenciaFiscal() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vig_id' } }), []);\r\n\r\n function excluirRegistro(id) {\r\n api.delete(`VigenciaFiscal/Excluir/${id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Registro excluído com sucesso!\" });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }).catch((erro) => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vig_id' } });\r\n });\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {vig_id}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ vig_descricao }) => (\r\n
\r\n {vig_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Inicial',\r\n render: ({ vig_datainicial }) => (\r\n
\r\n {moment(vig_datainicial).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 95,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {\r\n let dados = { ...record };\r\n dados.vig_datainicial = moment(dados.vig_datainicial);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={} />\r\n \r\n \r\n } onClick={() => { modalExcluir(record.vig_id) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tabs, Row, Col, Form, Input, Select, Checkbox, Switch, Tooltip, Button, Modal, notification, Alert } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport InputNumber from \"rc-input-number\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { FormGW } from \"../../components\";\r\nimport { ModalRetencao } from \"../../components/modals\";\r\n\r\nexport default function ManutencaoRetencao({ formulario, carregando, aoSalvar }) {\r\n\r\n const [formModal] = Form.useForm();\r\n const [dadosTipoRetencao, setDadosTipoRetencao] = useState([]);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openModal, setOpenModal] = useState(false);\r\n\r\n useEffect(() => {\r\n buscarTipoRetencao();\r\n }, []);\r\n\r\n function buscarTipoRetencao() {\r\n api.get(`Enum/Listar?nome=TipoRetencao`).then(\r\n res => {\r\n setDadosTipoRetencao(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+tar_id' } });\r\n };\r\n\r\n const salvarManutencao = (values) => {\r\n carregando(true);\r\n values.tar_descontamovimentacaofinanceira = values.tar_descontamovimentacaofinanceira || false;\r\n values.tar_descontatotalnota = values.tar_descontatotalnota || false;\r\n let enderecoUrl = 'TabelaRetencao/';\r\n if (values.tar_id) {\r\n enderecoUrl += 'Editar'; \r\n api.put(enderecoUrl, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados na tabela de retenção foram editados com sucesso!\" });\r\n aoSalvar();\r\n atualizarPagina();\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n } else {\r\n enderecoUrl += 'Incluir'; \r\n api.post(enderecoUrl, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados na tabela de retenção foram salvos com sucesso!\" });\r\n aoSalvar();\r\n atualizarPagina();\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n };\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+tar_id' } });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Desconta total da nota?\r\n \r\n \r\n \r\n \r\n Desconta movimentação financeira?\r\n \r\n \r\n setOpenModal(false)} formulario={formModal} />\r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\nimport ManutencaoRetencao from './manutencao';\r\n\r\nexport default function DrawerRetencao() {\r\n const [formulario] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (!!manutencao.dados)\r\n {\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n function fecharDrawer() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n };\r\n\r\n return (\r\n }\r\n limparAoEditar={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Popover, notification, Modal } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CopyOutlined, CloseCircleOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { BreadcrumbIncluirDados, PesquisaOrdenacao, TabelaDados, Editar, Excluir } from \"../../components\";\r\nimport DrawerRetencao from \"./drawer\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function TabelaRetencao() {\r\n\r\n const [dadosTipoRetencao, setDadosTipoRetencao] = useState([]);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n buscarTipoRetencao();\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+tar_descricao' } });\r\n }, []);\r\n\r\n function buscarTipoRetencao() {\r\n api.get(`Enum/Listar?nome=TipoRetencao`).then(\r\n res => {\r\n let objeto = {};\r\n for (let item of res.data) {\r\n objeto[item.key] = item.value;\r\n }\r\n setDadosTipoRetencao(objeto);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n function excluirRegistro(tabRetencao) {\r\n api.delete(`TabelaRetencao/Excluir?id=${tabRetencao.tar_id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Os dados foram excluídos com sucesso!\" });\r\n dispatch({ type: listagemActions.CHANGE, data: { label: \"Nome A - Z\", ordem: '+tar_descricao' } })\r\n }).catch(err => {\r\n console.error(err);\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+tar_descricao' } });\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n (\r\n \r\n \r\n {tar_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ tar_descricao }) => (\r\n
\r\n {tar_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Percentual',\r\n render: ({ tar_percentuaretencao }) => (\r\n
\r\n {FormatNumber(tar_percentuaretencao, true)} %\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Tipo Imposto',\r\n render: ({ tar_tiporetencao }) => (\r\n
\r\n {dadosTipoRetencao[tar_tiporetencao] || '-'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desconta total da nota?',\r\n render: ({ tar_descontatotalnota }) => (\r\n
\r\n {tar_descontatotalnota ? 'Sim' : 'Não'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desconta total da movimentação financeira?',\r\n render: ({ tar_descontamovimentacaofinanceira }) => (\r\n
\r\n {tar_descontamovimentacaofinanceira ? 'Sim' : 'Não'}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n {/*
\r\n \r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } }); \r\n }} icon={} />\r\n \r\n \r\n } onClick={() => { modalExcluir(record)}} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n );\r\n\r\n}","import axios from 'axios';\r\nimport { getToken, logout, getEmpresa, getLocal, linkApi, linkApiGestor } from './auth';\r\nconst apiErp = axios.create({ baseURL: linkApiGestor });\r\n\r\napiErp.interceptors.request.use(async config => {\r\n const token = getToken();\r\n const empresa = getEmpresa();\r\n const local = getLocal();\r\n //config.headers.ApiKey =\"as123\";\r\n if (token) config.headers.Authorization = `Bearer ${token}`;\r\n if (empresa) config.headers.codigoempresa = empresa;\r\n if (local) config.headers.codigolocal = local;\r\n\r\n return config;\r\n});\r\n\r\napiErp.interceptors.response.use(function (response) {\r\n return response;\r\n}, function (error) {\r\n if (error.response.status === 401) {\r\n logout();\r\n }\r\n return Promise.reject(error);\r\n});\r\n\r\nexport default apiErp;\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Form, Select, notification } from 'antd';\r\n\r\nimport api from '../../services/api';\r\nimport { getEmpresa, getNomeEmpresa, getTelaAnterior, login, setEmpresa, setLocal, setNomeEmpresa, setNomeLocal, setRegimeTributario, setStatusFilial } from '../../services/auth';\r\nimport { selectPaginadoActions } from '../../actions';\r\nimport { useStateValue } from '../../state';\r\nimport { SelectPaginacao } from '../../components';\r\nimport apiErp from '../../services/apiErp';\r\n\r\nexport default function SelecoesEmpresaCat({ veioDaHome = false, exibirModal = false }) {\r\n const [codigoEmpresa, setCodigoEmpresa] = useState(null);\r\n const [codigoLocal, setCodigoLocal] = useState(null);\r\n const [{ manutencao, listaSelectPaginacao }, dispatch] = useStateValue();\r\n\r\n const [formLogin] = Form.useForm();\r\n const acessar = values => {\r\n buscarTela();\r\n };\r\n\r\n useEffect(() => {\r\n if (!!formLogin.getFieldValue()?.emp_id) {\r\n carregarLocais(formLogin.getFieldValue()?.emp_id);\r\n setCodigoEmpresa(formLogin.getFieldValue()?.emp_id);\r\n }\r\n\r\n }, [formLogin.getFieldValue().emp_id]);\r\n\r\n useEffect(() => {\r\n if (!!listaSelectPaginacao?.itens && !veioDaHome) {\r\n validaLocalUnico();\r\n }\r\n }, [listaSelectPaginacao]);\r\n\r\n useEffect(() => {\r\n if (!!codigoLocal) {\r\n carregarDadosEmpresa();\r\n }\r\n }, [codigoLocal]);\r\n\r\n useEffect(() => {\r\n if (!!veioDaHome) {\r\n buscarEmpresaUnica();\r\n }\r\n }, [exibirModal]);\r\n\r\n function buscarEmpresaUnica() {\r\n let lista = [];\r\n let codigo = getEmpresa();\r\n lista.push({ name: \"emp_id\", campo: \"idEmpresa\", value: codigo });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n setCodigoEmpresa(codigo);\r\n }\r\n async function carregarDadosEmpresa() {\r\n let values = {};\r\n values.emp_id = codigoEmpresa;\r\n values.loc_id = codigoLocal;\r\n const listaEmpresa = (await api.get(`Empresa/Buscar/${codigoEmpresa}`)).data;\r\n await api.post('Local/GerarTokenLogin', values).then(res => {\r\n if (res.status === 200) {\r\n login(res.data);\r\n setEmpresa(codigoEmpresa);\r\n setLocal(codigoLocal);\r\n setNomeEmpresa(listaEmpresa.emp_razaosocial);\r\n setRegimeTributario(listaEmpresa.emp_regimetributario);\r\n api.get(`Local/GetLocalById/${codigoLocal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let listaLocal = res.data;\r\n setNomeLocal(listaLocal.loc_descricao);\r\n setStatusFilial(listaLocal.loc_ativo);\r\n buscarTela();\r\n }\r\n }\r\n )\r\n }\r\n }).catch(err => {\r\n if (!!err && !!err.response && !!err.response.data) {\r\n notification.error({ message: err.response.data || 'Falha ao efetuar o login' });\r\n } else {\r\n notification.error({ message: 'Falha ao efetuar o login', description: 'Verifique os dados informados e tente novamente.' });\r\n }\r\n });\r\n }\r\n\r\n function carregarLocais(codEmpresa) {\r\n let lista = [];\r\n lista.push({ name: \"filial\", campo: \"codigoEmpresa\", value: codEmpresa });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n\r\n function buscarTela() {\r\n window.location = \"/catalogo\";\r\n };\r\n\r\n function validaLocalUnico() {\r\n if (listaSelectPaginacao?.itens?.length === 1) {\r\n setCodigoLocal(listaSelectPaginacao?.itens[0].loc_id);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n {\r\n setCodigoEmpresa(value);\r\n }} order=\"emp_razaosocial\"\r\n conteudo={\r\n e => ({e.emp_nomefantasia}
Razao Social: {e.emp_razaosocial}
)\r\n } />\r\n
\r\n \r\n \r\n {formLogin.getFieldValue()?.emp_id && \r\n \r\n \r\n setCodigoLocal(valor)} conteudo={Local => (\r\n {Local.loc_descricao}{!Local.loc_ativo ? ' (INATIVO)' : ''}\r\n )} />\r\n \r\n \r\n }\r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Form, Input, Button, notification } from 'antd';\r\nimport { MailOutlined, ArrowLeftOutlined, SendOutlined } from '@ant-design/icons';\r\nimport api from '../../services/api';\r\n\r\nexport default function EsqueciSenha({ onAcessar, formulario }) {\r\n\r\n\r\n function enviarEmailRecuperarSenha() {\r\n let emailUsuario = formulario.getFieldValue().email;\r\n if (!!emailUsuario) {\r\n api.put(`Usuario/EnviarEmailRecuperarSenha/${emailUsuario}`).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Enviamos um E-mail para você com as instruções para recuperar sua senha!\" })\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({ message: `AVISO!`, description: `Usuário não encontrado!` });\r\n }\r\n )\r\n }\r\n\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Layout, Row, Col, Typography, Form, Input, Checkbox, Button, notification } from 'antd';\r\nimport { UnlockFilled, MailOutlined, SmileOutlined, SendOutlined, DesktopOutlined, EnvironmentOutlined, PhoneOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport { EsqueciSenha, SelecoesEmpresaCat } from \"./pages\";\r\nimport { login, setNomeUsuario, setIdUsuario, setEmailUsuario, getIdUsuario, setTelaAnterior, removerTelaAnt, removerLocal } from '../../services/auth';\r\n\r\nimport { ModulosPage, SlideLogin } from \"../../components\";\r\nimport { encodeBase64, parseToken } from '../../services/funcoes';\r\n\r\nconst FORMULARIO = {\r\n LOGIN: 1,\r\n SELECIONA_EMPRESA: 2,\r\n ESQUECI_SENHA: 3,\r\n}\r\n\r\nexport default function LoginCatalogo() {\r\n\r\n const [formularioExibir, setFormularioExibir] = useState(FORMULARIO.LOGIN);\r\n const [carregando, setCarregando] = useState(false);\r\n const [formulario] = Form.useForm();\r\n\r\n const onFinish = values => {\r\n setCarregando(true);\r\n values.senha = encodeBase64(values.senha);\r\n delete values.remember;\r\n api.post('Login/EfetuarLogin', values).then(res => {\r\n if (res.status === 200) {\r\n const token = res.data;\r\n let dadosUsuario = parseToken(res.data);\r\n setNomeUsuario(dadosUsuario.name);\r\n if (parseInt(getIdUsuario()) !== parseInt(dadosUsuario.UsuarioID)) {\r\n removerTelaAnt()\r\n }\r\n setIdUsuario(dadosUsuario.UsuarioID);\r\n setEmailUsuario(dadosUsuario.email);\r\n login(token);\r\n removerLocal();\r\n setFormularioExibir(FORMULARIO.SELECIONA_EMPRESA);\r\n }\r\n }).catch(err => {\r\n if (!!err) {\r\n if (!!err.response && !!err.response.data) {\r\n notification.error({ message: err.response.data || 'Falha ao efetuar o login' });\r\n } else {\r\n notification.error({ message: 'Falha ao efetuar o login', description: 'Verifique os dados informados e tente novamente.' });\r\n }\r\n } else {\r\n notification.error({ message: 'Falha ao efetuar o login', description: 'Verifique os dados informados e tente novamente.' });\r\n }\r\n }).finally(() => setCarregando(false));\r\n };\r\n\r\n const onFinishFailed = errorInfo => {\r\n console.log('Erro ao efetuar o login:', errorInfo);\r\n };\r\n\r\n useEffect(() => {\r\n //localStorage.removeItem(\"@GestorWeb-Token\");\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Gestor\r\n \r\n \r\n \r\n Identifique abaixo suas credenciais para realizar o acesso.

\r\n
\r\n \r\n \r\n {formularioExibir === FORMULARIO.LOGIN &&\r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Salvar meus dados de login\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {formularioExibir === FORMULARIO.SELECIONA_EMPRESA && }\r\n {formularioExibir === FORMULARIO.ESQUECI_SENHA && setFormularioExibir(FORMULARIO.LOGIN)} />}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n www.gestorweb.com.br | (55) 3535-4900\r\n \r\n \r\n | Três de Maio - RS - 98910-000\r\n \r\n \r\n \r\n \r\n Todos os direitos reservados - Gestor Web ®\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { UserOutlined } from '@ant-design/icons';\r\nimport { Calendar, Col, Row } from 'antd';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\n\r\nimport { getClienteCat, getNomeEmpresa, getNomeLocal, getNomeUsuario } from '../../services/auth';\r\nimport { ModalSelecaoClientesCat } from '../../components/modals';\r\n\r\nexport default function InicialCatalogo() {\r\n const [dataAtual, setDataAtual] = useState(new Date());\r\n const [exibirModal, setExibirModal] = useState(false);\r\n\r\n const onCloseModal = () => {\r\n setExibirModal(false);\r\n }\r\n\r\n useEffect(() => {\r\n verificarCliente();\r\n setInterval(dataCalendar, 1000);\r\n }, []);\r\n\r\n function verificarCliente() {\r\n let cliente = getClienteCat();\r\n if (!!!cliente) {\r\n setExibirModal(true);\r\n }\r\n }\r\n\r\n function dataCalendar() {\r\n setDataAtual(new Date());\r\n };\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dataAtual.getHours() > 12 ? 'Boa tarde!' : dataAtual.getHours() > 18 ? 'Boa Noite!' : ' Bom dia!'}\r\n \r\n \r\n {getNomeUsuario()},\r\n \r\n \r\n você está acessado a empresa:\r\n \r\n \r\n {`${getNomeEmpresa()} / ${getNomeLocal()}`}.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {moment(dataAtual).format('DD')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {moment(dataAtual).format('MMM')}\r\n \r\n \r\n \r\n \r\n {moment(dataAtual).format('YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {moment(dataAtual).format('HH:mm')}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { Button, Col, Collapse, Dropdown, Form, Row } from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { BotaoAbrirChamado, BreadcrumbPage, PesquisaAvancada, PesquisaOrdenacao } from \"../../components\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined } from \"@ant-design/icons\";\r\nexport default function CatAcessosExterno() {\r\n const [formPesquisaAvancada] = Form.useForm();\r\n const [open, setOpen] = useState(false);\r\n\r\n const togglePesquisa = () => {\r\n\r\n }\r\n\r\n function aplicarFiltrosAvancados() {\r\n\r\n }\r\n\r\n function pesquisaAvancada() {\r\n\r\n }\r\n\r\n function limparFiltroPesquisa() {\r\n\r\n }\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {open ? : } Realizar pesquisa avançada\r\n \r\n }>\r\n { pesquisaAvancada(ret) }} funcaoLimpar={() => { limparFiltroPesquisa() }} telaFiltro={1} />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { InfoCircleOutlined, PictureOutlined } from '@ant-design/icons';\r\nimport { Button, Col, Row, Table, Tooltip, notification } from 'antd';\r\nimport { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch';\r\n\r\nimport { linkApiGestor } from '../../services/auth';\r\nimport api from \"../../services/api\";\r\nimport { isObjetoDiffVazio } from '../../services/funcoes';\r\nimport { ModalExibeImagem } from '../../components/modals';\r\nimport ModaDadosPecas from '../../components/modals/modalDadosPeca';\r\n\r\nexport default function ConsultaPecas({ grupoAtual, catalogoExterno }) {\r\n const [listaPecas, setListaPecas] = useState([]);\r\n const [pecaSelecionada, setPecaSelecionada] = useState(null);\r\n const [openImg, setOpenImg] = useState(false);\r\n const [image, setImage] = useState({});\r\n const [imageGrupo, setImageGrupo] = useState({});\r\n \r\n const [opeModalInfo, setOpenModalInfo] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!!grupoAtual && isObjetoDiffVazio(grupoAtual)) {\r\n if(!!catalogoExterno) {\r\n buscarPecasGrupoCatalogo(grupoAtual);\r\n } else {\r\n buscarPecas(grupoAtual);\r\n }\r\n buscarImagemGrupo(grupoAtual);\r\n }\r\n }, [grupoAtual]);\r\n\r\n function buscarPecas(grupo) {\r\n api.get(`Cat007/BuscarPecasGrupo?Empresa=1&CodCatalogo=${grupo.codcatalogo}&CodGrupo=${grupo.codigo}`).then(\r\n res => {\r\n if (res.data) {\r\n setListaPecas(res.data);\r\n }\r\n }\r\n ).catch(\r\n err => {\r\n console.log(err);\r\n }\r\n )\r\n }\r\n\r\n function buscarPecasGrupoCatalogo(grupo) {\r\n api.get(`Cat002/ListaPecasGrupoCatalogo?Empresa=1&CodCatalogo=${grupo.codcatalogo}&CodGrupo=${grupo.codigo}`).then(\r\n res => {\r\n if (res.data) {\r\n setListaPecas(res.data);\r\n }\r\n }\r\n ).catch(\r\n err => {\r\n console.log(err);\r\n }\r\n )\r\n }\r\n\r\n function buscarImagemGrupo(grupoAtual)\r\n {\r\n api.get(`${linkApiGestor}Cat004/BuscarImg?Empresa=1&CodGrupo=${grupoAtual.codigo}&CodCatalogo=${grupoAtual.codcatalogo}`).then(res => {\r\n if(res.status === 200) {\r\n let dados = res.data.map((x) => ({ ...x}))\r\n if(dados.length > 0){\r\n const objeto = {...dados[0]};\r\n setImageGrupo(objeto);\r\n }\r\n else {\r\n setImageGrupo('');\r\n }\r\n }\r\n }, err => {\r\n notification.warning({ message: 'Aviso', description: 'Ausência de Imagem para a Peça Selecionada!' });\r\n console.log(err.response);\r\n\r\n });\r\n }\r\n\r\n function buscarImagemPeca(codpeca, descpeca) {\r\n api.get(`${linkApiGestor}Cat007/BuscarImgPeca?Empresa=1&CodPeca=${codpeca}&Numero=0`).then(res => {\r\n if(res.status === 200) {\r\n let dados = res.data.map((x) => ({ ...x}))\r\n if(dados.length > 0){\r\n const objeto = {...dados[0]};\r\n objeto.codpeca = codpeca;\r\n objeto.descpeca = descpeca;\r\n setImage(objeto);\r\n setOpenImg(true);\r\n }\r\n else {\r\n setImage('');\r\n }\r\n }\r\n }, err => {\r\n notification.warning({ message: 'Aviso', description: 'Ausência de Imagem para a Peça Selecionada!' });\r\n console.log(err.response);\r\n\r\n });\r\n }\r\n\r\n function buscarImagemMongo(codPeca, descpeca)\r\n {\r\n \r\n api.get(`${linkApiGestor}UploadImagens/GetImgMongo?filename=${codPeca}`).then(res => {\r\n debugger\r\n if (res.status === 200){\r\n let dados = res.data.map((x) => ({...x}))\r\n if (dados.length > 0){\r\n const objeto = {...dados[0]};\r\n objeto.codPeca = codPeca;\r\n objeto.descPeca = descpeca;\r\n setImage(objeto);\r\n setOpenImg(true);\r\n }\r\n }\r\n else {\r\n setImage({});\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Grupo: {grupoAtual.codigo} - {grupoAtual.descricao}\r\n
\r\n
(\r\n
\r\n {codpeca}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n width: 420,\r\n render: ({ descpeca }) => (\r\n {descpeca}\r\n ),\r\n },\r\n {\r\n title: 'Item',\r\n width: 60,\r\n render: ({ numeropeca }) => (\r\n
\r\n {numeropeca}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde',\r\n width: 60,\r\n render: ({ quantidade }) => (\r\n
\r\n {quantidade}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Obs',\r\n ellipsis: {\r\n showTitle: false,\r\n },\r\n render: ({ observacoes }) => (\r\n \r\n {observacoes}\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n fixed: 'right',\r\n width: 30,\r\n render: ({ codpeca, descpeca }) => (\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n fixed: 'right',\r\n width: 30,\r\n render: ({ codpeca }) => (\r\n \r\n ),\r\n },\r\n ]\r\n } dataSource={listaPecas} pagination={false}\r\n footer={() => Total de Peças: {listaPecas.length}}\r\n rowClassName={(record, index) => record.codpeca === grupoAtual.codpeca ? 'blue' : record.produzido === 1 ? 'green' : record.controle === 1 ? 'yellow' : ''}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \"grupo\"\r\n \r\n \r\n
\r\n
\r\n \r\n { setOpenModalInfo(false); }} />\r\n { setOpenImg(false); }} />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Button, Col, Drawer, Row, Table, Tooltip } from 'antd';\r\nimport { CloseOutlined, InfoCircleOutlined, LeftCircleOutlined, PictureOutlined, RightCircleOutlined } from '@ant-design/icons';\r\n\r\n\r\nimport ConsultaPecas from './consultaPecas';\r\nimport { useStateValue } from '../../state';\r\nimport api from '../../services/api';\r\nimport { isObjetoDiffVazio } from '../../services/funcoes';\r\n\r\n\r\nexport default function DrawerConsulta({ exibirDrawer, onCloseDrawer, catalogoExterno}) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [grupoAtual, setGrupoAtual] = useState({});\r\n const [disabledAnt, setDisabledAnt] = useState(false);\r\n const [disabledPro, setDisabledPro] = useState(false);\r\n const [exibir, setExibir] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && exibirDrawer) {\r\n let dados = { ...manutencao.dados };\r\n //setGrupoAtual(dados);\r\n buscarGrupo(dados.codgrupo, dados.codcatalogo, dados.codpeca);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (isObjetoDiffVazio(grupoAtual)) {\r\n validarGrupo();\r\n }\r\n }, [grupoAtual]);\r\n\r\n const onClose = () => {\r\n onCloseDrawer();\r\n setExibir(false);\r\n };\r\n\r\n function onProximo() {\r\n let codProximo = grupoAtual.proximo;\r\n let codCatalogo = grupoAtual.codcatalogo;\r\n buscarGrupo(codProximo, codCatalogo);\r\n }\r\n\r\n function onAnterior() {\r\n let codAnterior = grupoAtual.anterior;\r\n let codCatalogo = grupoAtual.codcatalogo;\r\n buscarGrupo(codAnterior, codCatalogo);\r\n }\r\n\r\n function validarGrupo() {\r\n if (!!!grupoAtual.proximo) {\r\n setDisabledPro(true);\r\n } else {\r\n setDisabledAnt(false);\r\n }\r\n if (!!!grupoAtual.anterior) {\r\n setDisabledAnt(true);\r\n } else {\r\n setDisabledAnt(false);\r\n }\r\n }\r\n\r\n function buscarGrupo(codGrupo, codCatalogo, codPeca) {\r\n api.get(`Cat004/BuscarGrupoAntProx?codGrupo=${codGrupo}&codCatalogo=${codCatalogo}`).then(\r\n res => {\r\n let grupos = { ...res.data };\r\n if (!!codPeca) {\r\n grupos.codpeca = codPeca;\r\n }\r\n setGrupoAtual(grupos);\r\n setExibir(true)\r\n }\r\n ).catch(ex => console.log(ex));\r\n }\r\n\r\n return (\r\n Catálogo: {grupoAtual?.desccatalogo} } id=\"GruposCatalogo\"\r\n width=\"90%\"\r\n visible={exibir}\r\n onClose={onClose}\r\n extra={\r\n }\r\n footer={\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { CloseOutlined, FileImageOutlined, FileSearchOutlined } from '@ant-design/icons';\r\nimport { Button, Col, Drawer, Image, Radio, Row, Space, Table, notification } from 'antd';\r\nimport { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch';\r\nimport api from '../../services/api';\r\nimport { linkApiGestor } from '../../services/auth';\r\nimport DrawerConsulta from '../catPecasExterno/drawerConsulta';\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { useStateValue } from '../../state';\r\n\r\n\r\n\r\nexport default function DrawerGrupo( { codCatalogo, codLinha, exibirDrawer, fecharDrawer, nomeCatalogo, nomeLinha } ) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [listaGrupo, setListaGrupo] = useState([]);\r\n const [valueGrupo, setValueGrupo] = useState(0);\r\n const [valueSubGrupo, setValueSubGrupo] = useState('');\r\n const [foto, setFoto] = useState(false);\r\n const [imageGrupo, setImageGrupo] = useState({});\r\n const [listaSubGrupo, setListaSubGrupo] = useState([]);\r\n const [rowSelectionn, setRowSelectionn] = useState([]);\r\n const [rowSelectionnGrup, setRowSelectionnGrup] = useState([]);\r\n const [openDrawer, setOpenDrawer] = useState(false);\r\n\r\n useEffect(() => \r\n {\r\n if(codCatalogo != \"\")\r\n {\r\n carregaSubGrupos();\r\n }\r\n }, [codCatalogo]);\r\n\r\n useEffect(() => \r\n {\r\n if(codCatalogo != \"\" && valueGrupo > 0)\r\n {\r\n setListaGrupo([]);\r\n carregaGrupos();\r\n }\r\n }, [valueGrupo]);\r\n\r\n function carregaSubGrupos() {\r\n api.get(`Cat006/getSubGrupos?empresa=1&codCatalogo=${codCatalogo}`).then(res => {\r\n if(res.status === 200) {\r\n let dados = res.data.map((x) => ({ key: x.codSubGrupo, ...x}))\r\n setListaSubGrupo(dados);\r\n if(dados.length > 0){\r\n setValueGrupo(dados[0].numSubGrupo);\r\n setRowSelectionn(dados[0].codSubGrupo);\r\n }\r\n }\r\n }, err => {\r\n console.log(err.response);\r\n\r\n });\r\n }\r\n \r\n function carregaGrupos() {\r\n api.get(`Cat004/getGrupos?empresa=1&numGrupo=${valueGrupo}`).then(res => {\r\n if(res.status === 200) {\r\n let dados = res.data.map((x) => ({ key: x.codGrupo, ...x}))\r\n setListaGrupo(dados);\r\n if(dados.length > 0){\r\n setRowSelectionnGrup(dados[0].codGrupo);\r\n }\r\n buscarImagemGrupo(dados[0].codGrupo);\r\n }\r\n }, err => {\r\n console.log(err.response);\r\n\r\n });\r\n }\r\n \r\n function buscarImagemGrupo(rowSelectionnGrup)\r\n {\r\n api.get(`${linkApiGestor}Cat004/BuscarImg?Empresa=1&CodGrupo=${rowSelectionnGrup}&CodCatalogo=${codCatalogo}`).then(res => {\r\n if(res.status === 200) {\r\n let dados = res.data.map((x) => ({ ...x}))\r\n if(dados.length > 0){\r\n const objeto = {...dados[0]};\r\n setImageGrupo(objeto);\r\n setFoto(true);\r\n }\r\n else {\r\n setImageGrupo('');\r\n }\r\n }\r\n }, err => {\r\n notification.warning({ message: 'Aviso', description: 'Ausência de Imagem para a Peça Selecionada!' });\r\n console.log(err.response);\r\n\r\n });\r\n }\r\n\r\n const rowSelection = {\r\n type: \"radio\",\r\n selectedRowKeys: [rowSelectionn],\r\n onSelect: (record) => {\r\n funcoesAoSelecionar(record); \r\n }\r\n }\r\n\r\n const rowSelectionGrup= {\r\n type: \"radio\",\r\n selectedRowKeys: [rowSelectionnGrup],\r\n onSelect: (record) => {\r\n funcoesAoSelecionarGrup(record); \r\n }\r\n }\r\n\r\n function funcoesAoSelecionar (record) {\r\n setValueGrupo(record.numSubGrupo);\r\n setRowSelectionn(record.codSubGrupo)\r\n }\r\n \r\n function funcoesAoSelecionarGrup (record) {\r\n setValueSubGrupo(record.numGrupo);\r\n setRowSelectionnGrup(record.codGrupo);\r\n }\r\n\r\n const onCloseDrawer = () => {\r\n setOpenDrawer(false);\r\n };\r\n\r\n const onClose = () => {\r\n setFoto('');\r\n fecharDrawer();\r\n setListaGrupo([]);\r\n setListaSubGrupo([]);\r\n setValueGrupo(0);\r\n };\r\n \r\n return (\r\n Linha: {codLinha} - {nomeLinha} Catálogo: {codCatalogo} - {nomeCatalogo} } \r\n width=\"100%\" visible={exibirDrawer} onClose={onClose} extra={\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n
\r\n
(\r\n
\r\n {codSubGrupo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição do SubGrupo',\r\n fixed: 'left',\r\n render: ({descricao}) => (\r\n
\r\n {descricao}\r\n
\r\n ),\r\n },\r\n ]\r\n }\r\n rowSelection={rowSelection}\r\n pagination={false}\r\n scroll={{ y: window.innerHeight }}\r\n dataSource={listaSubGrupo}\r\n />\r\n \r\n \r\n {!!foto &&\r\n \r\n \r\n \r\n \"catalogo\" \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n
(\r\n
\r\n {codGrupo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição do Grupo',\r\n fixed: 'left',\r\n render: ({descGrupo}) => (\r\n
\r\n {descGrupo}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n align: 'left',\r\n width: 130,\r\n render: ({ codGrupo, descGrupo }) => (\r\n \r\n ),\r\n },\r\n ]\r\n }\r\n pagination={false}\r\n rowSelection={rowSelectionGrup}\r\n scroll={{ y: window.innerHeight }}\r\n dataSource={listaGrupo}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { Col, Form, Row, Select } from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { BotaoAbrirChamado, BreadcrumbPage, FiltroSearch, TabelaDados } from \"../../components\";\r\nimport { GroupOutlined} from \"@ant-design/icons\";\r\nimport { useStateValue } from \"../../state\";\r\nimport api from \"../../services/api\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport DrawerGrupo from \"./listaGrupoSubgrupo\";\r\n\r\nexport default function CatalogosExterno() {\r\n const [formPesquisaAvancada] = Form.useForm();\r\n const [open, setOpen] = useState(false);\r\n const [codCatalago,setCodCatalago] = useState(\"\");\r\n const [nomeCatalago,setNomeCatalago] = useState(\"\");\r\n const [codLinha,setCodLinha] = useState(\"\");\r\n const [nomeLinha,setNomeLinha] = useState(\"\");\r\n const [openGrupo, setOpenGrupo] = useState(false);\r\n const [listaLinha, setListaLista] = useState([]);\r\n const [linhaSelecionada, setLinhaSelecionada] = useState(0);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n function handleChange(value) {\r\n setLinhaSelecionada(value)\r\n }\r\n \r\n const showDrawer = () => {\r\n setOpenGrupo(true);\r\n }\r\n\r\n const closeDrawer = () => {\r\n setOpenGrupo(false);\r\n setCodCatalago(\"\");\r\n }\r\n\r\n useEffect(() => {\r\n if(linhaSelecionada !== \"\") {\r\n carregaCatalogos();\r\n }\r\n },[linhaSelecionada]);\r\n\r\n function carregaCatalogos()\r\n {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&empresa=1&codLinha=${linhaSelecionada}` } });\r\n }\r\n\r\n useEffect(() => carregaLinha(),[]);\r\n\r\n function carregaLinha()\r\n {\r\n api.get(`Cat005/GetAll?empresa=1`).then(res => {\r\n if (res.status === 200) {\r\n setListaLista(res.data.map((x) => ({ key: x.key, ...x })));\r\n }\r\n }, err => {\r\n console.log(err.response);\r\n });\r\n }\r\n\r\n function aplicarFiltrosAvancados(){}\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n {codigo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n fixed: 'left',\r\n render: ({ descricao }) => (\r\n
\r\n {descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Catálogo',\r\n fixed: 'left',\r\n width: 100,\r\n render: ({ codcatalogo }) => (\r\n
\r\n {codcatalogo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição Catálogo',\r\n fixed: 'left',\r\n ellipsis: {\r\n showTitle: false,\r\n },\r\n render: ({ desccatalogo }) => (\r\n \r\n {desccatalogo}\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n align: 'left',\r\n width: 130,\r\n render: ({ codcatalogo, codigo, descricao, desccatalogo, codpeca }) => (\r\n \r\n ),\r\n },\r\n ]}\r\n dataSource={listaGrupo}\r\n pagination={false}\r\n\r\n />\r\n }\r\n \r\n setOpenModal(false)} />\r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Tag, Divider, Button, Table, notification } from \"antd\";\r\nimport api from \"../../services/api\";\r\nimport { CheckOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\nimport apiWeb from \"../../services/apiWeb\";\r\n\r\n\r\nexport default function TabPermissoes({ formulario }) {\r\n const [load, setLoad] = useState(false);\r\n const [listPermissoes, setListPermissoes] = useState([]);\r\n const [pagina, setPagina] = useState(1);\r\n const [nroRegistros, setNroRegistros] = useState(10);\r\n const [ordem, setOrdem] = useState('loc_id');\r\n\r\n useEffect(() => { loadPermissoes() }, [pagina, nroRegistros]);\r\n\r\n async function loadPermissoes() {\r\n setLoad(true);\r\n var _listaPermissoesPagina = await apiWeb.get(`PermissaoUsuario/ListarPermisoesPaginasModulo?modulo=3`);\r\n if (_listaPermissoesPagina.status === 200) {\r\n const list = _listaPermissoesPagina.data;\r\n let userId = formulario.getFieldValue('usu_id');\r\n if (userId) {\r\n try {\r\n var _listarPersmissoesMongo = await apiWeb.get(`PermissaoUsuario/Listar?idUser=${userId}`);\r\n if (_listarPersmissoesMongo.status === 200) {\r\n let dataAcess = _listarPersmissoesMongo.data;\r\n for (let i in list) {\r\n let idx = dataAcess.findIndex(x => x.pru_nome === list[i].pagina);\r\n if (idx > -1) {\r\n let obj = JSON.parse(dataAcess[idx].pru_permissoes);\r\n let { api, sistema } = obj[0];\r\n var permissoes = list[i].permissoes;\r\n let acessoModulo = false;\r\n if (typeof api != \"undefined\" && sistema != \"undefined\") {\r\n var permissoesApi = api[0].metodos;\r\n permissoes.forEach(e => {\r\n var indexMetodo = permissoesApi.findIndex(pm => pm.nome == e.metodo);\r\n e.acesso = permissoesApi[indexMetodo].acesso;\r\n if (!acessoModulo) acessoModulo = permissoesApi[indexMetodo].acesso ? true : false;\r\n });\r\n } else {\r\n var acessoPermissoesMongo = obj;\r\n permissoes.forEach(e => {\r\n var indexMetodo = acessoPermissoesMongo.findIndex(pm => pm.metodo == e.metodo);\r\n e.acesso = acessoPermissoesMongo[indexMetodo].acesso;\r\n if (!acessoModulo) acessoModulo = acessoPermissoesMongo[indexMetodo].acesso ? true : false;\r\n });\r\n }\r\n if (acessoModulo) {\r\n list[i].acesso = true\r\n }\r\n }\r\n }\r\n setListPermissoes(list.map((x, idx) => ({ key: idx, ...x })));\r\n }\r\n } catch (error) {\r\n const array = list.map((x, idx) => ({ key: idx, ...x }));\r\n setListPermissoes(array);\r\n setLoad(false)\r\n }\r\n } else {\r\n const array = list.map((x, idx) => ({ key: idx, ...x }));\r\n setListPermissoes(array);\r\n }\r\n }\r\n setLoad(false)\r\n }\r\n\r\n const handleChangeBloqueioPagina = (key, metodo = null) => {\r\n let array = [...listPermissoes];\r\n let index = array.findIndex(x => x.key == key);\r\n if (index > -1) {\r\n if (metodo != null) {\r\n let idx = array[index].permissoes.findIndex(x => x.metodo == metodo);\r\n if (idx > -1)\r\n array[index].permissoes[idx].acesso = !array[index].permissoes[idx].acesso;\r\n }\r\n else {\r\n array[index].acesso = !array[index].acesso;\r\n for (let y in array[index].permissoes)\r\n array[index].permissoes[y].acesso = array[index].acesso;\r\n }\r\n setListPermissoes(array);\r\n formulario.setFieldsValue({ listaPermissoesPaginas: array });\r\n }\r\n }\r\n\r\n const handleChangeBloqueioAll = (option, list = null) => {\r\n\r\n let array = (list != null) ? list : [...listPermissoes];\r\n for (let i in array) {\r\n array[i].acesso = option;\r\n for (let y in array[i].permissoes) {\r\n array[i].permissoes[y].acesso = option;\r\n }\r\n }\r\n setListPermissoes(array);\r\n formulario.setFieldsValue({ listaPermissoesPaginas: array });\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n
\r\n handleChangeBloqueioPagina(record.key)}\r\n >\r\n {(!!acesso) ? 'Liberado' : 'Bloqueado'}\r\n \r\n \r\n \r\n {pagina}\r\n \r\n \r\n {acesso &&\r\n
\r\n \r\n \r\n {permissoes.map((item, idx) =>\r\n
\r\n \r\n \r\n {item.metodo}\r\n \r\n \r\n handleChangeBloqueioPagina(record.key, item.metodo)}>\r\n {(item.acesso) ? 'Sim' : 'Não'}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n }\r\n \r\n ),\r\n },\r\n ]}\r\n dataSource={listPermissoes} scroll={{ x: 900 }}\r\n />\r\n \r\n )\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { FormGW } from \"../../components\";\r\nimport { Checkbox, Col, Form, Input, Row, Tabs, Upload, notification } from \"antd\";\r\nimport ImgCrop from \"antd-img-crop\";\r\nimport apiWeb from \"../../services/apiWeb\";\r\nimport { getBase64 } from \"../../services/funcoes\";\r\nimport { LoadingOutlined, PlusOutlined } from \"@ant-design/icons\";\r\nimport api from \"../../services/api\";\r\nimport TabPermissoes from \"./tabPermissoes\";\r\n\r\nexport default function ManutencaoUsuarioCat({ formulario, carregando, aoSalvar }) {\r\n const [loading, setLoading] = useState(false);\r\n const [imageUrl, setImageUrl] = useState(null);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [userId, setUserId] = useState(null);\r\n const [fileList, setFileList] = useState([]);\r\n const [array, setArray] = useState([]);\r\n const [emailAtual, setEmailAtual] = useState(formulario.getFieldValue('usu_email'));\r\n\r\n const salvarManutencao = async (values) => {\r\n carregando(true);\r\n values.usu_sac = false;\r\n values.usu_suporte = false;\r\n if (!values.listaPermissoesPaginas && !values.usu_id) {\r\n values.listaPermissoesPaginas = array;\r\n }\r\n if (values.usu_senha == \"\" || values.usu_confirmaSenha == \"\" || values.usu_senha != values.usu_confirmaSenha) {\r\n delete values.usu_senha;\r\n delete values.usu_confirmaSenha;\r\n }\r\n\r\n if ((imageUrl != null) && (fileList != '')) {\r\n values.avatar = { data: imageUrl, type: fileList[0].type };\r\n } else {\r\n delete values.usu_avatar;\r\n }\r\n let res;\r\n try {\r\n if (values.usu_id) {\r\n res = await apiWeb.put(\"Usuario/EditarCatalogo\", values)\r\n } else {\r\n res = await apiWeb.post(\"Usuario/IncluirCatalogo\", values);\r\n }\r\n notification.success({ message: 'Operação concluída', description: `Os dados do Usuário foram ${values.usu_id ? \"Alterados\" : \"salvos\"} com sucesso, um e-mail foi enviado para a definição de senha!` });\r\n formulario.resetFields();\r\n carregando(false);\r\n aoSalvar();\r\n } catch (ex) {\r\n carregando(false);\r\n console.log(ex)\r\n }\r\n }\r\n\r\n const beforeUpload = async (file) => {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n if (!isJpgOrPng) {\r\n notification.error('Você só pode fazer upload de arquivos JPG/PNG!');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n notification.error('A imagem deve ter menos de 2 MB!');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n }\r\n\r\n const handleChange = (info) => {\r\n if (info.file.status === 'uploading') {\r\n setLoading(true);\r\n }\r\n if (info.file.status !== 'removed') {\r\n getBase64(info.file.originFileObj, (base64) => {\r\n setLoading(false);\r\n setImageUrl(base64);\r\n });\r\n }\r\n if (info.file.status === 'removed')\r\n setImageUrl(null);\r\n\r\n setFileList(info.fileList);\r\n };\r\n\r\n const uploadButton = (\r\n
\r\n {loading ? : }\r\n
\r\n {loading ? 'Carregando...' : 'Selecionar Imagem'}\r\n
\r\n
\r\n );\r\n\r\n const onBlurVerificaEmail = async () => {\r\n let usuario;\r\n setEmailAtual(formulario.getFieldValue('usuEmail'));\r\n let emailNovo = formulario.getFieldValue('usu_email');\r\n let idUsuario = formulario.getFieldValue('usu_id');\r\n try {\r\n if (typeof idUsuario != 'undefined' & idUsuario != 0) usuario = `&idUsuario=${idUsuario}`;\r\n var result = await apiWeb.get(`Usuario/ValidarEmailEmpresa?email=${emailNovo}`);\r\n if (result.status == 200) {\r\n if (result.data) {\r\n formulario.setFieldsValue(result.data)\r\n carregarAvatar();\r\n }\r\n }\r\n } catch (err) {\r\n console.log('err :>> ', err);\r\n };\r\n }\r\n\r\n const carregarAvatar = async () => {\r\n if (!!formulario.getFieldValue('usu_email')) {\r\n await apiWeb.get(`Usuario/Avatar?email=${formulario.getFieldValue('usu_email')}`).then(\r\n res => {\r\n if (res.data.length > 100) {\r\n var caminho_avatar = `data:image/png;base64,${res.data}`;\r\n setImageComponent(caminho_avatar);\r\n setImageUrl(caminho_avatar);\r\n } else {\r\n let img = [\r\n {\r\n uid: res.data,\r\n name: 'image.png',\r\n status: 'done'\r\n },\r\n ];\r\n\r\n setFileList(img);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro)\r\n }\r\n )\r\n }\r\n };\r\n\r\n const setImageComponent = (img_avatar) => {\r\n if (formulario.getFieldValue('usu_id')) {\r\n setUserId(formulario.getFieldValue('usu_id'));\r\n let img = [\r\n {\r\n uid: '-1',\r\n name: 'image.png',\r\n status: 'done',\r\n url: img_avatar,\r\n },\r\n ];\r\n\r\n setFileList(img);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n carregarAvatar();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n setImageUrl(null)}\r\n maxCount={1}\r\n >\r\n {fileList.length == 0 && uploadButton}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {userId != null &&\r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value)\r\n return Promise.resolve();\r\n\r\n const regexNumber = /[0-9]/;\r\n const regexLetrasMaiuscula = /[A-Z]/;\r\n const regexLetrasMinuscula = /[a-z]/;\r\n\r\n if (regexNumber.test(value) === false) {\r\n return Promise.reject(new Error('A senha deve conter números!'));\r\n } else if (regexLetrasMaiuscula.test(value) === false) {\r\n return Promise.reject(new Error('A senha deve conter letras maiúsculas!'));\r\n } else if (regexLetrasMinuscula.test(value) === false) {\r\n return Promise.reject(new Error('A senha deve conter letras minúscula!'));\r\n } else if (value.length < 6) {\r\n return Promise.reject(new Error('A senha deve conter no mínimo 6 caracteres!'));\r\n } else if ((value == \" \") || (value == \"\")) {\r\n return Promise.reject(new Error('A senha não pode ser vazia'));\r\n }\r\n else\r\n return Promise.resolve();\r\n },\r\n }),\r\n ]}\r\n label=\"Nova Senha\"\r\n name=\"usu_senha\">\r\n \r\n \r\n \r\n \r\n ({\r\n required: getFieldValue('usu_confirmaSenha'),\r\n message: 'Informe a confirmação de sua senha!',\r\n }),\r\n ({ getFieldValue }) => ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('usu_senha') === value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('As senhas informadas não conferem!'));\r\n },\r\n\r\n })\r\n ]}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Este usuário irá possuir privilégios de administrador no sistema?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport ManutencaoUsuarioCat from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { Button, Col, Drawer, Form, Modal, Row } from 'antd';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\nimport { CloseOutlined, ExclamationCircleOutlined, MinusOutlined, SaveOutlined } from '@ant-design/icons';\r\n\r\nexport default function DrawerUsuarioCatalogo({ atualizarTabela }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [formUsuario] = Form.useForm();\r\n\r\n if (manutencao.dados !== null) {\r\n formUsuario.setFieldsValue(manutencao.dados, { usu_sac: false, usu_suporte: false });\r\n }\r\n else {\r\n formUsuario.setFieldsValue({ usu_ativo: false, usu_usuariopdv: false, usu_admin: false, usu_sac: false, usu_suporte: false, listaFiliais: [] });\r\n }\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function fecharDrawer() {\r\n formUsuario.resetFields();\r\n\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n atualizarTabela();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n });\r\n };\r\n\r\n return (\r\n { fecharDrawer() }}\r\n closeIcon={}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { Col, Form, Input, Modal, Popover, Row, Table, Tag, notification } from \"antd\";\r\nimport { BotaoAbrirChamado, BreadcrumbIncluirDados, BreadcrumbPage, Editar, Excluir, PesquisaOrdenacao, TabelaDados } from \"../../components\";\r\nimport moment from \"moment\";\r\nimport apiWeb from \"../../services/apiWeb\";\r\nimport DrawerUsuarioCatalogo from \"./drawer\";\r\nimport { DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\n\r\nexport default function UsuarioCatalogo() {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaUsuarios, setListaUsuarios] = useState([]);\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o usuário: ${dados.usu_nome}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n }\r\n\r\n const modalInativarRegistro = (dados) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Não foi possível excluir usuário ${dados.usu_nome}. Deseja inativar este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n buscarUsuarios();\r\n }, []);\r\n\r\n function buscarUsuarios(filtro = \"\") {\r\n apiWeb.get(`Usuario/ListarUsuarioCatalogo?filtro=${filtro}`).then(\r\n res => {\r\n setListaUsuarios(res.data);\r\n }\r\n ).catch(err => {\r\n console.log(err);\r\n })\r\n }\r\n\r\n function carregarDados(dados) {\r\n dados.usuEmail = dados.usu_email;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n\r\n function excluirRegistro(dados) {\r\n apiWeb.delete(`Usuario/Excluir/${dados.usu_id}`).then((res) => {\r\n if (res.data == false) {\r\n modalInativarRegistro(dados);\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n ).catch((err) => {\r\n console.error(err);\r\n modalInativarRegistro(dados);\r\n }\r\n ).finally(\r\n () => {\r\n buscarUsuarios();\r\n }\r\n );\r\n }\r\n\r\n function inativarRegistro(dados) {\r\n apiWeb.put(`Usuario/Inativar/${dados.usu_id}`).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Usuario(a) inativado(a) com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n buscarUsuarios();\r\n }\r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n buscarUsuarios(filtro)} />\r\n \r\n \r\n
\r\n
(\r\n \r\n \r\n {usu_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Usuário',\r\n render: ({ usu_nome }) => (\r\n
\r\n {usu_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'E-mail',\r\n render: ({ usu_email }) => (\r\n
\r\n {usu_email}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Inclusão',\r\n render: ({ usu_datainclusao }) => (\r\n
\r\n {(usu_datainclusao ? moment(usu_datainclusao).format(\"DD/MM/YYYY\") : '')}\r\n
\r\n ),\r\n },\r\n\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n carregarDados(record)} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluir(dados)} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} dataSource={listaUsuarios} />\r\n \r\n \r\n );\r\n}\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Col, Descriptions, Divider, Row, Steps, Table, Typography } from \"antd\";\r\nimport formatNumber from \"../../ValueObjects/formatNumber\";\r\nimport { Description } from \"@material-ui/icons\";\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function InfosCotacao({ formulario, dadosPedidos }) {\r\n const [listaItens, setListaItens] = useState([]);\r\n const [tipoCobranca, setTipoCobranca] = useState({});\r\n const [condicaoPagamento, setCondicaoPagamento] = useState({});\r\n useEffect(() => {\r\n if (!!dadosPedidos) {\r\n buscarItens(dadosPedidos.numero);\r\n buscarTipo(dadosPedidos.codTipoCobranca);\r\n buscarCondicao(dadosPedidos.codCondicaoPag);\r\n }\r\n }, [dadosPedidos]);\r\n\r\n function buscarItens(numeroPedido) {\r\n api.get(`PedidoItem/Buscar?NumeroPedido=${numeroPedido}`).then(\r\n res => {\r\n setListaItens(res.data);\r\n }\r\n ).catch(\r\n err => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n function buscarTipo(codigo) {\r\n api.get(`TipoCobranca/BuscarUm?Codigo=${codigo}`).then(\r\n (res) => {\r\n setTipoCobranca(res.data);\r\n }\r\n ).catch(\r\n err => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n function buscarCondicao(codigo) {\r\n api.get(`CondicaoPagamento/Buscar?Codigo=${codigo}`).then(\r\n (res) => {\r\n setCondicaoPagamento(res.data[0]);\r\n }\r\n ).catch(\r\n err => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n return (<>\r\n \r\n \r\n \r\n {dadosPedidos?.nomeCliente}\r\n \r\n \r\n {dadosPedidos?.cnpjCliente}\r\n \r\n \r\n {dadosPedidos?.enderecoCliente}\r\n \r\n \r\n {dadosPedidos?.cidadeCliente}\r\n \r\n \r\n {dadosPedidos?.cepCliente}\r\n \r\n \r\n {dadosPedidos?.ufCliente}\r\n \r\n \r\n \r\n \r\n {tipoCobranca?.descricao}\r\n \r\n \r\n {condicaoPagamento?.descricao}\r\n \r\n \r\n \r\n Itens da Cotação\r\n \r\n \r\n
(\r\n
\r\n {codProduto}\r\n
\r\n ),\r\n }, {\r\n title: 'Descrição',\r\n render: ({ produto }) => (\r\n
\r\n {produto?.descricao}\r\n
\r\n ),\r\n }, {\r\n title: 'Quantidade',\r\n render: ({ quantidade }) => (\r\n
\r\n {quantidade}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Unitário',\r\n render: ({ valorUnitario }) => (\r\n
\r\n {formatNumber(valorUnitario, true, true, 3)}\r\n
\r\n ),\r\n }, {\r\n title: 'Valor Total',\r\n render: ({ quantidade, valorUnitario }) => (\r\n
\r\n {formatNumber(valorUnitario * quantidade, true, true, 3)}\r\n
\r\n ),\r\n }\r\n ]} />\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Drawer, Form } from \"antd\";\r\nimport InfosCotacao from './infosPedido';\r\n\r\nexport default function DrawerCotacaoCat({ openDrawer, setOpenDrawer, dados }) {\r\n const [form] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function onClose() {\r\n setOpenDrawer(false);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { BotaoAbrirChamado, BreadcrumbIncluirDados, BreadcrumbPage, TabelaDados } from \"../../components\";\r\nimport { Button, Col, Dropdown, Menu, Row, Table } from \"antd\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport moment from \"moment\";\r\nimport { EyeOutlined, PrinterOutlined } from \"@ant-design/icons\";\r\nimport { getClienteCat } from \"../../services/auth\";\r\nimport DrawerCotacaoCat from \"./drawer\";\r\n\r\nexport default function CotacaoCatalogo() {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openDrawer, setOpenDrawer] = useState(false);\r\n const [dadosPedido, setDadosPedido] = useState({});\r\n\r\n useState(\r\n () => {\r\n let filtro = \"\";\r\n let cliente = getClienteCat();\r\n if (cliente != null) {\r\n filtro = `&Cliente=${cliente}`;\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-DataEmissao', outrosFiltros: filtro } });\r\n }, []\r\n );\r\n\r\n function menuTableOutros(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function visualizar(record) {\r\n setOpenDrawer(true);\r\n setDadosPedido(record);\r\n };\r\n\r\n function imprimir(record) {\r\n\r\n };\r\n\r\n return (\r\n //inicial\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n {numero}\r\n )\r\n },\r\n {\r\n title: \"Cliente\",\r\n width: 250,\r\n render: ({ nomeCliente }) => (\r\n {nomeCliente}\r\n )\r\n },\r\n {\r\n title: \"Data\",\r\n width: 150,\r\n render: ({ dataEmissao }) => (\r\n {moment(dataEmissao).format('DD/MM/YYYY')}\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Grupos\r\n \r\n Adicione o(s) grupo(s) do Catálogo aqui. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n {Codigo}\r\n ),\r\n }, {\r\n title: \"Descrição\",\r\n align: \"center\",\r\n render: ({ Descricao }) => (\r\n {Descricao}\r\n ),\r\n }, {\r\n title: \"Sequencia\",\r\n align: \"center\",\r\n render: ({ Sequencia }) => (\r\n {Sequencia}\r\n ),\r\n }, {\r\n title: \"Sub-Grupo\",\r\n align: \"center\",\r\n render: ({ SubGrupo }) => (\r\n {SubGrupo.Codigo}\r\n ),\r\n }, {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n ]} />\r\n \r\n \r\n \r\n )\r\n}","import { Button, Col, Form, Row, Modal, notification } from 'antd';\r\nimport React, { useState } from 'react';\r\nimport ManutencaoCatalogo from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { CloseOutlined, ExclamationCircleOutlined, SaveOutlined } from '@ant-design/icons';\r\nimport { drawerActions } from '../../actions';\r\nimport api from '../../services/api';\r\n\r\nexport default function DrawerCadastroCatalogo() {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [listaGrupos, setListaGrupos] = useState([]);\r\n const [form] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const aoSalvar = () => {\r\n let catalogoTemp = form.getFieldsValue();\r\n catalogoTemp.Empresa = 1;\r\n catalogoTemp.CaminhoImg = 'null';\r\n catalogoTemp.Grupos = listaGrupos;\r\n setCarregando(true);\r\n api.post(`Cat001/Incluir`, catalogoTemp)\r\n .then(() => {\r\n\r\n notification.success({ message: 'Sucesso!', message: 'Catálogo incluído com sucesso!' });\r\n }\r\n ).catch(\r\n error => {\r\n console.error('Erro ao salvar catálogo:', error);\r\n }\r\n ).finally(() => {\r\n setCarregando(false);\r\n fecharDrawer();\r\n setListaGrupos([]); \r\n form.resetFields();\r\n });\r\n }\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n setListaGrupos([]);\r\n form.resetFields();\r\n }\r\n })\r\n }\r\n\r\n return (\r\n { fecharDrawer() }}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { BreadcrumbIncluirDados, TabelaDados } from '../../components';\r\nimport { Button, Col, Row, Modal, notification } from 'antd';\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from '../../actions';\r\nimport DrawerCadastroCatalogo from './drawer';\r\nimport { DeleteOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport api from '../../services/api';\r\n\r\nexport default function CadastroCatalogo() {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+desccatalogo', outrosFiltros: `&empresa=1` } });\r\n }, []);\r\n\r\n const modalExcluirCat = (Codigo) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: 'Deseja realmente excluir o grupo?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk () {\r\n ExcluirCat(Codigo);\r\n }\r\n })\r\n }\r\n\r\n // const editCatalogo = (Codigo) => {\r\n // api.get(`Cat001/Buscar?empresa=${1}&cta001=${Codigo.codcatalogo}`).then(\r\n // (res) => {\r\n // console.log(res)\r\n // }\r\n // ).catch(\r\n // (error) => {\r\n // console.error(\"erro: \", error);\r\n // }\r\n // )\r\n // }\r\n\r\n const ExcluirCat = (Codigo) => {\r\n api.post(`Cat001/Excluir?codigo=${Codigo.codcatalogo}`).then(\r\n (res) => {\r\n notification.success({ message: 'Catálogo excluido com sucesso!' });\r\n }\r\n ).catch(\r\n (error) => {\r\n console.error('Erro ao excluir catálogo:', error);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n (\r\n
\r\n \r\n
\r\n {codcatalogo}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ desccatalogo }) => (\r\n
\r\n {desccatalogo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Cód. Linha',\r\n render: ({ codlinha }) => (\r\n
\r\n {codlinha}\r\n
\r\n ),\r\n }, {\r\n title: \"Linha\",\r\n render: ({ linha }) => (\r\n
\r\n {linha?.descLinha}\r\n
\r\n )\r\n }, {\r\n title: \"Ações\",\r\n align: \"center\",\r\n fixed: \"right\",\r\n key: \"x\",\r\n width: 95,\r\n render: (Codigo) => (\r\n
\r\n \r\n {/*
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n NF-e\r\n NFC-e\r\n \r\n \r\n \r\n \r\n \r\n \r\n {serie.map((ser) => (\r\n {ser.ser_serie}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { Button, Col, Form, Input, Modal, Row, Select, Table, Tag, Tooltip, Typography, notification, Checkbox, InputNumber, Popover } from \"antd\";\r\nimport { FiltroProdutoKit, FormGW, InputPreco, SelectProduto } from \"../../components\";\r\nimport { BarcodeOutlined, CheckOutlined, CloseOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined, PlusOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\r\nimport { calculaDigitoVerificadorEAN, validarEan } from \"../../services/funcoes\";\r\nimport api from \"../../services/api\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function ManutencaoKitComposicao({ formulario, salvandoDados, aoSalvar, editando }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n const [listaUnidadeMedida, setListaUnidadeMedida] = useState([]);\r\n const [listaItems, setListaItems] = useState([]);\r\n const [controlButton, setControlButton] = useState(true);\r\n\r\n const [formGrade] = Form.useForm();\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados?.pro_id) {\r\n carregarItensProdutoKit(manutencao.dados?.pro_id);\r\n }\r\n carregarListas();\r\n }, [])\r\n\r\n function carregarItensProdutoKit(pro_id, soAtivos = true) {\r\n api.get(`ProdutoKitComposicao/ListarItens?idProduto=${pro_id}&soAtivos=${soAtivos}`).then(\r\n res => {\r\n res.data?.items?.forEach(item => {\r\n item.editando = false;\r\n })\r\n setListaItems(res.data?.items)\r\n let dadosTemp = { ...manutencao.dados }\r\n dadosTemp.preco_total_kit = parseFloat(res.data?.items?.reduce((total, item) => total + parseFloat(item.qtde_item * item.pkc_valorunitario), 0));\r\n formulario.setFieldsValue(dadosTemp);\r\n\r\n }\r\n ).catch(\r\n error => console.log(error)\r\n )\r\n }\r\n\r\n async function salvarDados(values) {\r\n let dadosPost = { ...values };\r\n dadosPost.lpi_valorvenda = parseFloat(values.preco_total_kit).toFixed(2);\r\n dadosPost.listaProdutosKit = listaItems\r\n\r\n if (!dadosPost.pro_id) {\r\n salvarManutencao(dadosPost);\r\n } else {\r\n editarManutencao(dadosPost);\r\n }\r\n }\r\n\r\n function salvarManutencao(dadosPost) {\r\n salvandoDados(true);\r\n api.post(`ProdutoKitComposicao/Incluir`, dadosPost).then(\r\n res => {\r\n\r\n notification.success({ message: 'Sucesso!', description: 'Kit Composição inserido com sucesso!' });\r\n }\r\n ).catch(\r\n error => {\r\n notification.warn({ message: 'Aviso!', description: 'Não foi possivel inserir o Kit!' });\r\n }\r\n ).finally(() => {\r\n salvandoDados(false);\r\n setListaItems([]);\r\n aoSalvar();\r\n })\r\n }\r\n\r\n function editarManutencao(dadosPost) {\r\n salvandoDados(true);\r\n api.put(`ProdutoKitComposicao/Editar`, dadosPost).then(\r\n res => {\r\n notification.success({ message: 'Sucesso!', description: 'Kit Composição inserido com sucesso!' });\r\n }\r\n ).catch(\r\n error => {\r\n notification.warn({ message: 'Aviso!', description: 'Não foi possivel inserir o Kit!' });\r\n }\r\n ).finally(() => {\r\n salvandoDados(false);\r\n setListaItems([]);\r\n aoSalvar();\r\n })\r\n }\r\n\r\n async function carregarListas() {\r\n let unidade = await api.get(`unidademedida/listar?PageSize=100&PageNumber=1`);\r\n if (!!formulario.getFieldValue().ump_id && unidade.data?.items.length > 0 && !unidade.data?.items?.find((un) => { return un.ump_id === formulario.getFieldValue().ump_id })) {\r\n formulario.setFieldsValue({ ump_id: null });\r\n\r\n }\r\n setListaUnidadeMedida(unidade.data?.items);\r\n }\r\n\r\n useEffect(() => {\r\n if (listaUnidadeMedida.length > 0 && !formulario.getFieldValue().ump_id) {\r\n formulario.setFieldsValue({ ump_id: listaUnidadeMedida.find(un => un.ump_id === 'UN').ump_id });\r\n }\r\n }, [listaUnidadeMedida]);\r\n\r\n useEffect(() => {\r\n if (listaItems.length > 0) {\r\n formulario.setFieldsValue({ preco_total_kit: parseFloat(listaItems?.reduce((total, item) => total + parseFloat(item.qtde_item * item.pkc_valorunitario), 0)).toFixed(2) });\r\n }\r\n }, [listaItems])\r\n\r\n\r\n function onBlurProEan(event) {\r\n let codEan = \"\";\r\n if (!!event.currentTarget) {\r\n codEan = event.currentTarget.value;\r\n } else {\r\n codEan = event;\r\n }\r\n if (codEan !== \"\") {\r\n if (validarEan(codEan)) {\r\n buscarEanExistente(codEan);\r\n if (codEan.startsWith(\"7\") && codEan.length === 13)\r\n formulario.setFieldsValue({ pro_eaninvalido: false });\r\n else\r\n formulario.setFieldsValue({ pro_eaninvalido: true });\r\n } else {\r\n formulario.setFieldsValue({ pro_eaninvalido: true });\r\n notification.warning({ description: 'EAN informado fora dos padrões GTIN, verifique o EAN antes de continuar!', message: 'Aviso' });\r\n }\r\n }\r\n }\r\n\r\n function buscarEanExistente(event) {\r\n let codEan;\r\n if (!!event.currentTarget) {\r\n codEan = event.currentTarget.value;\r\n } else {\r\n codEan = event;\r\n }\r\n if (isNaN(codEan)) {\r\n return;\r\n }\r\n api.get(`Produto/VerificaEanExistente?CodigoEan=${codEan}`).then(\r\n res => {\r\n if (!!res.data && res.data.existe == true) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: 'Produto já cadastrado - deseja alterá-lo?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n buscarProdutosEan(res.data.pro_id);\r\n }, onCancel() {\r\n formulario.resetFields();\r\n }\r\n });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro)\r\n }\r\n );\r\n }\r\n\r\n function buscarProdutosEan(IdProduto) {\r\n api.get(`produto/RetornaDadosProduto?ProdutoId=${IdProduto}`).then(\r\n res => {\r\n formulario.setFieldsValue(res.data);\r\n editando.setEditando(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: res.data } });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function gerarEANProduto(campo) {\r\n let eanAnterior = null;\r\n\r\n let primeiroNumero = \"6\";\r\n let EAN;\r\n let digitoVerificador;\r\n eanAnterior = primeiroNumero;\r\n for (let i = 0; i <= 10; i++) {\r\n eanAnterior += Math.floor((Math.random() * 9) + 1).toString();\r\n }\r\n EAN = eanAnterior;\r\n EAN = EAN.substring(0, 12);\r\n EAN = (parseInt(EAN) + 1).toString();\r\n eanAnterior = EAN;\r\n digitoVerificador = calculaDigitoVerificadorEAN(EAN);\r\n EAN = EAN + \"\" + digitoVerificador;\r\n\r\n if (!!campo) {\r\n formGrade.setFieldsValue({ [campo]: EAN });\r\n } else {\r\n formulario.setFieldsValue({ pro_ean: EAN });\r\n }\r\n formulario.setFieldsValue({ pro_eaninvalido: true });\r\n }\r\n\r\n function calcularValorVendaPorMarkup() {\r\n let valorItens = listaItems?.reduce((total, item) => total + parseFloat(item.qtde_item * item.pkc_valorunitario), 0);\r\n let valorProdutoKit = formulario.getFieldsValue().preco_total_kit;\r\n let porc_desconto = ((valorProdutoKit * 100) / valorItens).toFixed(6);\r\n let listaItemsTemp = [...listaItems];\r\n // Ordenar a lista primeiro por qtde_item (em ordem decrescente) e depois por pkc_valorunitario (em ordem crescente)\r\n listaItemsTemp.sort((a, b) => {\r\n if (a.qtde_item !== b.qtde_item) {\r\n return b.qtde_item - a.qtde_item;\r\n } else {\r\n return a.pkc_valorunitario - b.pkc_valorunitario;\r\n }\r\n });\r\n let count = 0;\r\n let somaValor = 0;\r\n listaItemsTemp.forEach((item) => {\r\n count++;\r\n if (listaItemsTemp.length !== count) {\r\n item.pkc_valorunitario = parseFloat(((item.pkc_valorunitario * porc_desconto)) / 100).toFixed(2);\r\n somaValor += parseFloat((item.pkc_valorunitario * item.qtde_item).toFixed(2));\r\n }\r\n else {\r\n if (item.qtde_item === 1) {\r\n let diferenca = parseFloat(valorProdutoKit - somaValor).toFixed(2);\r\n item.pkc_valorunitario = diferenca;\r\n } else {\r\n item.pkc_valorunitario = parseFloat(((item.pkc_valorunitario * porc_desconto)) / 100).toFixed(2);\r\n somaValor += parseFloat((item.pkc_valorunitario * item.qtde_item).toFixed(2));\r\n }\r\n }\r\n })\r\n setListaItems(listaItemsTemp);\r\n };\r\n\r\n const editarItem = (index) => {\r\n let listaTemp = [...listaItems];\r\n let item = listaTemp[index];\r\n listaTemp[index].editando = true;\r\n setListaItems(listaTemp);\r\n formulario.setFieldsValue({ [`pkc_valorunitario`]: item.pkc_valorunitario });\r\n formulario.setFieldsValue({ [\"pkc_qtde_item\"]: item.qtde_item });\r\n setControlButton(true);\r\n }\r\n\r\n const saveEdition = (index) => {\r\n let listaTemp = [...listaItems];\r\n let item = listaTemp[index];\r\n let qtdeItem = formulario.getFieldValue().pkc_qtde_item;\r\n let pkcValorUnitario = formulario.getFieldsValue().pkc_valorunitario;\r\n\r\n let novoValorTotal = qtdeItem * pkcValorUnitario;\r\n\r\n listaTemp[index] = {\r\n ...item,\r\n qtde_item: qtdeItem,\r\n pkc_valorunitario: pkcValorUnitario\r\n };\r\n\r\n listaTemp[index].editando = false;\r\n\r\n setListaItems(listaTemp);\r\n\r\n };\r\n\r\n const cancelEdition = (index) => {\r\n let listaTemp = [...listaItems];\r\n listaTemp[index].editando = false;\r\n setListaItems(listaTemp);\r\n }\r\n\r\n function excluirItem(record, index) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: 'Deseja remover o item do kit?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarItem(record, index)\r\n }\r\n });\r\n }\r\n\r\n async function inativarItem(record, index) {\r\n if (!!record.pkc_id) {\r\n let retorno = await api.put(`ProdutoKitComposicao/AtivarInativarItem`, record);\r\n if (!retorno) {\r\n notification.warning({ description: 'Aviso!', message: 'Não foi possivel inativar o item' });\r\n return;\r\n }\r\n notification.success({ description: 'Sucesso!', description: 'Item inativado com sucesso!' });\r\n }\r\n let listaTemp = [...listaItems];\r\n listaTemp.splice(index, 1);\r\n setListaItems(listaTemp)\r\n }\r\n\r\n function ativarItem(record) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: 'Deseja reativar o item do kit?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n ativarItem(record)\r\n }\r\n });\r\n }\r\n\r\n function ativarItem(record) {\r\n api.put(`ProdutoKitComposicao/AtivarInativarItem`, record).then(\r\n res => {\r\n if (res.data) {\r\n notification.success({ message: 'Sucesso!', description: 'Item ativo novamente!' });\r\n carregarItensProdutoKit(manutencao.dados?.pro_id, formulario.getFieldsValue()?.listar_inativos)\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n notification.warning({ message: 'Aviso!', description: 'Não foi possivel ativar o Item!' });\r\n }\r\n )\r\n }\r\n\r\n function myFunction(index) {\r\n let listaTemp = [...listaItems];\r\n let item = listaTemp[index];\r\n let qtdeItem = formulario.getFieldValue().pkc_qtde_item;\r\n let pkcValorUnitario = formulario.getFieldValue().pkc_valorunitario;\r\n\r\n if (qtdeItem !== item.qtde_item || pkcValorUnitario !== item.pkc_valorunitario) {\r\n setControlButton(false);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n salvarDados(values)}>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Código de Barras - EAN\r\n \r\n \r\n \r\n \r\n }>\r\n onBlurProEan(event)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaUnidadeMedida.map((um) => ({um.ump_id} - {um.ump_descricao}))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n \r\n \r\n {pro_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n align: 'left',\r\n render: ({ pro_descricao }) => (\r\n {pro_descricao}\r\n )\r\n },\r\n {\r\n title: 'Qtde',\r\n width: 75,\r\n align: 'center',\r\n render: ({ qtde_item, editando }, record, index) => (\r\n
\r\n \r\n {editando ?\r\n myFunction(index)}\r\n /> : {FormatNumber(qtde_item, true)}\r\n }\r\n \r\n
\r\n )\r\n },\r\n {\r\n title: 'Vlr Tabela',\r\n width: 100,\r\n align: 'right',\r\n render: ({ lpi_valorvenda }) => (\r\n R$ {parseFloat(lpi_valorvenda).toFixed(2)}\r\n )\r\n },\r\n {\r\n title: 'Vlr Unitário',\r\n width: 100,\r\n align: 'right',\r\n render: ({ pkc_valorunitario, editando }, record, index) => (\r\n
\r\n {editando ?\r\n myFunction(index)}\r\n /> : R$ {parseFloat(pkc_valorunitario).toFixed(2)}\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: 'Vlr Total',\r\n width: 100,\r\n align: 'right',\r\n render: ({ pkc_valorunitario, qtde_item }) => (\r\n R$ {FormatNumber(parseFloat(qtde_item * pkc_valorunitario).toFixed(2))}\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: ({ editando }, record, index) => {\r\n return
\r\n \r\n
\r\n {editando ?\r\n saveEdition(index)}\r\n icon={}\r\n /> :\r\n editarItem(index)}\r\n icon={}\r\n />\r\n }\r\n \r\n \r\n {editando ? \r\n carregarItensProdutoKit(manutencao.dados?.pro_id, !formulario.getFieldsValue().listar_inativos)}>\r\n Listar Itens Inativos \r\n \r\n \r\n \r\n calcularValorVendaPorMarkup()} />\r\n \r\n \r\n \r\n \r\n \r\n Valor Total dos Itens: R$ {parseFloat(listaItems?.reduce((total, item) => total + parseFloat(item.qtde_item * item.pkc_valorunitario), 0)).toFixed(2)}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { useState } from \"react\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { Button, Col, Drawer, Form, Modal, Row } from \"antd\";\r\nimport { CheckOutlined, CloseOutlined, ExclamationCircleOutlined, MinusOutlined, SaveOutlined } from \"@ant-design/icons\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport ManutencaoKitComposicao from \"./manutencao\";\r\n\r\nexport default function DrawerKitComposicao({ editando, setFechouCadastro, fechouCadastro }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [formKitComp] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n function fecharDrawer() {\r\n formKitComp.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pro_descricao' } });\r\n setFechouCadastro(!fechouCadastro);\r\n }\r\n\r\n return (\r\n }\r\n onClose={() => onClose()}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n );\r\n}","import { Col, Form, Modal, Popover, Row, Table, Tag, notification } from \"antd\";\r\nimport { BotaoAbrirChamado, BotaoIncluirDados, BreadcrumbIncluirDados, BreadcrumbPage, Duplicar, Editar, Excluir, PesquisaOrdenacao, TabelaDados, FiltroProdutoKit } from \"../../components\";\r\nimport { CopyOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport DrawerKitComposicao from \"./drawer\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport api from \"../../services/api\";\r\nimport { useEffect, useState } from \"react\";\r\nimport Item from \"antd/lib/list/Item\";\r\nimport { func } from \"prop-types\";\r\n\r\nexport default function KitComposicao({ formulario }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaKits, setListaKits] = useState([]);\r\n const [attList, setAttList] = useState(false);\r\n const [fechouCadastro, setFechouCadastro] = useState(false)\r\n\r\n useEffect (() => {\r\n carregarListaKit();\r\n }, [ , attList, fechouCadastro]);\r\n\r\n async function carregarListaKit () {\r\n try {\r\n const response = await api.get(`ProdutoKitComposicao/ListarTodos?pageNumber=1&PageSize=20`);\r\n setListaKits(response.data?.items);\r\n } catch (error) {\r\n console.error(\"Erro ao carregar lista de kits:\", error);\r\n }\r\n };\r\n \r\n const modalExcluir = (dados, index) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o kit ${dados.pro_descricao}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n inativarKit(dados, index);\r\n }\r\n });\r\n };\r\n\r\n const inativarKit = async (dados, index) => {\r\n if (!!dados.pro_codigo) {\r\n let retorno = await api.put(`produto/AtivarInativar?IdProduto=${dados.pro_id}&Ativo=false`);\r\n if (!retorno) {\r\n notification.warning({ description: 'Aviso!', message: 'Não foi possível inativar o kit' });\r\n return;\r\n }\r\n notification.success({ description: 'Sucesso!', message: 'Kit inativado com sucesso!' });\r\n setAttList(true);\r\n }\r\n let listaTemp = [...listaKits];\r\n listaTemp.splice(index, 1);\r\n setListaKits(listaTemp)\r\n };\r\n console.log(listaKits)\r\n return (\r\n
\r\n \r\n \r\n
\r\n
(\r\n \r\n \r\n {pro_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'EAN-13',\r\n align: 'center',\r\n width: 110,\r\n render: ({ pro_ean }) => (\r\n
\r\n {pro_ean}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Preço (R$)',\r\n align: 'right',\r\n render: ({ precoVendaMinimo, precoVendaMaximo }) => (\r\n
\r\n {precoVendaMinimo === precoVendaMaximo &&\r\n {FormatNumber(precoVendaMinimo, true)}\r\n }\r\n {precoVendaMinimo !== precoVendaMaximo &&\r\n {FormatNumber(precoVendaMinimo, true)} até {FormatNumber(precoVendaMaximo, true)}\r\n }\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 95,\r\n fixed: 'right',\r\n render: (record, dados) => (\r\n
\r\n \r\n
\r\n {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }} icon={}\r\n />\r\n \r\n \r\n } onClick={() => { modalExcluir(record) }} />\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} />\r\n \r\n \r\n \r\n );\r\n}","import { Button, Col, Form, Row, Select, notification, TimePicker, Tooltip, Input } from \"antd\";\r\nimport { BotaoAbrirChamado, BreadcrumbPage, Data, SelectPaginacao, SelectPaginado } from \"../../components\";\r\n//import type { Dayjs } from 'dayjs';\r\nimport { useEffect, useState } from \"react\";\r\nimport { useStateValue } from \"../../state\";\r\nimport api from \"../../services/api\";\r\nimport { selectPaginadoActions} from \"../../actions\";\r\nimport { DownloadOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\r\nimport { getEmpresa, getLocal, getNomeEmpresa, getToken, linkApi } from \"../../services/auth\";\r\nimport moment from \"moment\";\r\nimport formatDate from \"../../ValueObjects/formatDate\";\r\nimport { HasValue } from \"../../services/funcoes\";\r\n\r\nexport default function Balanca() {\r\n const [formulario] = Form.useForm();\r\n const [{ ui, manutencao, parametrosEmpresa }, dispatch] = useStateValue();\r\n const [modeloBalanca, setModeloBalanca] = useState([]);\r\n const [filtroGrupo, setFiltroGrupo] = useState(null);\r\n const [grupoSelect, setGrupoSelect] = useState([]);\r\n const format = 'HH:mm';\r\n //const [value, setValue] = useState(null);\r\n\r\n //const onChange = (time: Dayjs) => {setValue(time);};\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, [])\r\n\r\n function carregarDados() {\r\n api.get(`/ParametroEmpresa/BuscarParametros`).then(res => {\r\n formulario.setFieldsValue({ par_modelobalanca: res.data.par_modelobalanca });\r\n }).catch((erro) => console.error(erro));\r\n\r\n\r\n api.get(`Enum/Listar?nome=ModeloBalanca`).then(res => {\r\n if (res.status === 200) {\r\n setModeloBalanca(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n\r\n function carregarSubGrupos(CodigoGrupo) {\r\n if (!!CodigoGrupo) {\r\n setFiltroGrupo(`&CodigoGrupo=${CodigoGrupo}`);\r\n let lista = [];\r\n if (!!formulario.getFieldValue().gru_id) {\r\n lista.push({ name: \"sgp_id\", campo: \"CodigoGrupo\", value: formulario.getFieldValue().gru_id });\r\n }\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }\r\n\r\n function download() {\r\n let form = formulario.getFieldsValue();\r\n //let dataHoraAtz = form.dataatualizacao!=null?moment(new Date(moment(form.dataatualizacao).format('YYYY-MM-DD')+'T'+moment(form.horaatualizacao).format('HH:mm:ss'))) : null;\r\n let dataHoraAtz = HasValue(form.dataatualizacao)?moment(form.dataatualizacao).format('YYYY-MM-DD'):'';\r\n dataHoraAtz += dataHoraAtz!=''? (HasValue(form.horaatualizacao) ?'T'+moment(form.horaatualizacao).format('HH:mm:ss') : 'T00:00:00') : '';\r\n \r\n if (form.modeloBalanca != null) {\r\n return notification.warning({ message: \"Aviso!\", description: \"Modelo da Banlança deve ser informado!\" });\r\n }\r\n \r\n let filtros = HasValue(form.par_modelobalanca)? `?IdBalanca=${form.par_modelobalanca}` : '';\r\n filtros += HasValue(dataHoraAtz)? `&DataHora=${dataHoraAtz}` : '';\r\n filtros += HasValue(form.pro_id)? `&IdProduto=${form.pro_id}` : '';\r\n filtros += HasValue(form.gru_id)? `&IdGrupo=${form.gru_id}` : '';\r\n filtros += HasValue(form.sgp_id)? `&IdSubGrupo=${form.sgp_id}` : '';\r\n \r\n api.get(`Produto/GerarArquivoBalanca${filtros}`)\r\n .then\r\n (res => {\r\n let linkOculto = document.createElement('a');\r\n linkOculto.href = 'data:text/txt,' + encodeURIComponent((res.data));\r\n linkOculto.download = \"ITENSMGV.txt\";\r\n document.body.appendChild(linkOculto);\r\n linkOculto.click();\r\n linkOculto.remove();\r\n notification.success({ description: \"Download realizado com sucesso!\", message: 'Aviso!' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro)\r\n let msg = !!erro && !!erro.message ? erro.message : \"Não foi possível realizar o download!\";\r\n let msg2 = !!erro.response && !!erro.response.data ? erro.response.data : \"\";\r\n notification.warning({ description: <>{msg2}
{msg} , message: 'Aviso!' });\r\n }\r\n );\r\n\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarSubGrupos(IdGrupo)}\r\n //onChangeFunction={(IdGrupo) => carregarSubGrupos(IdGrupo)}\r\n //setListaDados={setGrupoSelect}\r\n //funcaoIncluir={() => setOpenDrawerGrupo(true)}\r\n allowClear={true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n carregarSubGrupos(IdGrupo)}\r\n onChangeFunction={(IdGrupo) => carregarSubGrupos(IdGrupo)}\r\n setListaDados={setGrupoSelect}\r\n //funcaoIncluir={() => setOpenDrawerGrupo(true)}\r\n allowClear={true}\r\n />\r\n \r\n \r\n \r\n \r\n 0 && (() => setOpenDrawerSubGp(true))}\r\n allowClear={true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Descriptions, Tabs, Form, Table, Divider, Popover } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\nimport TabelaDados from '../tabelaDados';\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { novaAbaNavegador } from '../../services/funcoes';\r\n\r\nexport default function DetalhesRecibo({ dadosModal }) {\r\n\r\n const [detalheRecibo, setDetalheRecibo] = useState({});\r\n const [parcelasProcessadas, setParcelasProcessadas] = useState([]);\r\n\r\n useEffect(() => {\r\n if (dadosModal) {\r\n setDetalheRecibo(dadosModal);\r\n const processedParcelas = processParcelas(dadosModal.parcelas);\r\n setParcelasProcessadas(processedParcelas);\r\n }\r\n }, [dadosModal]);\r\n\r\n const processParcelas = (parcelas) => {\r\n const sortedParcelas = parcelas.sort((a, b) => a.cpr_numerodocumento - b.cpr_numerodocumento);\r\n\r\n const groupedParcelas = sortedParcelas.reduce((acc, current) => {\r\n const { prc_id, valorQuitado } = current;\r\n\r\n if (!acc[prc_id]) {\r\n acc[prc_id] = { ...current, valorQuitado: 0 };\r\n }\r\n\r\n acc[prc_id].valorQuitado += valorQuitado;\r\n return acc;\r\n }, {});\r\n\r\n return Object.values(groupedParcelas);\r\n };\r\n function visualizarDanfe(cde_chaveacesso) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${cde_chaveacesso}`);\r\n };\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {dadosModal.pes_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosModal.fpg_descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosModal.cpg_descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosModal.rec_decricaofinanceiro}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n visualizarDanfe(dadosModal.cde_chaveacesso)}>Clique para visualizar o Danfe}\r\n title=\"Visualizar Danfe\"\r\n >\r\n {dadosModal.cde_chaveacesso}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n {cpr_numerodocumento}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'N° Parcela / Qde Parcelas',\r\n width: '20%',\r\n align: 'center',\r\n render: ({ prc_numeroparcela, cpr_numeroparcelas }) => (\r\n
\r\n {prc_numeroparcela}/{cpr_numeroparcelas}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Vencimento',\r\n width: '20%',\r\n align: 'center',\r\n render: ({ prc_datavencimento }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Juros (R$)',\r\n width: '20%',\r\n align: 'right',\r\n render: ({ valorJuros }) => (\r\n
\r\n {FormatNumber(valorJuros, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Desconto (R$)',\r\n width: '20%',\r\n align: 'right',\r\n render: ({ valorDesconto }) => (\r\n
\r\n {FormatNumber(valorDesconto, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Quitado (R$)',\r\n fixed: 'right',\r\n width: '25%',\r\n align: 'right',\r\n render: ({ valorQuitado }) => (\r\n
\r\n {FormatNumber(valorQuitado, true)}\r\n
\r\n ),\r\n },\r\n ]} dataSource={parcelasProcessadas} pagination={false} scroll={{\r\n x: 600,\r\n y: 300,\r\n }}\r\n locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Modal } from \"antd\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport DetalhesRecibo from \"../../components/detalheRecibo\";\r\n\r\nexport default function ModalDetalheRecibo({ exibirModal, fecharModal, dadosModal }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n const onClose = () => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n fecharModal();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Button, Form, Dropdown, Menu, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, EyeOutlined, FundTwoTone, MoreOutlined, PrinterOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport { BreadcrumbAbrirChamado, ComboData, Data, FiltroOrdenacao, FiltroSearch, TabelaDados } from \"../../components\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatDate, FormatNumber } from \"../../ValueObjects\";\r\nimport ModalDetalheRecibo from \"./modalDetalheRecibo\";\r\nimport { novaAbaNavegador, openPdfNewTab } from \"../../services/funcoes\";\r\n\r\nexport default function ConsultaRecebimento() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dataAtual] = useState(new Date());\r\n const [dataPesquisa, setDataPesquisa] = useState(new Date().toLocaleDateString());\r\n const [formRecebimento] = Form.useForm();\r\n const [openModalRecibo, setOpenModalRecibo] = useState(false);\r\n const [dadosDetalheRecibo, setDadosDetalheRecibo] = useState({});\r\n\r\n useEffect(() => {\r\n formRecebimento.setFieldsValue({ dataInicial: moment(new Date()), dataFinal: moment(new Date()) });\r\n }, []);\r\n\r\n useEffect(() => {\r\n carregarData();\r\n }, [dataPesquisa]);\r\n\r\n function carregarData() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataInicial=${FormatDate(dataPesquisa)}&dataFinal=${FormatDate(dataAtual.toLocaleDateString())}`, filtro: '', ordem: '-rec_datahora' } })\r\n };\r\n\r\n function filtrarPeriodo() {\r\n let filtros = '';\r\n filtros += `&dataInicial=${(!!formRecebimento.getFieldValue().dataInicial ? moment(formRecebimento.getFieldValue().dataInicial).format('YYYY-MM-DD') : FormatDate(dataAtual))}`;\r\n filtros += `&dataFinal=${(formRecebimento.getFieldValue().dataFinal === undefined ? FormatDate(dataAtual) : FormatDate(formRecebimento.getFieldValue().dataFinal._d.toLocaleDateString()))}`;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtros } });\r\n };\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n function reimprimirRecibo(record) {\r\n Modal.confirm({\r\n title: 'Deseja reimprimir o recibo?',\r\n icon: ,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n openPdfNewTab(`ContasPagarReceber/ReImprimirComprovantePagamento?IdRecibo=${record.rec_id}`);\r\n if (record.cde_id) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNfe=${record.cde_chaveacesso}`);\r\n }\r\n },\r\n });\r\n };\r\n\r\n async function visualizarDetalhes(dados) {\r\n setDadosDetalheRecibo(dados);\r\n setOpenModalRecibo(true);\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n formRecebimento.setFieldsValue({ dataFinal: moment(new Date()) });\r\n formRecebimento.setFieldsValue({ dataInicial: moment(formRecebimento.getFieldValue().dataPesquisa) });\r\n filtrarPeriodo();\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n (\r\n
\r\n {rec_numero}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Cliente',\r\n width: '25%',\r\n render: ({ pes_nome }) => (\r\n
\r\n {pes_nome}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Usuário',\r\n width: '15%',\r\n render: ({ usu_nome }) => (\r\n
\r\n {usu_nome}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Forma Pagamento',\r\n width: '20%',\r\n render: ({ fpg_descricao }) => (\r\n
\r\n {fpg_descricao}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Descrição',\r\n width: '12%',\r\n render: ({ rec_decricaofinanceiro }) => (\r\n
\r\n {rec_decricaofinanceiro}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Data Pagamento',\r\n width: '12%',\r\n align: 'center',\r\n render: ({ rec_datahora }) => (\r\n
\r\n {moment(rec_datahora).format('DD/MM/YYYY HH:mm')}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Descontos',\r\n width: '8%',\r\n align: 'right',\r\n render: ({ valorDesconto }) => (\r\n
\r\n {FormatNumber(valorDesconto, true)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Juros',\r\n width: '8%',\r\n align: 'right',\r\n render: ({ valorJuros }) => (\r\n
\r\n {FormatNumber(valorJuros, true)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Valor Total',\r\n width: '10%',\r\n fixed: 'right',\r\n align: 'right',\r\n render: ({ valorTotal }) => (\r\n
\r\n {FormatNumber(valorTotal, true)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {pro_codigo}\r\n \r\n {pro_descricao}\r\n \r\n \r\n \r\n \r\n EAN: {nfi_ean}\r\n \r\n \r\n Grade: {grade}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'CFOP',\r\n align: 'center',\r\n width: '3%',\r\n fixed: 'left',\r\n render: ({ nfi_cfop }) => (\r\n
\r\n {nfi_cfop}\r\n
\r\n ),\r\n },\r\n {\r\n title: `${dadosContribuinte.emp_regimetributario === 1 ? 'CSOSN' : 'CST'}`,\r\n align: 'center',\r\n width: '4%',\r\n fixed: 'left',\r\n render: ({ cst_id, cso_id }) => (\r\n
\r\n
\r\n {dadosContribuinte.emp_regimetributario === 1 ? cso_id : cst_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: '4%',\r\n align: 'right',\r\n fixed: 'left',\r\n render: ({ nfi_qtde }) => (\r\n
\r\n {FormatNumber(nfi_qtde, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: '5%',\r\n fixed: 'left',\r\n render: ({ nfi_valorunitario }) => (\r\n
\r\n {FormatNumber(nfi_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desc.',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ percdesc }) => (\r\n
\r\n {percdesc}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Acres.',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ percacresc }) => (\r\n
\r\n {percacresc}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Frete',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ nfi_valorfrete }) => (\r\n
\r\n {FormatNumber(nfi_valorfrete, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Bc. Icms',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMS?.ret_baseIcms, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: '% Icms',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMS?.ret_aliquotaIcms, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Icms',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMS?.ret_valorIcms, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Bc. ST',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMSST?.ret_baseIcmsSt, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: '% ST',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMSST?.ret_aliquotaIcmsSt, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr ST',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMSST?.ret_valorIcmsSt, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: '6%',\r\n fixed: 'right',\r\n render: ({ total }) => (\r\n
\r\n {FormatNumber(total, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: '5%',\r\n fixed: 'right',\r\n render: (record, e, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Quantidade Itens:\r\n \r\n \r\n {quantidadeItens}\r\n \r\n \r\n \r\n \r\n Valor Total dos Itens (R$):\r\n \r\n \r\n {FormatNumber(valorTotal, true)}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Tabs, Radio, Select, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { TabVeiculo, TabVolumes, TabValores } from './index';\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function TabTransporte({ form, veiculos, dadosTransp }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [mostrarTransportador, setMostrarTransportador] = useState(true);\r\n const [possuiTransportador, setPossuiTransportador] = useState(false);\r\n const [listaTransportadores, setListaTransportadores] = useState([]);\r\n const [dadosVeiculos, setDadosVeiculos] = useState({});\r\n\r\n useEffect(() => {\r\n buscarTransportadores();\r\n if (!!form.getFieldValue().trv_id && !!form.getFieldValue().trn_id) {\r\n setPossuiTransportador(true);\r\n }\r\n if (form.getFieldValue().ntf_modalidadefrete === 9) {\r\n setMostrarTransportador(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldValue().trn_id) {\r\n buscarDadosTransp(form.getFieldValue().trn_id);\r\n }\r\n }, [listaTransportadores]);\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldValue().trv_id) {\r\n popularDadosVeiculo(form.getFieldValue().trv_id);\r\n }\r\n }, [veiculos.listaVeiculos]);\r\n\r\n function alterarFrete(event) {\r\n if (event.target.value === 9) {\r\n form.setFieldsValue({ trn_id: null });\r\n form.setFieldsValue({ trv_id: null });\r\n form.setFieldsValue({ valorFrete: null });\r\n form.setFieldsValue({ valorSeguro: null });\r\n form.setFieldsValue({ trv_placa: null });\r\n form.setFieldsValue({ trv_uf: null });\r\n form.setFieldsValue({ trv_rntc: null });\r\n form.setFieldsValue({ trv_modelo: null });\r\n form.setFieldsValue({ trv_marca: null });\r\n form.setFieldsValue({ trv_observacao: null });\r\n form.setFieldsValue({ nvl_qtdevolumes: null });\r\n form.setFieldsValue({ nvl_especievolume: null });\r\n form.setFieldsValue({ nvl_numeracaovolume: null });\r\n form.setFieldsValue({ nvl_marcavolume: null });\r\n form.setFieldsValue({ nvl_pesoliquido: null });\r\n form.setFieldsValue({ nvl_pesobruto: null });\r\n setDadosVeiculos({});\r\n setMostrarTransportador(false);\r\n } else {\r\n setMostrarTransportador(true);\r\n }\r\n };\r\n\r\n function buscarTransportadores() {\r\n api.get('Transportador/ListarTodos?filtro=').then(\r\n (res) => {\r\n setListaTransportadores(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n async function buscarDadosTransp(trn_id) {\r\n if (!!trn_id) {\r\n await api.get(`Transportador/BuscarTransportador/${trn_id}`).then(\r\n res => {\r\n if (res.status === 200){\r\n dadosTransp.setDadosTransp(res.data);\r\n veiculos.setListaVeiculos(res.data.veiculos);\r\n setPossuiTransportador(true);\r\n }\r\n }\r\n ).catch( error => {\r\n console.log(error);\r\n notification.warning({message: 'Aviso!', description: 'Erro ao buscar dados do transportador!'});\r\n })\r\n } else {\r\n setPossuiTransportador(false);\r\n }\r\n };\r\n\r\n function popularDadosVeiculo(trv_id) {\r\n let veiculo = veiculos.listaVeiculos.filter((veiculo) => (veiculo.trv_id === trv_id))[0];\r\n setDadosVeiculos(veiculo);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n { alterarFrete(dados) }}>\r\n 0 - Contratação do Frete por conta do Remetente (CIF)\r\n 1 - Contratação do Frete por conta do Destinatário (FOB)\r\n 2 - Contratação do Frete por conta de Terceiros\r\n 3 - Transporte Próprio por conta do Remetente\r\n 4 - Transporte Próprio por conta do Destinatário\r\n 9 - Sem Frete\r\n \r\n \r\n \r\n \r\n {mostrarTransportador && \r\n \r\n \r\n buscarDadosTransp(dados)} conteudo={\r\n tp => ({tp.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {(possuiTransportador && mostrarTransportador) &&
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
}\r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Typography, Row, Col, Form, Divider, Input } from \"antd\";\r\n\r\nexport default function TabVeiculo({ form, dadosVeiculos }) {\r\n\r\n useEffect(() => {\r\n if (!!dadosVeiculos) {\r\n form.setFieldsValue({ trv_placa: dadosVeiculos.trv_placa });\r\n form.setFieldsValue({ trv_uf: dadosVeiculos.trv_uf });\r\n form.setFieldsValue({ trv_rntc: dadosVeiculos.trv_rntc });\r\n form.setFieldsValue({ trv_modelo: dadosVeiculos.trv_modelo });\r\n form.setFieldsValue({ trv_marca: dadosVeiculos.trv_marca });\r\n form.setFieldsValue({ trv_observacao: dadosVeiculos.trv_observacao });\r\n }\r\n }, [dadosVeiculos]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Veículo\" Veículo\r\n \r\n Informe abaixo os dados do Veículo utilizado para o transporte. \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Typography, Row, Col, Form, Divider, InputNumber, Input } from \"antd\";\r\n\r\nexport default function TabVolumes() {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Volumes Volumes Transportados\r\n \r\n Informe os volumes transportados. \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ` ${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n parser={value => value.replace(/\\$\\s?|(,*)/g, '')}\r\n />\r\n \r\n \r\n \r\n \r\n ` ${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n parser={value => value.replace(/\\$\\s?|(,*)/g, '')}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Typography, Row, Col, Divider } from \"antd\";\r\n\r\nimport { InputPreco } from \"../../components\";\r\n\r\nexport default function TabValores() {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Valores\" Valores\r\n \r\n Informe os valores do transporte. \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","export default __webpack_public_path__ + \"static/media/i-financeiro.04bd26bb.png\";","import { retornaSoLetras, retornaSoNumeros } from \"./funcoes\";\r\n\r\nexport const validarIE = (numeroInscricaoEstadual, ufEstado) => {\r\n let retornaIEValido = false;\r\n if(numeroInscricaoEstadual.toUpperCase() == \"ISENTO\"){\r\n return true;\r\n }\r\n if (!!numeroInscricaoEstadual && !!ufEstado) {\r\n switch (ufEstado) {\r\n case \"RS\":\r\n retornaIEValido = (ValidarInscricaoEstadualRS(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"SC\":\r\n retornaIEValido = (ValidarInscricaoEstadualSC(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"PR\":\r\n retornaIEValido = (ValidarInscricaoEstadualPR(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"SP\":\r\n retornaIEValido = (ValidarInscricaoEstadualSP(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"MG\":\r\n retornaIEValido = (ValidarInscricaoEstadualMG(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"RJ\":\r\n retornaIEValido = (ValidarInscricaoEstadualRJ(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"ES\":\r\n retornaIEValido = (ValidarInscricaoEstadualES(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"BA\":\r\n retornaIEValido = (ValidarInscricaoEstadualBA(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"SE\":\r\n retornaIEValido = (ValidarInscricaoEstadualSE(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"AL\":\r\n retornaIEValido = (ValidarInscricaoEstadualAL(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"PE\":\r\n retornaIEValido = (ValidarInscricaoEstadualPE(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"PB\":\r\n retornaIEValido = (ValidarInscricaoEstadualPB(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"RN\":\r\n retornaIEValido = (ValidarInscricaoEstadualRN(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"PI\":\r\n retornaIEValido = (ValidarInscricaoEstadualPI(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"MA\":\r\n retornaIEValido = (ValidarInscricaoEstadualMA(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"CE\":\r\n retornaIEValido = (ValidarInscricaoEstadualCE(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"GO\":\r\n retornaIEValido = (ValidarInscricaoEstadualGO(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"TO\":\r\n retornaIEValido = (ValidarInscricaoEstadualTO(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"MT\":\r\n retornaIEValido = (ValidarInscricaoEstadualMT(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"MS\":\r\n retornaIEValido = (ValidarInscricaoEstadualMS(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"DF\":\r\n retornaIEValido = (ValidarInscricaoEstadualDF(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"AM\":\r\n retornaIEValido = (ValidarInscricaoEstadualAM(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"AC\":\r\n retornaIEValido = (ValidarInscricaoEstadualAC(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"PA\":\r\n retornaIEValido = (ValidarInscricaoEstadualPA(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"RO\":\r\n retornaIEValido = (ValidarInscricaoEstadualRO(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"RR\":\r\n retornaIEValido = (ValidarInscricaoEstadualRR(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n case \"AP\":\r\n retornaIEValido = (ValidarInscricaoEstadualAP(numeroInscricaoEstadual)) ? true : false;\r\n return retornaIEValido;\r\n default:\r\n }\r\n } else {\r\n return true;\r\n }\r\n}\r\n\r\n\r\nexport const ValidarInscricaoEstadualRS = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n\r\n let pesosMultiplicador = [2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 10) {\r\n return false;\r\n }\r\n\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 9);\r\n let somaIE = 0;\r\n for (let i = 0; i < 9; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificador = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualSC = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n\r\n let resto = somaIE % 11;\r\n\r\n let digitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualPR = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 10) {\r\n return false;\r\n }\r\n let pesosMultiplicadorPrimeiro = [3, 2, 7, 6, 5, 4, 3, 2];\r\n let pesosMultiplicadorSegundo = [4, 3, 2, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n let resto = somaIE % 11;\r\n let primeiroDigitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n\r\n somaIE = 0;\r\n resto = 0;\r\n let inscricaoEstadualComPrimeiroDigitoVerificador = inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador;\r\n for (let i = 0; i < 9; i++) {\r\n somaIE += inscricaoEstadualComPrimeiroDigitoVerificador[i] * pesosMultiplicadorSegundo[i];\r\n }\r\n resto = somaIE % 11;\r\n let segundoDigitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador + \"\" + segundoDigitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualSP = (numeroInscricao) => {\r\n let nNumero = numeroInscricao.substr(0, 1);\r\n let numeroInscricao_ = numeroInscricao;\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n\r\n if (numeroInscricao.length !== 12) {\r\n return false;\r\n }\r\n\r\n if (nNumero == \"P\") {\r\n\r\n let pesosMultiplicador = [1, 3, 4, 5, 6, 7, 8, 10];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n let digitoVerificador = (resto > 9) ? 0 : resto;\r\n\r\n return numeroInscricao_ == (\"P\" + inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador + \"\" + numeroInscricao.substr(9, 3)) ? true : false;\r\n } else {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n let pesosMultiplicadorPrimeiro = [1, 3, 4, 5, 6, 7, 8, 10];\r\n let pesosMultiplicadorSegundo = [3, 2, 10, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < inscricaoEstadualSemDigitoVerificador.length; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n\r\n let resto = somaIE % 11;\r\n let primeiroDigitoVerificador = (resto > 9) ? 0 : resto;\r\n let inscricaoEstadualComPrimeiroDigitoVerificador = inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador + \"\" + numeroInscricao.substr(9, 2);\r\n somaIE = 0;\r\n resto = 0;\r\n for (let i = 0; i < 11; i++) {\r\n somaIE += inscricaoEstadualComPrimeiroDigitoVerificador[i] * pesosMultiplicadorSegundo[i];\r\n }\r\n\r\n resto = somaIE % 11;\r\n let segundoDigitoVerificador = (resto > 9) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador + \"\" + numeroInscricao.substr(9, 2) + \"\" + segundoDigitoVerificador)) ? true : false;\r\n }\r\n};\r\n\r\nexport const ValidarInscricaoEstadualMG = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length > 13 && numeroInscricao.length < 11) {\r\n return false;\r\n }\r\n\r\n numeroInscricao = numeroInscricao.padStart(13, '0');\r\n let pesosMultiplicadorPrimeiro = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2];\r\n let pesosMultiplicadorSegundo = [3, 2, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 3) + \"0\" + numeroInscricao.substr(3, 8);\r\n let somaIE = 0;\r\n let listaDigitosValorMultiplicacao = [];\r\n for (let i = 0; i < 12; i++) {\r\n let valorMultiplicacao = inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n listaDigitosValorMultiplicacao.push(valorMultiplicacao);\r\n }\r\n for (let x = 0; x < listaDigitosValorMultiplicacao.length; x++) {\r\n let numero = listaDigitosValorMultiplicacao[x].toString();\r\n if (numero.length > 1) {\r\n let valor1 = numero.substr(0, 1);\r\n let valor2 = numero.substr(1, 1);\r\n numero = parseInt(valor1) + parseInt(valor2);\r\n }\r\n somaIE += parseInt(numero);\r\n }\r\n let primeiraDezenaExata = 0;\r\n\r\n if (somaIE % 10 != 0) {\r\n let somaIEString = somaIE.toString();\r\n primeiraDezenaExata = somaIEString.substr(0, 1);\r\n primeiraDezenaExata = parseInt(primeiraDezenaExata) + 1;\r\n primeiraDezenaExata = primeiraDezenaExata.toString() + 0;\r\n primeiraDezenaExata = parseInt(primeiraDezenaExata);\r\n } else {\r\n primeiraDezenaExata = somaIE;\r\n }\r\n\r\n primeiraDezenaExata = (somaIE < 10) ? 10 : primeiraDezenaExata;\r\n\r\n let primeiroDigitoVerificador = primeiraDezenaExata - somaIE;\r\n\r\n somaIE = 0;\r\n let inscricaoEstadualComPrimeiroDigitoVerificador = numeroInscricao.substr(0, 11) + \"\" + primeiroDigitoVerificador;\r\n for (let i = 0; i < 12; i++) {\r\n somaIE += inscricaoEstadualComPrimeiroDigitoVerificador[i] * pesosMultiplicadorSegundo[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n let segundoDigitoVerificador = resto;\r\n\r\n return (numeroInscricao == (numeroInscricao.substr(0, 11) + \"\" + primeiroDigitoVerificador + \"\" + segundoDigitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualRJ = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 8) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [2, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 7);\r\n let somaIE = 0;\r\n for (let i = 0; i < 7; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (resto <= 1) ? 0 : (11 - resto);\r\n let digitoVerificador = resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualES = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (resto <= 1) ? 0 : (11 - resto);\r\n let digitoVerificador = resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualBA = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n\r\n if (numeroInscricao.length !== 8 && numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n\r\n if (numeroInscricao.length == 8) {\r\n\r\n let pesosMultiplicadorPrimeiro = [7, 6, 5, 4, 3, 2];\r\n let pesosMultiplicadorSegundo = [8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 6);\r\n let somaIE = 0;\r\n for (let i = 0; i < 6; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n let primeiroDigitoVerificador = 0;\r\n let resto = 0;\r\n if (numeroInscricao.substr(0, 1) == \"6\" || numeroInscricao.substr(0, 1) == \"7\" || numeroInscricao.substr(0, 1) == \"9\") {\r\n resto = somaIE % 11;\r\n resto = (11 - resto);\r\n primeiroDigitoVerificador = (resto == 0 || resto == 1) ? 0 : resto;\r\n } else {\r\n resto = somaIE % 10;\r\n resto = (10 - resto);\r\n primeiroDigitoVerificador = (resto == 0) ? 0 : resto;\r\n }\r\n\r\n let inscricaoEstadualComPrimeiroDigitoVerificador = inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador;\r\n somaIE = 0;\r\n resto = 0;\r\n for (let i = 0; i < 7; i++) {\r\n somaIE += inscricaoEstadualComPrimeiroDigitoVerificador[i] * pesosMultiplicadorSegundo[i];\r\n }\r\n let segundoDigitoVerificador = 0;\r\n if (numeroInscricao.substr(0, 1) == \"6\" || numeroInscricao.substr(0, 1) == \"7\" || numeroInscricao.substr(0, 1) == \"9\") {\r\n resto = somaIE % 11;\r\n segundoDigitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n } else {\r\n resto = somaIE % 10;\r\n segundoDigitoVerificador = (resto == 0) ? 0 : (10 - resto);\r\n }\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + segundoDigitoVerificador + \"\" + primeiroDigitoVerificador)) ? true : false;\r\n } else {\r\n let pesosMultiplicadorSegundo = [8, 7, 6, 5, 4, 3, 2];\r\n let pesosMultiplicadorPrimeiro = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 7);\r\n let somaIE = 0;\r\n for (let i = 0; i < 7; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorSegundo[i];\r\n }\r\n let segundoDigitoVerificador = 0;\r\n let resto = 0;\r\n if (numeroInscricao.substr(1, 1) == \"6\" || numeroInscricao.substr(1, 1) == \"7\" || numeroInscricao.substr(1, 1) == \"9\") {\r\n resto = somaIE % 11;\r\n segundoDigitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n } else {\r\n resto = somaIE % 10;\r\n segundoDigitoVerificador = (resto == 0) ? 0 : (10 - resto);\r\n }\r\n\r\n let inscricaoEstadualComSegundoDigitoVerificador = inscricaoEstadualSemDigitoVerificador + \"\" + segundoDigitoVerificador;\r\n somaIE = 0;\r\n resto = 0;\r\n for (let i = 0; i <= 7; i++) {\r\n somaIE += inscricaoEstadualComSegundoDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n let primeiroDigitoVerificador = 0;\r\n if (numeroInscricao.substr(1, 1) == \"6\" || numeroInscricao.substr(1, 1) == \"7\" || numeroInscricao.substr(1, 1) == \"9\") {\r\n resto = somaIE % 11;\r\n primeiroDigitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n }\r\n else {\r\n resto = somaIE % 10;\r\n primeiroDigitoVerificador = (resto == 0) ? 0 : (10 - resto);\r\n }\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador + \"\" + segundoDigitoVerificador)) ? true : false;\r\n\r\n }\r\n};\r\n\r\nexport const ValidarInscricaoEstadualSE = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificador = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualAL = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificador = (resto == 10) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualPE = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9 && numeroInscricao.length !== 14) {\r\n return false;\r\n }\r\n\r\n if (numeroInscricao.length == 9) {\r\n let pesosMultiplicadorPrimeiro = [8, 7, 6, 5, 4, 3, 2];\r\n let pesosMultiplicadorSegundo = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 7);\r\n let somaIE = 0;\r\n for (let i = 0; i < 7; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n let resto = somaIE % 11;\r\n let primeiroDigitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n\r\n let inscricaoEstadualComPrimeiroDigitoVerificador = inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador;\r\n somaIE = 0;\r\n resto = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualComPrimeiroDigitoVerificador[i] * pesosMultiplicadorSegundo[i];\r\n }\r\n resto = somaIE % 11;\r\n let segundoDigitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador + \"\" + segundoDigitoVerificador)) ? true : false;\r\n } else {\r\n\r\n let pesosMultiplicadorPrimeiro = [5, 4, 3, 2, 1, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 13);\r\n let somaIE = 0;\r\n for (let i = 0; i < 13; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let primeiroDigitoVerificador = (resto > 9) ? (10 - resto) : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador)) ? true : false;\r\n }\r\n};\r\n\r\nexport const ValidarInscricaoEstadualPB = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificador = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualRN = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9 && numeroInscricao.length !== 10) {\r\n return false;\r\n }\r\n\r\n if (numeroInscricao.length == 9) {\r\n\r\n let pesosMultiplicadorPrimeiro = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n let resto = (somaIE * 10) % 11;\r\n let primeiroDigitoVerificador = (resto == 10) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador)) ? true : false;\r\n } else {\r\n let pesosMultiplicadorPrimeiro = [10, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 9);\r\n let somaIE = 0;\r\n for (let i = 0; i < 9; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n let resto = (somaIE * 10) % 11;\r\n let primeiroDigitoVerificador = (resto == 10) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + primeiroDigitoVerificador)) ? true : false;\r\n }\r\n};\r\n\r\nexport const ValidarInscricaoEstadualPI = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificador = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualMA = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n let digitoVerificador = (resto == 0 || resto == 1) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualCE = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificador = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualGO = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n let digitoVerificador = 0;\r\n if (inscricaoEstadualSemDigitoVerificador == \"11094402\" && (resto == 0 || resto == 1)) {\r\n digitoVerificador = parseInt(numeroInscricao.substr(8, 1));\r\n } else if (resto == 0) {\r\n digitoVerificador = 0;\r\n } else if (resto == 1 && (parseInt(inscricaoEstadualSemDigitoVerificador) >= 10103105 && parseInt(inscricaoEstadualSemDigitoVerificador) <= 10119997)) {\r\n digitoVerificador = 1;\r\n } else if (resto == 1 && (parseInt(inscricaoEstadualSemDigitoVerificador) < 10103105 || parseInt(inscricaoEstadualSemDigitoVerificador) > 10119997)) {\r\n digitoVerificador = 0;\r\n } else {\r\n digitoVerificador = (11 - resto);\r\n }\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualTO = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 11 && numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador;\r\n if (numeroInscricao.length === 11) {\r\n inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 2) + \"\" + numeroInscricao.substr(4, 6);\r\n } else {\r\n inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n }\r\n\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n let digitoVerificador = (resto < 2) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (numeroInscricao.substr(0, (numeroInscricao.length - 1)) + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualMT = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length < 9) {\r\n return false;\r\n }\r\n\r\n while (numeroInscricao.length < 11) {\r\n numeroInscricao = \"0\" + numeroInscricao;\r\n }\r\n\r\n if (numeroInscricao.length !== 11) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 10);\r\n let somaIE = 0;\r\n for (let i = 0; i < 10; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n let digitoVerificador = (resto == 1 || resto == 0) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualMS = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n let digitoVerificador = (resto == 0) ? 0 : ((11 - resto) > 9) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualDF = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 13) {\r\n return false;\r\n }\r\n let pesosMultiplicadorPrimeiro = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let pesosMultiplicadorSegundo = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 11);\r\n let somaIE = 0;\r\n for (let i = 0; i < 11; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificadorPrimeiro = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n somaIE = 0;\r\n resto = 0;\r\n let inscricaoEstadualComPrimeiroDigito = inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificadorPrimeiro;\r\n\r\n for (let i = 0; i < 12; i++) {\r\n somaIE += inscricaoEstadualComPrimeiroDigito[i] * pesosMultiplicadorSegundo[i];\r\n }\r\n resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificadorSegundo = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificadorPrimeiro + \"\" + digitoVerificadorSegundo)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualAM = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = (somaIE < 11) ? somaIE : somaIE % 11;\r\n let digitoVerificador = (resto <= 1) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualAC = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 13) {\r\n return false;\r\n }\r\n let pesosMultiplicadorPrimeiro = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let pesosMultiplicadorSegundo = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 11);\r\n let somaIE = 0;\r\n for (let i = 0; i < 11; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicadorPrimeiro[i];\r\n }\r\n\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificadorPrimeiro = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n somaIE = 0;\r\n resto = 0;\r\n let inscricaoEstadualComPrimeiroDigito = inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificadorPrimeiro;\r\n\r\n for (let i = 0; i < 12; i++) {\r\n somaIE += inscricaoEstadualComPrimeiroDigito[i] * pesosMultiplicadorSegundo[i];\r\n }\r\n resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificadorSegundo = (resto == 10 || resto == 11) ? 0 : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificadorPrimeiro + \"\" + digitoVerificadorSegundo)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualPA = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n let digitoVerificador = (resto == 1 || resto == 0) ? 0 : (11 - resto);\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualRO = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 14) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 13);\r\n let somaIE = 0;\r\n for (let i = 0; i < 13; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 11;\r\n resto = (11 - resto);\r\n let digitoVerificador = (resto == 10 || resto == 11) ? (resto - 10) : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualRR = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [1, 2, 3, 4, 5, 6, 7, 8];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let resto = somaIE % 9;\r\n let digitoVerificador = resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};\r\n\r\nexport const ValidarInscricaoEstadualAP = (numeroInscricao) => {\r\n let apenasNumeros = (retornaSoLetras(numeroInscricao) == \"\") ? true : false;\r\n if (!apenasNumeros) {\r\n return false;\r\n }\r\n numeroInscricao = retornaSoNumeros(numeroInscricao);\r\n if (numeroInscricao.length !== 9) {\r\n return false;\r\n }\r\n let pesosMultiplicador = [9, 8, 7, 6, 5, 4, 3, 2];\r\n let inscricaoEstadualSemDigitoVerificador = numeroInscricao.substr(0, 8);\r\n let somaIE = 0;\r\n for (let i = 0; i < 8; i++) {\r\n somaIE += inscricaoEstadualSemDigitoVerificador[i] * pesosMultiplicador[i];\r\n }\r\n let valorAcrescentadoNaSoma;\r\n let digitoVerificadorPadrao;\r\n if (inscricaoEstadualSemDigitoVerificador >= '03000001' && inscricaoEstadualSemDigitoVerificador <= '03017000') {\r\n valorAcrescentadoNaSoma = 5;\r\n digitoVerificadorPadrao = 0;\r\n } else {\r\n if (inscricaoEstadualSemDigitoVerificador >= '03017001' && inscricaoEstadualSemDigitoVerificador <= '03019022') {\r\n valorAcrescentadoNaSoma = 9;\r\n digitoVerificadorPadrao = 1;\r\n } else {\r\n valorAcrescentadoNaSoma = 0;\r\n digitoVerificadorPadrao = 0;\r\n }\r\n }\r\n let resto = (valorAcrescentadoNaSoma + somaIE) % 11;\r\n resto = (11 - resto);\r\n let digitoVerificador = (resto == 10) ? 0 : (resto == 11) ? digitoVerificadorPadrao : resto;\r\n\r\n return (numeroInscricao == (inscricaoEstadualSemDigitoVerificador + \"\" + digitoVerificador)) ? true : false;\r\n};","export default __webpack_public_path__ + \"static/media/i-endereco.c9dff16a.png\";","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Drawer } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined } from '@ant-design/icons';\r\nimport ManutencaoVendedor from '../../pages/vendedor/manutencao';\r\n\r\nexport default function DrawerVendedores({ form, exibirDrawerVendedores, fecharDrawerVendedores }) {\r\n const [carregando, setCarregando] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [pagina, setPagina] = useState(1);\r\n\r\n return (\r\n {\r\n form.resetFields();\r\n setPagina(1);\r\n fecharDrawerVendedores();\r\n }}\r\n onOk={() => form.submit()}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n );\r\n};","export default __webpack_public_path__ + \"static/media/logoGestor.c5a22032.png\";","export const TOKEN_KEY = \"@GestorWeb-Token\";\r\nexport const EMPRESA_KEY = \"@GestorWeb-Empresa\";\r\nexport const LOCAL_KEY = \"@GestorWeb-Local\";\r\nexport const NOMEEMPRESA_KEY = \"@GestorWeb-NomeEmpresa\";\r\nexport const NOMELOCAL_KEY = \"@GestorWeb-NomeLocal\";\r\nexport const REGIMETRIBUTARIO_KEY = \"@GestorWeb-RegimeTributario\";\r\nexport const NOMEUSUARIO_KEY = \"@GestorWeb-NomeUsuario\";\r\nexport const IDUSUARIO_KEY = \"@GestorWeb-IdUsuario\";\r\nexport const EMAILUSUARIO_KEY = \"@GestorWeb-EmailUsuario\";\r\nexport const TELA_KEY = \"@GestorWeb-Tela\";\r\nexport const NAVEGACAO_KEY = \"@GestorWeb-Navegacao\";\r\nexport const PERMISSOES_KEY = \"@GestorWeb-Permissoes\";\r\nexport const BREADCRUMB_KEY = \"@GestorWeb-Breadcrumb\";\r\nexport const FILTROSRELATORIO_KEY = \"@GestorWeb-FiltrosRelatorio\";\r\nexport const STATUSPLANO_KEY = \"@GestorWeb-StatusPlano\";\r\nexport const TELAANTERIRO_KEY = \"@GestorWeb-TelaAnterior\";\r\nexport const ENTIDADE_KEY = \"@GestorWeb-Entidade\";\r\nexport const STATUSFILIAL_KEY = \"@GestorWeb-StatusFilial\";\r\nexport const DADOS_INTEGRA_KEY = \"@GestorWeb-DadosIntegra\";\r\nexport const CNPJ_EMPRESA_KEY = \"@GestorWeb-CnpjEmpresa\";\r\nexport const CLIENTECAT_KEY = \"@CatalogoWeb-Cliente\";\r\nexport const NOMECLIENTECAT_KEY = \"@CatalogoWeb-NomeCliente\";\r\nexport const linkApi = process.env.REACT_APP_PUBLIC_URL || (window.location.href.indexOf('localhost') > -1 ? 'https://localhost:7205/' : window.location.href.indexOf('hom') > -1 ? 'http://apihom.gestorweb.com.br/' : 'https://api.gestorweb.com.br/');\r\nexport const linkApiGestor = window.location.href.indexOf('localhost') > -1 ? \"https://localhost:7298/\" : window.location.href.indexOf('hom') > -1 ? \"https://apihomgestor.gestorweb.com.br/\" : \"https://apicatalogo.gestorweb.com.br/\";\r\nexport const isAuthenticated = () => localStorage.getItem(TOKEN_KEY) !== null;\r\nexport const getToken = () => localStorage.getItem(TOKEN_KEY);\r\nexport const getEmpresa = () => localStorage.getItem(EMPRESA_KEY);\r\nexport const getCnpjEmpresa = () => localStorage.getItem(CNPJ_EMPRESA_KEY);\r\nexport const getLocal = () => localStorage.getItem(LOCAL_KEY);\r\nexport const getNomeEmpresa = () => localStorage.getItem(NOMEEMPRESA_KEY);\r\nexport const getNomeLocal = () => localStorage.getItem(NOMELOCAL_KEY);\r\nexport const getRegimeTributario = () => localStorage.getItem(REGIMETRIBUTARIO_KEY);\r\nexport const getNomeUsuario = () => localStorage.getItem(NOMEUSUARIO_KEY);\r\nexport const getIdUsuario = () => localStorage.getItem(IDUSUARIO_KEY);\r\nexport const getEmailUsuario = () => localStorage.getItem(EMAILUSUARIO_KEY);\r\nexport const getTela = () => localStorage.getItem(TELA_KEY);\r\nexport const getBreadcrumb = () => localStorage.getItem(BREADCRUMB_KEY);\r\nexport const getNavegacao = () => decodeURIComponent(localStorage.getItem(NAVEGACAO_KEY));\r\nexport const getPermissao = () => decodeURIComponent(localStorage.getItem(PERMISSOES_KEY));\r\nexport const getStatusPlano = () => localStorage.getItem(STATUSPLANO_KEY);\r\nexport const getStatusFilial = () => atob(localStorage.getItem(STATUSFILIAL_KEY)) === 'true';\r\nexport const getTelaAnterior = () => localStorage.getItem(TELAANTERIRO_KEY);\r\nexport const getEntidadeImp = () => localStorage.getItem(ENTIDADE_KEY);\r\nexport const getDadosIntegra = () => localStorage.getItem(DADOS_INTEGRA_KEY);\r\nexport const getClienteCat = () => localStorage.getItem(CLIENTECAT_KEY);\r\nexport const getNomeClienteCat = () => localStorage.getItem(NOMECLIENTECAT_KEY) ?? \"\";\r\nexport const login = token => {\r\n localStorage.setItem(TOKEN_KEY, token);\r\n};\r\nexport const setEmpresa = empresa => {\r\n localStorage.setItem(EMPRESA_KEY, empresa);\r\n};\r\nexport const setLocal = local => {\r\n localStorage.setItem(LOCAL_KEY, local);\r\n};\r\nexport const removerLocal = () => {\r\n localStorage.removeItem(LOCAL_KEY);\r\n};\r\nexport const setNomeEmpresa = nomeEmpresa => {\r\n localStorage.setItem(NOMEEMPRESA_KEY, nomeEmpresa);\r\n};\r\nexport const setNomeLocal = nomeLocal => {\r\n localStorage.setItem(NOMELOCAL_KEY, nomeLocal);\r\n};\r\nexport const setRegimeTributario = regimeTributario => {\r\n localStorage.setItem(REGIMETRIBUTARIO_KEY, regimeTributario);\r\n};\r\nexport const setNomeUsuario = nomeUsuario => {\r\n localStorage.setItem(NOMEUSUARIO_KEY, nomeUsuario);\r\n};\r\nexport const setIdUsuario = idUsuario => {\r\n localStorage.setItem(IDUSUARIO_KEY, idUsuario);\r\n};\r\nexport const setEmailUsuario = emailUsuario => {\r\n localStorage.setItem(EMAILUSUARIO_KEY, emailUsuario);\r\n};\r\nexport const setTela = tela => {\r\n localStorage.setItem(TELA_KEY, tela);\r\n};\r\nexport const setNavegacao = nav => {\r\n localStorage.setItem(NAVEGACAO_KEY, encodeURIComponent(JSON.stringify(nav)));\r\n};\r\nexport const setPermissoes = perm => {\r\n localStorage.setItem(PERMISSOES_KEY, encodeURIComponent(JSON.stringify(perm)));\r\n};\r\nexport const setStatusPlano = stp => {\r\n localStorage.setItem(STATUSPLANO_KEY, stp);\r\n};\r\nexport const setTelaAnterior = tela => {\r\n localStorage.setItem(TELAANTERIRO_KEY, tela);\r\n};\r\nexport const setEntidadeImp = entidade => {\r\n localStorage.setItem(ENTIDADE_KEY, entidade);\r\n};\r\nexport const removerTelaAnt = () => {\r\n localStorage.removeItem(TELAANTERIRO_KEY);\r\n}\r\nexport const setStatusFilial = ativo => {\r\n localStorage.setItem(STATUSFILIAL_KEY, btoa(ativo));\r\n};\r\nexport const setDadosIntegra = dados => {\r\n localStorage.setItem(DADOS_INTEGRA_KEY, dados);\r\n}\r\nexport const setCnpjEmpresa = cnpj => {\r\n localStorage.setItem(CNPJ_EMPRESA_KEY, cnpj);\r\n}\r\nexport const setClienteCatalogo = cli => {\r\n localStorage.setItem(CLIENTECAT_KEY, cli);\r\n};\r\nexport const setNomeClienteCatalogo = cli => {\r\n localStorage.setItem(NOMECLIENTECAT_KEY, cli);\r\n};\r\nexport const logout = () => {\r\n localStorage.removeItem(TOKEN_KEY);\r\n localStorage.removeItem(EMPRESA_KEY);\r\n localStorage.removeItem(CNPJ_EMPRESA_KEY);\r\n localStorage.removeItem(LOCAL_KEY);\r\n localStorage.removeItem(NOMEEMPRESA_KEY);\r\n localStorage.removeItem(NOMELOCAL_KEY);\r\n localStorage.removeItem(REGIMETRIBUTARIO_KEY);\r\n localStorage.removeItem(NOMEUSUARIO_KEY);\r\n localStorage.removeItem(IDUSUARIO_KEY);\r\n localStorage.removeItem(EMAILUSUARIO_KEY);\r\n localStorage.removeItem(TELA_KEY);\r\n localStorage.removeItem(NAVEGACAO_KEY);\r\n localStorage.removeItem(PERMISSOES_KEY);\r\n localStorage.removeItem(BREADCRUMB_KEY);\r\n localStorage.removeItem(FILTROSRELATORIO_KEY);\r\n localStorage.removeItem(STATUSPLANO_KEY);\r\n localStorage.removeItem(TELAANTERIRO_KEY);\r\n localStorage.removeItem(ENTIDADE_KEY);\r\n localStorage.removeItem(STATUSFILIAL_KEY);\r\n localStorage.removeItem(DADOS_INTEGRA_KEY);\r\n if (window.location.pathname !== '/') window.location = '/';\r\n localStorage.removeItem(CLIENTECAT_KEY);\r\n localStorage.removeItem(NOMECLIENTECAT_KEY);\r\n if (window.location.pathname !== '/') {\r\n if (window.location.href.indexOf('catalogo') > -1 || window.location.href.indexOf(\"login-cliente\") > -1) {\r\n window.location = '/login-cliente';\r\n } else {\r\n window.location = '/';\r\n }\r\n }\r\n};\r\n\r\nexport const getUserInfo = () => {\r\n let token = localStorage.getItem(TOKEN_KEY);\r\n var base64Url = token.split('.')[1];\r\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n\r\n return JSON.parse(jsonPayload);\r\n}\r\n\r\nexport const removeDadosNota = () => {\r\n localStorage.removeItem(DADOS_INTEGRA_KEY);\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Form, Input, Typography, Modal, Button } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, SaveOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { getEmpresa } from \"../../../services/auth\";\r\n\r\nexport default function ModalAdicionarUsuario({ exibirModal, fecharModal, incluirRemoverUsuario }) {\r\n\r\n const [listaLocais, setListaLocais] = useState([]);\r\n const [form] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Realmente deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n form.resetFields();\r\n setListaLocais([]);\r\n }\r\n });\r\n };\r\n\r\n function verificarEmail() {\r\n if (!!form.getFieldValue('usu_email')) {\r\n api.get(`Usuario/Usuario?email=${form.getFieldValue('usu_email')}`).then((retornoEmail) => {\r\n if (!!retornoEmail.data) {\r\n incluirRemoverUsuario({ usu_email: retornoEmail.data.usu_email.endereco }, true, 'Usuário vinculado ao grupo com sucesso!');\r\n fecharModal();\r\n form.resetFields();\r\n setListaLocais([]);\r\n }\r\n }).catch((err) => {\r\n console.log(err.response);\r\n });\r\n }\r\n };\r\n\r\n function listarLocais() {\r\n if (!!form.getFieldValue('usu_email') && !!form.getFieldValue('usu_nome')) {\r\n api.get(`Usuario/ListarLocais?codigoEmpresa=${getEmpresa()}`).then((lista) => {\r\n if (!!lista.data) {\r\n let filiais = [];\r\n lista.data.forEach((local, indice) => {\r\n local.selected = false;\r\n filiais.push(local);\r\n if (indice + 1 === lista.data.length) {\r\n setListaLocais(filiais);\r\n }\r\n });\r\n }\r\n }).catch((err) => {\r\n console.log(err.response);\r\n });\r\n } else {\r\n setListaLocais([]);\r\n }\r\n };\r\n\r\n function selecionarLocal(id) {\r\n let lista = [...listaLocais];\r\n let indice = listaLocais.findIndex((local) => {\r\n return local.loc_id === id;\r\n });\r\n if (indice >= 0) {\r\n lista[indice].selected = !lista[indice].selected;\r\n }\r\n setListaLocais(lista);\r\n };\r\n\r\n function selecionarTodos(checked) {\r\n let lista = [...listaLocais];\r\n lista.forEach((local) => {\r\n local.selected = checked;\r\n });\r\n setListaLocais(lista);\r\n };\r\n \r\n function incluirUsuario(values){\r\n //values.usu_ativo = true;\r\n /*\r\n NÃO IMPLEMENTADO\r\n api.post(`Usuario/Incluir?email=${values.usu_email}&nome=${values.usu_nome}`).then((retornoUsuario) => {\r\n if (!!retornoUsuario.data) {\r\n let informacoesUsuario = {\r\n id: retornoUsuario.data,\r\n nome: values.usu_nome,\r\n email: values.usu_email,\r\n chave: (values.usu_email + \"|\" + values.usu_nome)\r\n }\r\n\r\n }\r\n }, err => {\r\n console.log(err);\r\n });*/\r\n };\r\n\r\n return (\r\n\r\n 0 ?\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n width={720}\r\n maskClosable={false}\r\n >\r\n \r\n \r\n \r\n \r\n Adicione um novo usuário.\r\n \r\n \r\n \r\n \r\n { verificarEmail() }} />\r\n \r\n \r\n \r\n \r\n { listarLocais() }} />\r\n \r\n \r\n \r\n {/*listaLocais.length > 0 &&\r\n
{ selecionarTodos(e.target.checked) }} />,\r\n align: 'center',\r\n render: ({ selected, loc_id }) => (\r\n { selecionarLocal(loc_id) }} />\r\n ),\r\n },\r\n {\r\n title: 'Filial',\r\n align: 'left',\r\n render: ({ loc_id, loc_descricao }) => (\r\n
\r\n {loc_id} - {loc_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CNPJ',\r\n render: ({ loc_cnpj }) => (\r\n
\r\n {loc_cnpj.numero}\r\n
\r\n ),\r\n },\r\n ]\r\n } />\r\n */}\r\n \r\n \r\n\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Row, Col, Form, InputNumber, Select, Button, Tag, Radio, Card, Modal, notification, Input } from \"antd\";\r\nimport { ArrowRightOutlined, ArrowLeftOutlined, ExclamationCircleOutlined, CalculatorOutlined, CloseOutlined, HighlightOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport TextArea from \"rc-textarea\";\r\n\r\nexport default function ModalCalcularLimite({ formulario, exibirModal, setOpenModalCalcular }) {\r\n\r\n const [step, setStep] = useState(0);\r\n const [estadoCivil, setEstadoCivil] = useState([]);\r\n const [mostraRendaConj, setmostraRendaConj] = useState(false);\r\n const [valorsimulado, setvalorsimulado] = useState();\r\n const [listaQuestoes, setListaQuestoes] = useState([]);\r\n const [parametrosEmpresa, setParametrosEmpresa] = useState({});\r\n const [form] = Form.useForm();\r\n const [dadosResposta, setDadosResposta] = useState([]);\r\n const [valores, setValores] = useState({});\r\n\r\n useEffect(() => {\r\n listarEstadoCivil();\r\n buscarQuestoes();\r\n buscarParametrosEmpresa()\r\n }, []);\r\n\r\n /*\r\n const onNext = () => onChange(step + 1);\r\n const onPrevious = () => onChange(step - 1);\r\n const onChange = (nextStep) => {\r\n setStep(nextStep < 0 ? 0 : nextStep > 2 ? 2 : nextStep);\r\n };*/\r\n\r\n function showRendaConjunta(ecv_id) {\r\n if (ecv_id === 2) {\r\n setmostraRendaConj(true);\r\n } else {\r\n setmostraRendaConj(false);\r\n }\r\n }\r\n\r\n function listarEstadoCivil() {\r\n api.get(`EstadoCivil/Listar`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setEstadoCivil(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n function buscarQuestoes() {\r\n api.get(`QuestaoLimiteCredito/Listar`).then(\r\n res => {\r\n setListaQuestoes(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n\r\n function buscarParametrosEmpresa() {\r\n api.get(`ParametroEmpresa/BuscarParametros`).then(\r\n res => {\r\n setParametrosEmpresa(res.data);\r\n }\r\n ).catch(\r\n erro => { console.log(erro); }\r\n )\r\n }\r\n\r\n function adicionarResposta(registro, pergunta) {\r\n let respostas = [...dadosResposta];\r\n let id = registro.target.value;\r\n let dadoPergunta = { ...pergunta };\r\n if (dadoPergunta.qlc_tiporesposta === 2) {\r\n dadoPergunta.respostalimitecreditos = pergunta.respostalimitecreditos.filter(respostas => (respostas.rlc_id === id))[0];\r\n } else {\r\n dadoPergunta.respostalimitecreditos = id;\r\n }\r\n let respEditar = respostas.find((resp) => resp.qlc_id === pergunta.qlc_id);\r\n if (respEditar) {\r\n if (respEditar.qlc_tiporesposta === 2) {\r\n respEditar.respostalimitecreditos = pergunta.respostalimitecreditos.filter(respostas => (respostas.rlc_id === id))[0];\r\n } else {\r\n respEditar.respostalimitecreditos = id;\r\n }\r\n } else {\r\n respostas.push(dadoPergunta);\r\n }\r\n setDadosResposta(respostas);\r\n\r\n\r\n };\r\n\r\n useEffect(() => {\r\n if (!!dadosResposta && dadosResposta.length > 0) {\r\n calculoSimulado()\r\n }\r\n }, [dadosResposta]);\r\n\r\n function calculoSimulado() {\r\n let dados = {\r\n pef_renda: (!!form.getFieldValue().pef_renda ? parseFloat(form.getFieldValue().pef_renda) : 0.0),\r\n pef_rendaconjuge: (!!form.getFieldValue().pef_rendaconjuge ? parseFloat(form.getFieldValue().pef_rendaconjuge) : 0.0),\r\n questionario: dadosResposta\r\n }\r\n let porcentagemBase = ((!!parametrosEmpresa.par_percentuallimitecredito) ? parametrosEmpresa.par_percentuallimitecredito : 30) / 100;\r\n let vlrbase = 0;\r\n let vlrsim = 0.0;\r\n if (!!dadosResposta && dadosResposta.length > 0) {\r\n let porcentagem = 0.0;\r\n dadosResposta.forEach((questao) => {\r\n if (questao.qlc_tiporesposta == 2) {\r\n if (questao.respostalimitecreditos.rlc_somasubtrai == 1) {\r\n porcentagem += (questao.respostalimitecreditos.rlc_percentual / 100);\r\n } else {\r\n porcentagem -= (questao.respostalimitecreditos.rlc_percentual / 100);\r\n }\r\n }\r\n });\r\n\r\n if (!!dados.pef_rendaconjuge) {\r\n vlrbase = (dados.pef_renda + dados.pef_rendaconjuge) * porcentagemBase;\r\n vlrsim = vlrbase * porcentagem;\r\n vlrsim = (porcentagem !== 0) ? vlrbase + (vlrbase * porcentagem) : vlrbase;\r\n } else {\r\n vlrbase = dados.pef_renda * porcentagemBase;\r\n vlrsim = (porcentagem !== 0) ? vlrbase + (vlrbase * porcentagem) : vlrbase;\r\n }\r\n }\r\n\r\n setvalorsimulado(vlrsim);\r\n setValores(dados);\r\n };\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Realmente deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n setOpenModalCalcular(false);\r\n formulario.setFieldsValue({ pef_renda: null, ecv_id: null, pef_rendaconjuge: null });\r\n setDadosResposta({});\r\n setStep(0);\r\n }\r\n });\r\n };\r\n\r\n function salvarLimite() {\r\n let dados = { ...valores };\r\n let pergunta = {};\r\n let resposta = {};\r\n dados.questionario.forEach((q) => {\r\n pergunta.qlc_tiporesposta = q.qlc_tiporesposta;\r\n resposta.rlc_somasubtrai = q.respostalimitecreditos.rlc_somasubtrai;\r\n resposta.rlc_percentual = q.respostalimitecreditos.rlc_percentual;\r\n q.pergunta = pergunta;\r\n q.resposta = resposta;\r\n });\r\n setCarregando(true);\r\n api.post(`AnaliseCredito/GerarLimite`, dados).then(\r\n res => {\r\n formulario.setFieldsValue({ cli_valorlimitecredito: res.data });\r\n // notification.success({ message: 'Operação concluída', description: \"Limite de Crédito foi gerado!\" });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n\r\n formulario.setFieldsValue({ pef_renda: null, ecv_id: null, pef_rendaconjuge: null });\r\n setDadosResposta({});\r\n setStep(0);\r\n setOpenModalCalcular(false);\r\n setCarregando(false);\r\n }\r\n );\r\n };\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n calculoSimulado()} rules={[{ required: true, message: 'Informe a Renda.' }]}>\r\n `R$ ${value}`}\r\n parser={value => value.replace('R$ ', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {mostraRendaConj &&\r\n \r\n `R$ ${value}`}\r\n parser={value => value.replace('R$ ', '')}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${step + 1} / ${listaQuestoes.length}`}\r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n {listaQuestoes.map((questoes, idx) => {\r\n {\r\n return step === idx ?\r\n \r\n {questoes.qlc_tiporesposta === 2 &&\r\n { adicionarResposta(registro, questoes) }}>\r\n {questoes.respostalimitecreditos.map((resposta => (\r\n {resposta.rlc_resposta}\r\n )))}\r\n \r\n }\r\n {questoes.qlc_tiporesposta === 1 &&\r\n { adicionarResposta(registro, questoes) }} rows={4} />\r\n }\r\n : null\r\n }\r\n })}\r\n \r\n \r\n \r\n \r\n {step !== 0 &&\r\n \r\n }\r\n \r\n \r\n {step !== listaQuestoes.length - 1 &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Simulação (R$): {FormatNumber(valorsimulado, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Typography, Form, Input, Checkbox, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../../services/api\";\r\nimport { novaAbaNavegador } from \"../../../services/funcoes\";\r\nimport { MaskFormat, FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalCartaCorrecaoNotaFiscal({ dadosNota = {}, exibirModal, fecharModal }) {\r\n const [form] = Form.useForm();\r\n const [exibeCondicoes, setExibeCondicoes] = useState(true);\r\n const retornoProcessamento = {\r\n cancelamentoNfeHomologado: 101,\r\n eventoRegistradoEVinculadoANfe: 135\r\n }\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const salvarDados = record => {\r\n let dados = { ...dadosNota };\r\n\r\n dados.textoCorrecao = form.getFieldValue().textoCorrecao;\r\n if (!!dados.textoCorrecao) {\r\n if (dados.textoCorrecao.length >= 15) {\r\n api.post('NotaFiscal/EmitirCartaCorrecao', dados).then(\r\n res => {\r\n if (!!res.data) {\r\n let mensagemCancelamento = res.data.retorno.retEvento[0].infEvento.cStat + \"-\" + res.data.retorno.retEvento[0].infEvento.xMotivo;\r\n if (res.data.retorno.retEvento[0].infEvento.cStat == retornoProcessamento.eventoRegistradoEVinculadoANfe) {\r\n if (!!res.data.retorno.retEvento[0].infEvento.chNFe) {\r\n novaAbaNavegador(`Danfe/GerarCce?chaveNFe=${res.data.retorno.retEvento[0].infEvento.chNFe}&sequenciaEvento=${res.data.retorno.retEvento[0].infEvento.nSeqEvento}`);\r\n }\r\n notification.success({ description: mensagemCancelamento, message: `Carta de correção eletrônica referente a NF-e Nº: ${dadosNota.ntf_numero} vinculada com sucesso !` });\r\n } else {\r\n notification.warning({ description: mensagemCancelamento, message: `Não foi possível vincular a carta de correção eletrônica da NF-e Nº: ${dadosNota.ntf_numero}, verefique os erros ocorridos!` });\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n fecharModal();\r\n }\r\n );\r\n } else {\r\n notification.warning({ description: 'O tamanho mínimo da carta de correção é de 15 caracteres', message: 'Aviso' });\r\n }\r\n } else {\r\n notification.warning({ description: 'O tamanho mínimo da carta de correção é de 15 caracteres', message: 'Aviso' });\r\n }\r\n };\r\n\r\n return (\r\n \r\n Emitir Carta de Correção\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n destroyOnClose\r\n >\r\n
\r\n
\r\n \r\n
\r\n Chave da NF-e: {dadosNota.ntf_chavenfe} \r\n \r\n \r\n \r\n \r\n Destinatário: {dadosNota.ntf_nomedest} \r\n \r\n \r\n CPF/CNPJ: {MaskFormat(dadosNota.ntf_cnpjcpfdest, '', true)}\r\n \r\n \r\n \r\n \r\n Modelo: {dadosNota.ntf_modelo}\r\n \r\n \r\n Emitida em: {moment(dadosNota.ntf_dataemissao).format('DD/MM/YYYY HH:mm:ss')}\r\n \r\n \r\n \r\n \r\n Tipo de Nota: {dadosNota.tip_descricao}\r\n \r\n \r\n Valor total da Nota (R$): {FormatNumber(dadosNota.valor_total, true)} \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { setExibeCondicoes(!exibeCondicoes) }}> Visualizar Condições de uso da Carta de Correção \r\n \r\n \r\n \r\n \r\n \r\n {exibeCondicoes &&
\r\n \r\n A Carta de Correção é disciplinada pelo § 1º-A do art. 7º do Convênio S/ N, de 15 de dezembro de 1970 e pode ser utilizada para regularização de erro ocorrido na emissão de documento fiscal, desde que o erro não esteja relacionado com:\r\n

\r\n I - as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade,\r\n valor da operação ou da prestação;
\r\n II - a correção de dados cadastrais que implique mudança do remetente ou do destinatário;
\r\n III - a data de emissão ou de saída.\r\n
\r\n
}\r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Checkbox, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../../actions\";\r\nimport { useStateValue } from \"../../../state\";\r\n\r\nexport default function ModalCfop({ exibirModal, fecharModal, formulario, adicionarCfop, listaDestinoOperacao, listaCategoriaOperacao }) {\r\n const [{ listaSelectPaginacao }, dispatch] = useStateValue();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (exibirModal && !!formulario) {\r\n var lista = [];\r\n if (!!formulario.getFieldValue().cfo_id) {\r\n lista.push({ name: \"cfo_id\", campo: \"Id\", value: formulario.getFieldValue().cfo_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }, [exibirModal]);\r\n\r\n function retornaDadosCFOP(values) {\r\n let listaDados = [...listaSelectPaginacao.itens];\r\n let dados = listaDados.find(o => o.cfo_id == values.cfo_id);\r\n values.cfo_cfop = dados.cfo_cfop;\r\n values.cfo_descricao = dados.cfo_descricao;\r\n adicionarCfop(values);\r\n };\r\n\r\n\r\n return (\r\n\r\n { formulario.submit() }}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n destroyOnClose\r\n maskClosable={false}\r\n width={700}\r\n >\r\n
\r\n
retornaDadosCFOP(values)} initialValues={{ remember: true }}>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n {item.cfo_cfop} - {item.cfo_descricao}\r\n )} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Radio, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined} from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { info } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalContaGerencial({ formContaGerencial, formulario, exibirModalContaGerencial, fecharModalContaGerencial, listaConfigContaGerencial, setListaConfigContaGerencial }) {\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalContaGerencial();\r\n }\r\n });\r\n };\r\n\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n\r\n const listaTipo = [\r\n { 'value': 1, 'label': 'Juros Recebidos' },\r\n { 'value': 2, 'label': 'Juros Pagos' },\r\n { 'value': 3, 'label': 'Descontos Obtidos' },\r\n { 'value': 4, 'label': 'Descontos Concedidos' },\r\n { 'value': 5, 'label': 'Multas Pagas' },\r\n { 'value': 6, 'label': 'Multas Recebidas' }\r\n ];\r\n\r\n useEffect(() => {\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?filtro=&PageNumber=1&PageSize=1000`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false && item.nivel === 0}));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n })\r\n }, []);\r\n\r\n function adicionarConfig(values) {\r\n let listaTemp = [...listaConfigContaGerencial];\r\n\r\n if (listaTemp.filter(item => { return item.cgc_tipo === values.cgc_tipo }).length > 0) {\r\n info('Operação não permitida! Registro já existente para o tipo de valor selecionado!');\r\n return;\r\n }\r\n\r\n\r\n\r\n if (!!values.key) {\r\n let index = listaTemp.findIndex(i => i.key === values.key);\r\n listaTemp.splice(index, 1);\r\n } else {\r\n values.key = listaTemp.length + 1;\r\n }\r\n values.cgc_descricaoTipo = listaTipo.filter(item => { return item.value === values.cgc_tipo })[0].label;\r\n values.cgc_descricaocontadestino = listaContaGerencial.filter(item => { return item.ctg_id === values.cgc_contagerencialdestino })[0].ctg_descricao;\r\n values.ctg_id = formContaGerencial.getFieldValue()?.ctg_id;\r\n\r\n listaTemp.push(values);\r\n setListaConfigContaGerencial(listaTemp);\r\n fecharModalContaGerencial();\r\n };\r\n\r\n return (\r\n { formulario.submit() }}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n destroyOnClose \r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {listaTipo.map(item => (\r\n \r\n \r\n {item.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tabs, Tag, Modal, Divider, Table } from \"antd\";\r\nimport { ArrowUpOutlined, ArrowDownOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../../services/api';\r\nimport { FormatFone } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalContatoCliente({ exibirModalContatoCliente, fecharModalContatoCliente, PessoaId }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [dados, setDados] = useState({});\r\n\r\n const onCloseModal = () => {\r\n fecharModalContatoCliente();\r\n };\r\n useEffect(() => {\r\n BuscarDadosCliente(PessoaId);\r\n }, [exibirModalContatoCliente]);\r\n\r\n async function BuscarDadosCliente(IdPessoa) {\r\n if (!!IdPessoa) {\r\n var dadosCliente;\r\n await api.get(`Cliente/BuscarByIdPessoa/${IdPessoa}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n if (!!res.data) {\r\n dadosCliente = res.data;\r\n setDados(res.data)\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n return (\r\n \r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n
\r\n
(\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ tpt_descricao }) => (\r\n
\r\n {tpt_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ramal',\r\n render: ({ psc_ramal }) => (\r\n
\r\n {psc_ramal}\r\n
\r\n ),\r\n },\r\n ]\r\n } locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n
\r\n {pem_email}\r\n \r\n \r\n \r\n E-mail principal\r\n \r\n \r\n \r\n \r\n NF-e\r\n \r\n \r\n \r\n \r\n Cobrança\r\n \r\n \r\n \r\n \r\n Promoção\r\n \r\n \r\n \r\n \r\n Vencimento de Parcela\r\n \r\n \r\n \r\n \r\n Boleto\r\n \r\n \r\n \r\n\r\n \r\n ),\r\n },\r\n ]\r\n } locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n
\r\n {toc_descricao}\r\n \r\n \r\n {out_descricao}\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport moment from 'moment';\r\nimport { Row, Col, Form, TimePicker, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalDefinirHorario({ id, onSave, exibirModal, fecharModal }) {\r\n\r\n const [form] = Form.useForm();\r\n const format = 'HH:mm';\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const onSaveModal = (values) => {\r\n onSave(id, false, false, values.horaInicial, values.horaFinal);\r\n fecharModal();\r\n }\r\n\r\n return (\r\n form.submit()}\r\n okText={\r\n <>\r\n Definir\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('horaInicial') < value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('Horário final não pode ser menor que o inicial.'));\r\n },\r\n\r\n })\r\n ]}\r\n label=\"Até\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Form, Input, Checkbox, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalEmail({ form, listaEmail, exibirModalEmail, fecharModalEmail }) {\r\n\r\n const onFinish = values => {\r\n if (!validarEmail(values.pem_email)) {\r\n notification.info({ message: 'Favor informar um e-mail válido!' })\r\n } else {\r\n let indice = values.indice;\r\n delete values.indice;\r\n let lista = [...listaEmail.dadosEmail];\r\n if (indice >= 0) {\r\n lista[indice] = values;\r\n } else {\r\n let verificaEmailAdd = lista.filter(e => e.pem_email === form.getFieldValue().pem_email);\r\n if (verificaEmailAdd.length > 0) {\r\n fecharModalEmail();\r\n notification.info({ message: 'E-mail já adicionado!' });\r\n } else {\r\n if (lista.length > 0) {\r\n values.pem_emailprincipal = false;\r\n } else {\r\n values.pem_emailprincipal = true;\r\n }\r\n lista.push(values);\r\n }\r\n }\r\n listaEmail.setDadosEmail(lista);\r\n fecharModalEmail();\r\n }\r\n };\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalEmail();\r\n }\r\n });\r\n };\r\n\r\n function validarEmail(email) {\r\n let reg = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n return reg.test(email);\r\n };\r\n\r\n return (\r\n {\r\n form.resetFields();\r\n onCloseModal();\r\n }}\r\n onOk={() => form.submit()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n E-mail Ativo?\r\n \r\n \r\n \r\n \r\n E-mail Principal?\r\n \r\n \r\n \r\n \r\n Enviar NF-e?\r\n \r\n \r\n \r\n \r\n Enviar Carta de Cobrança?\r\n \r\n \r\n \r\n \r\n Enviar Promoção?\r\n \r\n \r\n \r\n \r\n Enviar Boleto?\r\n \r\n \r\n \r\n \r\n Enviar Vencimento Parcela?\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Typography, Modal } from \"antd\";\r\nimport { CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport { SelecoesEmpresa } from \"../../../pages/login/pages\";\r\nimport { getNomeEmpresa, getNomeLocal, getStatusFilial } from '../../../services/auth';\r\n\r\nexport default function ModalEmpresaFilial({ exibirModalEmpresaFilial, fecharModalEmpresaFilial }) {\r\n\r\n const onCloseModal = () => {\r\n fecharModalEmpresaFilial()\r\n };\r\n\r\n return (\r\n\r\n \r\n Alterar Acesso\r\n \r\n }\r\n footer={null}\r\n maskClosable={false}\r\n >\r\n \r\n \r\n \r\n Você está acessando: {`${getNomeEmpresa()} / ${getNomeLocal()}${!getStatusFilial() ? ' (INATIVO)' : ''}`}\r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Typography, Modal, notification, Form, Select } from 'antd';\r\nimport { CloseOutlined, PlusOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport { getNomeEmpresa, getNomeLocal, getStatusFilial } from '../../../services/auth';\r\nimport { FormGW, SelectPaginacao } from \"../../../components\";\r\nimport api from \"../../../services/api\";\r\n\r\n\r\nimport { selectPaginadoActions } from \"../../../actions\";\r\nimport { useStateValue } from \"../../../state\";\r\n\r\nexport default function ModalEmpresaFilialBusca({ exibirModalEmpresaFilial, fecharModalEmpresaFilial, relatorio, rels, form }) {\r\n\r\n const [codigoEmpresa, setCodigoEmpresa] = useState(null);\r\n const [codigoLocal, setCodigoLocal] = useState(null);\r\n const [relNovo, setRelNovo] = useState();\r\n const [{ manutencao, listaSelectPaginacao }, dispatch] = useStateValue();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModalEmpresaFilial();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldValue()?.emp_id) {\r\n setCodigoEmpresa(form.getFieldValue()?.emp_id);\r\n carregarLocais(form.getFieldValue()?.emp_id);\r\n }\r\n\r\n }, [form.getFieldValue().emp_id]);\r\n\r\n useEffect(() => {\r\n if (!!codigoLocal) {\r\n carregarDadosEmpresa();\r\n }\r\n }, [codigoLocal]);\r\n\r\n function carregarDadosEmpresa() {\r\n var rel = {};\r\n rel.Nome = relatorio.nome;\r\n rel.emp_id = codigoEmpresa;\r\n rel.loc_id = !codigoLocal ? 0 : codigoLocal;\r\n rel.QuantidadeColuna = relatorio.quantidadeColuna;\r\n rel.JsonRelatorio = relatorio.jsonRelatorio;\r\n setRelNovo(rel);\r\n }\r\n\r\n function carregarLocais(codEmpresa) {\r\n let lista = [];\r\n lista.push({ name: \"filial\", campo: \"codigoEmpresa\", value: codEmpresa });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n\r\n function onFinish () {\r\n api.post(`RelatorioModeloEtiqueta/Incluir`, relNovo).then(\r\n res => {\r\n notification.warning({ description: 'Modelo de etiqueta enviado com sucesso!', message: 'Aviso' });\r\n form.resetFields();\r\n fecharModalEmpresaFilial(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n return (\r\n\r\n {\r\n form.resetFields();\r\n onCloseModal();\r\n }}\r\n onOk={() => //form.submit()\r\n onFinish()\r\n }\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n \r\n
\r\n \r\n Você está acessando: {`${getNomeEmpresa()}/ ${getNomeLocal()}${!getStatusFilial() ? ' (INATIVO)' : ''}`}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Relatório: {`${rels}`} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {\r\n setCodigoEmpresa(value);\r\n }} order=\"emp_razaosocial\"\r\n conteudo={\r\n e => ({e.emp_nomefantasia}
Razao Social: {e.emp_razaosocial}
)\r\n } />\r\n
\r\n \r\n \r\n {form.getFieldValue()?.emp_id && \r\n \r\n \r\n setCodigoLocal(valor)} conteudo={Local => (\r\n {Local.loc_descricao}{!Local.loc_ativo ? ' (INATIVO)' : ''}\r\n )} />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n\r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Select, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport { listagemActions, manutencaoActions, selectPaginadoActions } from \"../../../actions\";\r\nimport api from \"../../../services/api\";\r\nimport { FormGW, InputCep, SelectPaginacao } from \"../../../components\";\r\nimport SelectPaginado from \"../../selectPaginado\";\r\nimport { useStateValue } from \"../../../state\";\r\n\r\nexport default function ModalEndereco({ form, listaEndereco, exibirModalEndereco, fecharModalEndereco, exibirPais = true, produtorRural = false }) {\r\n const [{ ui, manutencao, selectPaginado }, dispatch] = useStateValue();\r\n const [cidade, setCidade] = useState({});\r\n const [isEstrangeiro, setIsEstrangeiro] = useState(false);\r\n\r\n useEffect(() => {\r\n if (exibirModalEndereco) {\r\n let lista = [];\r\n if (form.getFieldValue().indice >= 0) {\r\n if (!!form.getFieldValue().pse_id) {\r\n lista.push({ name: \"pse_id\", campo: \"pse_id\", value: form.getFieldValue().pse_id });\r\n }\r\n } else {\r\n lista.push({ name: \"pse_id\", campo: \"Sigla\", value: \"BR\" });\r\n }\r\n\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n\r\n }, [exibirModalEndereco]);\r\n\r\n async function onFinish(values) {\r\n let lista = [...listaEndereco.dadosEndereco];\r\n let indice = values.indice;\r\n if (values.log_logradouro.length <= 3) {\r\n notification.warning({ message: 'Aviso!', description: 'Logradouro deve conter mais de 3 caracteres!' });\r\n return false;\r\n }\r\n delete values.indice;\r\n values.pse_nome = !!values.pse_id ? form.getFieldValue().pse_nome : '';\r\n\r\n values.cid_descricao = !!values.cid_nome ? values.cid_nome : form.getFieldValue().cid_descricao;\r\n values.pee_ativo = true;\r\n if (listaEndereco.dadosEndereco.length === 0) {\r\n values.pee_enderecoprincipal = true;\r\n }\r\n values.uf = values.est_sigla;\r\n values.logradouro = values.log_logradouro;\r\n values.enderecoCompleto = values.log_logradouro + ',' + values.pee_numero + '-' + values.bai_nome + '-' + values.pee_complemento + '-' + values.cep_cep + '-' + values.cid_descricao + '-' + values.est_sigla;\r\n let tipoEnd = await listarTpEndereco(values.tpe_id);\r\n values.tpe_descricao = tipoEnd.tpe_descricao\r\n if (!isEstrangeiro) {\r\n values.cep_id = cidade.cep_id;\r\n } else {\r\n values.bai_id = null;\r\n values.cep_id = null;\r\n values.cid_id = null;\r\n values.uf = \"\";\r\n }\r\n\r\n values.pais = await listarPais(values.pse_id);\r\n if (indice >= 0) {\r\n lista[indice] = values;\r\n } else {\r\n lista.push(values);\r\n }\r\n listaEndereco.setDadosEndereco(lista);\r\n form.resetFields();\r\n fecharModalEndereco();\r\n };\r\n\r\n async function listarPais(pseId) {\r\n let req = await api.get(`Pais/BuscarPorId/${pseId}`);\r\n if (req.status === 200 && !!req.data) {\r\n return req.data;\r\n }\r\n return {};\r\n }\r\n\r\n async function listarTpEndereco(tpeId) {\r\n let req = await api.get(`TipoEndereco/Listar?Filtro=${tpeId}`);\r\n if (req.status === 200 && !!req.data) {\r\n return req.data.items[0];\r\n }\r\n return {};\r\n }\r\n\r\n\r\n const verificaCep = (cep) => {\r\n cep = cep?.replaceAll(/\\D/g, '');\r\n if (!!cep) {\r\n if (cep.length == 8) {\r\n api.get(`Cidade/BuscaCidadeCep?cep=${cep}`).then(res => {\r\n if (res.status === 200) {\r\n form.setFieldsValue({ cid_descricao: res.data.length > 0 ? res.data[0].cid_descricao : '' })\r\n setCidade(res.data[0]);\r\n form.setFieldsValue({ est_sigla: res.data.length > 0 ? res.data[0].est_sigla : '' });\r\n form.setFieldsValue({ pse_id: res.data.length > 0 ? res.data[0].pse_id : '' });\r\n form.setFieldsValue({ bai_nome: res.data.length > 0 ? res.data[0].bai_nome : '' });\r\n form.setFieldsValue({ log_logradouro: res.data.length > 0 ? res.data[0].log_logradouro : '' });\r\n let lista = [];\r\n if (!!res.data[0].pse_id) {\r\n lista.push({ name: \"pse_id\", campo: \"pse_id\", value: res.data[0].pse_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n form.setFieldsValue({ cep_cep: '' });\r\n setFocusCep();\r\n notification.warning({ message: 'Aviso!', description: 'Não foi possível realizar consulta no Postmon do Cep informado!' });\r\n }\r\n );\r\n } else {\r\n form.setFieldsValue({ cep_cep: '' });\r\n setFocusCep();;\r\n notification.warning({ message: 'Aviso!', description: 'Cep informado é inválido!' });\r\n }\r\n }\r\n };\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalEndereco();\r\n }\r\n });\r\n };\r\n\r\n\r\n useEffect(() => {\r\n verificaCep(form.getFieldValue().cep_cep);\r\n }, [form.getFieldValue().cep_cep])\r\n\r\n const inputRef = React.createRef();\r\n useEffect(() => {\r\n setTimeout(() => {\r\n // if (!!inputRef.current) {\r\n // inputRef.current.focus({ cursor: 'end', })\r\n // };\r\n setFocusCep();\r\n }, 500);\r\n }, [exibirModalEndereco, inputRef.current]);\r\n\r\n function setFocusCep(){\r\n try {\r\n let element = document.getElementById(\"cep_cep\");\r\n if (element) {\r\n element.focus();\r\n }\r\n } catch (error) {\r\n console.log('error :>> ', error);\r\n }\r\n }\r\n\r\n async function alterarStatusEstrangeiro(pse_id) {\r\n if (!!pse_id) {\r\n let pais = (await api.get(`Pais/BuscarPorId/${pse_id}`)).data;\r\n if (!!pais && pais.pse_codigobacen != \"1058\") {\r\n setIsEstrangeiro(true);\r\n } else {\r\n setIsEstrangeiro(false);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n {\r\n form.resetFields();\r\n onCloseModal();\r\n }}\r\n onOk={() => form.submit()}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n destroyOnClose\r\n >\r\n
\r\n \r\n
\r\n \r\n alterarStatusEstrangeiro(value)} conteudo={\r\n pse => ({pse.pse_nome})\r\n } />\r\n \r\n }\r\n {!isEstrangeiro && \r\n verificaCep(cep.target.value)} onPressEnter={(cep) => verificaCep(cep.target.value)} />\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {!isEstrangeiro && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({te.tpe_descricao})\r\n } />\r\n \r\n \r\n {!!produtorRural &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Form, Select, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from '@ant-design/icons';\r\n\r\nimport Data from '../../data';\r\nimport api from '../../../services/api';\r\nimport { useStateValue } from '../../../state';\r\nimport SelectPaginado from \"../../../components/selectPaginado\";\r\n\r\nexport default function ModalGerarComissao({ exibirModal, fecharModal, dadosModal }) {\r\n \r\n const [formGerarComissao] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n \r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!dadosModal.dataInicial) {\r\n formGerarComissao.setFieldsValue({ dataInicial: dadosModal.dataInicial });\r\n }\r\n if (!!dadosModal.dataFinal) {\r\n formGerarComissao.setFieldsValue({ dataFinal: dadosModal.dataFinal });\r\n }\r\n }, [dadosModal]);\r\n\r\n\r\n function salvarDados() {\r\n if (!(!!formGerarComissao.getFieldValue().dataInicial)) {\r\n notification.warning({ message: 'Data inicial inválida', description: \"Favor informar uma data inicial válida!\" });\r\n } else if (!(!!formGerarComissao.getFieldValue().dataFinal)) {\r\n notification.warning({ message: 'Data final inválida', description: \"Favor informar uma data final válida!\" });\r\n } else if (!(!!formGerarComissao.getFieldValue().ven_id)) {\r\n notification.warning({ message: 'Vendedor selecionado inválido', description: \"Favor informar uma vendedor válido!\" });\r\n } else {\r\n api.get(`Comissao/RecalcularComissao?dataFinal=${formGerarComissao.getFieldValue().dataFinal.format('YYYY-MM-DD')}&dataInicial=${formGerarComissao.getFieldValue().dataInicial.format('YYYY-MM-DD')}&idVendedor=${formGerarComissao.getFieldValue().ven_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n if (res.data) {\r\n Modal.success({\r\n content: 'Comissão gerada com sucesso!',\r\n });\r\n }else{\r\n Modal.warning({\r\n content: 'Não foi possível gerar a comissão!',\r\n });\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n fecharModal();\r\n }\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n Gerar Comissão\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n ({ven.ven_id} - {ven.pes_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Form, Input, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, CloudUploadOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { novaAbaNavegador } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalExibirAcaoUsuario({ dadosModal, exibirModal, fecharModal }) {\r\n\r\n const onCloseModal = () => {\r\n fecharModal();\r\n };\r\n\r\n return (\r\n \r\n Fechar\r\n \r\n }\r\n maskClosable={false}\r\n destroyOnClose\r\n >\r\n
\r\n \r\n \r\n {JSON.stringify(dadosModal.data)}\r\n \r\n \r\n \r\n
\r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Modal, Card } from \"antd\";\r\nimport { ExclamationCircleOutlined, DownloadOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { linkApi } from \"../../../services/auth\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalGerarRemessa({ exibirModalGerarRemessa, fecharModalGerarRemessa, dadosSelecionados, download }) {\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalGerarRemessa();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n Download\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n Informações\r\n \r\n \r\n Valor Total (R$)\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosSelecionados.ban_descricao}\r\n \r\n \r\n Quant. Boletos: {dadosSelecionados.rem_qtdeboletos}\r\n \r\n \r\n \r\n \r\n {FormatNumber(dadosSelecionados.rem_valortotal, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Typography, Select, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\n\r\nexport default function ModalInstrucaoRemessa({ exibirModalInstrucaoRemessa, fecharModalInstrucaoRemessa, form, parcela, onOk }) {\r\n\r\n const [listaInstrucao, setListaInstrucao] = useState([]);\r\n const [formInstrucao] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalInstrucaoRemessa();\r\n }\r\n });\r\n };\r\n\r\n function onFinish(values){ \r\n let isp_codigo = listaInstrucao.find((instrucao) => {return instrucao.isp_id === values.isp_id}).isp_codigo;\r\n onOk(isp_codigo);\r\n };\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldValue().ban_id || !!parcela && exibirModalInstrucaoRemessa) {\r\n let banco = !!form.getFieldValue().ban_id ? form.getFieldValue().ban_id : parcela.ban_id;\r\n api.get(`InstrucaoBoleto/Listar?Descricao=${banco}`).then((res) => {\r\n if (res.status === 200) {\r\n setListaInstrucao(res.data);\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n }, [exibirModalInstrucaoRemessa]);\r\n\r\n return (\r\n formInstrucao.submit()}\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n okText={\r\n <>\r\n Ok\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
{onFinish(values)}}>\r\n \r\n
\r\n \r\n Abaixo informe a Instrução que deseja realizar.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n `R$ ${value}`}\r\n parser={value => value.replace('R$ ', '')}\r\n />\r\n \r\n */}\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Select, Modal } from \"antd\";\r\nimport { CheckOutlined, ExclamationCircleOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport api from \"../../../services/api\";\r\n\r\nimport SelectPaginado from \"../../../components/selectPaginado\";\r\n\r\nexport default function ModalInutilizacaoNfe({ exibirModal, fecharModal }) {\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ justificativa: 'Solicitada a inutilização dos números de NF-e da respectiva série fiscal pois a numeração não foi utilizada por motivo de rejeição de NF-e ou falha no processo de emissão do sistema.' });\r\n }, []);\r\n\r\n const [formulario] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n function validarNumeracao(values) {\r\n let qtdNumero = parseInt(values.nroFinal) - parseInt(values.nroInicial);\r\n if (parseInt(values.nroInicial) == 0 || parseInt(values.nroFinal) == 0) {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
Número Inicial e Final devem ser diferente de 0!
\r\n
\r\n \r\n ),\r\n });\r\n } else if (qtdNumero < 0) {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
Número Inicial é menor que número final!
\r\n
\r\n \r\n ),\r\n });\r\n } else if (qtdNumero > 50) {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Tem certeza que deseja inutilizar uma faixa de ' + qtdNumero + ' Notas ?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n solicitarInutilizacaoNumeracao(values);\r\n fecharModal();\r\n }\r\n });\r\n } else {\r\n solicitarInutilizacaoNumeracao(values);\r\n }\r\n };\r\n\r\n function solicitarInutilizacaoNumeracao(values) {\r\n let inutilizacao = {\r\n ser_id: values.ser_id,\r\n numeroInicial: parseInt(values.nroInicial),\r\n numeroFinal: parseInt(values.nroFinal),\r\n justificativa: values.justificativa\r\n };\r\n\r\n api.post(`NotaFiscal/InutilizarPorFaixa`, inutilizacao).then((dados) => {\r\n console.log(\"dados inutilizados\", dados);\r\n if (dados.status === 200) {\r\n if (dados.data.retorno.cStat == 241) {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
{`Números solicitados para Inutilização: ${dados.data.retorno.infInut.nNFIni} até ${dados.data.retorno.infInut.nNFFin}`}
\r\n
\r\n
{`Série: ${dados.data.retorno.infInut.serie}`}
\r\n
\r\n
{`Motivo : ${dados.data.retorno.xMotivo}`}
\r\n \r\n ),\r\n });\r\n } else {\r\n Modal.success({\r\n title: 'Inutilização de Número Homologada!',\r\n content: (\r\n <>\r\n
{`Números Inutilizados: ${dados.data.retorno.infInut.nNFIni} até ${dados.data.retorno.infInut.nNFFin}`}
\r\n
\r\n
{`Série: ${dados.data.retorno.infInut.serie}`}
\r\n
\r\n
{`Protocolo: ${dados.data.retorno.infInut.nProt}`}
\r\n \r\n ),\r\n });\r\n }\r\n } else {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
Não foi possível realizar a inutilização
\r\n
\r\n
{JSON.stringify(dados.data)}
\r\n \r\n ),\r\n });\r\n }\r\n }, err => {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: (\r\n <>\r\n
Não foi possível realizar a inutilização
\r\n
\r\n
{JSON.stringify(err.Message)}
\r\n \r\n ),\r\n });\r\n }).finally(() => {\r\n fecharModal();\r\n });\r\n };\r\n\r\n return (\r\n formulario.submit()}\r\n okText={\r\n <>\r\n Solicitar Inutilização\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n ({serie.ser_serie})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, InputNumber, Checkbox, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport InputPreco from \"../../inputPreco\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\nimport { manutencaoActions } from \"../../../actions\";\r\nimport { useStateValue } from \"../../../state\";\r\n\r\nexport default function ModalListaPreco({ form, listaPreco, setListaPreco, exibirModal, fecharModal }) {\r\n const [{ listaSelectPaginacao }, dispatch] = useStateValue();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const salvarListaDePreco = () => {\r\n const newData = [...listaPreco];\r\n let values = form.getFieldsValue();\r\n if (!!form.getFieldValue().key || form.getFieldValue().key === 0) {\r\n let item = newData.filter((item) => (item.key === values.key))[0];\r\n item.lpi_valorvenda = values.lpi_valorvenda;\r\n item.lpi_perccomissao = values.lpi_perccomissao;\r\n item.lpi_naocalculacomissao = values.lpi_naocalculacomissao;\r\n } else {\r\n let listasPrecos = [...listaSelectPaginacao.itens];\r\n let nomeLista = listasPrecos.find(t => t.ltp_id === values.ltp_id);\r\n values.ltp_nome = nomeLista.ltp_nome;\r\n values.ltp_principal = false;\r\n values.key = newData.length;\r\n newData.push(values);\r\n }\r\n setListaPreco(newData);\r\n fecharModal();\r\n };\r\n\r\n function verificaListaPrecoExistente(lp) {\r\n let dados = {};\r\n dados = listaPreco.filter(l => l.ltp_id === lp);\r\n form.setFieldsValue(dados[0]);\r\n };\r\n\r\n return (\r\n \r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {\r\n verificaListaPrecoExistente(lp);\r\n }}\r\n placeholder=\"Selecione uma Lista\"\r\n conteudo={(l) => ({l.ltp_nome})}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n Não Calcula Comissão?\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Modal, Form, Row, Col, Input, notification } from \"antd\";\r\nimport { SaveOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\"\r\nimport { Data, InputPreco } from \"../../../components\";\r\nimport moment from \"moment\";\r\n\r\nexport default function ModalLoteProduto({ form, exibirModal, fecharModal, listaLote, setListaLote, editando, sequencia, casaDecimaisUnd }) {\r\n\r\n useEffect(() => {\r\n if (!!editando) {\r\n let listaTemp = listaLote.find(x => x.ordem == sequencia);\r\n\r\n form.setFieldsValue({\r\n ordem: listaTemp.ordem,\r\n prl_dataentrada: listaTemp.prl_dataentrada,\r\n prl_datafabricacao: listaTemp.prl_datafabricacao,\r\n prl_datavencimento: listaTemp.prl_datavencimento,\r\n prl_numerolote: listaTemp.prl_numerolote,\r\n prl_qtde: listaTemp.prl_qtde,\r\n prl_infoadicional: listaTemp.prl_infoadicional\r\n });\r\n } else {\r\n form.resetFields();\r\n }\r\n if (!!exibirModal && !editando) {\r\n let listaLoteLength = listaLote ? listaLote.length : 0;\r\n form.setFieldsValue({ ordem: listaLoteLength + 1 });\r\n }\r\n }, [exibirModal, editando]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModal();\r\n }\r\n })\r\n }\r\n\r\n const salvarLote = () => {\r\n let dados = [];\r\n let lista = [...listaLote];\r\n dados = form.getFieldValue();\r\n\r\n if (dados.prl_numerolote === undefined || dados.prl_dataentrada === undefined || dados.prl_datafabricacao === undefined || dados.prl_datavencimento === undefined) {\r\n notification.warning({ message: 'Aviso!', description: 'Preencha os campos obrigatórios.' });\r\n return\r\n }\r\n if (dados.prl_qtde <= 0 && dados.prl_qtde != undefined) {\r\n notification.warning({ message: 'Aviso!', description: 'Quantidade não pode ser menor ou igual a 0' });\r\n return\r\n }\r\n if (moment(dados.prl_datafabricacao).isAfter(moment(new Date()))) {\r\n notification.warning({ message: 'Aviso!', description: 'Data de Fabricação não pode ser maior que data atual' });\r\n return\r\n }\r\n\r\n if (editando) {\r\n const index = lista.findIndex(item => item.ordem === sequencia);\r\n if (index !== -1) {\r\n lista[index] = dados;\r\n setListaLote(lista);\r\n }\r\n } else {\r\n lista.push(dados);\r\n setListaLote(lista);\r\n }\r\n\r\n form.resetFields();\r\n\r\n fecharModal();\r\n }\r\n\r\n return (\r\n \r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Qtde\r\n \r\n } name=\"prl_qtde\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Radio, Form, Input, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../../services/api\";\r\nimport { getLocal } from \"../../../services/auth\";\r\nimport { FormatNumber, MaskFormat } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalManifestoDestinatario({ exibirModal, fecharModal, dadosNota }) {\r\n\r\n const [formulario] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ tipoManifesto: dadosNota.tipoManifesto });\r\n }, [dadosNota]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n function retornaDescricaoManifestoDestinatario(nfd_manifestodestinatario) {\r\n switch (nfd_manifestodestinatario) {\r\n case 0:\r\n return 'Ciência da Emissão';\r\n case 1:\r\n return 'Confirmação da Operação';\r\n case 2:\r\n return 'Operação não Realizada';\r\n case 3:\r\n return 'Desconhecimento da Operação';\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n function manifestarNota() {\r\n let justificativa = !!formulario.getFieldValue().justificativa ? formulario.getFieldValue().justificativa : '';\r\n api.post(`NotaFiscal/ManifestarNfe?TipoManifesto=${formulario.getFieldValue().tipoManifesto}&ChaveNfe=${dadosNota.nfd_chavenfe}&Justificativa=${justificativa}`).then(\r\n (res) => {\r\n if (res.data.retorno.cStat === 128) {\r\n if (res.data.retorno.retEvento[0].infEvento.cStat === 135) {\r\n notification.success({ description: res.data.retorno.retEvento[0].infEvento.xMotivo, message: `Manifestação do Destinatário` });\r\n } else {\r\n notification.error({ description: res.data.retorno.retEvento[0].infEvento.xMotivo, message: `Manifestação do Destinatário` });\r\n }\r\n } else {\r\n setCarregando(false);\r\n notification.error({ description: res.data.retorno.xMotivo, message: `Manifestação do Destinatário` });\r\n }\r\n }\r\n ).finally(() => {\r\n fecharModal();\r\n });\r\n };\r\n\r\n return (\r\n \r\n Realizar Manifestação\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n width={720}\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n Chave da NF-e: {dadosNota.nfd_chavenfe}\r\n \r\n \r\n \r\n \r\n Nota Emitida por: {dadosNota.nfd_nomeemissor}\r\n \r\n \r\n CPF/CNPJ do Emissor: {MaskFormat(dadosNota.nfd_cpfcnpjemissor, '', true)}\r\n \r\n \r\n \r\n \r\n Nº da Nota: {dadosNota.nfd_numeronf}\r\n \r\n \r\n Série: {dadosNota.nfd_serienf}\r\n \r\n \r\n Modelo: {dadosNota.nfd_modelodocumento}\r\n \r\n \r\n Emitida em: {moment(dadosNota.nfd_datahoraemissao).format('DD/MM/YYYY HH:mm:ss')}\r\n \r\n \r\n \r\n \r\n Tipo de Nota: {dadosNota.tipoNf}\r\n \r\n \r\n Valor Total da Nota (R$): {FormatNumber(dadosNota.nfd_valortotal, true)}\r\n \r\n \r\n Última Manifestação Realizada: {retornaDescricaoManifestoDestinatario(!!dadosNota.nfd_manifestodestinatario) ? (dadosNota.nfd_manifestodestinatario) : 'Não Informada'}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n Selecione abaixo o tipo de manifestação que deseja para esta Nota Fiscal\r\n \r\n \r\n \r\n \r\n {!(!!dadosNota.tipoManifesto) &&\r\n \r\n Ciência da Emissão: \r\n Registra que o destinatário da operação, constante nesta NF-e, tem conhecimento que o documento foi emitido, mas ainda não expressou uma manifestação conclusiva para a operação.\r\n \r\n }\r\n \r\n Confirmação da Operação: \r\n Registra que o destinatário da operação, constante nesta NF-e, confirma que a operação descrita na NF-e ocorreu.\r\n \r\n \r\n Operação não Realizada: \r\n Registra que o destinatário da operação, constante nesta NF-e, declara que a operação descrita na NF-e foi solicitada, porem não foi efetivada. Ex.: Devolução sem entrada física de mercadorias no estabeleciomento do destinatário, sinistro da carga durante o transporte, etc.\r\n \r\n \r\n Desconhecimento da Operação: \r\n Registra que o destinatário da operação, constante nesta NF-e, declara que a operação descrita na NF-e NÃO foi solicitada, informando ao fisco a utilização indevida de sua Inscrição Estadual/CNPJ por parte do emitente da NF-e em questão.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.tipoManifesto !== currentValues.tipoManifesto}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('tipoManifesto') === 2) return (\r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Select, Checkbox, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport Data from \"../../data\";\r\n\r\nexport default function ModalNacionalidade({ form, dadosNacionalidade, exibirModalNacionalidade, fecharModalNacionalidade }) {\r\n\r\n const [listaPais, setListaPais] = useState([]);\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalNacionalidade();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n carregarPais();\r\n }, []);\r\n\r\n function carregarPais() {\r\n api.get(`Pais/listar?PageSize=1000&PageNumber=1`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setListaPais(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n const salvar = record => {\r\n let nacionalidade = [...dadosNacionalidade.listaNacionalidade];\r\n let indice = form.getFieldValue().indice;\r\n delete record.indice;\r\n let pais = listaPais.filter((pais) => (pais.pse_id === record.pse_id))[0];\r\n record.pse_id = pais.pse_id;\r\n record.pse_nome = pais.pse_nome;\r\n if (indice >= 0) {\r\n nacionalidade[indice] = record;\r\n } else {\r\n nacionalidade.push(record);\r\n }\r\n dadosNacionalidade.setListaNacionalidade(nacionalidade);\r\n fecharModalNacionalidade();\r\n };\r\n\r\n return (\r\n form.submit()}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Naturalizado\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Form, Select, Input, InputNumber, Tooltip, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { InputPercentual } from '../../../components';\r\nimport SelectPaginado from \"../../selectPaginado\";\r\nimport api from \"../../../services/api\";\r\nimport { selectPaginadoActions, listagemActions } from \"../../../actions\";\r\nimport { useStateValue } from \"../../../state\";\r\n\r\nexport default function ModalNcm({ exibirModal, fecharModal, dados, setDados, formularioDados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n formularioDados.resetFields();\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!dados)\r\n formularioDados.setFieldsValue(dados);\r\n else\r\n formularioDados.resetFields();\r\n\r\n }, [dados, exibirModal])\r\n\r\n useEffect(() => {\r\n if (exibirModal)\r\n setEstado();\r\n }, [exibirModal])\r\n\r\n function setEstado() {\r\n api.get(`Local/BuscarLocal`).then(res => {\r\n let lista = [];\r\n formularioDados.setFieldsValue({ mva_uforigem: res.data.loc_inscricaoestadual.ufEstado });\r\n lista.push({ name: \"mva_uforigem\", campo: \"Uf\", value: res.data.loc_inscricaoestadual.ufEstado });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n })\r\n }\r\n\r\n function salvarDados(values) {\r\n console.log(manutencao);\r\n let lista = [...dados.mvaorigemdestinos];\r\n let registro = dados.mvaorigemdestinos.find(x => x.mva_uforigem == values.mva_uforigem && x.mva_ufdestino == values.mva_ufdestino)\r\n if (registro) {\r\n registro.mva_percaliquotaicmsreducao = values.mva_percaliquotaicmsreducao;\r\n registro.mva_percmva = values.mva_percmva;\r\n registro.mva_percaliquotaicms = values.mva_percaliquotaicms;\r\n registro.mva_ajustado = values.mva_ajustado;\r\n registro.mva_simplesnacional = values.mva_simplesnacional;\r\n } else {\r\n let dadosTemp = { ...values };\r\n manutencao.dados.mvaorigemdestinos.push(dadosTemp)\r\n }\r\n setDados(manutencao);\r\n fecharModal();\r\n formularioDados.resetFields();\r\n }\r\n\r\n return (\r\n {\r\n formularioDados.submit();\r\n }}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n Defina as Informações de Origem e Destino referente a Substituição Tributário!

\r\n
\r\n \r\n \r\n \r\n \r\n ({est.est_sigla} - {est.est_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n ({est.est_sigla} - {est.est_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n % da Alíquota ICMS Substituição Tributária\r\n \r\n \r\n \r\n }\r\n name=\"mva_percaliquotaicms\"\r\n rules={[{ required: true, message: 'Informe o Percentual da Aliquota ICMS Substituição Tributária' }]}\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col } from \"antd\";\r\nimport moment from 'moment';\r\n\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function InfoCheque({ dadosCheque }) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n Recebido de: {dadosCheque?.pessoa.pes_nome}\r\n \r\n \r\n Banco: {dadosCheque.ban_id} - {dadosCheque?.banco.ban_descricao}\r\n \r\n \r\n Cheque Emitido em: {moment(dadosCheque.chq_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n Agência: {dadosCheque.chq_agencia}\r\n \r\n \r\n Nº Conta: {dadosCheque.chq_contacorrente}\r\n \r\n \r\n Bom para: {moment(dadosCheque.chq_bompara).format('DD/MM/YYYY')}\r\n \r\n \r\n Série: {dadosCheque.chq_serie}\r\n \r\n \r\n Número do Cheque: {dadosCheque.chq_numero}\r\n \r\n \r\n Valor do Cheque (R$): {FormatNumber(dadosCheque.chq_valor, true)}\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Modal, Table, Select, Input, Form, Button } from \"antd\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, ExclamationCircleOutlined, CloseOutlined, SaveOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../../services/api\";\r\nimport { getLocal, linkApi } from \"../../../services/auth\";\r\nimport InfoCheque from \"../../../pages/cheque/infoCheque\";\r\nimport SelectPaginado from \"../../selectPaginado\";\r\n\r\n\r\nexport default function ModalOcorrencia({ exibirModal, fecharModal, dadosCheque, statusCheque, ocorrencia }) {\r\n\r\n const [movimentacaoCheque, setMovimentacaoCheque] = useState([]);\r\n const [contaCorrente, setContaCorrente] = useState([]);\r\n const [motivoDevolucao, setMotivoDevolucao] = useState([]);\r\n const [formulario] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n formulario.resetFields();\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`ContaCorrente/AtivosTipoConta?tipoConta=2&ordem=+ctc_descricao`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setContaCorrente(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n\r\n api.get(`Cheque/ListarCodigosDevolucao?filtro=&ordem=+cmc_descricao`).then(\r\n (res) => {\r\n if (res.status === 200 && res.data.length > 0) {\r\n setMotivoDevolucao(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!dadosCheque.chq_id && ocorrencia === 0) {\r\n api.get(`OcorrenciaCheque/Listar?IdCheque=${dadosCheque.chq_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n res.data.map((item) => {\r\n item.key = item.och_id;\r\n });\r\n setMovimentacaoCheque(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n }, [dadosCheque]);\r\n\r\n const tituloModal = {\r\n 0: 'Movimentação do Cheque',\r\n 1: 'Enviar para depósito',\r\n 2: 'Reapresentar ao Banco',\r\n 3: 'Marcar Cheque como Compensado',\r\n 4: 'Repassar o Cheque para terceiros',\r\n 5: 'Trocar com o Cliente',\r\n 6: 'Registrar Devolução do Cheque',\r\n 7: 'Enviar Cheque para Custódia'\r\n };\r\n\r\n const operacao = {\r\n enviarParaDeposito: 1,\r\n representadoAoBanco: 2,\r\n compensado: 3,\r\n repassado: 4,\r\n trocado: 5,\r\n devolvido: 6,\r\n emCustodia: 7\r\n };\r\n\r\n function salvar(values) {\r\n let dados = {};\r\n dados.ctc_id = (ocorrencia !== operacao.compensado && ocorrencia !== operacao.trocado && ocorrencia !== operacao.repassado) ? values.ctc_id : 0;\r\n dados.chq_id = dadosCheque.chq_id;\r\n dados.och_data = moment(new Date());\r\n dados.och_status = ocorrencia;\r\n dados.mcc_id = null;\r\n dados.loc_id = getLocal();\r\n if (ocorrencia === operacao.devolvido) {\r\n dados.cmc_id = values.cmc_id;\r\n }\r\n if (!!values.och_observacao) {\r\n dados.och_observacao = values.och_observacao;\r\n }\r\n api.post(`OcorrenciaCheque/Incluir`, dados).then(\r\n (retorno) => {\r\n if (retorno.status === 200) {\r\n Modal.success({\r\n content: 'Ocorrência registrada e vinculada ao cheque com sucesso!',\r\n });\r\n } else {\r\n error(\"Não foi possível registrar esta ocorrência no cheque.\");\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n error(\"Erro ao registrar esta ocorrência no cheque.\");\r\n }\r\n ).finally(() => {\r\n formulario.resetFields();\r\n fecharModal();\r\n });\r\n };\r\n\r\n function error(mensagem, title = 'Atenção!') {\r\n Modal.error({\r\n title: title,\r\n content: (\r\n
\r\n

{mensagem}

\r\n
\r\n )\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n width={720}\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n
\r\n {ocorrencia === 0 &&\r\n
(\r\n
\r\n {usu_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n render: ({ och_data }) => (\r\n
\r\n {moment(och_data).format('DD/MM/YYYY HH:mm:ss')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Banco',\r\n render: ({ och_status, ban_id, ban_descricao }) => (\r\n
\r\n {((och_status === 1 || och_status === 2 || och_status === 3 || och_status === 7) && (!!ban_id)) &&\r\n \r\n
\r\n {ban_descricao} {ban_id} - {ban_descricao}\r\n \r\n \r\n }\r\n \r\n \r\n Situação: {statusCheque[och_status].value}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Conta Destino',\r\n render: ({ och_status, ctc_descricao }) => (\r\n
\r\n {(och_status === 1 || och_status === 2 || och_status === 3 || och_status === 7) &&\r\n {ctc_descricao}\r\n }\r\n
\r\n ),\r\n },\r\n ]\r\n } expandable={{\r\n expandedRowRender: ({ och_observacao }) =>\r\n
\r\n \r\n
\r\n Observações: {och_observacao}\r\n \r\n \r\n ,\r\n expandIcon: ({ expanded, onExpand, record }) =>\r\n expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n )\r\n }} columnWidth={30} />\r\n }\r\n {(ocorrencia === 1 || ocorrencia === 2 || ocorrencia === 7) &&\r\n \r\n \r\n \r\n (\r\n {cc.ctc_descricao}\r\n )} />\r\n \r\n \r\n \r\n }\r\n {(ocorrencia === 3) &&\r\n
\r\n \r\n Este cheque será definido como compensado.\r\n \r\n \r\n Para prosseguir clique em Salvar...\r\n \r\n
\r\n }\r\n {(ocorrencia === 4) &&\r\n
\r\n \r\n Este cheque será definido como: Repassado à Terceiros.\r\n \r\n \r\n Para prosseguir clique em Salvar...\r\n \r\n
\r\n }\r\n {(ocorrencia === 5) &&\r\n
\r\n \r\n Este cheque será definido como: Trocado com o Cliente.\r\n \r\n \r\n Para prosseguir clique em Salvar...\r\n \r\n
\r\n }\r\n {(ocorrencia === 6) &&\r\n
\r\n \r\n
\r\n \r\n (\r\n {cc.ctc_descricao}\r\n )} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {ocorrencia !== 0 &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../../state\";\r\nimport { selectPaginadoActions } from \"../../../actions\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\n\r\nexport default function ModalOcupacao({ form, listaOcupacoes, exibirModalOcupacao, fecharModalOcupacao }) {\r\n const [{ ui, listaSelectPaginacao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n if (exibirModalOcupacao && !!listaOcupacoes) {\r\n let lista = [];\r\n if (!!listaOcupacoes.cbo_id) {\r\n lista.push({ name: \"cbo_id\", campo: \"cbo_id\", value: listaOcupacoes.cbo_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }, [exibirModalOcupacao]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModalOcupacao();\r\n }\r\n });\r\n };\r\n\r\n const onFinish = values => {\r\n let listaCbo = [...listaSelectPaginacao.itens];\r\n let cbo = listaCbo.filter((c) => c.cbo_id === form.getFieldValue().cbo_id)[0];\r\n let indice = form.getFieldValue().indice;\r\n let lista = [...listaOcupacoes.dadosOcupacoes];\r\n\r\n values.cbo_descricao = cbo.cbo_descricao;\r\n if (indice >= 0) {\r\n lista[indice] = values;\r\n } else {\r\n let verificaOcupacaoAdd = lista.filter((c) => c.cbo_id === form.getFieldValue().cbo_id).length;\r\n if (verificaOcupacaoAdd.length > 0) {\r\n onCloseModal();\r\n notification.info({ message: 'Ocupação já adicionada!' });\r\n } else {\r\n if (lista.length > 0) {\r\n values.poc_principal = false;\r\n } else {\r\n values.poc_principal = true;\r\n }\r\n lista.push(values);\r\n }\r\n }\r\n listaOcupacoes.setDadosOcupacoes(lista);\r\n form.resetFields();\r\n fecharModalOcupacao();\r\n };\r\n\r\n return (\r\n {\r\n onCloseModal();\r\n }}\r\n onOk={() => form.submit()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n ({ocup.cbo_id} - {ocup.cbo_descricao} )\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport { InputPhone } from \"../..\";\r\nimport api from \"../../../services/api\";\r\nimport { InputCep } from \"../../../components\";\r\nimport { HasValue, retornaSoNumeros, validarEmail } from \"../../../services/funcoes\";\r\nimport InputEmail from \"../../inputEmail\";\r\n\r\nexport default function ModalOrgaoSubjacente({ form, listaOrgaoSubjacente, exibirModalOrgaoSubjacente, fecharModalOrgaoSubjacente }) {\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalOrgaoSubjacente();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (exibirModalOrgaoSubjacente && !!form.getFieldValue().pop_cep) {\r\n verificaCep(form.getFieldValue().pop_cep);\r\n }\r\n }, [exibirModalOrgaoSubjacente]);\r\n\r\n const onFinish = values => {\r\n let dados = [...listaOrgaoSubjacente.listaOrgaoSubjacente];\r\n let indice = values.indice;\r\n delete values.indice;\r\n\r\n if(HasValue(values.pop_email) && !validarEmail(values.pop_email)){\r\n notification.warning({ message: `Aviso!`, description: `E-mail invalido` });\r\n return;\r\n }\r\n\r\n values.pop_ativo = true;\r\n values.pop_email = !!values.pop_email ? values.pop_email : \"\";\r\n values.pop_cep = !!values.pop_cep ? values.pop_cep : \"\";\r\n values.pop_observacao = !!values.pop_observacao ? values.pop_observacao : \"\";\r\n values.pop_latitude = \"\";\r\n values.pop_longitude = \"\";\r\n values.pop_numero = !!values.pop_numero ? values.pop_numero : \"\";\r\n values.pop_localreferencia = !!values.pop_localreferencia ? values.pop_localreferencia : \"\";\r\n values.pop_complemento = !!values.pop_complemento ? values.pop_complemento : \"\";\r\n values.pop_bairro = !!values.pop_bairro ? values.pop_bairro : \"\";\r\n values.pop_endereco = !!values.pop_endereco ? values.pop_endereco : \"\";\r\n values.pop_telefone = !!values.pop_telefone ? values.pop_telefone : \"\";\r\n values.pop_cidade = !!values.pop_cidade ? values.pop_cidade : \"\";\r\n if (indice >= 0) {\r\n dados[indice] = values;\r\n } else {\r\n dados.push(values);\r\n }\r\n listaOrgaoSubjacente.setListaOrgaoSubjacente(dados);\r\n fecharModalOrgaoSubjacente();\r\n };\r\n\r\n const verificaCep = (cep) => {\r\n if (!!cep && retornaSoNumeros(cep)) {\r\n api.get(`Cidade/BuscaCidadeCep?cep=${cep}`).then(\r\n res => {\r\n if (!!res.data) {\r\n form.setFieldsValue({ pop_cidade: `${res.data[0].cid_descricao}` });\r\n } else {\r\n fetch(`https://viacep.com.br/ws/${cep.replace(`-`, ``)}/json/`)\r\n .then(\r\n res => {\r\n res.json();\r\n form.setFieldsValue({ pop_cidade: `${res.data[0].cid_descricao}` });\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n );\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n )\r\n }\r\n }\r\n\r\n return (\r\n { form.submit() }}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { verificaCep(event.currentTarget.value); }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Select, Checkbox, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport SelectPaginado from \"../../selectPaginado\";\r\nimport { selectPaginadoActions } from \"../../../actions\";\r\nimport { useStateValue } from \"../../../state\";\r\n\r\nexport default function ModalOutroContato({ form, listaOutrosContatos, exibirModalOutroContato, fecharModalOutroContato }) {\r\n\r\n const [dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n if (exibirModalOutroContato && !!listaOutrosContatos) {\r\n let lista = [];\r\n if (!!listaOutrosContatos.toc_id) {\r\n lista.push({ name: \"toc_id\", campo: \"filtro\", value: listaOutrosContatos.toc_id });\r\n }\r\n\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n\r\n });\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModalOutroContato();\r\n }\r\n });\r\n };\r\n\r\n const onFinish = async values => {\r\n let indice = form.getFieldValue().indice;\r\n delete values.indice;\r\n let lista = [...listaOutrosContatos.dadosOutrosContatos];\r\n let listaTpOutroContato = await listarTpOutroContato(form.getFieldValue().toc_id);\r\n values.toc_descricao = listaTpOutroContato[0].toc_descricao;\r\n if (indice >= 0) {\r\n lista[indice] = values;\r\n }\r\n else {\r\n let verificaOcupacaoAdd = listaTpOutroContato[0];\r\n if (verificaOcupacaoAdd.length > 0) {\r\n fecharModalOutroContato();\r\n notification.info({ message: 'Contato já adicionada!' });\r\n } else {\r\n values.out_ativo = true;\r\n lista.push(values);\r\n }\r\n }\r\n listaOutrosContatos.setDadosOutrosContatos(lista);\r\n fecharModalOutroContato();\r\n };\r\n\r\n async function listarTpOutroContato(toc_id) {\r\n let req = await api.get(`TipoOutroContato?Filtro=${toc_id}`);\r\n if (req.status === 200 && !!req.data) {\r\n return req.data.items;\r\n }\r\n return {};\r\n }\r\n return (\r\n {\r\n onCloseModal();\r\n }}\r\n onOk={() => form.submit()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n ({toc.toc_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ativo\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Select, Checkbox, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { validarCpf } from \"../../../services/funcoes\";\r\nimport { InputCpfCnpj } from \"../../../components\";\r\n\r\nexport default function ModalPessoaAutorizada({ form, listaPessoasAutorizadas, exibirModalPessoaAutorizada, fecharModalPessoaAutorizada }) {\r\n const [listasGrauParentesco, setListasGrauParentesco] = useState([]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModalPessoaAutorizada();\r\n }\r\n });\r\n };\r\n\r\n const onFinish = values => {\r\n let lista = [...listaPessoasAutorizadas.dadosPessoasAutorizadas];\r\n let nomeLista = listasGrauParentesco.filter(g => g.grp_id === form.getFieldValue().grp_id);\r\n values.grp_id = nomeLista[0].grp_id;\r\n values.grp_descricao = nomeLista[0].grp_descricao;\r\n\r\n let listaPessoas = lista.find((pesAuto) => pesAuto.pea_id === values.pea_id);\r\n if (!!listaPessoas) {\r\n listaPessoas.pes_nome = values.pes_nome;\r\n listaPessoas.grp_descricao = values.grp_descricao;\r\n listaPessoas.pea_ativo = values.pea_ativo;\r\n } else {\r\n let verificaOcupacaoAdd = lista.filter(p => p.pef_cpf === form.getFieldValue().pef_cpf);\r\n if (verificaOcupacaoAdd.length > 0) {\r\n fecharModalPessoaAutorizada();\r\n notification.info({ message: 'Pessoa Autorizada já adicionada!' });\r\n } else {\r\n values.pea_ativo = values.pea_ativo;\r\n lista.push(values);\r\n }\r\n }\r\n listaPessoasAutorizadas.setDadosPessoasAutorizadas(lista);\r\n fecharModalPessoaAutorizada();\r\n };\r\n\r\n useEffect(() => carregarDados(), []);\r\n\r\n function verificarCpfValido(event) {\r\n let valorCampo = event.currentTarget.value.replace(/\\D/g, '');\r\n if (!validarCpf(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n form.resetFields();\r\n return false;\r\n } else {\r\n api.get(`PessoaFisica/BuscarPessoaFisica/${valorCampo}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data) {\r\n form.setFieldsValue({ pef_id: res.data.pessoafisicas[0].pef_id, pes_nome: res.data.pes_nome })\r\n console.log(res.data);\r\n }\r\n }\r\n }\r\n ).catch((erro) => console.error(erro))\r\n }\r\n }\r\n\r\n function carregarDados() {\r\n api.get(`GrauParentesco/Listar`).then(\r\n res => {\r\n setListasGrauParentesco(res.data);\r\n }\r\n ).catch((erro) => console.error(erro))\r\n };\r\n\r\n return (\r\n\r\n {\r\n onCloseModal();\r\n }}\r\n onOk={() => form.submit()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n { verificarCpfValido(valor) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { return { label: `${g.grp_descricao}`, value: g.grp_id } })}>\r\n \r\n \r\n \r\n \r\n \r\n Pessoa Autorizada?\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Card, Modal } from \"antd\";\r\nimport { CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalPlano({ plano, exibirModal, fecharModal }) {\r\n\r\n const [ativo,setAtivo] = useState(\"#e3e3e3\");\r\n const [inativo,setInativo] = useState(\"white\");\r\n\r\n const [gratis,setGratis] = useState(inativo);\r\n const [mei,setMei] = useState(inativo);\r\n const [inicial,setInicial] = useState(inativo);\r\n const [avancado,setAvancado] = useState(inativo);\r\n const [completo,setCompleto] = useState(inativo);\r\n const [premium,setPremium] = useState(inativo);\r\n \r\n useEffect(()=>{\r\n\r\n setGratis(inativo);\r\n setMei(inativo);\r\n setInicial(inativo);\r\n setAvancado(inativo);\r\n setCompleto(inativo);\r\n setPremium(inativo);\r\n\r\n switch (plano) {\r\n case 1: {\r\n setPremium(ativo);\r\n break;\r\n };\r\n case 2: {\r\n setCompleto(ativo);\r\n break;\r\n }\r\n case 3: {\r\n setAvancado(ativo);\r\n break;\r\n }\r\n case 4: {\r\n setInicial(ativo);\r\n break;\r\n }\r\n case 5: {\r\n setGratis(ativo);\r\n break;\r\n }\r\n case 6: {\r\n setMei(ativo);\r\n break;\r\n }\r\n }\r\n })\r\n\r\n return (\r\n\r\n \r\n
\r\n \r\n
\r\n    \r\n \r\n {/* \r\n
\r\n GRÁTIS\r\n
\r\n \r\n \r\n
\r\n MEI\r\n
\r\n */}\r\n \r\n
\r\n INICIAL\r\n
\r\n \r\n \r\n
\r\n AVANÇADO\r\n
\r\n \r\n \r\n
\r\n COMPLETO\r\n
\r\n \r\n \r\n
\r\n PREMIUM\r\n
\r\n \r\n \r\n
\r\n \r\n
Implantação Gratuita\r\n {/* \r\n */}\r\n \r\n Sob Consulta\r\n Sob Consulta\r\n Sob Consulta\r\n \r\n \r\n Usuários Ilimitados\r\n {/* 1\r\n 1 */}\r\n 1\r\n \r\n \r\n \r\n \r\n \r\n Emissão de Nota Fiscal Ilimitada\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Dashboards Gerenciais\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Monitoramento de NF-e\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Venda Online (PDV WEB)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ponto de Venda (PDV) Online/Offline\r\n {/* \r\n */}\r\n \r\n 1\r\n 4\r\n 6\r\n \r\n \r\n Grade de Produtos Personalizável\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Adição de Campos Personalizáveis em Cadastros Básicos\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n Pré-Venda Mobile\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n Backup Diário Automático\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Segurança de Dados\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Materiais de Ajuda\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Guarda do XML por 5 anos seguindo todos os critérios legais\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Permite Cadastro de Filiais\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Acesso a API de Integração\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Chamados de Suporte (Abertura de Ticket/E-mail)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n FINANCEIRO\r\n
\r\n \r\n \r\n \r\n Contas a Pagar\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Contas a Receber\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n Emissão de Boletos\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* \r\n Integração Bancária (Boletos)\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* \r\n Fluxo de Caixa\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n Lançamento de Caixa\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Dashboard Financeiro\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Contas Gerenciais\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n DRE Gerencial (Padrão)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n VENDAS\r\n
\r\n \r\n \r\n \r\n Orçamento\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Pedido\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Condicional (PDV/APP)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Controle de Comissão\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Gestão de Metas de Vendas\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Promoções\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Devolução de Produtos(Troca)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n Aplicativo Pré-venda (iOS, Android)\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n Análise de Crédito de Cliente\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Emissão de NF-e (Venda, Devolução, Débito de ICMS, Transferência¹)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Emissão de NF-e (Entrega Futura, Remessas)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n OBS: ¹ Nota de Transferência disponível quando houver uma ou mais filiais\r\n \r\n \r\n \r\n \r\n
\r\n PONTO DE VENDA – PDV (ONLINE/OFFLINE)\r\n
\r\n \r\n \r\n \r\n Licenças\r\n {/* \r\n */}\r\n \r\n 1\r\n 3\r\n 8\r\n \r\n \r\n Disponibilidade Offline\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n NFC-e\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n Integração com Aplicativo de Pré Venda\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n Recebimento de Parcelas\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Lançamento Condicional\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Sincronização de Dados\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Impressão de Carnê\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n Emissão de Boletos no PDV\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n Gerador de Etiquetas Personalizáveis\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cadastro de Clientes\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Lista de Clientes com Total de Compras e Ticket Médio\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cálculo do Limite de Crédito\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Dashboard de Vendas\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Lançamento de Despesas\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Transferências Automáticas no Fechamento de Caixa\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n COMPRAS\r\n
\r\n \r\n \r\n \r\n Ordem de Compra\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Emissão de NF-e (Entrada, Crédito de ICMS, Retorno de Mercadoria)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Importação de XML\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Manifestação de Destinatário de NF-e\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ESTOQUE\r\n
\r\n \r\n \r\n \r\n Controle de Estoque\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Dashboard de Estoque\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Registro de Inventário Automatizado\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n RELATÓRIOS\r\n
\r\n \r\n \r\n \r\n Emissão Relatórios\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Exportação de Relatórios (PDF e XLS)\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Envio de Relatórios por e-mail\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n Personalização de Relatórios\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n Personalização de Modelos de Etiquetas\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n POLÍTICAS DE ACESSO\r\n
\r\n \r\n \r\n \r\n Cadastro de Usuários\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Grupos de Usuários\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Gerenciamento de Acesso às Filiais\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Restrição de Acesso por Dia da Semana e Horário\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Controle Permissão de Acesso por Usuário e/ou Grupo de Usuário\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n PORTAL DO CONTADOR\r\n
\r\n \r\n \r\n \r\n Acesso ao Portal do Contador\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}","import { React, useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Checkbox, Modal, Form, Descriptions, Table, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { FormatNumber, FormatFone } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalProdutoCondicional({ exibirModalProdutoCondicional, fecharModalProdutoCondicional, dadosItens, situacaoVenda }) {\r\n const [itens, setItens] = useState();\r\n const [dadosCondicional, setDadosCondicional] = useState({});\r\n\r\n useEffect(() => {\r\n if (!!dadosItens && !!dadosItens.vnc_id) {\r\n carregarDados();\r\n setDadosCondicional(dadosItens);\r\n }\r\n }, [dadosItens])\r\n\r\n function carregarDados() {\r\n if (!!dadosItens && !!dadosItens.vnc_id) {\r\n console.log('dadosItens', itens);\r\n api.get(`VendaCondicionalItem/Listar?IdVendaCondicional=${dadosItens.vnc_id}`).then(\r\n res => {\r\n setItens(res.data);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n function descricaoSituacao(codigo) {\r\n if (codigo >= 0 && !!situacaoVenda[codigo]) {\r\n return situacaoVenda[codigo].value;\r\n }\r\n return '';\r\n };\r\n\r\n return (\r\n fecharModalProdutoCondicional(true)}\r\n footer={null}\r\n maskClosable={false}\r\n width= '80%'>\r\n
\r\n \r\n
\r\n \r\n \r\n {dadosCondicional.vnc_numero}\r\n \r\n \r\n {dadosCondicional.cli_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormatFone(dadosCondicional.vnc_telefonecliente)}\r\n \r\n \r\n {dadosCondicional.ven_nome}\r\n \r\n \r\n {(descricaoSituacao(dadosCondicional.vnc_situacao))}\r\n \r\n \r\n {moment(dadosCondicional.vnc_datalancamento).format('DD/MM/YYYY')}\r\n \r\n \r\n {moment(dadosCondicional.vnc_prazoretorno).format('DD/MM/YYYY')}\r\n \r\n \r\n {FormatNumber(dadosCondicional.vnc_valortotal, true)}\r\n \r\n {!!dadosCondicional.vnc_entregaagendada && (\r\n \r\n {moment(dadosCondicional.vnc_entregaagendada).format('DD/MM/YYYY')} | {moment(dadosCondicional.vnc_entregaagendada).format('HH:mm')}\r\n \r\n )}\r\n {!!dadosCondicional.vnc_enderecoentrega && (\r\n \r\n {dadosCondicional.vnc_enderecoentrega}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosCondicional.vnc_observacao ? dadosCondicional.vnc_observacao : 'Não Informado'}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n \r\n \r\n {pro_descricao}\r\n \r\n {!!descricaograde &&\r\n \r\n \r\n {descricaograde}\r\n \r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'EAN',\r\n width: 10,\r\n align: 'center',\r\n render: ({ pro_ean, prg_ean }) => (\r\n
\r\n \r\n
\r\n {!!pro_ean ? pro_ean : prg_ean}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: 70,\r\n align: 'right',\r\n render: ({ vci_quantidade }) => (\r\n
\r\n \r\n
\r\n {vci_quantidade}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde Dev.',\r\n width: 70,\r\n align: 'right',\r\n render: ({ vci_devolvido }) => (\r\n
\r\n \r\n
\r\n {vci_devolvido}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: 90,\r\n render: ({ vci_valorun }) => (\r\n
\r\n {FormatNumber(vci_valorun, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: 100,\r\n render: ({ vci_valorun, vci_quantidade, vci_devolvido }) => (\r\n
\r\n {FormatNumber((vci_quantidade - vci_devolvido) * vci_valorun, true)}\r\n
\r\n ),\r\n }\r\n ]\r\n } />\r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Input, Select, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { InputPhone, SelectPaginacao } from \"../../../components\";\r\nimport SelectPaginado from \"../../selectPaginado\";\r\nimport { selectPaginadoActions } from \"../../../actions\";\r\nimport { useStateValue } from \"../../../state\";\r\n\r\nexport default function ModalTelefone({ form, listaTelefones, exibirModalTelefone, fecharModalTelefone }) {\r\n const [dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n if (exibirModalTelefone && !!listaTelefones) {\r\n var lista = [];\r\n if (!!listaTelefones.tpt_id) {\r\n lista.push({ name: \"tpt_id\", campo: \"Codigo\", value: listaTelefones.tpt_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }, [exibirModalTelefone]);\r\n\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModalTelefone();\r\n }\r\n });\r\n };\r\n\r\n const onFinish = async values => {\r\n let indice = form.getFieldValue().indice;\r\n let lista = [...listaTelefones.dadosTelefone];\r\n\r\n let listaTpTelefone = await listarTpTelefone(form.getFieldValue().tpt_id);\r\n values.tpt_descricao = listaTpTelefone[0].tpt_descricao;\r\n values.psc_ativo = true;\r\n values.psc_numero = values.psc_numero.replace(/\\D/g, '');\r\n if (!!indice) {\r\n values.psc_principal = lista.filter((psc) => (psc.indice === indice))[0].psc_principal;\r\n }\r\n values.tpt = listaTpTelefone[0];\r\n if (indice >= 0) {\r\n lista[indice] = values;\r\n } else {\r\n let verificaOcupacaoAdd = lista.filter(o => o.psc_numero === form.getFieldValue().psc_numero);\r\n if (verificaOcupacaoAdd.length > 0) {\r\n fecharModalTelefone();\r\n notification.info({ message: 'Telefone já adicionado!' });\r\n } else {\r\n if (lista.length > 0) {\r\n values.psc_principal = false;\r\n } else {\r\n values.psc_principal = true;\r\n }\r\n lista.push(values);\r\n }\r\n }\r\n listaTelefones.setDadosTelefone(lista);\r\n form.resetFields();\r\n fecharModalTelefone();\r\n };\r\n\r\n async function listarTpTelefone(tpt_id) {\r\n let req = await api.get(`TipoTelefone/Listar?Codigo=${tpt_id}`);\r\n if (req.status === 200 && !!req.data) {\r\n return req.data.items;\r\n }\r\n return {};\r\n }\r\n\r\n const inputRef = React.createRef();\r\n useEffect(() => {\r\n setTimeout(() => {\r\n if (exibirModalTelefone && !!inputRef.current) {\r\n inputRef.current.focus({ cursor: 'end', })\r\n };\r\n }, 500);\r\n }, [exibirModalTelefone])\r\n\r\n return (\r\n {\r\n onCloseModal();\r\n }}\r\n onOk={() => form.submit()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n destroyOnClose={true}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n ({tp.tpt_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Defina as Informações de Origem e Destino aqui!\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {mostrarCsoSn === true &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {est.est_sigla} - {est.est_descricao}\r\n }\r\n />\r\n \r\n \r\n \r\n {/* Quando empresa for do Geral */}\r\n \r\n {mostrarCstIcms === true && mostrarAlicotaIcms === true &&\r\n \r\n calculaAliquotaEquivalente()}\r\n />\r\n \r\n }\r\n {mostrarCstIcms === true && mostrarReducaoBC === true &&\r\n \r\n
\r\n Aliquota Efetiva\r\n \r\n \r\n \r\n
\r\n calculaPercentualReducao()}\r\n />\r\n \r\n }\r\n {mostrarCstIcms === true && mostrarReducaoBC === true &&\r\n \r\n calculaAliquotaEquivalente()}\r\n />\r\n \r\n }\r\n {/* Quando empresa for do simples nacional */}\r\n \r\n {mostrarCsoSn === true && mostrarAlicotaIcms === true &&\r\n \r\n calculaAliquotaEquivalente()}\r\n />\r\n \r\n }\r\n {mostrarCsoSn === true && mostrarReducaoBC === true &&\r\n \r\n
\r\n Aliquota Efetiva\r\n \r\n \r\n \r\n
\r\n calculaPercentualReducao()}\r\n />\r\n \r\n }\r\n {mostrarCsoSn === true && mostrarReducaoBC === true &&\r\n \r\n calculaAliquotaEquivalente()}\r\n />\r\n \r\n }\r\n \r\n {mostrarCstIcms === true && mostrarDiferimentoIcms === true &&\r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Form, Input, Checkbox, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../../state\";\r\n\r\nexport default function ModalVeiculo({ form, listaVeiculos, exibirModalVeiculo, fecharModalVeiculo }) {\r\n\r\n const [veiculos, setVeiculos] = useState([]);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalVeiculo();\r\n form.resetFields();\r\n }\r\n });\r\n };\r\n\r\n const salvarVeiculo = record => {\r\n let indice = form.getFieldValue().indice;\r\n delete record.indice;\r\n let lista = [...listaVeiculos.dadosVeiculos];\r\n if(!!manutencao.dados){\r\n record.trn_id = manutencao.dados.trn_id;\r\n }\r\n if (indice >= 0) {\r\n lista[indice] = record;\r\n } else {\r\n lista.push(record);\r\n }\r\n listaVeiculos.setDadosVeiculos(lista);\r\n fecharModalVeiculo();\r\n form.resetFields();\r\n };\r\n\r\n return (\r\n form.submit()}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Veículo Ativo? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Form, Input, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { getLocal } from \"../../../services/auth\";\r\nimport { MaskFormat, FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalCancelamentoNfe({ dadosNota, exibirModalCancelarEstornar, fecharModalCancelarEstornar, titleModal, textoBotao }) {\r\n const [form] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModalCancelarEstornar();\r\n }\r\n });\r\n };\r\n\r\n const realizarCancelamento = () => {\r\n let motivo = '';\r\n let dados = { ...dadosNota };\r\n dados.loc_id = parseInt(getLocal());\r\n dados.justificativa = form.getFieldValue().justificativa;\r\n if (!dados.justificativa || dados.justificativa.length < 15) {\r\n notification.warning({ message: `Aviso!`, description: `A Justificativa deve ter no mínimo 15 caracteres!` })\r\n return false;\r\n }\r\n setCarregando(true);\r\n api.post(`NotaFiscal/Cancelar`, dados).then(\r\n res => {\r\n if (dados.ntf_docfiscal == true) {\r\n let _cStat = res.data.retorno.retEvento[0].infEvento.cStat;\r\n motivo = _cStat + '-' + res.data.retorno.retEvento[0].infEvento.xMotivo;\r\n if (_cStat == 135 || _cStat == 155 || _cStat == 101 || _cStat == 573 || _cStat == 218) {\r\n notification.success({ message: `NF-e Nº: ${dadosNota.ntf_numero} cancelada com sucesso !`, description: motivo });\r\n } else {\r\n notification.warning({ message: `Não foi possível efetuar o cancelamento da NF-e Nº: ${dadosNota.ntf_numero} !`, description: motivo });\r\n }\r\n } else {\r\n if (res.data.retorno.cStat == 135)\r\n notification.success({ message: `NF-e Nº: ${dadosNota.ntf_numero} cancelada com sucesso !` });\r\n else\r\n notification.warning({ message: `Não foi possível efetuar o cancelamento da NF-e Nº: ${dadosNota.ntf_numero} !`});\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n notification.warning({ description: `Não foi possível efetuar o cancelamento da NF-e Nº: ${dadosNota.ntf_numero} !`, message: 'Aviso' });\r\n setCarregando(false);\r\n }\r\n ).finally(\r\n () => {\r\n form.resetFields();\r\n setCarregando(false);\r\n fecharModalCancelarEstornar();\r\n }\r\n );\r\n };\r\n\r\n return (\r\n \r\n {textoBotao}\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n destroyOnClose\r\n >\r\n
\r\n \r\n \r\n {dadosNota.ntf_chavenfe} \r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_nomedest}\r\n \r\n \r\n \r\n \r\n {MaskFormat(dadosNota.ntf_cnpjcpfdest, '', true)}\r\n \r\n \r\n {dadosNota.ntf_numero}\r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_serie}\r\n \r\n \r\n {dadosNota.ntf_modelo}\r\n \r\n \r\n \r\n \r\n {moment(dadosNota.ntf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n {dadosNota.tip_descricao}\r\n \r\n \r\n \r\n \r\n {FormatNumber(dadosNota.valor_total, true)} \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Form, Input, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, CloudUploadOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { HasValue, novaAbaNavegador } from \"../../../services/funcoes\";\r\nimport { MaskFormat, FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalReenviarSefaz({ dadosNota, exibirModalReenviarSefaz, fecharModalReenviarSefaz, titleModal, textoBotao }) {\r\n const [form] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModalReenviarSefaz();\r\n }\r\n });\r\n };\r\n\r\n const realizarReenvioSefaz = () => {\r\n setCarregando(true);\r\n let _link = `NotaFiscal/ReenviarNotaSefaz/${dadosNota.ntf_id}`;\r\n if (dadosNota.ntf_finalidade === 3)// Nota ajuste\r\n _link = `NotaFiscalDebitoCredito/ReenviarNotaSefaz/${dadosNota.ntf_id}`;\r\n\r\n api.post(_link).then(\r\n (retornoNF) => {\r\n if (retornoNF.status === 200) {\r\n if (retornoNF.data.ntf_status === 1 && !!retornoNF.data.ntf_chavenfe) {\r\n notification.success({ message: 'Sucesso', description: `NF-e Autorizada com sucesso!` });\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${retornoNF.data.ntf_chavenfe}`);\r\n let formaPagItegrado = retornoNF.data.notafiscalformapgtos.filter((item) => (HasValue(item.imp_id)))\r\n if (formaPagItegrado.length > 0) {\r\n novaAbaNavegador(`Danfe/GerarComprovantePagamentoViaLoja?IdNotaFiscal=${retornoNF.data.ntf_id}`);\r\n }\r\n } else {\r\n notification.error({ description: 'Não foi possível Autorizar nota fiscal!', message: `Aviso` }); \r\n }\r\n }else{\r\n notification.error({ description: 'Não foi possível Autorizar nota fiscal!', message: `Aviso` });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n if (!!erro.response && !!erro.response.data) {\r\n notification.error({ description: erro.response.data, message: `Aviso` });\r\n } else {\r\n notification.error({ description: 'Não foi possível Autorizar nota fiscal!', message: `Aviso` });\r\n }\r\n setCarregando(false);\r\n }\r\n ).finally(() => {\r\n setCarregando(false);\r\n form.resetFields();\r\n fecharModalReenviarSefaz();\r\n });\r\n console.log(dadosNota)\r\n }\r\n return (\r\n \r\n Reenviar NF-e Sefaz\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n destroyOnClose\r\n >\r\n
\r\n \r\n \r\n {dadosNota.ntf_chavenfe} \r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_nomedest}\r\n \r\n \r\n \r\n \r\n {MaskFormat(dadosNota.ntf_cnpjcpfdest, '', true)}\r\n \r\n \r\n {dadosNota.ntf_numero}\r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_serie}\r\n \r\n \r\n {dadosNota.ntf_modelo}\r\n \r\n \r\n \r\n \r\n {moment(dadosNota.ntf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n {FormatNumber(dadosNota.valor_total, true)} \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Modal, Select, Typography } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\n\r\nexport default function ModalDevolucao({ exibirModalDevolucao = false, fecharModalDevolucao, dadosNotaDevolucao, abrirManutencao }) {\r\n\r\n const [regimeTributario, setRegimeTributario] = useState([]);\r\n const [formulario] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalDevolucao();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?nome=RegimeTributarioFiscal`).then(\r\n res => {\r\n setRegimeTributario(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }, []);\r\n\r\n function salvarRegimeTributario() {\r\n api.post(`Pessoa/EditarRegimeTributario?codigoPessoa=${dadosNotaDevolucao.pes_id}&codigoRegimeTributario=${formulario.for_regimetributariofiscal}`).then(res => {\r\n if (res.data) {\r\n fecharModalDevolucao();\r\n }\r\n }, erro => {\r\n Modal.error({\r\n title: `Atenção!`,\r\n content: `Não foi possivel alterar o regime tributário para o fornecedor: ${dadosNotaDevolucao.pes_nome}!`\r\n });\r\n fecharModalDevolucao(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n Para efetuar devolução de notas é necessário informar um regime tributário para o fornecedor: {dadosNotaDevolucao.pes_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Form, Input, Button, Modal, Table, notification, Divider } from \"antd\";\r\nimport { DeleteOutlined, ExclamationCircleOutlined, PlusOutlined, MailOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../../services/api\";\r\nimport { useStateValue } from '../../../state';\r\nimport { listagemActions } from \"../../../actions\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport { formatarCpf, isObjetoDiffVazio } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalEnvioNFeEmail({ exibirModalEnvioNFeEmail, fecharModalEnvioNFeEmail }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosNota, setDadosNota] = useState({});\r\n const [listaEmail, setListaEmail] = useState([]);\r\n const [form] = Form.useForm();\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && isObjetoDiffVazio(manutencao.dados)) {\r\n setDadosNota(manutencao.dados);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+dest' } }), []);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalEnvioNFeEmail();\r\n }\r\n });\r\n };\r\n\r\n const enviarEmail = () => {\r\n let dados = {};\r\n let enderecos = [];\r\n listaEmail.forEach((email) => {\r\n enderecos.push(email.dest);\r\n })\r\n dados.ntf_id =dadosNota.ntf_id;\r\n dados.chaveNFe = dadosNota.ntf_chavenfe;\r\n dados.enderecosDestinatarios = enderecos;\r\n api.post('NotaFiscal/EnviarEmailXml', dados).then(\r\n (res) => {\r\n notification.success({ description: 'Email enviado com sucesso!', message: 'Aviso' });\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n fecharModalEnvioNFeEmail()\r\n }\r\n );\r\n };\r\n\r\n function adicionarEmail() {\r\n let endereco = form.getFieldValue().enderecoEmail;\r\n if (!!endereco) {\r\n let lista = [...listaEmail];\r\n lista.push({ id: lista.length, dest: endereco });\r\n setListaEmail(lista);\r\n form.setFieldsValue({ enderecoEmail: null });\r\n }\r\n };\r\n\r\n function excluirEmail(record) {\r\n let listaE = [...listaEmail];\r\n let emailLista = listaE.filter((lista) => (lista.id !== record.id));\r\n setListaEmail(emailLista);\r\n };\r\n\r\n return (\r\n \r\n Enviar E-mail\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n \r\n {dadosNota.ntf_chavenfe}\r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_numero}\r\n \r\n \r\n \r\n \r\n {dadosNota.ser_serie}\r\n \r\n \r\n {!!dadosNota.ntf_dataemissao ? moment(dadosNota.ntf_dataemissao).format('DD/MM/YYYY') : null}\r\n \r\n \r\n \r\n \r\n {!!dadosNota.valor_total ? FormatNumber(dadosNota.valor_total, true) : null}\r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_nomedest}\r\n \r\n \r\n \r\n \r\n {!!dadosNota.ntf_cnpjcpfdest ? formatarCpf(dadosNota.ntf_cnpjcpfdest) : ''}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n {dest}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Result, Row, Col, Button, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, CustomerServiceOutlined } from \"@ant-design/icons\";\r\n\r\nimport { AberturaChamado } from \"../../../components\";\r\n\r\nexport default function ModalAjudaRejeicaoNfe({exibirModalAjudaRejeicaoNfe, fecharModalAjudaRejeicaoNfe}) {\r\n\r\n const [activeOpen, setActiveOpen] = useState(false);\r\n\r\n const handleOnClickOpen = () => {\r\n setActiveOpen(true); \r\n }\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalAjudaRejeicaoNfe();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n
\r\n Aguarde... \r\n }\r\n />\r\n
\r\n \r\n
Código - Motivo \r\n \r\n \r\n \r\n No momento não temos nenhuma possivel solução para a rejeição da NF-e ocorrida nesta nota fiscal (cStat = 900) cadastrada em nossa base de dados.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { FormatNumber } from \"../ValueObjects\";\r\nimport api from \"./api\";\r\nimport { getEmpresa } from \"./auth\";\r\nimport jsreports from \"jsreports/jsreports-all\";\r\nimport { carregarConfiguracoes, imprimirRawBase64 } from \"./servidorImpressora\";\r\nimport { substituirCaracterEspecial } from \"./funcoes\";\r\n\r\nconst squemaEtiquetaProduto = [\r\n {\r\n nome: 'Codigo_Empresa',\r\n tipo: 'number'\r\n },\r\n {\r\n nome: 'Empresa',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Produto',\r\n tipo: 'number'\r\n },\r\n {\r\n nome: 'Produto',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Grade',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Marca',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Preco',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Ean',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Etiqueta',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Codigo_Referencia',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Observacao',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Quantidade_Parcela',\r\n tipo: 'string'\r\n },\r\n {\r\n nome: 'Valor_Parcelado',\r\n tipo: 'string'\r\n }\r\n];\r\n\r\n\r\nexport async function imprimirEtiquetaImp(modelo, listaItens) {\r\n let listaEtiqueta = [];\r\n let comandosEnviarImp = [];\r\n let config = await carregarConfiguracoes();\r\n listaItens.forEach((item) => {\r\n let indice = 0;\r\n while (indice < item.quantidade) {\r\n let etiqueta = {\r\n pro_codigo: item.pro_codigo,\r\n pro_codigoetiqueta: item.pro_codigoetiqueta,\r\n prg_codigoetiqueta: item.prg_codigoetiqueta,\r\n pro_referencia: item.pro_referencia,\r\n grade: item.grade,\r\n pro_ean: !!item.prg_ean ? item.prg_ean : item.pro_ean,\r\n lpi_valorvenda: item.lpi_valorvenda,\r\n pro_descricao: item.pro_descricao\r\n }\r\n listaEtiqueta.push(etiqueta);\r\n indice++;\r\n }\r\n });\r\n\r\n let qtdComandos = parseInt(listaEtiqueta.length / modelo.met_colunas);\r\n for (let x = 0; x <= qtdComandos; x++) {\r\n let comando = modelo.met_comando;\r\n for (let i = 1; i <= modelo.met_colunas; i++) {\r\n let indiceEtiqueta = i + (x * modelo.met_colunas);\r\n if (indiceEtiqueta <= listaEtiqueta.length) {\r\n let indice = indiceEtiqueta - 1;\r\n /* let configCodBarra = formulario.getFieldValue().persCodBarra;\r\n if (configCodBarra === 1) {\r\n comando = comando.replace('@codigoBarras' + i, listaEtiqueta[indice].pro_codigo);\r\n } else if (configCodBarra === 2) {\r\n comando = comando.replace('@codigoBarras' + i, !!listaEtiqueta[indice].pro_codigoetiqueta ? listaEtiqueta[indice].pro_codigoetiqueta : listaEtiqueta[indice].prg_codigoetiqueta);\r\n } else {*/\r\n comando = comando.replace('@codigoBarras' + i, listaEtiqueta[indice].pro_ean);\r\n //}\r\n comando = comando.replace('@precoProduto' + i, 'R$ ' + parseFloat(listaEtiqueta[indice].lpi_valorvenda).toFixed(2).replace('.', ','));\r\n /*if (dadosAdicionais) {\r\n let entrada = 1;\r\n let qtdParc = formulario.getFieldValue().numeroParcelas\r\n if (formulario.getFieldsValue().possuiEntrada) {\r\n comando = comando.replace('@formaPagamento' + i, `${qtdParc}x(${entrada}+${qtdParc - entrada})`);\r\n } else {\r\n comando = comando.replace('@formaPagamento' + i, `${qtdParc}x`);\r\n }\r\n comando = comando.replace('@valorPagamento' + i, FormatNumber(listaEtiqueta[indice].lpi_valorvenda / qtdParc, true));\r\n } else {*/\r\n comando = comando.replace('@formaPagamento' + i, ' ');\r\n comando = comando.replace('@valorPagamento' + i, ' ');\r\n //}\r\n\r\n comando = comando.replace('@codigoProduto' + i, !!listaEtiqueta[indice].pro_codigo ? listaEtiqueta[indice].pro_codigo : ' ');\r\n comando = comando.replace('@codigoEtiqueta' + i, !!listaEtiqueta[indice].pro_codigoetiqueta ? listaEtiqueta[indice].pro_codigoetiqueta : ' ');\r\n comando = comando.replace('@referenciaProduto' + i, !!listaEtiqueta[indice].pro_referencia ? listaEtiqueta[indice].pro_referencia : ' ');\r\n\r\n if (!!listaEtiqueta[indice].descricaograde) {\r\n comando = comando.replace('@gradeProduto' + i + 'Linha1', listaEtiqueta[indice].descricaograde.substr(0, parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n if (listaEtiqueta[indice].descricaograde.length > parseInt(modelo.met_quantidadecaracteresdescricaoproduto)) {\r\n comando = comando.replace('@gradeProduto' + i + 'Linha2', listaEtiqueta[indice].descricaograde.substr(parseInt(modelo.met_quantidadecaracteresdescricaoproduto), parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n } else {\r\n comando = comando.replace('@gradeProduto' + i + 'Linha2', ' ');\r\n }\r\n } else {\r\n comando = comando.replace('@gradeProduto' + i + 'Linha1', ' ');\r\n comando = comando.replace('@gradeProduto' + i + 'Linha2', ' ');\r\n }\r\n\r\n comando = comando.replace('@descricaoProduto' + i + 'Linha1', listaEtiqueta[indice].pro_descricao.substr(0, parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n\r\n if (listaEtiqueta[indice].pro_descricao.length > parseInt(modelo.met_quantidadecaracteresdescricaoproduto)) {\r\n comando = comando.replace('@descricaoProduto' + i + 'Linha2', listaEtiqueta[indice].pro_descricao.substr(parseInt(modelo.met_quantidadecaracteresdescricaoproduto), parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n } else {\r\n comando = comando.replace('@descricaoProduto' + i + 'Linha2', ' ');\r\n }\r\n\r\n comando = substituirCaracterEspecial(comando);\r\n\r\n } else {\r\n comando = comando.replace('@codigoProduto' + i, ' ');\r\n comando = comando.replace('@codigoEtiqueta' + i, ' ');\r\n comando = comando.replace('@referenciaProduto' + i, ' ');\r\n comando = comando.replace('@codigoBarras' + i, ' ');\r\n comando = comando.replace('@precoProduto' + i, ' ');\r\n comando = comando.replace('@formaPagamento' + i, ' ');\r\n comando = comando.replace('@valorPagamento' + i, ' ');\r\n comando = comando.replace('@gradeProduto' + i + 'Linha1', ' ');\r\n comando = comando.replace('@gradeProduto' + i + 'Linha2', ' ');\r\n comando = comando.replace('@descricaoProduto' + i + 'Linha1', ' ');\r\n comando = comando.replace('@descricaoProduto' + i + 'Linha2', ' ');\r\n }\r\n }\r\n comandosEnviarImp.push(comando);\r\n }\r\n\r\n comandosEnviarImp.reduce(function (p, val) {\r\n return p.then(function () {\r\n\r\n return imprimirRawBase64(config.impressoraEtiqueta.name, val);\r\n });\r\n }, Promise.resolve());\r\n};\r\n\r\nexport function imprimirImpressoraPadrao(idModelo, listaItens) {\r\n\r\n buscarDadosEmpresa((dadosEmpresa) => {\r\n api.get(`RelatorioModeloEtiqueta/Listar?Id=${idModelo}`).then(\r\n res => {\r\n montarEtiquetaImpressora(res.data, listaItens, dadosEmpresa);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n });\r\n};\r\n\r\nfunction buscarDadosEmpresa(callback) {\r\n api.get(`Empresa/Buscar/${getEmpresa()}`).then(\r\n res => {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n};\r\n\r\nfunction montarEtiquetaImpressora(dadosRel, listaItens, dadosEmpresa) {\r\n let qtd = dadosRel.quantidadeColuna;\r\n let qtdTot = 0;\r\n let campos = [];\r\n let dadosCampos = [];\r\n let listaDadosImpressora = [];\r\n let numeroColuna = 1;\r\n let dadosAux = [];\r\n let dadosImpressora = {\r\n id: \"etiqueta\",\r\n name: \"etiqueta\",\r\n };\r\n listaItens.forEach((itens) => {\r\n qtdTot += itens.quantidade;\r\n });\r\n squemaEtiquetaProduto.forEach((squema) => {\r\n for (let i = 1; i <= qtd; i++) {\r\n campos.push({ name: `${squema.nome}_Coluna_${i}`, type: squema.tipo })\r\n }\r\n });\r\n\r\n listaItens.forEach((produto) => {\r\n for (let idx = 1; idx <= produto.quantidade; idx++) {\r\n let valorParcelado = 0;\r\n let quantidadeParcela = '';\r\n /*if (dadosAdicionais) {\r\n let qtdParcelas = !!formulario.getFieldValue().numeroParcelas ? formulario.getFieldValue().numeroParcelas : 1;\r\n if (!!formulario.getFieldValue().possuiEntrada) {\r\n quantidadeParcela = `${qtdParcelas}x(1+${qtdParcelas - 1})`;\r\n } else {\r\n quantidadeParcela = qtdParcelas + 'x';\r\n }\r\n\r\n valorParcelado = FormatNumber(produto.lpi_valorvenda / qtdParcelas, true);\r\n }*/\r\n dadosAux.push({\r\n ['Codigo_Empresa_Coluna_' + numeroColuna]: getEmpresa(),\r\n ['Empresa_Coluna_' + numeroColuna]: dadosEmpresa.emp_nomefantasia,\r\n ['Codigo_Produto_Coluna_' + numeroColuna]: produto.pro_codigo,\r\n ['Produto_Coluna_' + numeroColuna]: produto.pro_descricao,\r\n ['Grade_Coluna_' + numeroColuna]: produto.descricaograde,\r\n ['Marca_Coluna_' + numeroColuna]: produto.mar_nome,\r\n ['Preco_Coluna_' + numeroColuna]: FormatNumber(produto.lpi_valorvenda, true),\r\n ['Ean_Coluna_' + numeroColuna]: !!produto.prg_ean ? produto.prg_ean : produto.pro_ean,\r\n ['Codigo_Etiqueta_Coluna_' + numeroColuna]: produto.pro_codigoetiqueta,\r\n ['Codigo_Referencia_Coluna_' + numeroColuna]: produto.pro_referencia,\r\n ['Observacao_Coluna_' + numeroColuna]: produto.observacao,\r\n ['Quantidade_Parcela_Coluna_' + numeroColuna]: quantidadeParcela,\r\n ['Valor_Parcelado_Coluna_' + numeroColuna]: valorParcelado\r\n });\r\n\r\n if (numeroColuna === qtd || (qtdTot < qtd && qtdTot === numeroColuna)) {\r\n if (qtdTot < qtd) {\r\n numeroColuna++;\r\n for (let idx = numeroColuna; idx <= qtd; idx++) {\r\n dadosAux.push(retornaEtiquetaEmBranco(idx));\r\n }\r\n }\r\n dadosCampos.push(retornaObjeto(dadosAux));\r\n qtdTot = qtdTot - qtd;\r\n dadosAux = [];\r\n numeroColuna = 1;\r\n } else {\r\n numeroColuna++;\r\n }\r\n }\r\n });\r\n dadosImpressora.data = dadosCampos;\r\n dadosImpressora.schema = {\r\n fields: campos\r\n };\r\n\r\n listaDadosImpressora.push(dadosImpressora);\r\n jsreports.export({\r\n report_def: JSON.parse(dadosRel.jsonRelatorio),\r\n datasets: listaDadosImpressora,\r\n format: 'pdf',\r\n outputHandler: function (dados) {\r\n window.open(URL.createObjectURL(dados), '_blank');\r\n }\r\n })\r\n};\r\n\r\nfunction retornaEtiquetaEmBranco(numeroColuna) {\r\n return {\r\n ['Codigo_Empresa_Coluna_' + numeroColuna]: null,\r\n ['Empresa_Coluna_' + numeroColuna]: '',\r\n ['Codigo_Produto_Coluna_' + numeroColuna]: null,\r\n ['Produto_Coluna_' + numeroColuna]: '',\r\n ['Grade_Coluna_' + numeroColuna]: '',\r\n ['Marca_Coluna_' + numeroColuna]: '',\r\n ['Preco_Coluna_' + numeroColuna]: null,\r\n ['Ean_Coluna_' + numeroColuna]: '',\r\n ['Codigo_Etiqueta_Coluna_' + numeroColuna]: null,\r\n ['Codigo_Referencia_Coluna_' + numeroColuna]: '',\r\n ['Observacao_Coluna_' + numeroColuna]: '',\r\n ['Quantidade_Parcela_Coluna_' + numeroColuna]: null,\r\n ['Valor_Parcelado_Coluna_' + numeroColuna]: null\r\n }\r\n};\r\n\r\nfunction retornaObjeto(listaObj) {\r\n var objRetorno = {};\r\n for (var i = 0; i < listaObj.length; i++) {\r\n for (var attrname in listaObj[i]) {\r\n objRetorno[attrname] = listaObj[i][attrname];\r\n }\r\n }\r\n return objRetorno;\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Form, Select, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, PrinterOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { isObjetoDiffVazio } from \"../../../services/funcoes\";\r\nimport { useStateValue } from \"../../../state\";\r\nimport api from \"../../../services/api\";\r\nimport { carregarConfiguracoes, ServidorImpressoraOnline } from \"../../../services/servidorImpressora\";\r\nimport { imprimirEtiquetaImp, imprimirImpressoraPadrao } from \"../../../services/funcoesEtiqueta\";\r\nimport SelectPaginado from \"../../../components/selectPaginado\";\r\n\r\nexport default function ModalImprimirEtiquetas({ exibirModalImprimirEtiquetas, fecharModalImprimirEtiquetas, dadosNota }) {\r\n\r\n const [listaPreco, setListaPreco] = useState([]);\r\n const [form] = Form.useForm();\r\n const [listaModelo, setListaModelo] = useState([]);\r\n const [listaModeloPadrao, setListaModeloPadrao] = useState([]);\r\n const [listaModeloEtiqueta, setListaModeloEtiqueta] = useState([]);\r\n const [listaItens, setListaItens] = useState([]);\r\n const [listaProduto, setListaProduto] = useState([]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalImprimirEtiquetas();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!exibirModalImprimirEtiquetas) {\r\n verificarServidor();\r\n }\r\n }, [exibirModalImprimirEtiquetas]);\r\n\r\n useEffect(() => {\r\n buscarListaPreco();\r\n buscarModelo();\r\n buscarModeloEtiqueta();\r\n //buscarProdutos();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!dadosNota && isObjetoDiffVazio(dadosNota)) {\r\n listarItensNota();\r\n }\r\n }, [dadosNota])\r\n\r\n function buscarProdutos() {\r\n api.get(`Produto/ListaProdutoFiltro`).then(\r\n res => {\r\n let dados = res.data;\r\n let id = 0;\r\n dados.forEach((produto) => {\r\n produto.key = id;\r\n id++;\r\n });\r\n setListaProduto(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function buscarListaPreco() {\r\n api.get(`ListaPreco/ListarTodasListaPreco`).then(\r\n res => {\r\n if (!!res.data) {\r\n setListaPreco(res.data.items);\r\n form.setFieldsValue({ ltp_id: res.data.items.filter(lista => lista.ltp_principal)[0].ltp_id })\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n async function verificarServidor() {\r\n let servidorOn = await ServidorImpressoraOnline();\r\n if (servidorOn.online) {\r\n let conf = await carregarConfiguracoes();\r\n if (!!conf) {\r\n if (!!!conf.impressoraEtiqueta || !isObjetoDiffVazio(conf.impressoraEtiqueta)) {\r\n notification.warn({ description: 'Você deve configurar a impressora de etiquetas a ser utilizada nesse computador!', message: 'Aviso' });\r\n } else if (!!!conf.modeloEtiqueta || !isObjetoDiffVazio(conf.modeloEtiqueta)) {\r\n notification.warn({ description: 'Você deve configurar o modelo de etiquetas padrão a ser utilizado nesse computador!', message: 'Aviso' });\r\n }\r\n }\r\n } else {\r\n notification.warn({ description: 'O Servidor de impressão não esta em execução nesse computador, para utilizar impressoras de etiquetas verifique as configurações!', message: 'Aviso' });\r\n //setServidorOn(false);\r\n\r\n }\r\n };\r\n\r\n function buscarModelo() {\r\n api.get(`ModeloEtiqueta/Listar?filtro=&ordem=%2Bmet_descricao`).then(\r\n res => {\r\n let dados = res.data.items;\r\n let seq = 0;\r\n dados.forEach((modelo) => {\r\n modelo.key = seq;\r\n modelo.descricaoModelo = modelo.met_descricao;\r\n modelo.id = modelo.met_id;\r\n seq++;\r\n })\r\n setListaModeloEtiqueta(dados);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function buscarModeloEtiqueta() {\r\n api.get(`RelatorioModeloEtiqueta/ListarGeral?TipoEtiqueta=0`).then(\r\n res => {\r\n let dados = res.data.items;\r\n let seq = 0;\r\n dados.forEach((modelo) => {\r\n modelo.key = seq;\r\n modelo.descricaoModelo = modelo.nome;\r\n seq++;\r\n });\r\n setListaModeloPadrao(dados);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n async function listarItensNota() {\r\n let ret = await api.get(`NotaFiscal/RetornaItensEtiquetaNota?IdListaPreco=${form.getFieldValue().ltp_id}&IdNotaFiscal=${dadosNota.ntf_id}`);\r\n let retorno = ret.data;\r\n //let dados = listaProduto.filter((prodLista) => { return retorno.find((item) => (item.pro_id === prodLista.pro_id && item.prg_id === prodLista.prg_id)) });\r\n for (let [i, item] of retorno.entries()) {\r\n item.quantidade = parseInt(item.nfi_qtde);\r\n };\r\n setListaItens(retorno);\r\n };\r\n\r\n function onChangeTipo() {\r\n let tipo = parseInt(form.getFieldValue().tpEtiqueta);\r\n let lista = [];\r\n form.setFieldsValue({ modeloEtiqueta: null });\r\n if (tipo === 0) {//Impressora Padrao\r\n lista = [...listaModeloPadrao];\r\n } else {\r\n lista = [...listaModeloEtiqueta];\r\n }\r\n setListaModelo(lista);\r\n };\r\n\r\n function imprimirEtiqueta() {\r\n listarItensNota();\r\n let tipo = form.getFieldValue().tpEtiqueta;\r\n let itens = [...listaItens];\r\n let modelo = listaModelo.filter((mod) => { return mod.id === form.getFieldValue().modeloEtiqueta })[0];\r\n if (!!modelo && itens.length > 0) {\r\n if (tipo === 0) {\r\n imprimirImpressoraPadrao(modelo.id, itens)\r\n } else {\r\n imprimirEtiquetaImp(modelo, itens);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n { imprimirEtiqueta() }}\r\n okText={\r\n <>\r\n Imprimir Etiqueta\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n \r\n {dadosNota.ntf_numero} \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n buscarListaPreco(value)}\r\n showSearch={true}\r\n allowClear={true}\r\n conteudo={\r\n lp => ({lp.ltp_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Descriptions, Form, InputNumber, Tooltip, Checkbox, Tag, Modal } from \"antd\";\r\nimport { QuestionCircleOutlined, ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { TabelaDados } from \"../../../components\";\r\n\r\nexport default function ModalGradeOrdemCompra({exibirModalGradeOrdemCompra, fecharModalGradeOrdemCompra}) {\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalGradeOrdemCompra();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n width={720}\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n \r\n 000 - descricao \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Definir Valor Para todos os Itens da Grade \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `R$ ${value}`}\r\n parser={value => value.replace('R$ ', '')}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n \r\n
\r\n \r\n {ean} \r\n \r\n \r\n \r\n {mgp_descricao} \r\n \r\n \r\n \r\n `R$ ${value}`}\r\n parser={value => value.replace('R$ ', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } /> \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport moment from 'moment';\r\nimport { Row, Col, Descriptions, Typography, Modal, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { useStateValue } from '../../../state';\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalDetalhePedido({ exibirModalDetalhesPedido, fecharModalDetalhesPedido, ped_id }) {\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [dadosPedido, setDadosPedido] = useState({ pedidoItem: [], pedidoFormaPgto: [] });\r\n\r\n const onCloseModal = () => {\r\n fecharModalDetalhesPedido();\r\n };\r\n\r\n useEffect(() => {\r\n if (exibirModalDetalhesPedido && !!ped_id) {\r\n carregarItensPedido(ped_id);\r\n }\r\n }, [exibirModalDetalhesPedido]);\r\n\r\n function carregarItensPedido(ped_id) {\r\n api.get(`Pedido/BuscaPedido?IdPedido=${ped_id}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n setDadosPedido(res.data)\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function formataCpf(value) {\r\n if (!!value) {\r\n return value.replace(/\\D/g, '')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d{1,2})/, '$1-$2')\r\n .replace(/(-\\d{2})\\d+?$/, '$1')\r\n }\r\n };\r\n\r\n function formataCnpj(value) {\r\n if (!!value) {\r\n return value.replace(/^(\\d{2})(\\d)/, \"$1.$2\")\r\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, \"$1 $2 $3\")\r\n .replace(/\\.(\\d{3})(\\d)/, \".$1/$2\")\r\n .replace(/(\\d{4})(\\d)/, \"$1-$2\")\r\n }\r\n };\r\n\r\n function retornaFrete() {\r\n let totFrete = 0;\r\n dadosPedido.pedidoItem.forEach((item) => {\r\n totFrete += parseFloat(item.pdi_valorfrete);\r\n });\r\n return totFrete;\r\n };\r\n\r\n function retornaValorTotal() {\r\n let valorTotal = 0;\r\n dadosPedido.pedidoItem.forEach((item) => {\r\n valorTotal += parseFloat(item.pdi_valortotal) + parseFloat(item.pdi_valorfrete);\r\n });\r\n return valorTotal;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {dadosPedido.ped_id}\r\n \r\n \r\n {dadosPedido.ped_numero}\r\n \r\n \r\n {!!dadosPedido.pef_cpf ? formataCpf(dadosPedido.pef_cpf) : formataCnpj(dadosPedido.pej_cnpj)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosPedido.loc_id_transferencia ? dadosPedido.loc_descricao : dadosPedido.pes_nomecliente}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosPedido.pes_endereco}, {dadosPedido.pes_nroestabelecimento}, {dadosPedido.pes_bairro}, {dadosPedido.pes_cidade}, {dadosPedido.pes_uf}, {dadosPedido.pes_cep}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosPedido.pes_nometransportador}\r\n \r\n \r\n {dadosPedido.pes_nomevendedor}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosPedido.ped_observacao ? dadosPedido.ped_observacao : 'Não informado'}\r\n \r\n \r\n {FormatNumber(retornaFrete(), true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosPedido.ped_datainclusao ? moment(dadosPedido.ped_datainclusao).format('DD/MM/YYYY') : 'Não informado'}\r\n \r\n \r\n {!!dadosPedido.ped_dataprevisaoentrega ? moment(dadosPedido.ped_dataprevisaoentrega).format('DD/MM/YYYY') : 'Não informado'}\r\n \r\n \r\n {!!dadosPedido.ped_datavalidade ? moment(dadosPedido.ped_datavalidade).format('DD/MM/YYYY') : 'Não informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(retornaValorTotal(), true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Itens\" Itens\r\n \r\n \r\n \r\n {dadosPedido.pedidoItem.map((itens) => (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {itens.pro_descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {parseInt(itens.pdi_quantidade)}\r\n \r\n \r\n {FormatNumber(itens.pdi_valorunitario, true)}\r\n \r\n \r\n {FormatNumber(itens.pdi_valortotal, true)}\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \"Forma Forma de Pagamento\r\n \r\n \r\n \r\n {dadosPedido.pedidoFormaPgto.map(formaPagamento => (\r\n
\r\n \r\n \r\n
\r\n {formaPagamento.fpg_descricao} / {formaPagamento.cpg_descricao} (R$):\r\n \r\n \r\n {FormatNumber(formaPagamento.pfp_valor, true)}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Form, InputNumber, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../../state';\r\nimport { manutencaoActions } from \"../../../actions\";\r\n\r\nexport default function ModalDevolucaoCondicional({ exibirModal, fecharModal, dados, dadosItens, setDadosItens }) {\r\n\r\n const [formDados] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n if (!!dados) {\r\n formDados.setFieldsValue(dados);\r\n formDados.setFieldsValue({ vci_quantidadeDevolvida: dados.vci_devolvido });\r\n } else {\r\n formDados.resetFields();\r\n }\r\n }, [dados]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const salvarDados = values => {\r\n if (values.vci_quantidadeDevolvida > dados.vci_quantidade) {\r\n return (\r\n notification.warning({\r\n message: \"Aviso\",\r\n description: \"Valor informado maior a que quantidade pendente\",\r\n })\r\n )\r\n } else if (values.vci_quantidadeDevolvida < 0) {\r\n return (\r\n notification.warning({\r\n message: \"Aviso\",\r\n description: \"Valor informado menor que 0, favor informar um valor valido\",\r\n })\r\n )\r\n }\r\n dadosItens.filter((item) => { return item.vci_id === dados.vci_id })[0].vci_devolvido = values.vci_quantidadeDevolvida;\r\n if (dadosItens.filter((item) => { return item.vci_id === dados.vci_id })[0].vci_devolvido === dadosItens.filter((item) => { return item.vci_id === dados.vci_id })[0].vci_quantidade) {\r\n dadosItens.filter((item) => { return item.vci_id === dados.vci_id })[0].devolvidoTotal = true;\r\n }else{\r\n dadosItens.filter((item) => { return item.vci_id === dados.vci_id })[0].devolvidoTotal = false;\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosItens } });\r\n fecharModal();\r\n }\r\n\r\n return (\r\n { formDados.submit() }}\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n okText={\r\n <>\r\n Ok\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from 'react';\r\nimport { Row, Col, Tag, Table } from \"antd\";\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\n\r\nexport default function TabItens({ itens }) {\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n \r\n \r\n {pro_descricao}\r\n \r\n {!!atributos &&\r\n \r\n \r\n {atributos.grade}\r\n \r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'UM.',\r\n width: 60,\r\n align: 'right',\r\n render: ({ ump_id }) => (\r\n
\r\n \r\n
\r\n {ump_id}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: 60,\r\n align: 'right',\r\n render: ({ oit_qtde }) => (\r\n
\r\n \r\n
\r\n {oit_qtde}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: 100,\r\n render: ({ oit_valorunitario }) => (\r\n
\r\n {FormatNumber(oit_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: 100,\r\n render: ({ oit_valorunitario, oit_qtde }) => (\r\n
\r\n {FormatNumber(oit_qtde * oit_valorunitario, true)}\r\n
\r\n ),\r\n }\r\n ]\r\n } />\r\n \r\n );\r\n}","\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Table } from \"antd\";\r\n\r\nimport { FormatNumber } from '../../../ValueObjects';\r\nimport { validarNumeros } from \"../../../services/funcoes\";\r\n\r\nexport default function TabFormaPagamento({ formaPagamento }) {\r\n\r\n const [ valorFinal, setValorFinal] = useState();\r\n\r\n useEffect(() => {\r\n valortotal();\r\n }, [formaPagamento]);\r\n\r\n function valortotal (){\r\n let pagamento = [...formaPagamento];\r\n let dados = pagamento;\r\n dados.forEach((itens) =>{\r\n let desconto = validarNumeros((itens.orf_valortotal * itens.orf_percentualdesconto)/100);\r\n let acrescimo = validarNumeros((itens.orf_valortotal * itens.orf_percentualacrescimo)/100);\r\n let total = (validarNumeros(itens.orf_valortotal) + acrescimo) - desconto;\r\n\r\n itens.desconto = desconto;\r\n itens.acrescimo = acrescimo;\r\n itens.total = total;\r\n })\r\n setValorFinal(dados);\r\n }\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n {fpg_descricao} {!!cpg_descricao ? `/ ${cpg_descricao}` : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desconto',\r\n align: 'center',\r\n render: ({ orf_percentualdesconto }) => (\r\n
\r\n {FormatNumber(orf_percentualdesconto, true)} %\r\n
\r\n )\r\n },\r\n {\r\n title: 'Acréscimo',\r\n align: 'center',\r\n render: ({ orf_percentualacrescimo }) => (\r\n
\r\n {FormatNumber(orf_percentualacrescimo, true)} %\r\n
\r\n )\r\n },\r\n {\r\n title: 'Valor',\r\n align: 'right',\r\n render: ({ total }) => (\r\n
\r\n R$ {FormatNumber(!!total ? total : 0, true)}\r\n
\r\n )\r\n }\r\n ]} expandable={{\r\n expandedRowRender: ({ orf_observacao }) => (\r\n
\r\n \r\n
\r\n Obs.: { !!orf_observacao ? orf_observacao : \"Não Informado\" }\r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Modal, Tabs } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport { formatarCnpj, formatarCpf } from \"../../../services/funcoes\";\r\nimport { TabItens, TabFormaPagamento } from './tabPage';\r\n\r\nexport default function ModalDetalheOrcamento({ exibirModal, fecharModal, dadosOrcamento }) {\r\n\r\n const [orcamento, setOrcamento] = useState([]);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n\r\n useEffect(() => {\r\n if (!!dadosOrcamento?.orc_id) {\r\n api.get(`Orcamento/Buscar?orc_id=${dadosOrcamento.orc_id}`).then(\r\n (res) => {\r\n setOrcamento(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n }, [dadosOrcamento]);\r\n\r\n const funcaoFecharModal = () => {\r\n setAbaSelecionada(\"1\");\r\n fecharModal();\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {orcamento.orc_numero}\r\n \r\n \r\n {orcamento.pes_nome ? orcamento.pes_nome : orcamento.orc_nomecliente}\r\n \r\n \r\n {!!orcamento.pef_cpf ? formatarCpf(orcamento.pef_cpf) : orcamento.pej_cnpj ? formatarCnpj(orcamento.pej_cnpj) : \"Não Informado\"} \r\n \r\n \r\n {!!orcamento.orc_datainclusao ? moment(orcamento.orc_datainclusao).format('DD/MM/YYYY') : \"Não Informado\"}\r\n \r\n \r\n {!!orcamento.orc_datavalidade ? moment(orcamento.orc_datavalidade).format('DD/MM/YYYY') : \"Não Informado\"}\r\n \r\n \r\n {orcamento.ven_nome}\r\n \r\n \r\n {FormatNumber(orcamento.orc_valorfrete, true)}\r\n \r\n \r\n {FormatNumber(orcamento.orc_valoroutros, true)}\r\n \r\n \r\n {FormatNumber(orcamento.orc_valortotal, true)}\r\n \r\n \r\n \r\n \r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Button, Table, Tag, InputNumber, Input, Modal } from \"antd\";\r\nimport { PlusOutlined, MinusOutlined, ExclamationCircleOutlined, CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport InputPreco from \"../../inputPreco\";\r\nimport { useStateValue } from '../../../state';\r\nimport { info, validarNumeros } from \"../../../services/funcoes\";\r\nimport { manutencaoActions } from \"../../../actions\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalGradeProduto({ exibirModal, fecharModal, dados, origem, acrescimoDesconto = true, dadosValidacao }) {\r\n const [form] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosRetorno, setDadosRetorno] = useState([]);\r\n const [ehPercentual, setEhPercentual] = useState(false);\r\n const [dadosFiltrados, setDadosFiltrados] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!dados) {\r\n dados.forEach((dado) => {\r\n if (!(!!dado.quantidade)) {\r\n dado.quantidade = 0;\r\n }\r\n });\r\n setDadosRetorno(dados);\r\n setDadosFiltrados(dados);\r\n } else {\r\n form.resetFields();\r\n }\r\n }, [dados]);\r\n\r\n useEffect(() => {\r\n pesquisaGrade(form.getFieldValue().pesquisa);\r\n }, [dadosRetorno]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n };\r\n\r\n const salvarDados = values => {\r\n dados?.forEach(item => {\r\n item.desconto = validarNumeros(form.getFieldValue()[`valorDesc${item.prg_id}`]);\r\n item.percDesc = validarNumeros(form.getFieldValue()[`percDesc${item.prg_id}`]);\r\n item.acrescimo = validarNumeros(form.getFieldValue()[`valorAcresc${item.prg_id}`]);\r\n item.percAcresc = validarNumeros(form.getFieldValue()[`percAcres${item.prg_id}`]);\r\n });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, dadosGrade: [...dados] } } })\r\n fecharModal();\r\n form.resetFields();\r\n };\r\n\r\n function alterarQuantidade(item, operacao, qtde = null) {\r\n let dadosTemp = [...dadosRetorno];\r\n let itemTemp = dadosTemp.find((dado) => (dado === item));\r\n\r\n if (!!dadosValidacao && dadosValidacao.dadosNfeTransferencia && parseFloat(itemTemp.valorVenda) === 0) {\r\n info(\"Não foi possivel localizar o \" + dadosValidacao.dadosNfeTransferencia.custo.value + \" do item, selecione OUTRO CUSTO e informe o produto novamente!\");\r\n return;\r\n }\r\n\r\n if (qtde !== null) {\r\n itemTemp.quantidade = qtde;\r\n } else {\r\n let qtd = !!itemTemp.quantidade ? itemTemp.quantidade : 0;\r\n if (operacao === \"mais\") {\r\n qtd++;\r\n } else if (operacao === \"menos\" && qtd > 0) {\r\n qtd--;\r\n }\r\n itemTemp.quantidade = qtd;\r\n }\r\n itemTemp.valorTotal = (parseFloat(itemTemp.quantidade) * parseFloat(itemTemp.valorVenda));\r\n if (acrescimoDesconto) {\r\n calcularAcres(ehPercentual ? 'P' : 'V', item, itemTemp);\r\n calcularDesc(ehPercentual ? 'P' : 'V', item, itemTemp);\r\n }\r\n setDadosRetorno(dadosTemp);\r\n };\r\n\r\n function pesquisaGrade(campo) {\r\n let filtrados = [];\r\n if (!!campo) {\r\n for (let item of dadosRetorno) {\r\n if (item.ean.indexOf(campo) >= 0) {\r\n filtrados.push(item);\r\n } else {\r\n for (let grade of item.atributos) {\r\n if (grade.mgp_descricao.toLowerCase().indexOf(campo.toLowerCase()) >= 0) {\r\n filtrados.push(item);\r\n }\r\n }\r\n }\r\n }\r\n setDadosFiltrados(filtrados);\r\n } else {\r\n setDadosFiltrados([...dadosRetorno]);\r\n }\r\n };\r\n\r\n function calcularDesc(tipo, item, itemTemp = null) {\r\n let salvar = false;\r\n let dadosTemp = [...dadosRetorno];\r\n if (itemTemp === null) {\r\n itemTemp = dadosTemp.find((dado) => (dado === item));\r\n itemTemp.valorTotal = (parseFloat(!!itemTemp.valorVenda ? itemTemp.valorVenda : itemTemp.pre_custoultimacompra) * itemTemp.quantidade);\r\n salvar = true;\r\n }\r\n\r\n let percDesc = parseFloat(form.getFieldValue()[`percDesc${item.prg_id}`]);\r\n let valorDesc = parseFloat(form.getFieldValue()[`valorDesc${item.prg_id}`]);\r\n let valorAcresc = parseFloat(form.getFieldValue()[`valorAcresc${item.prg_id}`]);\r\n\r\n itemTemp.valorTotal = (parseFloat(!!itemTemp.valorVenda ? itemTemp.valorVenda : itemTemp.pre_custoultimacompra) * itemTemp.quantidade);\r\n let valorRet = 0;\r\n if (!!valorDesc || !!percDesc) {\r\n if (tipo === 'P' && !!percDesc) {\r\n valorRet = (percDesc * itemTemp.valorTotal) / 100;\r\n form.setFieldsValue({ [`valorDesc${item.prg_id}`]: valorRet });\r\n valorDesc = valorRet;\r\n } else {\r\n valorRet = (valorDesc * 100) / itemTemp.valorTotal;\r\n form.setFieldsValue({ [`percDesc${item.prg_id}`]: valorRet });\r\n }\r\n }\r\n itemTemp.valorTotal = parseFloat(itemTemp.valorTotal - valorDesc + valorAcresc);\r\n\r\n if (salvar) {\r\n setDadosRetorno(dadosTemp);\r\n }\r\n };\r\n\r\n function calcularAcres(tipo, item, itemTemp = null) {\r\n let salvar = false;\r\n let dadosTemp = [...dadosRetorno];\r\n if (itemTemp === null) {\r\n itemTemp = dadosTemp.find((dado) => (dado === item));\r\n salvar = true;\r\n }\r\n\r\n let percAcresc = parseFloat(form.getFieldValue()[`percAcres${item.prg_id}`]);\r\n let valorDesc = parseFloat(form.getFieldValue()[`valorDesc${item.prg_id}`]);\r\n let valorAcresc = parseFloat(form.getFieldValue()[`valorAcresc${item.prg_id}`]);\r\n\r\n itemTemp.valorTotal = (parseFloat(!!itemTemp.valorVenda ? itemTemp.valorVenda : itemTemp.pre_custoultimacompra) * itemTemp.quantidade);\r\n let valorRet = 0;\r\n if (!!valorAcresc || !!percAcresc) {\r\n if (tipo === 'P' && !!percAcresc) {\r\n valorRet = (percAcresc * itemTemp.valorTotal) / 100;\r\n form.setFieldsValue({ [`valorAcresc${item.prg_id}`]: valorRet });\r\n valorAcresc = valorRet;\r\n } else {\r\n valorRet = (valorAcresc * 100) / itemTemp.valorTotal;\r\n form.setFieldsValue({ [`percAcres${item.prg_id}`]: valorRet });\r\n }\r\n }\r\n itemTemp.valorTotal = parseFloat(itemTemp.valorTotal - valorDesc + valorAcresc);\r\n\r\n if (salvar) {\r\n setDadosRetorno(dadosTemp);\r\n }\r\n };\r\n\r\n return (\r\n \r\n Cancelar\r\n \r\n }\r\n onOk={() => { form.submit() }}\r\n okText={\r\n <>\r\n Ok\r\n \r\n }\r\n width={780}\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n { pesquisaGrade(campo) }} allowClear\r\n />\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n {ean}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Grade',\r\n render: ({ atributos }) => (\r\n
\r\n \r\n {atributos.map(atrib => (\r\n
\r\n {atrib.mgp_descricao}\r\n \r\n ))}\r\n \r\n \r\n ),\r\n }, acrescimoDesconto ? {\r\n title: () => {\r\n return (\r\n
\r\n \r\n
\r\n Desconto\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n },\r\n width: 175,\r\n align: 'center',\r\n render: (record, { prg_id }) => (\r\n \r\n \r\n \r\n \r\n {/*\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n { alterarQuantidade(record, \"\", e) }} />\r\n \r\n \r\n \r\n Informe a Senha Gerencial para poder realizar este procedimento.\r\n \r\n \r\n \r\n (visible ? : )}\r\n />\r\n\r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Button, Table, Tag, Form, Row, Col, notification, Modal } from \"antd\";\r\nimport { CloseOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined, SaveOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport Data from \"../../data\";\r\nimport api from \"../../../services/api\";\r\nimport { FormatNumber } from '../../../ValueObjects';\r\nimport InputPreco from \"../../inputPreco\";\r\n\r\nexport default function ModalListarParcelas({ exibirModal, fecharModal, parcelas, setParcelas }) {\r\n\r\n useEffect(() => {\r\n console.log(parcelas)\r\n }, [parcelas]);\r\n\r\n const [form] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n fecharModal();\r\n form.resetFields();\r\n\r\n };\r\n function alterarParcela(record) {\r\n alterarEstado(record);\r\n }\r\n\r\n function alterarEstado(record) {\r\n let parcelaAlt = [...parcelas];\r\n let a = {};\r\n a = parcelaAlt.find((prc) => prc.prc_id === record.prc_id);\r\n a.editando = !a.editando;\r\n setParcelas(parcelaAlt);\r\n console.log(parcelaAlt)\r\n }\r\n\r\n function salvarParcela(record) {\r\n let parcela = {\r\n prc_datavencimento: form.getFieldValue([`prc_datavencimento${record.prc_id}`]),\r\n prc_valor: form.getFieldValue([`prc_valor${record.prc_id}`]),\r\n prc_id: record.prc_id\r\n }\r\n api.put(`Parcela/EditarParcelaPagar`, parcela).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Parcela alterada com Sucesso!` });\r\n alterarEstado(record)\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n\r\n function estornaParcela(record) {\r\n if (!!record.ntf_id) {\r\n notification.warning({ message: 'Aviso', description: 'Parcela vinculada com uma nota fiscal, não é possivel estorna-la!' });\r\n return false;\r\n } else {\r\n Modal.confirm({\r\n title: 'Estornar?',\r\n icon: ,\r\n content: 'Deseja realmente estornar a parcela?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.put(`Parcela/EstornarParcela/${record.prc_id}`).then(\r\n res => {\r\n notification.success({ message: 'Sucesso', description: 'Parcela Estornada com Sucesso!' });\r\n }\r\n ).catch(\r\n error => {\r\n notification.warn({ message: 'Aviso', description: 'Não foi possivel estornar a parcela!' });\r\n }\r\n ).finally(() => {\r\n fecharModal();\r\n })\r\n }\r\n });\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
(\r\n \r\n {prc_numeroparcela}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Status Parcela',\r\n width: 100,\r\n render: ({ saldo }) => (\r\n
\r\n {saldo === 0 ? 'Liquidada' : 'Pendente'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ prc_valor, editando, prc_id, ntf_id }, idx) => (\r\n
\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Data Vencimento',\r\n width: 135,\r\n render: ({ prc_datavencimento, prc_id, editando }, idx) => (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }, {\r\n title: 'Ações',\r\n align: 'right',\r\n width: 65,\r\n render: (record, { nft_id, saldo }) => (\r\n \r\n {!record.editando && saldo !== 0 &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {validarValor()}}/>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Input, Row, Col, Form, Button, Modal, Table, Tag } from 'antd';\r\nimport { ExclamationCircleOutlined, ImportOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { useStateValue } from '../../../state';\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\n\r\nexport default function ModalImportarElementosFormulario({ exibirModalImportarElementos, fecharModalImportarElementos, elementosFormulario, setElementosFormulario }) {\r\n const [{ listagem, manutencao }, dispatch] = useStateValue();\r\n const [listaElementosSelecionados, setListaElementosSelecionados] = useState([]);\r\n const [listaParametros, setListaParametros] = useState([]);\r\n const [pagina, setPagina] = useState(1);\r\n const [registrosPorPagina, setRegistrosPorPagina] = useState(10);\r\n const [filtrosRel, setFiltrosRel] = useState(\"\");\r\n const [codRel, setCodRel] = useState(\"\");\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a Importação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalImportarElementos();\r\n }\r\n });\r\n };\r\n\r\n const [form] = Form.useForm();\r\n\r\n function listarParametros() {\r\n let parametros = `${!!filtrosRel ? '&filtro=' + filtrosRel : \"\"}${!!codRel ? '&codigoRelatorio=' + codRel : ''}`;\r\n console.log(parametros.substring(0, 1));\r\n if (parametros.substring(0, 1) === '&') {\r\n parametros = parametros.substring(1, parametros.length)\r\n }\r\n\r\n api.get(`RelatorioParametroJasper/Listar?pageSize=500&${parametros}`).then(res => {\r\n if (res.status === 200) {\r\n let listaParametros = res.data.items\r\n let listaParametrosAtz = [];\r\n listaParametros.map((par) => {\r\n par.checked = false;\r\n listaParametrosAtz = [...listaParametrosAtz, par];\r\n })\r\n setListaParametros({ dados: listaParametrosAtz, total: res.data.total });\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n\r\n function selecionaElementos(indice, record, checked) {\r\n console.log(indice, record, checked)\r\n if (checked) {\r\n setListaElementosSelecionados([...listaElementosSelecionados, record])\r\n let listaParametrosTemp = [...listaParametros.dados]\r\n listaParametrosTemp[indice].checked = true\r\n setListaParametros({ dados: listaParametrosTemp, total: listaParametros.total })\r\n } else {\r\n let listaElementos = [...listaElementosSelecionados];\r\n let idx = listaElementos.indexOf(record);\r\n listaElementos.splice(idx, 1);\r\n setListaElementosSelecionados(listaElementos);\r\n let listaParametrosTemp = [...listaParametros.dados]\r\n listaParametrosTemp[indice].checked = false\r\n setListaParametros({ dados: listaParametrosTemp, total: listaParametros.total })\r\n }\r\n\r\n }\r\n\r\n function importarElementos() {\r\n let listaParametrosAtz = [];\r\n listaElementosSelecionados.map((par) => {\r\n delete (par.checked);\r\n delete (par.rel_id);\r\n delete (par.rpj_id);\r\n listaParametrosAtz = [...listaParametrosAtz, par];\r\n })\r\n setElementosFormulario([...elementosFormulario, ...listaParametrosAtz]);\r\n fecharModalImportarElementos();\r\n }\r\n\r\n useEffect(() => listarParametros(), [codRel, filtrosRel]);\r\n useEffect(() => setListaElementosSelecionados([]), []);\r\n useEffect(() => {\r\n if (exibirModalImportarElementos) listarParametros();\r\n }, [exibirModalImportarElementos]);\r\n\r\n return (\r\n {\r\n onCloseModal();\r\n }} footer={null}>\r\n
\r\n
\r\n \r\n
\r\n \r\n setFiltrosRel(valor)} allowClear />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n setPagina(pg),\r\n onShowSizeChange: (atual, porPagina) => setRegistrosPorPagina(porPagina)\r\n }}*/\r\n columns={[\r\n {\r\n title: 'Nome Elemento',\r\n Key: \"rpj_nomeelemento\",\r\n editable: true,\r\n render: ({ rpj_nomeelemento }) => (\r\n
\r\n {rpj_nomeelemento}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Label',\r\n Key: \"rpj_label\",\r\n editable: true,\r\n render: ({ rpj_label }) => (\r\n
\r\n {rpj_label}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'TipoElemento',\r\n Key: \"rpj_tipoelemento\",\r\n editable: true,\r\n render: ({ rpj_tipoelemento }) => (\r\n
\r\n {rpj_tipoelemento}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 80,\r\n render: (value, record, indice) => (\r\n selecionaElementos(indice, record, checked)}\r\n >\r\n Selecionar\r\n \r\n ),\r\n }\r\n ]} scroll={{ y: 350 }}\r\n />\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Input, Row, Col, Form, Button, Modal, Table, Tag, Select } from 'antd';\r\nimport { ExclamationCircleOutlined, ImportOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\n\r\nexport default function ModalImportarElementosCamposAdicionais({ exibirModalImportarElementos, fecharModalImportarElementos, elementosFormulario, setElementosFormulario }) {\r\n const [listaElementosSelecionados, setListaElementosSelecionados] = useState([]);\r\n const [listaParametros, setListaParametros] = useState([]);\r\n const [filtros, setFiltros] = useState(\"\");\r\n const [entidade, setEntidade] = useState();\r\n const [form] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a Importação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalImportarElementos();\r\n }\r\n });\r\n };\r\n\r\n const entidades = [\r\n { label: \"Cliente\", value: 1 },\r\n { label: \"Fornecedor\", value: 2 },\r\n { label: \"Funcionario\", value: 3 },\r\n { label: \"Produto\", value: 4 },\r\n { label: \"Trasportador\", value: 5 },\r\n { label: \"Vendedor\", value: 6 }\r\n ]\r\n\r\n function listarParametros() {\r\n // let parametros = `${!!filtros ? '&filtro=' + filtros : \"\"}${!!entidade?'&TipoEntidade='+entidade:'&ordem=+cap_ordem'}`;\r\n // api.get(`CamposPersonalizados/ListarTodos?PageNumber=1&PageSize=1000&Order=+cap_ordem${parametros}`).then(res => {\r\n let parametros = `${!!filtros?'&filtro='+filtros:\"\"}${!!entidade?'&TipoEntidade='+entidade:'&ordem=+cap_ordem'}`;\r\n api.get(`CamposPersonalizados/ListarTodos?pagina=1&PageSize=1000${parametros}`).then(res => {\r\n if (res.status === 200) {\r\n let listaParametros = res.data.items\r\n let listaParametrosAtz = [];\r\n listaParametros.map((par) => {\r\n par.checked = false;\r\n listaParametrosAtz = [...listaParametrosAtz, par];\r\n })\r\n setListaParametros({ dados: listaParametrosAtz, total: res.data.total });\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao carregar Campos personalizados!');\r\n }\r\n )\r\n }\r\n\r\n function selecionaElementos(indice, record, checked) {\r\n console.log(indice, record, checked)\r\n if (checked) {\r\n setListaElementosSelecionados([...listaElementosSelecionados, record])\r\n let listaParametrosTemp = [...listaParametros.dados]\r\n listaParametrosTemp[indice].checked = true\r\n setListaParametros({ dados: listaParametrosTemp, total: listaParametros.total })\r\n } else {\r\n let listaElementos = [...listaElementosSelecionados];\r\n let idx = listaElementos.indexOf(record);\r\n listaElementos.splice(idx, 1);\r\n setListaElementosSelecionados(listaElementos);\r\n let listaParametrosTemp = [...listaParametros.dados]\r\n listaParametrosTemp[indice].checked = false\r\n setListaParametros({ dados: listaParametrosTemp, total: listaParametros.total })\r\n }\r\n\r\n }\r\n\r\n function importarElementos() {\r\n let listaParametrosAtz = [];\r\n listaElementosSelecionados.map((par) => {\r\n delete (par.checked);\r\n delete (par.rel_id);\r\n delete (par.cap_id);\r\n listaParametrosAtz = [...listaParametrosAtz, par];\r\n })\r\n setElementosFormulario([...elementosFormulario, ...listaParametrosAtz]);\r\n fecharModalImportarElementos();\r\n }\r\n\r\n useEffect(() => listarParametros(), [entidade, filtros]);\r\n useEffect(() => setListaElementosSelecionados([]), []);\r\n\r\n useEffect(() => {\r\n if (!!exibirModalImportarElementos) {\r\n listarParametros()\r\n }\r\n }, [exibirModalImportarElementos]);\r\n\r\n return (\r\n {\r\n onCloseModal();\r\n }} footer={null}>\r\n
\r\n
\r\n \r\n
\r\n \r\n setFiltros(valor)} allowClear />\r\n \r\n \r\n \r\n \r\n { setEntidade(valor); }}\r\n options={entidades}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {cap_nomeelemento}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Label',\r\n Key: \"cap_label\",\r\n editable: true,\r\n render: ({ cap_label }) => (\r\n
\r\n {cap_label}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'TipoElemento',\r\n Key: \"cap_tipoelemento\",\r\n editable: true,\r\n render: ({ cap_tipoelemento }) => (\r\n
\r\n {cap_tipoelemento}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 80,\r\n render: (value, record, indice) => (\r\n selecionaElementos(indice, record, checked)}\r\n >\r\n Selecionar\r\n \r\n ),\r\n }\r\n ]} scroll={{ y: 350 }}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport FormBuilder from 'antd-form-builder';\r\nimport { Row, Col, Form, Empty, Button, Rate, Slider, Upload, TimePicker, Modal } from 'antd';\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nFormBuilder.defineWidget('rate', Rate);\r\nFormBuilder.defineWidget('slider', Slider);\r\nFormBuilder.defineWidget('time-picker', TimePicker);\r\nFormBuilder.defineWidget('upload', Upload);\r\n\r\nexport default function ModalPersonalizacaoFormulario({ exibirModalPersonalizacao, fecharModalPersonalizacao, elementosFormulario }) {\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalPersonalizacao();\r\n }\r\n });\r\n };\r\n\r\n const [ form ] = Form.useForm();\r\n\r\n const meta = {\r\n columns: 1, \r\n fields: elementosFormulario\r\n }\r\n\r\n return (\r\n {\r\n onCloseModal();\r\n }} footer={null}>\r\n
\r\n {elementosFormulario.length > 0 && \r\n
console.log(v)}>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {elementosFormulario.length === 0 && }\r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Form, Empty, Button, Modal } from 'antd';\r\nimport {FormularioDinamico} from \"../../../components\"\r\nimport moment from 'moment'\r\n\r\nexport default function ModalPersonalizacaoFormularioFiltros({ exibirModalPersonalizacao, fecharModalPersonalizacao, elementosFormulario }) {\r\n\r\n const onCloseModal = () => {\r\n fecharModalPersonalizacao();\r\n };\r\n\r\n function finish(values){\r\n //altera o Retorno dos campos data\r\n for (let valor in values){\r\n if (!!Date.parse(values[valor]) && typeof values[valor] === \"object\" && values[valor].toString().length > 30){\r\n values[valor] = moment(values[valor]).format(\"DD/MM/YYYY\")\r\n }\r\n }\r\n console.log({values}); \r\n alert(JSON.stringify(values));\r\n }\r\n\r\n const [ form ] = Form.useForm();\r\n\r\n return (\r\n {\r\n onCloseModal();\r\n }} footer={null}>\r\n
\r\n {!!elementosFormulario && elementosFormulario.length > 0 && \r\n
\r\n
finish(v)}>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!!elementosFormulario && elementosFormulario.length === 0 && }\r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Form, Modal } from \"antd\";\r\nimport { CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../../state';\r\nimport { InputPreco } from \"../../../components\";\r\n\r\nexport default function ModalEditarValoresParcela({ exibirModal, fecharModal, dadosLinha, salvarDadosModal }) {\r\n\r\n const [formDados] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n if (!!dadosLinha) {\r\n formDados.setFieldsValue(dadosLinha);\r\n }\r\n }, [dadosLinha, []]);\r\n\r\n const onCloseModal = () => {\r\n formDados.resetFields();\r\n fecharModal();\r\n };\r\n\r\n const salvarDados = values => {\r\n salvarDadosModal(values);\r\n fecharModal();\r\n }\r\n\r\n function calcularValorReceber() {\r\n let valorTotal = parseFloat((!!dadosLinha.valorOriginal ? dadosLinha.valorOriginal : 0)) - parseFloat((!!dadosLinha.valorQuitado ? dadosLinha.valorQuitado : 0));\r\n if (parseFloat(formDados.getFieldValue(\"valorDesconto\")) > (valorTotal + parseFloat(formDados.getFieldValue(\"valorJuros\")) + parseFloat(formDados.getFieldValue(\"valorAcrescimo\")))) {\r\n formDados.setFieldsValue({ valorDesconto: valorTotal + parseFloat(formDados.getFieldValue(\"valorJuros\")) + parseFloat(formDados.getFieldValue(\"valorAcrescimo\")) });\r\n }\r\n\r\n let valorReceber = (valorTotal + parseFloat(formDados.getFieldValue(\"valorJuros\")) + parseFloat(formDados.getFieldValue(\"valorAcrescimo\")) - parseFloat(formDados.getFieldValue(\"valorDesconto\"))).toFixed(2);\r\n formDados.setFieldsValue({ valorPago: parseFloat(valorReceber) });\r\n };\r\n\r\n function verificarValorReceber() {\r\n let valorTotal = parseFloat((!!dadosLinha.valorOriginal ? dadosLinha.valorOriginal : 0)) - parseFloat((!!dadosLinha.valorQuitado ? dadosLinha.valorQuitado : 0));\r\n let valorReceber = (valorTotal + parseFloat(formDados.getFieldValue(\"valorJuros\")) + parseFloat(formDados.getFieldValue(\"valorAcrescimo\")) - parseFloat(formDados.getFieldValue(\"valorDesconto\"))).toFixed(2);\r\n\r\n if (parseFloat(formDados.getFieldValue(\"valorPago\")) > valorReceber) {\r\n formDados.setFieldsValue({ valorPago: valorReceber });\r\n }\r\n };\r\n\r\n return (\r\n { formDados.submit() }}\r\n okText={\r\n <>\r\n Ok\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n calcularValorReceber()} name={'valorJuros'} label={'Juros (R$)'} />\r\n \r\n \r\n calcularValorReceber()} name={'valorDesconto'} label={'Descontos (R$)'} />\r\n \r\n \r\n calcularValorReceber()} name={'valorAcrescimo'} label={'Acréscimos (R$)'} />\r\n \r\n \r\n verificarValorReceber()} name={'valorPago'} label={'Valor à Receber (R$)'} />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Button, Col, Form, Image, Input, Radio, Row, Typography, Modal } from \"antd\";\r\nimport { ArrowLeftOutlined, ExclamationCircleOutlined, CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../../services/api';\r\nimport { useStateValue } from '../../../state';\r\nimport { info } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalBandeiraCartao({ exibirModal, fecharModal, retornoModal, fecharModalOK = fecharModal }) {\r\n\r\n const [formDados] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaBandeiras, setListaBandeiras] = useState([]);\r\n const [bandeiraSelecionada, setBandeiraSelecionada] = useState([]);\r\n\r\n useEffect(() => {\r\n api.get(`BandeiraCartaoEmpresa/ListarAtivos`).then(res => {\r\n if (res.status === 200) {\r\n setListaBandeiras(res.data);\r\n }\r\n });\r\n }, []);\r\n\r\n const onCloseModal = () => {\r\n formDados.resetFields();\r\n setBandeiraSelecionada([]);\r\n fecharModal();\r\n };\r\n\r\n const modalCancelar = () => {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Deseja realmente cancelar o lançamento de Cartão?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n onOk() {\r\n onCloseModal()\r\n }\r\n });\r\n };\r\n\r\n const salvarDados = values => {\r\n if (bandeiraSelecionada.length > 0) {\r\n values.bandeira = bandeiraSelecionada[0];\r\n retornoModal(manutencao.dados, values);\r\n fecharModalOK();\r\n setBandeiraSelecionada([]);\r\n } else {\r\n info('Selecione uma bandeira!');\r\n }\r\n };\r\n\r\n\r\n function abrirTipoParcelamento(e) {\r\n if (!!e.target.value) {\r\n setBandeiraSelecionada(listaBandeiras.filter((bandeira) => { return bandeira.bnd_id === parseInt(e.target.value) }));\r\n }\r\n };\r\n\r\n function fecharTipoParcelamento() {\r\n setBandeiraSelecionada([]);\r\n formDados.resetFields();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ]}\r\n >\r\n
\r\n
\r\n {bandeiraSelecionada.length === 0 &&\r\n \r\n
\r\n \r\n \r\n {listaBandeiras.map((item) => {\r\n return (\r\n abrirTipoParcelamento(e)}\r\n value={item.bnd_id}\r\n >\r\n
\r\n \r\n
\r\n {item.bnd_nome.toUpperCase()}\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n \r\n \r\n }\r\n {bandeiraSelecionada.length > 0 &&\r\n
\r\n \r\n
\r\n Bandeira Selecionada:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {bandeiraSelecionada[0].bnd_nome.toUpperCase()}\r\n \r\n
\r\n \r\n \r\n
\r\n {!!manutencao.dados && manutencao.dados.credito &&\r\n
\r\n \r\n
\r\n Tipo de Parcelamento:\r\n \r\n \r\n \r\n \r\n \r\n \r\n Por Parte do Estabelecimento\r\n Por Parte do Comprador\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Select, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { isObjetoDiffVazio } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalEditarPDV({ exibirModalPDV, fecharModalPDV, dadosPdv, setDadosPdv }) {\r\n\r\n const [serieFiscal, setSerieFiscal] = useState([]);\r\n const [formulario] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalPDV();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`SerieFiscal/Listar?CodigoModeloDocFiscal=65&EmitenteDocumento=0&pageSize=500`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setSerieFiscal(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isObjetoDiffVazio(dadosPdv)) {\r\n formulario.setFieldsValue({ ser_id: dadosPdv.ser_id });\r\n }\r\n }, [dadosPdv])\r\n\r\n function editarPdv(valores) {\r\n let dadosTemp = serieFiscal.filter(ser => (ser.ser_id === valores.ser_id))[0]\r\n let dadosPdvTemp = dadosPdv;\r\n dadosPdvTemp.ser_id = dadosTemp.ser_id;\r\n dadosPdvTemp.ser_serie = dadosTemp.ser_serie;\r\n dadosPdvTemp.serieFiscal = dadosTemp;\r\n api.put(`Pdv/Editar`, dadosPdvTemp).then(\r\n (res) => {\r\n notification.success({ message: 'Sucesso!', description: 'Caixa Pdv editado com sucesso!' });\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n notification.warning({ message: 'Aviso!', description: 'Problema ao editar Caixa Pdv' });\r\n }\r\n ).finally(() => { fecharModalPDV(); })\r\n }\r\n\r\n return (\r\n formulario.submit()}\r\n onCancel={onCloseModal}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Modal, Select, Form, Input, InputNumber, notification } from \"antd\";\r\nimport { PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { isNotNullOrEmpty, isObjetoDiffVazio } from \"../../../services/funcoes\";\r\nimport { useStateValue } from \"../../../state\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\nimport { selectPaginadoActions } from \"../../../actions\";\r\n\r\nexport default function ModalManutencaoNota({ exibirModal, fecharModal, dadosContribuinte, dadosOperacao, dadosEndereco, dadosProduto, aoSalvar }) {\r\n const [form] = Form.useForm();\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [mostrarCstIcms, setMostrarCstIcms] = useState(false);\r\n const [mostarCsoSn, setMostrarCsoSn] = useState(false);\r\n const [mostrarAlicotaIcms, setMostrarAlicotaIcms] = useState(false);\r\n const [mostrarReducaoBC, setMostrarReducaoBC] = useState(false);\r\n const [mostrarDiferimentoIcms, setMostrarDiferimentoIcms] = useState(false);\r\n const [dadosNota, setDadosNota] = useState({});\r\n const [notaTransferencia, setNotaTransferencia] = useState(false);\r\n const [exibePerc, setExibePerc] = useState(false);\r\n const [estadoOrig, setEstadoOrig] = useState({});\r\n const [estadoDest, setEstadoDest] = useState({});\r\n\r\n const onFinish = values => {\r\n values.loc_id = dadosContribuinte.loc_id;\r\n values.pro_id = dadosProduto.pro_id;\r\n if (exibePerc) {\r\n values.mva_uforigem = values.iod_uforigem\r\n values.mva_ufdestino = values.iod_ufdestino;\r\n } else {\r\n values.mva_percmva = 0;\r\n values.mva_percaliquotaicms = 0;\r\n values.mva_percaliquotaicmsreducao = 0;\r\n }\r\n values.iod_percicms = !!form.getFieldValue().iod_percicms ? form.getFieldValue().iod_percicms : 0;\r\n values.iod_percicmsreducaobc = !!form.getFieldValue().iod_percicmsreducaobc ? form.getFieldValue().iod_percicmsreducaobc : 0;\r\n values.iod_percdiferimentoicms = !!form.getFieldValue().iod_percdiferimentoicms ? form.getFieldValue().iod_percdiferimentoicms : 0;\r\n\r\n api.post('TributacaoIcms/AtualizarTributacaoProduto', values).then(\r\n (res) => {\r\n notification.success({ message: 'Sucesso', description: 'Produto alterado com sucesso!' });\r\n form.resetFields();\r\n aoSalvar(dadosProduto.pro_id);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function validarCst(cst_id) {\r\n let codigoCst;\r\n if (!!cst_id) {\r\n codigoCst = cst_id;\r\n } else {\r\n codigoCst = form.getFieldValue('cst_id');\r\n }\r\n if (!!codigoCst) {\r\n if (codigoCst <= '20' || codigoCst === '90' || codigoCst === '51' || codigoCst === '70') {\r\n setMostrarAlicotaIcms(true);\r\n } else {\r\n setMostrarAlicotaIcms(false);\r\n form.setFieldsValue({ iod_percicms: 0 });\r\n }\r\n\r\n if (codigoCst === '90' || codigoCst === '20' || codigoCst === '70') {\r\n setMostrarReducaoBC(true);\r\n } else {\r\n setMostrarReducaoBC(false);\r\n form.setFieldsValue({ iod_percicmsreducaobc: 0 });\r\n }\r\n\r\n if (codigoCst === '90' || codigoCst === '51') {\r\n setMostrarDiferimentoIcms(true);\r\n } else {\r\n setMostrarDiferimentoIcms(false);\r\n form.setFieldsValue({ iod_percdiferimentoicms: 0 });\r\n }\r\n\r\n if (codigoCst === '10' || codigoCst === '30' || codigoCst === '70') {\r\n setExibePerc(true);\r\n }\r\n } else {\r\n setMostrarAlicotaIcms(true);\r\n setMostrarReducaoBC(true);\r\n setMostrarDiferimentoIcms(true);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n carregarDados()\r\n }, [exibirModal]);\r\n\r\n function carregarDados() {\r\n if (isObjetoDiffVazio(dadosContribuinte) && !!dadosOperacao && !!dadosEndereco) {\r\n if (dadosContribuinte.emp_regimetributario === 3) {\r\n if (!!!dadosProduto.cst_id){\r\n setMostrarCstIcms(true);\r\n }\r\n setMostrarCsoSn(false);\r\n } else {\r\n if (!!dadosProduto.cst_id)\r\n setMostrarCstIcms(false);\r\n setMostrarCsoSn(true);\r\n }\r\n dadosCampos();\r\n buscarEstados();\r\n }\r\n };\r\n\r\n function dadosCampos() {\r\n if (mostrarCstIcms) {\r\n if (!!dadosProduto.cst_id) {\r\n if (dadosProduto.cst_id <= 20 || dadosProduto.cst_id === 90 || dadosProduto.cst_id === 51 || dadosProduto.cst_id === 70) {\r\n setMostrarAlicotaIcms(true);\r\n } else {\r\n setMostrarAlicotaIcms(false);\r\n }\r\n\r\n if (dadosProduto.cst_id === 90 || dadosProduto.cst_id === 20 || dadosProduto.cst_id === 70) {\r\n setMostrarReducaoBC(true);\r\n } else {\r\n setMostrarReducaoBC(false);\r\n }\r\n\r\n if (dadosProduto.cst_id === 90 || dadosProduto.cst_id === 51) {\r\n setMostrarDiferimentoIcms(true);\r\n } else {\r\n setMostrarDiferimentoIcms(false);\r\n }\r\n } else {\r\n setMostrarAlicotaIcms(true);\r\n setMostrarReducaoBC(true);\r\n setMostrarDiferimentoIcms(true);\r\n }\r\n }\r\n if (!!dadosProduto && !!dadosProduto.cst_id && (dadosProduto.cst_id === '10' || dadosProduto.cst_id === '30' || dadosProduto.cst_id === '70')) {\r\n setExibePerc(true);\r\n }\r\n setDadosNota(dadosProduto);\r\n let lista = [];\r\n if (!!dadosProduto.icm_id) {\r\n lista.push({ name: \"icm_id\", campo: \"Codigo\", value: dadosProduto.icm_id });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: lista });\r\n form.setFieldsValue({ icm_id: dadosProduto.icm_id });\r\n }\r\n\r\n };\r\n\r\n function buscarEstados() {\r\n api.get(`Estado/Listar?PageSize=200`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let listaEst = [...res.data.items];\r\n if (listaEst.length > 0) {\r\n let estadoOrigem = listaEst.filter((estado) => (estado.est_sigla === dadosContribuinte.est_sigla))[0];\r\n setEstadoOrig(estadoOrigem);\r\n form.setFieldsValue({ iod_uforigem: estadoOrigem.est_sigla });\r\n if (isObjetoDiffVazio(dadosEndereco)) {\r\n let estadoDestino = listaEst.filter((estado) => (estado.est_sigla === dadosEndereco.est_sigla))[0];\r\n setEstadoDest(estadoDestino);\r\n form.setFieldsValue({ iod_ufdestino: estadoDestino.est_sigla });\r\n } else {\r\n setEstadoDest(estadoOrigem);\r\n }\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n {\r\n form.resetFields();\r\n fecharModal();\r\n }}\r\n onOk={() => {\r\n form.submit();\r\n fecharModal();\r\n }}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n O Item selecionado não possui as informações necessárias para gerar uma NF-e!
\r\n Favor complementar abaixo as informações do cadastro deste item:\r\n \r\n \r\n {!!dadosNota && dadosNota.pro_descricao === '' && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n ({icm?.icm_id} - {icm?.icm_descricao})}\r\n />\r\n \r\n \r\n \r\n\r\n {!!dadosNota && dadosNota.orm_id === null && \r\n \r\n \r\n ({cst?.orm_id} - {cst?.orm_descricao})}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!mostrarCstIcms && \r\n \r\n \r\n { validarCst(valor) }}\r\n conteudo={(cst) => ({cst.cst_id})}\r\n />\r\n \r\n \r\n }\r\n {!!mostarCsoSn && \r\n \r\n \r\n ({csosn.cso_id} - {csosn.cso_descricao})} />\r\n \r\n \r\n }\r\n {!!dadosNota && dadosNota.ncm_id === null && \r\n \r\n \r\n ({ncm.ncm_codigo?.codigoNcm} - {ncm.ncm_descricao})}\r\n />\r\n \r\n \r\n }\r\n {!!dadosNota && dadosNota.ump_id === null && \r\n \r\n \r\n ({unidadeMedida.ump_id} - {unidadeMedida.ump_descricao})}\r\n />\r\n \r\n \r\n }\r\n {!!dadosNota && dadosNota.pis_id === null && !!dadosContribuinte && (dadosContribuinte.emp_regimetributario === 3 || !!notaTransferencia) && \r\n \r\n \r\n ({tribPisCofins.pis_id} - {tribPisCofins.pis_descricao})}\r\n />\r\n \r\n \r\n }\r\n {mostrarAlicotaIcms && \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n }\r\n {mostrarReducaoBC && \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n }\r\n {mostrarDiferimentoIcms && \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n }\r\n {exibePerc &&
\r\n \r\n
\r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n\r\n};","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Modal, Table, Form, notification, Input } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\n\r\nexport default function ModalContaCorrente({ exibirModalContaCorrente, fecharModalContaCorrenteOk, fecharModalContaCorrente, contaCorrente, listaContaCorrente, tipoConta = 1 }) {\r\n \r\n const [linhaPintada, setLinhaPintada] = useState(0);\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n const [searchResults, setSearchResults] = useState([]);\r\n const handleChange = event => {\r\n setSearchTerm(event.target.value);\r\n };\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalContaCorrente();\r\n }\r\n });\r\n };\r\n\r\n const salvarModalContaCorrente = () => {\r\n if (!!contaCorrente.contaCorrente && JSON.stringify(contaCorrente.contaCorrente) !== '{}') {\r\n fecharModalContaCorrenteOk();\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Favor selecionar uma conta corrente' })\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (exibirModalContaCorrente) {\r\n listarContaCorrente();\r\n }\r\n }, [exibirModalContaCorrente]);\r\n\r\n function listarContaCorrente() {\r\n api.get(`ContaCorrente/AtivosTipoConta?Ativo=true&tipoConta=${tipoConta}&PageSize=500&filtro=`).then(\r\n res => {\r\n if (res.status === 200) {\r\n res.data.items.sort(function (x, y) {\r\n let a = x.ctc_descricao.toUpperCase(),\r\n b = y.ctc_descricao.toUpperCase();\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n )\r\n listaContaCorrente.setListaContaCorrente(res.data.items);\r\n setSearchResults(res.data.items.sort());\r\n }\r\n }\r\n ).then(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (!!listaContaCorrente.listaContaCorrente) {\r\n if (listaContaCorrente.listaContaCorrente.length === 1) {\r\n contaCorrente.setContaCorrente(listaContaCorrente.listaContaCorrente[0]);\r\n }\r\n }\r\n }, [listaContaCorrente.listaContaCorrente]);\r\n\r\n function selecionarContaCorrente(record, rowIndex) {\r\n contaCorrente.setContaCorrente(record);\r\n setLinhaPintada(record.ctc_id);\r\n };\r\n\r\n useEffect(() => {\r\n if (listaContaCorrente.listaContaCorrente.length > 0) {\r\n const results = listaContaCorrente.listaContaCorrente.filter(cc => cc.ctc_descricao.toLowerCase().includes(searchTerm));\r\n setSearchResults(results);\r\n }\r\n }, [searchTerm])\r\n\r\n return (\r\n \r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {(ctc_id === linhaPintada) &&\r\n
\r\n \r\n \r\n }\r\n \r\n {ctc_descricao}\r\n \r\n \r\n ),\r\n }\r\n ]\r\n }\r\n onRow={(record, rowIndex) => {\r\n return {\r\n onClick: () => {\r\n selecionarContaCorrente(record, rowIndex);\r\n }\r\n }\r\n }}\r\n dataSource={searchResults}\r\n />\r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Modal, Table, Descriptions } from \"antd\";\r\n\r\nimport { linkApi } from \"../../../services/auth\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalTaxasCartaoCredito({exibirModalTaxasCartaoCredito, fecharModalTaxasCartaoCredito, dadosTaxaCartao}) {\r\n \r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {dadosTaxaCartao.bce_nomecredenciadora}\r\n \r\n \r\n \r\n \r\n {dadosTaxaCartao.bnd_nome}\r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n {tcp_parcelaminima}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Até Parcela(s)',\r\n align: 'center',\r\n render: ({ tcp_parcelamaxima }) => (\r\n
\r\n {tcp_parcelamaxima}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Taxa % Aplicada',\r\n align: 'right',\r\n render: ({ tcp_taxa }) => (\r\n
\r\n {FormatNumber(parseFloat(tcp_taxa) * 100, true, false)}%\r\n
\r\n ),\r\n },\r\n ]\r\n } />\r\n \r\n \r\n \r\n \r\n );\r\n}","\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Modal, Descriptions, Form, Table } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport { InputPreco } from \"../../\"\r\nimport { useStateValue } from \"../../../state\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport { manutencaoActions } from \"../../../actions\";\r\n\r\nexport default function ModalAntecipacaoClienteFornecedor({ formAnterior, exibirModalAntecipacaoClienteFornecedor, fecharModalAntecipacaoClienteFornecedor, dadosAntecipacao }) {\r\n\r\n const [listaAntecipacao, setListaAntecipacao] = useState([]);\r\n const [valorAntecipacao, setValorAtecipacao] = useState(0);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalAntecipacaoClienteFornecedor();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (exibirModalAntecipacaoClienteFornecedor && !!formAnterior.getFieldValue() && formAnterior.getFieldValue().pfp_valor) {\r\n form.setFieldsValue({ 'valorPagar': formAnterior.getFieldValue().pfp_valor });\r\n }\r\n }, [exibirModalAntecipacaoClienteFornecedor]);\r\n\r\n useEffect(() => {\r\n let totalAntecipacao = 0;\r\n if (listaAntecipacao.length > 0) {\r\n listaAntecipacao.forEach((antecipacao) => {\r\n totalAntecipacao += parseFloat(antecipacao.acf_valor) - parseFloat(antecipacao.anm_valor);\r\n antecipacao.valorUtilizado = 0;\r\n });\r\n }\r\n setValorAtecipacao(totalAntecipacao);\r\n }, [listaAntecipacao]);\r\n\r\n function selecionarAntecipacoes(selectedRowKeys, selectedRows) {\r\n setListaAntecipacao(selectedRows);\r\n };\r\n\r\n function salvarAntecipacao() {\r\n let valorNota = 0;\r\n let valorRestante = 0;\r\n if (!!formAnterior.getFieldValue().pfp_valor) {\r\n valorNota = parseFloat(formAnterior.getFieldValue().pfp_valor);\r\n valorRestante = valorNota;\r\n }\r\n let valorAntecipacao = 0;\r\n listaAntecipacao.forEach((antecipacao, index, array) => {\r\n let saldoAUtilizar = (parseFloat(antecipacao.acf_valor) - parseFloat(antecipacao.anm_valor))\r\n if (valorRestante - saldoAUtilizar >= 0) {\r\n antecipacao.valorUtilizado = saldoAUtilizar;\r\n } else { \r\n antecipacao.valorUtilizado = saldoAUtilizar + (valorRestante - saldoAUtilizar);\r\n }\r\n valorRestante -= antecipacao.valorUtilizado;\r\n valorAntecipacao += antecipacao.valorUtilizado;\r\n if (valorAntecipacao >= valorNota) {\r\n array.length = index + 1;\r\n }\r\n });\r\n listaAntecipacao.forEach(antecipacao => { antecipacao.valorAntecipacao = valorAntecipacao });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ antecipacao: listaAntecipacao } } } });\r\n fecharModalAntecipacaoClienteFornecedor();\r\n };\r\n\r\n return (\r\n \r\n Confirmar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Abaixo valor referente ANTECIPAÇÃO gerada por: {formAnterior.getFieldValue().pes_nome}\r\n \r\n \r\n \r\n \r\n Localize a antecipação\r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n {ntf_id}\r\n
\r\n ),\r\n }, {\r\n title: 'Data',\r\n render: ({ acf_datalancamento }) => (\r\n
{moment(acf_datalancamento).format(\"DD/MM/YYYY\")}
\r\n ),\r\n }, {\r\n title: 'Vlr. Antecipação(R$)',\r\n align: 'right',\r\n render: ({ acf_valor }) => (\r\n
{FormatNumber(acf_valor, true)}
\r\n ),\r\n }, {\r\n title: 'Vlr. Utilizado(R$)',\r\n align: 'right',\r\n render: ({ anm_valor }) => (\r\n
{FormatNumber(anm_valor, true)}
\r\n ),\r\n }, {\r\n title: 'Saldo a Utilizar(R$)',\r\n align: 'right',\r\n render: ({ acf_valor, anm_valor }) => (\r\n
{FormatNumber((acf_valor) - (anm_valor), true)}
\r\n ),\r\n },\r\n ]\r\n }\r\n dataSource={dadosAntecipacao}\r\n rowSelection={{\r\n onChange: (selectedRowKeys, selectedRows) => {\r\n selecionarAntecipacoes(selectedRowKeys, selectedRows);\r\n }\r\n }}\r\n footer={\r\n () => {\r\n return (\r\n
\r\n Antecipação Selecionada (R$): {FormatNumber(valorAntecipacao, true)}\r\n
\r\n );\r\n }\r\n }\r\n scroll={{ y: 240}}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total da Nota (R$) {FormatNumber(formAnterior.getFieldValue().valorTotal, true)}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Col, Descriptions, Form, Modal, notification, Row, Table } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, PlusOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nexport default function ModalSelectLote({ exibirModal, fecharModal, dadosLote, setDadosLote, dadosItem }) {\r\n\r\n const [listaLote, setListaLote] = useState([]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n })\r\n }\r\n function salvarLotes() {\r\n let itemCLote = { ...dadosItem };\r\n let quantidadeRestante = itemCLote.nfi_qtde;\r\n \r\n // Ordena listaLote pela data mais antiga\r\n listaLote.sort((a, b) => new Date(a.prl_datavencimento) - new Date(b.prl_datavencimento));\r\n \r\n let listaTemp = [];\r\n \r\n listaLote.forEach(item => {\r\n let quantidadeParaAtribuir = Math.min(item.saldo, quantidadeRestante);\r\n \r\n listaTemp.push({\r\n prl_id: item.prl_id,\r\n nfl_qtde: quantidadeParaAtribuir,\r\n });\r\n \r\n quantidadeRestante -= quantidadeParaAtribuir;\r\n \r\n if (quantidadeRestante <= 0) {\r\n return;\r\n }\r\n });\r\n \r\n let qtdeLote = listaTemp.reduce((total, item) => total + item.nfl_qtde, 0);\r\n \r\n if (qtdeLote < itemCLote.nfi_qtde) {\r\n notification.warning({ message: 'Aviso!', description: 'Quantidade de Lotes menor que quantidade do item.' });\r\n } else {\r\n fecharModal(itemCLote, listaTemp);\r\n }\r\n };\r\n\r\n function selecionarLotes(selectedRowKeys, selectedRows) {\r\n setListaLote(selectedRows);\r\n }\r\n\r\n return (\r\n \r\n Confirmar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {dadosItem.pro_descricao}\r\n \r\n \r\n \r\n \r\n Selecione o Lote\r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n {prl_numerolote}\r\n )\r\n },\r\n {\r\n title: 'Qtde',\r\n width: 75,\r\n align: 'center',\r\n render: ({ saldo }) => (\r\n {saldo}\r\n ),\r\n },\r\n {\r\n title: 'Data Entrada',\r\n render: ({ prl_dataentrada }) => (\r\n {moment(prl_dataentrada).format('DD/MM/YYYY')}\r\n )\r\n },\r\n {\r\n title: 'Data Fabricação',\r\n render: ({ prl_datafabricacao }) => (\r\n {moment(prl_datafabricacao).format('DD/MM/YYYY')}\r\n )\r\n },\r\n {\r\n title: 'Data Validade',\r\n render: ({ prl_datavencimento }) => (\r\n {moment(prl_datavencimento).format('DD/MM/YYYY')}\r\n ),\r\n }\r\n ]\r\n }\r\n dataSource={dadosLote}\r\n rowSelection={{\r\n onChange: (selectedRowKeys, selectedRows) => {\r\n selecionarLotes(selectedRowKeys, selectedRows);\r\n }\r\n }}\r\n scroll={{ y: 240}}\r\n />\r\n \r\n \r\n \r\n \r\n )\r\n}","\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Modal, Descriptions, Form, Select } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport { SelectPaginado } from \"../../../components\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport InputPreco from \"../../inputPreco\";\r\nimport { validaForm } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalDevolucaoSubstituicaoTributaria({ exibirModal, fecharModal, dadosNfe, aoSalvar, serieFiscal, dadosNotaDevSt }) {\r\n\r\n const [formulario] = Form.useForm();\r\n const [operacaoDebCred, setOperacaoDebCred] = useState([]);\r\n\r\n useEffect(() => {\r\n if (exibirModal) {\r\n // api.get('OperacaoDebitoCredito/Listar?filtro=').then(\r\n // (res) => {\r\n // if (res.status === 200) {\r\n // setOperacaoDebCred(res.data);\r\n // }\r\n // }\r\n // ).catch(\r\n // (erro) => {\r\n // console.log(erro);\r\n // }\r\n // );\r\n dadosNotaDevSt.valorBaseIcmsDev = parseFloat(dadosNotaDevSt.valorBaseIcmsDev.toFixed(2));\r\n dadosNotaDevSt.valorIcmsDev = parseFloat(dadosNotaDevSt.valorIcmsDev.toFixed(2));\r\n dadosNotaDevSt.valorBaseIcmsStDev = parseFloat(dadosNotaDevSt.valorBaseIcmsStDev.toFixed(2));\r\n dadosNotaDevSt.valorIcmsStDev = parseFloat(dadosNotaDevSt.valorIcmsStDev.toFixed(2));\r\n formulario.setFieldsValue(dadosNotaDevSt);\r\n }\r\n }, [exibirModal]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const listaValidacoes = [\r\n { nome: 'ser_id', obrigatorio: true, label: 'Série Fiscal' },\r\n { nome: 'operacaodebito', obrigatorio: true, label: 'Operação de Débito' },\r\n { nome: 'valorBaseIcmsStDev', obrigatorio: true, label: 'Valor Base de Cálculo da Substituição Tributária' },\r\n { nome: 'valorIcmsStDev', obrigatorio: true, label: 'Valor da Substituição Tributária Cálculada' },\r\n { nome: 'operacaocredito', obrigatorio: true, label: 'Operação de Crédito' },\r\n { nome: 'valorBaseIcmsDev', obrigatorio: true, label: 'Valor Base de Cálculo da Adjudicação de ICMS' },\r\n { nome: 'valorIcmsDev', obrigatorio: true, label: 'Valor da Adjudicação de ICMS' }\r\n ];\r\n\r\n async function validar(values) {\r\n \r\n if (validaForm(formulario, listaValidacoes)) {\r\n let dadosNotaDevSt = { ...values };\r\n dadosNotaDevSt.ntf_dataemissao = new Date();\r\n dadosNotaDevSt.operacaodebito = (await api.get(`OperacaoDebitoCredito/Buscar/${values.operacaodebito}`)).data;\r\n dadosNotaDevSt.operacaocredito = (await api.get(`OperacaoDebitoCredito/Buscar/${values.operacaocredito}`)).data;\r\n dadosNotaDevSt.emitirNfe = true;\r\n aoSalvar(dadosNotaDevSt);\r\n }\r\n };\r\n\r\n return (\r\n formulario.submit()}\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n okText={\r\n <>\r\n Emitir\r\n \r\n }\r\n width={850}\r\n maskClosable={false}\r\n >\r\n
\r\n
{ validar(values) }}>\r\n \r\n
\r\n \r\n A nota fiscal devolvida, possui itens com substituição tributária!
\r\n Neste caso devem ser emitidas 3(três) notas fiscais.
\r\n Para concluir a emissão preencha os dados solicitados abaixo:\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosNfe.dadosNfeDevolucao.pes_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ({odc.odc_descricao})\r\n } />\r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Operação para NF-e de Adjudicação de Crédito de ICMS. A NF-e será emitida para o emitente da NF-e!\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({odc.odc_descricao})\r\n } />\r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","\r\nimport React, { useState } from \"react\";\r\nimport { Row, Col, Modal, Table, Tag, Divider, Descriptions } from \"antd\";\r\nimport { ExclamationCircleOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalListaProduto({ exibirModalListaProduto, fecharModalListaProduto, dadosItens }) {\r\n\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n\r\n const rowSelection = {\r\n selectedRowKeys,\r\n };\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalListaProduto();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n Abaixo selecione o produto desejado.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n \r\n
\r\n \r\n {pro_id}\r\n \r\n \r\n \r\n {pro_descricao}\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} rowSelection={rowSelection} dataSource={dadosItens} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Modal, Descriptions, Form, Table, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\"\r\n\r\nimport api from \"../../../services/api\";\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function ModalDetalhesOrdemCompra({ exibirModal, fecharModal, dadosOrdemCompra }) {\r\n\r\n const [itensOrdemCompra, setItensOrdemCompra] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!dadosOrdemCompra.orc_id) {\r\n api.get(`OrdemCompraItem/ListarItensOrdemCompra?codigoOrdemCompra=${dadosOrdemCompra.orc_id}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n let itens = res.data;\r\n itens.forEach((item, indice) => {\r\n item.ocp_faltareceber = item.ocp_quantidaderecebida;\r\n\r\n api.get(`ListaPrecoItem/BuscarPrecoPadraoItem?codigoProduto=${item.pro_id}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n item.lpi_valorvenda = res.data;\r\n }\r\n }\r\n );\r\n if (!!item.prg_id) {\r\n api.get(`Produto/ListarGrades?codigoProduto=${item.pro_id}`).then(\r\n (res) => {\r\n if (!!res.data) {\r\n res.data.forEach((grade) => {\r\n if (grade.prg_id === item.prg_id) {\r\n item.grade = {\r\n prg_id: grade.prg_id,\r\n mgp_descricao: \"\",\r\n prg_ean: grade.ean,\r\n prg_codigoetiqueta: grade.etiqueta,\r\n prg_valorvenda: grade.valorVenda,\r\n atributos: []\r\n }\r\n\r\n for (let i = 0; i < grade.atributos.length; i++) {\r\n item.grade.mgp_descricao += grade.atributos[i].mgp_descricao + \" \";\r\n let atributoTemp = {\r\n mgp_id: grade.atributos[i].mgp_id,\r\n mgp_descricao: grade.atributos[i].mgp_descricao\r\n }\r\n item.grade.atributos.push(atributoTemp);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n );\r\n }\r\n\r\n if (itens.length - 1 === indice) {\r\n setItensOrdemCompra(itens);\r\n }\r\n });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n }, [dadosOrdemCompra]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {dadosOrdemCompra.orc_id}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosOrdemCompra.nomeFornecedor}\r\n \r\n \r\n {dadosOrdemCompra.nomeTransportador || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosOrdemCompra.orc_atendente || 'Não Informado'}\r\n \r\n \r\n {dadosOrdemCompra.orc_nropedido || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosOrdemCompra.orc_observacao || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosOrdemCompra.orc_formapagamento || 'Não Informado'}\r\n \r\n \r\n {moment(dadosOrdemCompra.orc_datainclusao).format('DD/MM/YYYY')}\r\n \r\n \r\n {moment(dadosOrdemCompra.orc_dataconclusao).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(dadosOrdemCompra.orc_valortotal - dadosOrdemCompra.orc_valorfrete + dadosOrdemCompra.orc_valordesconto, true)}\r\n \r\n \r\n {FormatNumber(dadosOrdemCompra.orc_valorfrete, true)}\r\n \r\n \r\n {FormatNumber(dadosOrdemCompra.orc_valordesconto, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total (R$): {FormatNumber(dadosOrdemCompra.orc_valortotal, true)}\r\n \r\n \r\n
\r\n
(\r\n
\r\n {pro_codigo}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Itens',\r\n width: 180,\r\n render: ({ pro_descricao, mgp_descricao }) => (\r\n
\r\n \r\n
\r\n {pro_descricao}\r\n \r\n \r\n {mgp_descricao != \"\" &&\r\n \r\n \r\n Grade: {mgp_descricao}\r\n \r\n \r\n }\r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: 50,\r\n align: 'right',\r\n render: ({ ocp_quantidade }) => (\r\n
\r\n {FormatNumber(ocp_quantidade, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Qtde. Rec.',\r\n width: 50,\r\n align: 'right',\r\n render: ({ ocp_quantidaderecebida }) => (\r\n
\r\n {FormatNumber(ocp_quantidaderecebida, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Un.(R$)',\r\n width: 50,\r\n align: 'right',\r\n render: ({ ocp_valorun }) => (\r\n
\r\n {FormatNumber(ocp_valorun, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Total(R$)',\r\n width: 60,\r\n align: 'right',\r\n render: ({ ocp_valorun, ocp_frete, ocp_desconto, ocp_quantidade }) => (\r\n
\r\n {FormatNumber((ocp_valorun + ocp_frete - ocp_desconto) * ocp_quantidade, true)}\r\n
\r\n ),\r\n },\r\n ]\r\n } locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ y: 196, x: 580 }} />\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Descriptions, Form, Input, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { InfoNotaNFe } from \"../../../components\";\r\nimport { novaAbaNavegador } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalEstornoNfe({ dadosNota, exibirModal, fecharModal }) {\r\n const [formulario] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n formulario.resetFields();\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n function salvar(valores) {\r\n let dados = {};\r\n dados.ntf_id = dadosNota.ntf_id;\r\n dados.textoEstorno = formulario.getFieldValue().justificativa;\r\n setCarregando(true);\r\n api.post(`NotaFiscal/IncluirEstorno`, dados).then(\r\n res => {\r\n if (res.data.ntf_status === 1) {\r\n notification.success({ description: `NF-e Nº: ${dadosNota.ntf_numero} estorna com sucesso!`, message: 'Aviso' });\r\n if (res.data.ntf_status === 1 && !!res.data.ntf_chavenfe && res.data.ntf_docfiscal == true) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${res.data.ntf_chavenfe}`);\r\n }\r\n } else if (res.data.ntf_status != 1) {\r\n notification.success({ description: res.data.ntf_cstat + res.data.ntf_xmotivo, message: 'Aviso' });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n notification.warning({ description: 'Ocorreu um erro ao tentar estornar a nota fiscal.', message: 'Aviso' });\r\n setCarregando(false);\r\n }\r\n ).finally(\r\n () => {\r\n fecharModal();\r\n setCarregando(false);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n \r\n Realizar o Estorno\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n onOk={salvar}\r\n destroyOnClose\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n ATENÇÃO:
\r\n O prazo legal para o Cancelamento de um Nota Fiscal Eletrônica é de 168 horas.
\r\n A Nota Fiscal selecionada ultrapassou este prazo, de modo que, apenas é permitido seu Estorno.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport moment from 'moment';\r\nimport { Row, Col, Descriptions, Modal, Table, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport { ModalSenhaLiberacao } from \"..\";\r\n\r\nexport default function ModalParcelasPendentes({ dadosParcelas, exibirModal, fecharModal, fecharModalOk }) {\r\n const [abreModalLiberacao, setAbreModalLiberacao] = useState(false);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const solicitarPermissao = () => {\r\n setAbreModalLiberacao(true);\r\n };\r\n\r\n const onCloseModalLiberacao = (retorno) => {\r\n setAbreModalLiberacao(false);\r\n if (retorno) {\r\n fecharModalOk();\r\n }\r\n };\r\n\r\n return (\r\n \r\n Solicitar permissão para venda a prazo\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n O Cliente possui parcelas em atraso.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(!!dadosParcelas && dadosParcelas.length > 0 ? dadosParcelas[0].limiteCredito : 0, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
(\r\n
\r\n {cpr_numerodocumento}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Parcela',\r\n render: ({ prc_numeroparcela }) => (\r\n
\r\n {prc_numeroparcela}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Vencimento',\r\n render: ({ prc_datavencimento }) => (\r\n
\r\n {moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Pendente (R$)',\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n },\r\n ]} dataSource={dadosParcelas} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Form, Modal, InputNumber, Select, Alert, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { getEmpresa } from \"../../../services/auth\";\r\n\r\nexport default function ModalAliquotaSimplesNacional({ exibirModal, fecharModal, aposSalvar }) {\r\n const [formulario] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const salvarAliquota = () => {\r\n let valores = formulario.getFieldValue();\r\n valores.emp_id = getEmpresa();\r\n api.post(`AliquotaSimplesNacional/Incluir`, valores).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: 'Aliquota adicionada com sucesso!' })\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n ()=>{\r\n aposSalvar();\r\n }\r\n )\r\n };\r\n\r\n useEffect(() => {\r\n let data = new Date();\r\n carregarDados(data);\r\n\r\n }, []);\r\n\r\n function carregarDados(data) {\r\n formulario.setFieldsValue({ asn_mes: data.getMonth() + 1 });\r\n formulario.setFieldsValue({ asn_ano: data.getFullYear() });\r\n };\r\n\r\n return (\r\n \r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Form, Modal, Descriptions, InputNumber, notification } from \"antd\";\r\nimport { SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\n\r\nexport default function ModalItemInventario({ form, dadosItem, exibirModal, onCloseModal, TipoCodigoProduto }) {\r\n\r\n const [formulario] = Form.useForm();\r\n\r\n const alterarItem = record => {\r\n let dados = {};\r\n dados.TipoCodigoProduto = TipoCodigoProduto;\r\n dados.inv_id = form.getFieldValue().inv_id;\r\n dados.ivi_id = dadosItem.ivi_id;\r\n dados.qtde = record.ivi_estoqueatual - dadosItem.ivi_estoqueatual;\r\n api.put(`Inventario/ModificarItem`, dados).then(\r\n res => {\r\n notification.success({ description: 'Item do inventário modificado com sucesso!', message: 'Aviso' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n formulario.resetFields();\r\n onCloseModal();\r\n }\r\n )\r\n };\r\n\r\n return (\r\n {\r\n formulario.resetFields();\r\n onCloseModal();\r\n }}\r\n onOk={() => formulario.submit()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n \r\n \r\n \r\n \r\n {dadosItem.pro_codigo} - {dadosItem.pro_descricao}\r\n \r\n \r\n \r\n \r\n {!!dadosItem.grade && \r\n \r\n \r\n \r\n \r\n {dadosItem.grade} \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n {dadosItem.ivi_estoqueanterior}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { Modal, Button, } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport { PrecoGrade } from '../../';\r\n\r\nexport default function ModalGrade({ visible, onCloseModal, list, setList, onSave }) {\r\n\r\n const onCancel = () => {\r\n Modal.confirm({\r\n title: 'Atenção',\r\n icon: ,\r\n content: 'Deseja sair sem salvar?',\r\n okText: 'Sim',\r\n cancelText: 'Cancelar',\r\n onOk: () => {\r\n onCloseModal();\r\n }\r\n });\r\n }\r\n\r\n\r\n return (\r\n } size=\"middle\" onClick={onCancel}>\r\n Cancelar\r\n ,\r\n ,\r\n ]}>\r\n \r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Row, Col, Typography, Form, Input, Modal, Switch, Table, Tag, Select, notification, Button } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport { novaAbaNavegador } from \"../../../services/funcoes\";\r\nimport { SelectPaginacao } from \"../../../components\";\r\n\r\nexport default function ModalConfirmacaoTransferencia({ dadosNota = {}, exibirModal, fecharModal }) {\r\n\r\n const [form] = Form.useForm();\r\n const [conferiTodos, setConferiTodos] = useState(false);\r\n const [usarLeitor, setUsarLeitor] = useState(false);\r\n const [serieFiscalTerceiros, setSerieFiscalTerceiros] = useState([]);\r\n const [listaItens, setListaItens] = useState([]);\r\n const [parametrosEmpresa, setParametrosEmpresa] = useState([]);\r\n const codBarrasInput = useRef();\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (exibirModal) {\r\n setConferiTodos(false);\r\n setUsarLeitor(false);\r\n\r\n api.get('ParametroEmpresa/BuscarParametros').then(res => {\r\n if (res.status === 200) {\r\n setParametrosEmpresa(res.data);\r\n }\r\n }).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n\r\n if (!!dadosNota.ntf_id) {\r\n let listaTemp = [];\r\n api.get(`NotaFiscalTransferencia/ListarItensNotaFiscal/${dadosNota.ntf_id}`).then(itensNotaFiscal => {\r\n if (itensNotaFiscal.status === 200) {\r\n itensNotaFiscal.data.forEach((item, indice) => {\r\n item.produtoConferido = false;\r\n item.key = indice + 1;\r\n listaTemp.push(item);\r\n\r\n if (item.key === itensNotaFiscal.data.length) {\r\n setListaItens(listaTemp);\r\n }\r\n });\r\n }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n }\r\n }\r\n }, [exibirModal]);\r\n\r\n function marcarItem(key, nfi_ean) {\r\n let itens = [...listaItens];\r\n let itemEditar = itens.filter((item) => { return (item.nfi_ean === nfi_ean && (!!key ? item.key === key : true)) });\r\n itemEditar.map((item) => {\r\n if (!key) {\r\n item.produtoConferido = true;\r\n form.setFieldsValue({ codBarras: '' });\r\n } else {\r\n item.produtoConferido = !item.produtoConferido;\r\n }\r\n });\r\n setListaItens(itens);\r\n };\r\n\r\n function marcarTodos(checked) {\r\n setConferiTodos(checked);\r\n\r\n let itens = [...listaItens];\r\n itens.map((item) => {\r\n item.produtoConferido = (checked ? true : false);\r\n });\r\n setListaItens(itens);\r\n };\r\n\r\n function salvarDados() {\r\n let idSerie = form.getFieldValue().ser_id;\r\n if (!idSerie) {\r\n notification.warning({ message: 'Aviso', description: ('Favor selecionar uma Série Fiscal!') });\r\n } else {\r\n setCarregando(true);\r\n api.post(`NotaFiscalTransferencia/incluirEntrada?IdNotaFiscal=${dadosNota.ntf_id}&IdSerie=${idSerie}`).then(\r\n retornoNF => {\r\n if (retornoNF.status === 200) {\r\n if (retornoNF.data.ntf_status === 1 && !!retornoNF.data.ntf_chavenfe && !!retornoNF.data.ntf_docfiscal) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${retornoNF.data.ntf_chavenfe}`);\r\n }\r\n notification.success({ message: 'Operação Concluída', description: 'Nota Fiscal de Transferência adicionada com sucesso!' })\r\n fecharModal();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n notification.warning({ message: 'Aviso', description: (!!erro.data ? erro.data.Message : 'Não foi possível realizar a Confirmação de Transferencia!') });\r\n }\r\n ).finally(\r\n () => {\r\n setCarregando(false);\r\n }\r\n );\r\n }\r\n };\r\n\r\n return (\r\n form.submit()}\r\n maskClosable={false}\r\n width={850}\r\n destroyOnClose\r\n footer={\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n
\r\n
\r\n \r\n
\r\n {\r\n setUsarLeitor(checked);\r\n if (checked) {\r\n setTimeout(() => codBarrasInput.current.focus());\r\n }\r\n }} /> Utilizar leitor de código de barras?\r\n \r\n \r\n { marcarTodos(checked) }} /> Conferi Todos\r\n \r\n \r\n {conferiTodos &&\r\n \r\n \r\n \r\n Atenção, é Recomendado a conferência dos Itens ao Habilitar a opção 'Conferi Todos'\r\n \r\n \r\n \r\n }\r\n {usarLeitor &&\r\n \r\n \r\n \r\n {\r\n marcarItem(null, e.target.value);\r\n }} />\r\n \r\n \r\n \r\n }\r\n
\r\n
(\r\n {nfi_numeroitem}\r\n ),\r\n },\r\n {\r\n width: 110,\r\n elipse: true,\r\n title: 'Descrição',\r\n render: ({ pro_descricao, nfi_ean }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n {nfi_ean}\r\n
\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Quantidade',\r\n width: 60,\r\n align: 'center',\r\n render: ({ nfi_qtde, nfi_unidademedida }) => (\r\n
\r\n {nfi_qtde} {nfi_unidademedida}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Unitário (R$)',\r\n width: 65,\r\n align: 'right',\r\n render: ({ nfi_valorunitario }) => (\r\n
\r\n {FormatNumber(nfi_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor Total (R$)',\r\n align: 'right',\r\n width: 65,\r\n render: ({ nfi_valorunitario, nfi_qtde }) => (\r\n
\r\n {FormatNumber(nfi_valorunitario * nfi_qtde, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Confere',\r\n align: 'center',\r\n width: 70,\r\n render: ({ produtoConferido, nfi_ean, key }) => (\r\n { marcarItem(key, nfi_ean) }} />\r\n ),\r\n }\r\n ]} scroll={{ x: 800 }} />\r\n \r\n \r\n \r\n \r\n ({pc.ser_serie}
\r\n
)\r\n } />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Form, Input, Modal, InputNumber } from \"antd\";\r\nimport { SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalEditarItemDevolucao({ form, exibirModalEditarItemDevolucao, cancelar, aoSalvar }) {\r\n\r\n return (\r\n cancelar()}\r\n onOk={() => form.submit()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Form, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { InputPreco } from \"../../../components\";\r\nimport Data from \"../../data\";\r\n\r\nexport default function ModalEditarNotaFiscalEntrada({ form, exibirModalEditarNotaFiscalEntrada, fecharModalEditarNotaFiscalEntrada }) {\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalEditarNotaFiscalEntrada();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n {\r\n onCloseModal();\r\n }}\r\n onOk={() => form.submit()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } \r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Input, Modal, Table, Tag, Divider, Button } from \"antd\";\r\nimport { ExclamationCircleOutlined, ArrowRightOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalEditarCFOP({ exibirModal, fecharModal, aoSelecionar, listaCFOP }) {\r\n\r\n const [filtro, setFiltro] = useState(\"\");\r\n\r\n return (\r\n fecharModal()}\r\n footer={null}\r\n >\r\n
\r\n \r\n
\r\n setFiltro(value.trim())} allowClear/>\r\n \r\n \r\n
{ return cfop.cfo_cfop.toString().indexOf((filtro).toUpperCase()) >= 0 || cfop.cfo_descricao.toString().toUpperCase().indexOf((filtro).toUpperCase()) >= 0 }) : listaCFOP.listaCFOP} columns={[\r\n {\r\n title: 'CFOP',\r\n width: 75,\r\n render: ({ cfo_cfop }) => (\r\n
\r\n \r\n {cfo_cfop}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Descrição',\r\n render: ({ cfo_descricao }) => (\r\n
\r\n {cfo_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 85,\r\n render: ({ cfo_cfop }) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n ]} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Select, Radio, Modal } from \"antd\";\r\nimport { SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\nimport { info } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalAntecipacaoDevolucao({ form, exibirModal, cancelar, aoSalvar }) {\r\n\r\n const [selecionarContaCorrente, setSelecionarContaCorrente] = useState(false);\r\n\r\n useEffect(() => {\r\n if (exibirModal) {\r\n form.setFieldsValue({ antecipacaoEstorno: 1 });\r\n }\r\n }, [exibirModal]);\r\n\r\n function selecionaContaCorrente(value) {\r\n if (value === 1)\r\n setSelecionarContaCorrente(false)\r\n else\r\n setSelecionarContaCorrente(true)\r\n };\r\n function salvar() {\r\n if (selecionarContaCorrente && !form.getFieldValue().ctc_id) {\r\n info('Selecione uma conta corrente!');\r\n } else {\r\n aoSalvar();\r\n }\r\n }\r\n\r\n return (\r\n cancelar()}\r\n onOk={() => salvar()}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n Deseja Gerar?\r\n \r\n \r\n
\r\n \r\n { selecionaContaCorrente(event.target.value) }} >\r\n Antecipação/Crédito ?\r\n Estorno da Movimentação financeira ?\r\n \r\n \r\n \r\n {selecionarContaCorrente && \r\n \r\n (\r\n {item.ctc_id} - {item.ctc_descricao}\r\n )} />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Form, Modal, Checkbox, Input } from \"antd\";\r\nimport { ExclamationCircleOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalContrato({ exibirModalContrato, fecharModalContrato, urlContrato, testeGratuito, cadastrarEmpresa, assinarContrato, codigoSeguranca }) {\r\n const [formulario] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalContrato();\r\n }\r\n });\r\n };\r\n\r\n function onFinish(values) {\r\n if (codigoSeguranca !== values.codigoSeguranca) {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: 'Código de segurança informado diferente do código presente no contrato!'\r\n });\r\n return false;\r\n }\r\n if (!values.confirmacaoLeitura) {\r\n Modal.error({\r\n title: 'Aviso!',\r\n content: 'É necessário confirmar a leitura!'\r\n });\r\n return false;\r\n }\r\n\r\n if (testeGratuito) {\r\n cadastrarEmpresa();\r\n } else {\r\n assinarContrato();\r\n }\r\n };\r\n\r\n return (\r\n formulario.submit()}\r\n okText={\r\n <>\r\n Aceito os Termos\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n className=\"modalPDF\"\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {testeGratuito ? 'Declaro que li e estou de acordo com os termos de uso do teste gratuito.' : 'Declaro para os devidos fins que li e concordo com os termos dispostos no CONTRATO DE LICENÇA DE USUÁRIO FINAL (EULA) E DE PRESTAÇÃO DE SERVIÇOS do GestorWeb.'} \r\n \r\n \r\n \r\n prevValues.confirmacaoLeitura !== currentValues.confirmacaoLeitura}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('confirmacaoLeitura')) return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Modal, Form, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport { LancamentoCheque } from \"../..\";\r\nimport { useStateValue } from \"../../../state\";\r\nimport { manutencaoActions } from \"../../../actions\";\r\n\r\nimport api from \"../../../services/api\";\r\n\r\n\r\nexport default function ModalCheque({ form = null, exibirModal, fecharModal, dadosCheque, funcaoSalvar }) {\r\n const [formCheque] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const salvarModalContaCorrente = (dados) => {\r\n //funcaoSalvar(dados);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ dadosModalCheque: { cheques: dados.cheques, contaCorrente: dados.ctc_id } } } } });\r\n //formCheque.resetFields();\r\n fecharModal();\r\n };\r\n\r\n useEffect(() => {\r\n if (exibirModal) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ dadosModalCheque: { vemDaNota: true, quantidadeCheque: dadosCheque.numeroCheques, valorTotalCheque: dadosCheque.pfp_valor, cliente: dadosCheque.cli_id } } } } });\r\n if (form != null) formCheque.setFieldsValue({ pes_id: form.getFieldValue().pes_id });\r\n }\r\n }, [exibirModal]);\r\n \r\n return (\r\n { formCheque.submit() }}\r\n width={1000}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n } >\r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, Modal, Descriptions } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { info } from \"../../../services/funcoes\";\r\nimport { useStateValue } from \"../../../state\";\r\nimport { manutencaoActions } from \"../../../actions\";\r\nimport { getEmpresa } from \"../../../services/auth\";\r\n\r\nexport default function ModalRetornaContaGerencial({ exibirModalContaGerencial, fecharModalContaGerencial, descricao = \"\", avistaAPrazo = false }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialTodas, setListaContaGerencialTodas] = useState([]);\r\n const [form] = Form.useForm();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalContaGerencial();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n carregarListaConta();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && manutencao.dados.dadosEmpresa) {\r\n if (avistaAPrazo) {\r\n form.setFieldsValue({ cgc_contagerencialdestino: manutencao.dados.dadosEmpresa.cgc_contagerencialdestino });\r\n form.setFieldsValue({ cgc_contagerencialdestino2: manutencao.dados.dadosEmpresa.cgc_contagerencialdestino2 });\r\n }\r\n }\r\n }, [manutencao.dados])\r\n\r\n function carregarListaConta() {\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?PageSize=1000&PageNumber=1`).then(\r\n res => {\r\n let lista = [];\r\n let dados = res.data.items\r\n setListaContaGerencialTodas(dados);\r\n for (const conta of dados) {\r\n if (conta.nivel === 0) {\r\n conta.listaContas = [];\r\n lista.push(conta);\r\n }\r\n }\r\n for (const conta of dados) {\r\n if (conta.nivel !== 0) {\r\n let obj = lista.find(contaLista => contaLista.ctc_id === conta.ctc_id);\r\n if (!!obj && !!obj.listaContas) {\r\n obj.listaContas.push(conta);\r\n }\r\n\r\n }\r\n }\r\n setListaContaGerencial(lista);\r\n\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function adicionarConfig(values) {\r\n values.emp_id = getEmpresa();\r\n values.listaContas = []\r\n if (!!form.getFieldValue().cgc_contagerencialdestino2) {\r\n values.listaContas = listaContaGerencialTodas.filter((conta) => conta.ctg_id === form.getFieldValue().cgc_contagerencialdestino || conta.ctg_id === form.getFieldValue().cgc_contagerencialdestino2)\r\n } else {\r\n values.listaContas = listaContaGerencialTodas.filter((conta) => conta.ctg_id === form.getFieldValue().cgc_contagerencialdestino);\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ dadosContaGerencial: values } } } });\r\n fecharModalContaGerencial(values);\r\n };\r\n\r\n return (\r\n { form.submit() }}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n destroyOnClose\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {avistaAPrazo && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Descriptions, Form, Input, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined, ExceptionOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { MaskFormat, FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalInutilizarNota({ dadosNota, exibirModal, fecharModal }) {\r\n const [form] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n form.resetFields();\r\n fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const inutilizarNota = () => {\r\n let dados = { ...dadosNota };\r\n let obj = {};\r\n obj.ntf_id = dados.ntf_id;\r\n obj.justificativa = form.getFieldValue().justificativa;\r\n if (!obj.justificativa || obj.justificativa.length < 15) {\r\n notification.warning({ message: `Aviso!`, description: `A Justificativa deve ter no mínimo 15 caracteres!` })\r\n return false;\r\n }\r\n setCarregando(true);\r\n api.post(`NotaFiscal/Inutilizar`, obj).then(\r\n res => {\r\n let _cStat = res.data.retorno.infInut.cStat;\r\n let motivo = _cStat + '-' + res.data.retorno.infInut.xMotivo;\r\n if (_cStat == 102 || _cStat == 135 || _cStat == 206) {\r\n notification.success({ message: `NF-e Nº: ${dadosNota.ntf_numero} inutiliazada com sucesso !`, description: motivo });\r\n } else {\r\n notification.warning({ message: `Não foi possível efetuar a inutilização da NF-e Nº: ${dadosNota.ntf_numero}, ` + motivo, description: motivo });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n notification.warning({ description: `Não foi possível inutilizar a NF-e Nº: ${dadosNota.ntf_numero} !`, message: 'Aviso' });\r\n setCarregando(false);\r\n }\r\n ).finally(\r\n () => {\r\n setCarregando(false);\r\n form.resetFields();\r\n fecharModal();\r\n }\r\n );\r\n };\r\n\r\n return (\r\n \r\n Inutilizar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n destroyOnClose\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {dadosNota.ntf_chavenfe} \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_nomedest}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {MaskFormat(dadosNota.ntf_cnpjcpfdest, '', true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_numero}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_serie}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_modelo}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {moment(dadosNota.ntf_dataemissao).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosNota.tip_descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(dadosNota.valor_total, true)} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Button, Table, Tag, InputNumber, Input, Modal, notification } from \"antd\";\r\nimport { PlusOutlined, MinusOutlined, CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport InputPreco from \"../../inputPreco\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport { isObjetoDiffVazio } from \"../../../services/funcoes\";\r\n\r\nexport default function ModalProdutoGrade({ exibirModal, fecharModal, dados, acrescimoDesconto = true }) {\r\n const [form] = Form.useForm();\r\n const [ehPercentual, setEhPercentual] = useState(false);\r\n const [listaGrade, setListaGrade] = useState([]);\r\n const [listaGradeBkp, setListaGradeBkp] = useState([]);\r\n\r\n const onCloseModal = () => {\r\n fecharModal();\r\n setListaGradeBkp([]);\r\n };\r\n\r\n const salvarDados = () => {\r\n let grades = \"\";\r\n let listaItens = listaGradeBkp.filter(grade => grade.quantidade > 0);\r\n grades = listaItens.map(grade => grade.prg_id).join(',');\r\n //fecharModal(listaItens);\r\n api.get(`Produto/ListaProdutoPelaGrade?listaGrades=${grades}`).then(\r\n res => {\r\n let dados = res.data;\r\n dados.forEach((grade) => {\r\n let dadosDaGrade = listaItens.filter((item) => (item.prg_id === grade.prg_id))[0];\r\n grade.lpi_valorvenda = dadosDaGrade.lpi_valorvenda;\r\n grade.quantidade = dadosDaGrade.quantidade;\r\n });\r\n fecharModal(dados);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n setListaGradeBkp([]);\r\n }\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (!!exibirModal && !!dados && isObjetoDiffVazio(dados)) {\r\n buscarDadosGrade();\r\n }\r\n }, [exibirModal]);\r\n\r\n useEffect(() => {\r\n if (!!listaGradeBkp) {\r\n setListaGrade(listaGradeBkp);\r\n }\r\n }, [listaGradeBkp])\r\n\r\n function buscarDadosGrade() {\r\n api.get(`Produto/ListarGrades?idProduto=${dados.pro_id}`).then(\r\n res => {\r\n let dados = res.data;\r\n dados.forEach((item) => {\r\n item.quantidade = 0;\r\n })\r\n setListaGradeBkp(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function calcularDesc() {\r\n\r\n };\r\n\r\n function calcularAcres() {\r\n\r\n };\r\n\r\n function alterarQuantidade(operacao, prg_id, qtd = 0) {\r\n let lista = [...listaGrade]\r\n let dados = lista.find((grade) => (grade.prg_id === prg_id));\r\n if (operacao === '+') {\r\n dados.quantidade++;\r\n } else if (operacao === '-') {\r\n if (dados.quantidade > 0) {\r\n dados.quantidade--;\r\n } else {\r\n notification.warn({ description: 'A quantidade informada não pode ser menor do que 0!', message: 'Aviso' });\r\n return;\r\n }\r\n } else {\r\n if (qtd > 0) {\r\n dados.quantidade = qtd;\r\n } else {\r\n notification.warn({ description: 'A quantidade informada não pode ser menor do que 0!', message: 'Aviso' });\r\n return;\r\n }\r\n }\r\n setListaGradeBkp(lista);\r\n };\r\n\r\n function pesquisaGrade(campo) {\r\n if (!!campo) {\r\n let dados = [...listaGradeBkp];\r\n dados.forEach(grade => {\r\n grade.modalidadesgrade.forEach((modalidade, idx) => {\r\n if (idx === 0) {\r\n grade.descricaoGrade = \"\";\r\n }\r\n grade.descricaoGrade += modalidade.mgp_descricao + \" \";\r\n });\r\n });\r\n dados = dados.filter((grade) => (grade.ean.indexOf(campo) > -1 || grade.descricaoGrade.toLowerCase().indexOf(campo.toLowerCase()) > -1));\r\n setListaGrade(dados);\r\n } else {\r\n setListaGrade(listaGradeBkp);\r\n }\r\n };\r\n\r\n return (\r\n \r\n Cancelar\r\n \r\n }\r\n onOk={() => { form.submit() }}\r\n okText={\r\n <>\r\n Ok\r\n \r\n }\r\n width={780}\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n { pesquisaGrade(campo) }} allowClear />\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n {prg_ean}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Grade',\r\n render: ({ modalidadesgrade }) => (\r\n
\r\n {modalidadesgrade.map(atrib => (\r\n {atrib.mgp_descricao} \r\n ))}\r\n
\r\n ),\r\n }, acrescimoDesconto ? {\r\n title: () => {\r\n return (\r\n
\r\n \r\n
\r\n Desconto/Acréscimo\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n },\r\n width: 175,\r\n align: 'center',\r\n render: (record, { prg_id }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { alterarQuantidade(\"\", record.prg_id, valor) }} />\r\n \r\n \r\n \r\n MAPA\r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Select, notification, Modal, Radio, Input } from \"antd\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { useStateValue } from \"../../../state\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\nimport InputNumber from \"rc-input-number\";\r\n\r\nexport default function ModalRetencao({exibirModalRetencao, fecharModalRetencao }) {\r\n const [dispatch] = useStateValue();\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModalRetencao();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n Salvar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n `%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Produto\r\n Serviço\r\n Ambos\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useStateValue } from '../../../state';\r\nimport { Col, Form, Modal, Row, Select } from 'antd';\r\nimport { CloseOutlined, SaveOutlined } from '@ant-design/icons';\r\nimport { getEmailUsuario, setClienteCatalogo, setNomeClienteCatalogo } from '../../../services/auth';\r\nimport SelectPaginacao from '../../selects/selectPaginacao';\r\nimport { manutencaoActions, selectPaginadoActions } from '../../../actions';\r\nimport api from '../../../services/api';\r\nimport { isObjetoDiffVazio } from '../../../services/funcoes';\r\n\r\n\r\nexport default function ModalSelecaoClientesCat({ exibirModal, onCloseModal }) {\r\n const [formClientes] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosLista, setDadosLista] = useState([]);\r\n const [abrirModal, setAbrirModal] = useState(false);\r\n\r\n useEffect(() => {\r\n if (exibirModal) {\r\n\r\n let emailusuario = getEmailUsuario();\r\n verificarCliente(emailusuario);\r\n }\r\n }, [exibirModal]);\r\n\r\n function selecionarCliente() {\r\n let lista = [...dadosLista];\r\n let codCliente = formClientes.getFieldValue().codigo;\r\n let cliente = lista.find(c => c.codigo == codCliente);\r\n if (!!cliente) {\r\n setNomeClienteCatalogo(cliente.nome);\r\n }\r\n setClienteCatalogo(codCliente);\r\n fecharModal(cliente.nome);\r\n }\r\n\r\n function verificarCliente(email) {\r\n api.get(`Ges040/BuscarClienteCatalogo?email=${email}`).then(\r\n res => {\r\n let cli = { ...res.data };\r\n if (isObjetoDiffVazio(cli)) {\r\n setAbrirModal(false);\r\n setNomeClienteCatalogo(cli.nome);\r\n setClienteCatalogo(cli.codigo);\r\n fecharModal(cli.nome);\r\n } else {\r\n setAbrirModal(true);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n setAbrirModal(true);\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n\r\n function fecharModal(nome) {\r\n setAbrirModal(false);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { nomeCliente: nome } } });\r\n onCloseModal();\r\n }\r\n\r\n return (\r\n\r\n { formClientes.submit() }}\r\n okText={\r\n <>\r\n Salvar\r\n \r\n }\r\n closable={false}\r\n cancelButtonProps={{ hidden: true }}\r\n destroyOnClose\r\n maskClosable={false}\r\n width={700}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n ({e.codigo} - {e.nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Modal } from 'antd';\r\nimport { CloseOutlined } from '@ant-design/icons';\r\nimport { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch';\r\n\r\nexport default function ModalExibeImagem({ dadosImagem, exibirModal, onCloseModal }) {\r\n return (\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n \r\n \"imagem\"\r\n \r\n \r\n
\r\n
);\r\n}","import { Col, Form, Input, InputNumber, Modal, Row, Select, notification } from \"antd\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, PlusOutlined, TrophyFilled } from \"@ant-design/icons\";\r\nimport UploadFoto from \"./UploadFoto\";\r\nimport api from \"../../../services/api\";\r\n\r\nexport default function ModalManutencaoPecasCat({ formGrupo, aoSalvar, listaPecas, exibirModalItens, editando, sequencia }) {\r\n const [formulario] = Form.useForm();\r\n const [dadosPecasSelect, setDadosPecasSelect] = useState([]);\r\n const [listaImagens, setListaImagens] = useState([]);\r\n const [flagCodPeca ,setFlagCodPeca] = useState(false);\r\n const [jaTemFoto, setJaTemFoto] = useState(false);\r\n\r\n useEffect(() => {\r\n let codPeca = formulario.getFieldValue().codpeca;\r\n if(codPeca && !!flagCodPeca)\r\n {\r\n api.get(`UploadImagens/GetImgMongo?filename=${codPeca}`).then(\r\n res => {\r\n let dados = res.data.map((x) => ({ ...x}))\r\n if(dados.length > 0){\r\n setListaImagens(dados);\r\n }\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n setFlagCodPeca(false);\r\n }, [flagCodPeca])\r\n\r\n useEffect(() => {\r\n if (editando.editando) {\r\n let listaTemp = listaPecas.listaPecas.find(x => x.Sequencia == sequencia.sequencial);\r\n formulario.setFieldsValue({\r\n codCatalogo: formGrupo.getFieldValue().codCatalogo,\r\n sequencia: listaTemp.Sequencia,\r\n numeroItem: listaTemp.NumeroItem,\r\n codpeca: listaTemp.descpeca,\r\n quantidade: listaTemp.Quantidade,\r\n observacoes: listaTemp.Observacoes,\r\n });\r\n //verificar se ja tem imagem\r\n\r\n } else {\r\n formulario.resetFields();\r\n }\r\n //VERIFICAR LOGICA NUMEROITEM\r\n if (!!exibirModalItens && !editando.editando) {\r\n const listaPecasLength = listaPecas.listaPecas ? listaPecas.listaPecas.length : 0;\r\n formulario.setFieldsValue({ codCatalogo: formGrupo.getFieldValue().codCatalogo, sequencia: listaPecasLength + 1 })\r\n formulario.setFieldsValue({ codCatalogo: formGrupo.getFieldValue().codCatalogo, numeroItem: listaPecasLength + 1 })\r\n }\r\n }, [exibirModalItens, editando.editando]);\r\n\r\n const salvarManutencao = () => {\r\n let dados = [];\r\n dados.SeqGrupo = formulario.getFieldValue().sequencia;\r\n if(editando.editando) {\r\n const pecaEditando = listaPecas.listaPecas.find(x => x.descpeca === formulario.getFieldValue().codpeca);\r\n dados.CodPeca = pecaEditando ? pecaEditando.CodPeca : formulario.getFieldValue().codpeca;\r\n }\r\n else {\r\n dados.CodPeca = formulario.getFieldValue().codpeca;\r\n }\r\n dados.NumeroItem = formulario.getFieldValue().numeroItem;\r\n dados.Quantidade = formulario.getFieldValue().quantidade;\r\n dados.Observacoes = formulario.getFieldValue().observacoes;\r\n\r\n var dadosPeca = dadosPecasSelect.find(x => x.codpeca === dados.CodPeca);\r\n dados.descpeca = dadosPeca.descpeca;\r\n let lista = [...listaPecas.listaPecas];\r\n\r\n if (editando.editando) {\r\n const index = lista.findIndex(item => item.Sequencia === sequencia.sequencial);\r\n if (index !== -1) {\r\n dados.Sequencia = index + 1;\r\n lista[index] = dados;\r\n listaPecas.setListaPecas(lista);\r\n editando.setEditando(false);\r\n }\r\n } else {\r\n dados.Sequencia = (listaPecas.listaPecas.length + 1);\r\n lista.push(dados);\r\n listaPecas.setListaPecas(lista);\r\n }\r\n onCloseModal();\r\n formulario.resetFields();\r\n setListaImagens([]);\r\n setJaTemFoto(false);\r\n }\r\n const validarCodPeca = (rules, value, callback) => {\r\n if (value && listaPecas?.listaPecas?.some(peca => peca.CodPeca === value && peca.Sequencia !== sequencia)) {\r\n notification.warning({ description: 'Esta peça já foi adicionada!', message: 'Aviso!' });\r\n } else {\r\n callback();\r\n }\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n setListaImagens([]);\r\n setJaTemFoto(false);\r\n onCloseModal();\r\n }\r\n })\r\n }\r\n\r\n const onCloseModal = () => {\r\n aoSalvar();\r\n formulario.resetFields();\r\n }\r\n\r\n const onOk = () => {\r\n formulario.submit();\r\n let codPeca = formulario.getFieldValue().codpeca;\r\n if(codPeca != null && !jaTemFoto && listaImagens.length > 0)\r\n {\r\n let image = {\r\n FileName: formulario.getFieldValue().codpeca,\r\n Base64Data: listaImagens[0].thumbUrl,\r\n };\r\n salvarFoto(image, codPeca);\r\n }\r\n }\r\n \r\n const salvarFoto = (image, codPeca) => {\r\n api.post(`UploadImagens/UploadImgMongo?codPeca=${codPeca}`, image).then(\r\n res => {\r\n if (res.status === 200) {\r\n notification.success(\"Imagem adicionada com sucesso!\");\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.error(erro);\r\n notification.error(\"Erro ao adicionar imagem!\");\r\n }\r\n );\r\n }\r\n\r\n return (\r\n onOk()}\r\n okText={\r\n <>\r\n Adicionar\r\n \r\n }\r\n cancelText={\r\n <>\r\n Cancelar\r\n \r\n }\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setFlagCodPeca(true)}\r\n conteudo={res => (\r\n {res.descpeca}\r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Button, Table, Tag, InputNumber, Input, Modal } from \"antd\";\r\nimport { PlusOutlined, MinusOutlined, ExclamationCircleOutlined, CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport InputPreco from \"../../inputPreco\";\r\nimport { useStateValue } from '../../../state';\r\nimport { info, validarNumeros } from \"../../../services/funcoes\";\r\nimport { manutencaoActions } from \"../../../actions\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalGradeProdutoImportacao({ exibirModal, fecharModal, dados }) {\r\n const [form] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosRetorno, setDadosRetorno] = useState([]);\r\n const [dadosFiltrados, setDadosFiltrados] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!dados) {\r\n dados.forEach((dado) => {\r\n if (!(!!dado.nfi_qtde)) {\r\n dado.nfi_qtde = 0;\r\n }\r\n });\r\n setDadosRetorno(dados);\r\n setDadosFiltrados(dados);\r\n } else {\r\n form.resetFields();\r\n }\r\n }, [dados]);\r\n\r\n useEffect(() => {\r\n pesquisaGrade(form.getFieldValue().pesquisa);\r\n }, [dadosRetorno]);\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n };\r\n\r\n const salvarDados = values => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, dadosGrade: [...dados] } } })\r\n fecharModal();\r\n form.resetFields();\r\n };\r\n\r\n function alterarQuantidade(item, operacao, qtde = null) {\r\n let dadosTemp = [...dadosRetorno];\r\n let itemTemp = dadosTemp.find((dado) => (dado === item));\r\n if (qtde !== null) {\r\n itemTemp.nfi_qtde = qtde;\r\n } else {\r\n let qtd = !!itemTemp.nfi_qtde ? itemTemp.nfi_qtde : 0;\r\n if (operacao === \"mais\") {\r\n qtd++;\r\n } else if (operacao === \"menos\" && qtd > 0) {\r\n qtd--;\r\n }\r\n itemTemp.nfi_qtde = qtd;\r\n }\r\n itemTemp.valorTotal = (parseFloat(itemTemp.nfi_qtde) * parseFloat(itemTemp.nfi_custoinformado));\r\n setDadosRetorno(dadosTemp);\r\n };\r\n\r\n function pesquisaGrade(campo) {\r\n let filtrados = [];\r\n if (!!campo) {\r\n for (let item of dadosRetorno) {\r\n if (item.ean.indexOf(campo) >= 0) {\r\n filtrados.push(item);\r\n } else {\r\n for (let grade of item.atributos) {\r\n if (grade.mgp_descricao.toLowerCase().indexOf(campo.toLowerCase()) >= 0) {\r\n filtrados.push(item);\r\n }\r\n }\r\n }\r\n }\r\n setDadosFiltrados(filtrados);\r\n } else {\r\n setDadosFiltrados([...dadosRetorno]);\r\n }\r\n };\r\n\r\n\r\n return (\r\n \r\n Cancelar\r\n \r\n }\r\n onOk={() => { form.submit() }}\r\n okText={\r\n <>\r\n Ok\r\n \r\n }\r\n width={780}\r\n maskClosable={false}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n { pesquisaGrade(campo) }} allowClear\r\n />\r\n \r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n {ean}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Grade',\r\n render: ({ atributos }) => (\r\n
\r\n \r\n {atributos.map(atrib => (\r\n
\r\n {atrib.mgp_descricao}\r\n \r\n ))}\r\n \r\n \r\n ),\r\n }, \r\n {\r\n title: 'Quantidade',\r\n width: 112,\r\n align: 'center',\r\n render: (record, { nfi_qtde }) => (\r\n \r\n \r\n \r\n { alterarQuantidade(record, \"\", e) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
record.oit_id} rowClassName={(record) => record.disabled ? 'disabled-row' : ''} columns={\r\n [\r\n {\r\n title: 'Item',\r\n render: ({ pro_codigo, pro_descricao, atributos }) => (\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n \r\n \r\n {pro_descricao}\r\n \r\n {!!atributos &&\r\n \r\n \r\n {atributos.grade}\r\n \r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'UM.',\r\n width: 60,\r\n align: 'right',\r\n render: ({ ump_id }) => (\r\n
\r\n \r\n
\r\n {ump_id}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: 60,\r\n align: 'right',\r\n render: ({ oit_qtde, oit_id }) => (\r\n
\r\n {editando === oit_id ? (\r\n \r\n
\r\n setItemEditado({ ...itemEditado, [oit_id]: value })}\r\n style={{ width: 80 }}\r\n />\r\n \r\n \r\n ) : (\r\n \r\n \r\n {oit_qtde}\r\n \r\n \r\n )}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: 100,\r\n render: ({ oit_valorunitario }) => (\r\n
\r\n {FormatNumber(oit_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: 100,\r\n render: ({ oit_valorunitario, oit_qtde }) => (\r\n
\r\n {FormatNumber(oit_qtde * oit_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: ({ oit_id, oit_qtde }) => (\r\n
\r\n {editando === oit_id ? (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
record.orf_id} rowClassName={(record) => record.disabled ? 'disabled-row' : ''} columns={\r\n [\r\n {\r\n title: 'Forma de Pagamento',\r\n render: ({ fpg_descricao, cpg_descricao }) => (\r\n
\r\n {fpg_descricao} {!!cpg_descricao ? `/ ${cpg_descricao}` : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desconto',\r\n align: 'center',\r\n render: ({ orf_percentualdesconto }) => (\r\n
\r\n {FormatNumber(orf_percentualdesconto, true)} %\r\n
\r\n )\r\n },\r\n {\r\n title: 'Acréscimo',\r\n align: 'center',\r\n render: ({ orf_percentualacrescimo }) => (\r\n
\r\n {FormatNumber(orf_percentualacrescimo, true)} %\r\n
\r\n )\r\n },\r\n {\r\n title: 'Valor',\r\n align: 'right',\r\n render: ({ total }) => (\r\n
\r\n R$ {FormatNumber(!!total ? total : 0, true)}\r\n
\r\n )\r\n }\r\n ]\r\n } expandable={{\r\n expandedRowRender: ({ orf_observacao }) => (\r\n
\r\n \r\n
\r\n Obs.: { !!orf_observacao ? orf_observacao : \"Não Informado\" }\r\n \r\n \r\n \r\n )\r\n }} rowSelection={rowSelection} />\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Col, Descriptions, Divider, Modal, notification, Row, Tabs } from \"antd\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, PlusOutlined } from \"@ant-design/icons\";\r\nimport { formatarCnpj, formatarCpf } from \"../../../services/funcoes\";\r\nimport moment from \"moment\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport TabItensSelecionar from \"./tabItensSelecionar\";\r\nimport TabFormaPagamentoSelecionar from \"./tabFormaPagamentoSelec\";\r\nimport DrawerPedidos from \"../../../pages/pedidos/drawer\";\r\n\r\nexport default function ModalSelecionarOrcamento ({ exibirModal, fecharModal, dadosOrcamento }) {\r\n const [orcamento, setOrcamento] = useState([]);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [itensConfirmados, setItensConfirmados] = useState([]);\r\n const [fpgsConfirmados, setFpgsConfirmados] = useState([]);\r\n const [dadosCliente, setDadosCliente] = useState({});\r\n const [modalFechada, setModalFechada] = useState(false);\r\n const [exibirDrawerPedidos, setExibirDrawerPedidos] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!!dadosOrcamento?.orc_id) {\r\n api.get(`Orcamento/Buscar?orc_id=${dadosOrcamento.orc_id}`).then(\r\n (res) => {\r\n setOrcamento(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n }, [dadosOrcamento]);\r\n\r\n const funcaoConfirmarItens = (itensConfirmados) => {\r\n setItensConfirmados(itensConfirmados);\r\n }\r\n\r\n const funcaoConfirmarFpgs = (fpgsConfirmados) => {\r\n setFpgsConfirmados(fpgsConfirmados);\r\n }\r\n\r\n const onCloseModal = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharModal();\r\n setAbaSelecionada(\"1\")\r\n setModalFechada(true);\r\n }\r\n });\r\n }\r\n\r\n async function gerarPedido() {\r\n if (itensConfirmados.length === 0 || fpgsConfirmados.length === 0) {\r\n notification.warning({ message: 'Aviso!', description: 'Selecione pelo menos um Item e uma Forma de Pagamento'})\r\n } else {\r\n try {\r\n if (dadosOrcamento.cli_id !== null) {\r\n var response = await api.get(`Cliente/BuscarCliente/${dadosOrcamento.cli_id}`);\r\n var cliente = response.data\r\n } else {\r\n var cliente = dadosOrcamento;\r\n }\r\n cliente.itens = [...itensConfirmados];\r\n cliente.formasPagamento = [...fpgsConfirmados];\r\n setDadosCliente(cliente)\r\n fecharModal();\r\n setExibirDrawerPedidos(true);\r\n setAbaSelecionada(\"1\")\r\n setModalFechada(true);\r\n } catch (error) {\r\n console.error(\"Erro\", error);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n Gerar Pedido \r\n }\r\n cancelText={\r\n <> Cancelar \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n {orcamento.orc_numero}\r\n \r\n \r\n {orcamento.pes_nome ? orcamento.pes_nome : orcamento.orc_nomecliente}\r\n \r\n \r\n {!!orcamento.pef_cpf ? formatarCpf(orcamento.pef_cpf) : orcamento.pej_cnpj ? formatarCnpj(orcamento.pej_cnpj) : \"Não Informado\"} \r\n \r\n \r\n {!!orcamento.orc_datainclusao ? moment(orcamento.orc_datainclusao).format('DD/MM/YYYY') : \"Não Informado\"}\r\n \r\n \r\n {!!orcamento.orc_datavalidade ? moment(orcamento.orc_datavalidade).format('DD/MM/YYYY') : \"Não Informado\"}\r\n \r\n \r\n {orcamento.ven_nome}\r\n \r\n \r\n {FormatNumber(orcamento.orc_valorfrete, true)}\r\n \r\n \r\n {FormatNumber(orcamento.orc_valoroutros, true)}\r\n \r\n \r\n {FormatNumber(orcamento.orc_valortotal, true)}\r\n \r\n \r\n \r\n \r\n \r\n Selecione para Gerar Pedido\r\n \r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n setExibirDrawerPedidos(false)}/>\r\n \r\n );\r\n}","import React from 'react';\r\nimport { Modal, Spin, notification } from 'antd';\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nconst ModalCarregando = ({\r\n title,\r\n titleModalLoading = 'Atualizando...',\r\n confirmContent,\r\n apiCall,\r\n successMessage,\r\n errorMessage,\r\n successCallback,\r\n errorCallback,\r\n okText = 'Sim',\r\n cancelText = 'Não'\r\n}) => {\r\n const handleOk = () => {\r\n // Exibe uma modal de \"Atualizando...\"\r\n const loadingModal = Modal.info({\r\n title: titleModalLoading,\r\n content: (\r\n
\r\n \r\n

Por favor, aguarde enquanto a operação está sendo realizada.

\r\n
\r\n ),\r\n okButtonProps: { disabled: true },\r\n closable: false,\r\n centered: true,\r\n });\r\n\r\n // Chama a função de API\r\n apiCall()\r\n .then(() => {\r\n loadingModal.destroy();\r\n notification.success({\r\n message: 'Operação concluída',\r\n description: successMessage,\r\n });\r\n if (successCallback) successCallback();\r\n })\r\n .catch((error) => {\r\n loadingModal.destroy();\r\n notification.error({\r\n message: 'Erro na Atualização',\r\n description: `${errorMessage}: ${error.message}`,\r\n });\r\n if (errorCallback) errorCallback();\r\n });\r\n };\r\n\r\n // Chama Modal.confirm diretamente\r\n Modal.confirm({\r\n title: title,\r\n icon: ,\r\n content: confirmContent,\r\n okText: okText,\r\n cancelText: cancelText,\r\n centered: true,\r\n onOk: handleOk\r\n });\r\n\r\n return null; // Não renderiza nada, pois o Modal é mostrado via API\r\n};\r\n\r\nexport default ModalCarregando;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Table, Modal } from \"antd\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\n\r\nexport default function ModalGradeEstoque({ dadosGrade, exibirModal, fecharModal }) {\r\n\r\n const [itensGrade, setItensGrade] = useState([]);\r\n const [itensProduto, setItensProduto] = useState({});\r\n\r\n useEffect(() => {\r\n if (!!dadosGrade?.pro_id) {\r\n setItensProduto(dadosGrade);\r\n api.get(`Estoque/ListaEstoqueGradesProdutos?CodigoProduto=${dadosGrade.pro_id}`).then(\r\n res => {\r\n let key = 0;\r\n res.data.forEach((produtoGrade) => {\r\n produtoGrade.key = key;\r\n key++;\r\n });\r\n setItensGrade(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n } else {\r\n // Limpar itens se dadosGrade não estiver disponível\r\n setItensGrade([]);\r\n setItensProduto({});\r\n }\r\n }, [dadosGrade])\r\n\r\n function onClose() {\r\n fecharModal();\r\n }\r\n\r\n return (\r\n \r\n
\r\n Produto/Mercadoria: {itensProduto.pro_codigo} - {itensProduto.pro_descricao}\r\n
\r\n
(\r\n \r\n \r\n \r\n {ean}\r\n \r\n \r\n {atributos.map(atrib => (\r\n \r\n {atrib.mgp_descricao}\r\n \r\n ))}\r\n \r\n ),\r\n }, {\r\n title: 'Preço (R$)',\r\n align: 'right',\r\n render: ({ precoVenda }) => (\r\n
\r\n {FormatNumber(precoVenda, true)}\r\n
\r\n ),\r\n }, {\r\n title: 'Estoque',\r\n align: 'center',\r\n render: ({ qtdEstoque }) => (\r\n
\r\n {qtdEstoque}\r\n
\r\n )\r\n }, {\r\n title: 'Pedido',\r\n align: 'center',\r\n render: ({ qtdPedido }) => (\r\n
\r\n {qtdPedido}\r\n
\r\n )\r\n }, {\r\n title: 'Condicional',\r\n align: 'center',\r\n render: ({ qtdCondicional }) => (\r\n
\r\n {qtdCondicional}\r\n
\r\n )\r\n }, {\r\n title: 'Previsão',\r\n align: 'center',\r\n render: ({ qtdPrevisao }) => (\r\n
\r\n \r\n {qtdPrevisao}\r\n \r\n
\r\n )\r\n }\r\n ]} dataSource={itensGrade} />\r\n \r\n \r\n \r\n );\r\n}","export default __webpack_public_path__ + \"static/media/i-produto.4cf7c7e7.png\";","export default __webpack_public_path__ + \"static/media/i-grade.dd751ba6.png\";","import React, { useEffect } from 'react';\r\nimport { Select, Form } from \"antd\";\r\n\r\nexport default function ComboData({ form, eventoAoAlterar }) {\r\n const opcoes = [\r\n { label: 'Dia Atual', value: 0 },\r\n { label: 'Mês Atual', value: 1 },\r\n { label: 'Últimos 3 dias', value: 2 },\r\n { label: 'Últimos 7 dias', value: 3 },\r\n { label: 'Últimos 15 dias', value: 4 },\r\n { label: 'Últimos 30 dias', value: 5 },\r\n { label: 'Últimos 60 dias', value: 6 }\r\n ];\r\n\r\n class Data extends React.Component {\r\n onChange = e => {\r\n const value = e;\r\n let data = this.value;\r\n switch (value) {\r\n case 0:\r\n data = new Date();\r\n break;\r\n case 1:\r\n data = new Date(new Date().setDate(1));\r\n break;\r\n case 2:\r\n data = new Date(new Date().setDate((new Date().getDate() - 3)));\r\n break;\r\n case 3:\r\n data = new Date(new Date().setDate((new Date().getDate() - 7)));\r\n break;\r\n case 4:\r\n data = new Date(new Date().setDate((new Date().getDate() - 15)));\r\n break;\r\n case 5:\r\n data = new Date(new Date().setDate((new Date().getDate() - 30)));\r\n break;\r\n case 6:\r\n data = new Date(new Date().setDate((new Date().getDate() - 60)));\r\n break;\r\n }\r\n\r\n if (!!form) {\r\n form.setFieldsValue({ 'dataPesquisa': data });\r\n }\r\n if (!!eventoAoAlterar) {\r\n eventoAoAlterar();\r\n }\r\n this.props.onChange(value);\r\n }\r\n\r\n render() {\r\n const { value } = this.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n class InputDemoDate extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { value: 0 };\r\n }\r\n onChange = value => {\r\n this.setState({ value });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n form.setFieldsValue({ 'dataPesquisa': new Date() });\r\n }, []);\r\n\r\n return (\r\n \r\n\r\n )\r\n};","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Select, Button, Switch, Tag, notification, Modal, Table, InputNumber } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, UndoOutlined, CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport { selectPaginadoActions } from \"../../actions\";\r\nimport moment from 'moment';\r\n\r\n\r\nimport api from \"../../services/api\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport SelectPaginacao from \"../../components/selects/selectPaginacao\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { ModalSenhaLiberacao } from \"../../components/modals\";\r\nimport { Data, FiltroProdutoVnc, FormGW, InputPhone, Tabela } from \"../../components\";\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { HasValue, compararDatas, isObjetoDiffVazio } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoCondicional({ formulario, carregando, aoSalvar, dadosItens, setDadosItens, imprimirCondicional }) {\r\n\r\n const format = 'HH:mm';\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosEntrega, setDadosEntrega] = useState(false);\r\n const [cliente, setCliente] = useState({});\r\n const [openModalSenha, setOpenModalSenha] = useState(false);\r\n const [quantidadeTot, setQuantidadeTot] = useState(0);\r\n const [valorTot, setValorTot] = useState(0.00);\r\n const [dadosSenha, setDadosSenha] = useState([]);\r\n const [editando, setEditando] = useState(false);\r\n const [dadosEditando, setDadosEditando] = useState({});\r\n const [dataRetorno, setDataRetorno] = useState(moment(new Date()).add(1, 'day'));\r\n const devolver = useRef();\r\n\r\n function switchEntregar() {\r\n setDadosEntrega(!dadosEntrega);\r\n if (!!formulario.getFieldValue().cli_id && !dadosEntrega) {\r\n if (isObjetoDiffVazio(cliente)) {\r\n if (cliente.enderecos.length > 0) {\r\n let endPrincipal = cliente.enderecos.length == 1 ? cliente.enderecos[0] : cliente.enderecos.filter((e) => (e.pee_enderecoprincipal == true))[0]\r\n if (!!endPrincipal) {\r\n let endEntrega = endPrincipal.log_logradouro + ', ' + endPrincipal.pee_numero + '. ' + endPrincipal.bai_nome + ', ' + endPrincipal.cep_cep + ', ' + endPrincipal.cid_descricao + '/' + endPrincipal.est_sigla;\r\n formulario.setFieldsValue({ vnc_enderecoentrega: endEntrega.replaceAll(\"null\", '') });\r\n formulario.setFieldsValue({ vnc_entregaagendada: moment(new Date()) });\r\n formulario.setFieldsValue({ horaagendada: '00:00' });\r\n }\r\n }\r\n } else {\r\n api.get(`PessoaEndereco/ListaEndereco?IdPessoa=${formulario.getFieldValue().pes_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n if (!!res.data) {\r\n if (res.data.length > 0) {\r\n let endPrincipal = res.data.length == 1 ? res.data[0] : res.data.filter((e) => (e.pee_enderecoprincipal == true))[0]\r\n if (!!endPrincipal) {\r\n let endEntrega = endPrincipal.log_logradouro + ', ' + endPrincipal.pee_numero + '. ' + endPrincipal.bai_nome + ', ' + endPrincipal.cep_cep + ', ' + endPrincipal.cid_descricao + '/' + endPrincipal.est_sigla;\r\n formulario.setFieldsValue({ vnc_enderecoentrega: endEntrega.replaceAll(\"null\", '') });\r\n formulario.setFieldsValue({ vnc_entregaagendada: moment(new Date()) });\r\n formulario.setFieldsValue({ horaagendada: '00:00' });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n }\r\n };\r\n\r\n function setarFocoDevolver() {\r\n setTimeout(() => {\r\n if (devolver && !!devolver.current) {\r\n devolver.current.focus();\r\n }\r\n }, 300);\r\n };\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ vnc_levarparacliente: dadosEntrega });\r\n }, [dadosEntrega]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.itens) {\r\n if (!!manutencao.dados.vnc_levarparacliente) {\r\n setDadosEntrega(manutencao.dados.vnc_levarparacliente);\r\n }\r\n setDadosItens(manutencao.dados.itens);\r\n } else {\r\n formulario.setFieldsValue({ vnc_prazoretorno: dataRetorno });\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n let lista = [];\r\n if (!!manutencao.dados.cli_id) {\r\n lista.push({ name: \"cli_id\", campo: \"IdCliente\", value: manutencao.dados.cli_id });\r\n }\r\n if (!!manutencao.dados.ven_id) {\r\n lista.push({ name: \"ven_id\", campo: \"IdVendedor\", value: manutencao.dados.ven_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function desfazerDevolucao(record) {\r\n let dadosTemp = dadosItens;\r\n dadosTemp.filter((item) => { return item.vci_id === record.vci_id })[0].vci_devolvido = 0;\r\n dadosTemp.filter((item) => { return item.vci_id === record.vci_id })[0].totBaixado = false;\r\n setDadosItens(dadosTemp);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosTemp } });\r\n };\r\n\r\n useEffect(() => {\r\n recalcularTotais(dadosItens);\r\n }, [dadosItens]);\r\n\r\n\r\n function salvarDados(values) {\r\n if (!(!!values.vnc_levarparacliente)) {\r\n values.vnc_levarparacliente = false;\r\n } else {\r\n let dataEntrega = moment(values.vnc_entregaagendada);\r\n let horaEntrega = '00';\r\n let minutoEntrega = '00';\r\n if (!!values.horaagendada) {\r\n horaEntrega = values.horaagendada.substring(0, 2);\r\n minutoEntrega = values.horaagendada.substring(3, 5);\r\n }\r\n dataEntrega.set(\"hour\", parseInt(horaEntrega)); // Setando a hora\r\n dataEntrega.set(\"minute\", parseInt(minutoEntrega)); // Setando os minutos\r\n values.vnc_entregaagendada = dataEntrega;\r\n }\r\n values.vnc_imagemassinaturacliente = \"\";\r\n values.pes_id = cliente.pes_id;\r\n values.pes_nome = HasValue(cliente.pes_nome) ? cliente.pes_nome : formulario.getFieldValue().cli_nome;\r\n values.vnc_telefonecliente = values.vnc_telefonecliente.replaceAll(`(`, ``).replaceAll(`)`, ``).replaceAll(`-`, ``).replaceAll(` `, ``).replaceAll(`_`, ``);\r\n values.vendacondicionalitens = dadosItens;\r\n if (values.vendacondicionalitens.length == 0) {\r\n notification.warning({ message: 'Atenção', description: \"O condicional não possui itens, verifique!\" });\r\n return;\r\n }\r\n let enderecoUrl = 'VendaCondicional/';\r\n carregando(true);\r\n if (values.vnc_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n if (!!res.data) {\r\n imprimirCondicional(res.data);\r\n }\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da condicional foram salvos com sucesso!\" });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: res.data } });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response.data.Message) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n setDadosEntrega(false);\r\n recalcularTotais(dadosItens);\r\n }\r\n );\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n if (!!res.data) {\r\n imprimirCondicional(res.data);\r\n }\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da condicional foram salvos com sucesso!\" });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: res.data } });\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response.data.Message) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n setDadosEntrega(false);\r\n recalcularTotais(dadosItens);\r\n }\r\n );\r\n };\r\n };\r\n\r\n // so deixa excluir o item se não tiver sido gravado em banco, caso contrario é apenas feito a devolução total do item, para manter historico.\r\n function excluirItem(item) {\r\n let dadosTemp = [...dadosItens];\r\n if (typeof item.vci_id === \"undefined\") {\r\n dadosTemp = dadosTemp.filter((dados) => dados !== item);\r\n dadosTemp = dadosTemp.map((dados, index) => {\r\n if (dados.vci_id > 0) {\r\n // dados.vci_sequencia = dados.vci_sequencia\r\n return dados;\r\n } else {\r\n return {\r\n ...dados,\r\n vci_sequencia: dadosTemp.length - index\r\n };\r\n };\r\n });\r\n } else {\r\n dadosTemp.filter((i) => { return i.vci_id === item.vci_id })[0].vci_devolvido = item.vci_quantidade;\r\n }\r\n setDadosItens(dadosTemp);\r\n recalcularTotais(dadosTemp);\r\n };\r\n\r\n function editarItem(registro, indice) {\r\n if (registro.vci_id) {\r\n let listaTemp = [...dadosItens];\r\n let possuiEdicaoAberta = listaTemp.filter((item) => item.editando == true);\r\n if (possuiEdicaoAberta.length > 0) {\r\n notification.warning({ message: 'Aviso!', description: 'Antes de editar outro item, por favor, salve as alterações feitas no item atual!' });\r\n return\r\n }\r\n\r\n let item = listaTemp[indice];\r\n listaTemp[indice].editando = true;\r\n formulario.setFieldsValue({ [`vci_devolvido`]: item.vci_devolvido });\r\n setDadosItens(listaTemp);\r\n setarFocoDevolver();\r\n } else {\r\n registro.indice = indice;\r\n setDadosEditando(registro);\r\n setEditando(true);\r\n }\r\n };\r\n\r\n function manutencaoItem(index) {\r\n let listaTemp = [...dadosItens];\r\n let item = listaTemp[index];\r\n let qtdeItem = formulario.getFieldValue().vci_devolvido;\r\n\r\n if (qtdeItem > item.vci_quantidade) {\r\n formulario.setFieldsValue({ [`vci_devolvido`]: item.vci_quantidade });\r\n }\r\n }\r\n\r\n function salvarItem(registro, indice) {\r\n let listaTemp = [...dadosItens];\r\n let item = listaTemp[indice];\r\n listaTemp[indice].editando = false;\r\n item.vci_devolvido = formulario.getFieldsValue().vci_devolvido;\r\n\r\n setDadosItens(listaTemp);\r\n\r\n };\r\n\r\n function cancelarEdicaoItem(indice) {\r\n let listaTemp = [...dadosItens];\r\n let item = listaTemp[indice];\r\n listaTemp[indice].editando = false;\r\n setDadosItens(listaTemp);\r\n }\r\n\r\n function recalcularTotais(dados) {\r\n let qtd = 0;\r\n let valor = 0;\r\n dados.forEach((dado) => {\r\n qtd += (dado.vci_quantidade - dado.vci_devolvido);\r\n valor += dado.vci_valorun * (dado.vci_quantidade - dado.vci_devolvido);\r\n });\r\n setValorTot(valor);\r\n setQuantidadeTot(qtd);\r\n };\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vnc_datalancamento' } });\r\n };\r\n\r\n const modalParcelasAtraso = (cliente) => {\r\n Modal.confirm({\r\n title: 'Atenção',\r\n icon: ,\r\n content: `Este cliente possui parcelas em atraso!! Deseja Continuar? Será solicitado uma senha Gerencial!`,\r\n okText: 'Sim, quero continuar!',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n modalSenhaGerencial(cliente);\r\n },\r\n onCancel() {\r\n formulario.setFieldsValue({ cli_id: null });\r\n }\r\n });\r\n };\r\n\r\n const modalSenhaGerencial = (dados) => {\r\n setOpenModalSenha(true);\r\n setDadosSenha(dados);\r\n };\r\n\r\n function retornoModalSenha(dados) {\r\n if (!dados) {\r\n formulario.setFieldsValue({ cli_id: null });\r\n }\r\n };\r\n\r\n async function BuscarDadosCliente(IdPessoa) {\r\n if (!!IdPessoa) {\r\n var dadosCliente;\r\n await api.get(`Cliente/BuscarCliente/${IdPessoa}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n if (!!res.data) {\r\n dadosCliente = res.data;\r\n setCliente(res.data)\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n let telefone = dadosCliente.telefones.filter((tel) => (tel.psc_ativo == true && tel.psc_principal == true))[0]?.psc_numero;\r\n if (!!telefone) telefone = dadosCliente.telefones.filter((tel) => (tel.psc_ativo == true))[0]?.psc_numero;\r\n if (!!telefone) formulario.setFieldsValue({ vnc_telefonecliente: telefone });\r\n else formulario.setFieldsValue({ vnc_telefonecliente: \"\" });\r\n setDadosEntrega(false);\r\n await api.get(`Parcela/ListarParcelasClientesEmAtrazo?IdPessoa=${dadosCliente.pes_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n if (!!res.data && res.data.items.length > 0) {\r\n modalParcelasAtraso(dadosCliente);\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (dadosItens.length > 0) {\r\n dadosItens.map(itens => {\r\n itens.totBaixado = (itens.vci_quantidade - itens.vci_devolvido) === 0;\r\n });\r\n }\r\n }, [dadosItens]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n (BuscarDadosCliente(valor))}\r\n nameLabel=\"pes_nome\" nameValue=\"cli_id\" form={formulario} name=\"cli_id\" conteudo={\r\n cli => ({cli.cli_codigo} - {cli.pes_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({ven.ven_id} - {ven.pes_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || compararDatas(value)) {\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(new Error('A data precisa ser maior que a atual!'));\r\n },\r\n }),]} />\r\n \r\n \r\n \r\n (switchEntregar(campo))} /> Entregar para o Cliente\r\n \r\n \r\n {!!dadosEntrega &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { let a = formulario.getFieldValue().horaagendada; }} />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n \r\n {pro_codigo}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Itens',\r\n width: '35%',\r\n render: ({ vci_devolvido, vci_quantidade, pro_descricao, pro_ean, prg_ean, descricaograde }) => (\r\n
\r\n \r\n
\r\n {vci_devolvido == vci_quantidade ?\r\n \r\n {pro_descricao}\r\n :\r\n {pro_descricao}\r\n }\r\n \r\n \r\n \r\n {!!pro_ean || !!prg_ean ? (\r\n {vci_devolvido == vci_quantidade ?\r\n \r\n EAN: {pro_ean ? pro_ean : prg_ean}\r\n :\r\n \r\n EAN: {pro_ean ? pro_ean : prg_ean}\r\n \r\n }\r\n ) : \"\"}\r\n {!!descricaograde ? (\r\n {vci_devolvido == vci_quantidade ?\r\n \r\n Grade: {descricaograde}\r\n :\r\n \r\n Grade: {descricaograde}\r\n \r\n }\r\n ) : ''}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Nº',\r\n width: '2%',\r\n render: ({ vci_sequencia }) => (\r\n
\r\n {vci_sequencia}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: '8%',\r\n render: ({ vci_quantidade, vci_devolvido }) => (\r\n
\r\n {(vci_devolvido == vci_quantidade ? (Ficou com: {vci_quantidade - vci_devolvido}) : (Ficou com: {vci_quantidade - vci_devolvido} ))}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: '12%',\r\n editable: true,\r\n render: ({ vci_quantidade, vci_devolvido }, record) => (\r\n
\r\n \r\n
\r\n {(vci_devolvido == vci_quantidade ? ( Devolveu: {vci_devolvido} ) : (vci_devolvido > 0) ? Devolveu: {vci_devolvido} : )}\r\n \r\n \r\n {(vci_devolvido > 0 ? \r\n {(vci_devolvido == vci_quantidade ? ((Todos)) : )}\r\n */}\r\n \r\n \r\n ),\r\n },\r\n {\r\n width: '8%',\r\n align: 'center',\r\n render: ({ vci_devolvido, vci_quantidade, editando }, record, indice) => (\r\n
\r\n {editando ? \"Devolver:\" : \"\"}\r\n {editando ? (\r\n \r\n manutencaoItem(indice)}\r\n />\r\n \r\n ) : (\r\n ''\r\n )}\r\n\r\n
\r\n )\r\n },\r\n {\r\n editable: true,\r\n title: 'Vlr. Unit. (R$)',\r\n align: 'right',\r\n render: ({ vci_devolvido, vci_quantidade, vci_valorun }) => (\r\n
\r\n {vci_devolvido == vci_quantidade ?\r\n \r\n {FormatNumber(vci_valorun, true)}\r\n :\r\n \r\n {FormatNumber(vci_valorun, true)}\r\n \r\n }\r\n
\r\n ),\r\n },\r\n {\r\n editable: true,\r\n title: 'Vlr. Total (R$)',\r\n align: 'right',\r\n render: ({ vci_devolvido, vci_quantidade, vci_valorun }) => (\r\n
\r\n {vci_devolvido == vci_quantidade ?\r\n \r\n {FormatNumber((vci_quantidade - vci_devolvido) * vci_valorun, true)}\r\n :\r\n \r\n {FormatNumber((vci_quantidade - vci_devolvido) * vci_valorun, true)}\r\n \r\n }\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: '8%',\r\n fixed: 'right',\r\n render: (record, e, indice) => (\r\n
\r\n \r\n
\r\n {record.editando ?\r\n salvarItem(record, indice)}\r\n icon={}\r\n /> :\r\n editarItem(record, indice)}\r\n icon={}\r\n />\r\n }\r\n \r\n \r\n {record.editando ?\r\n cancelarEdicaoItem(indice)}\r\n icon={}\r\n /> :\r\n excluirItem(record)}\r\n icon={}\r\n />\r\n }\r\n \r\n \r\n \r\n ),\r\n },\r\n ]} dataSource={dadosItens} />\r\n \r\n \r\n \r\n { setOpenModalSenha(false); retornoModalSenha(retorno) }} dados={dadosSenha} />\r\n \r\n \r\n \r\n Quantidade Total de Itens: {quantidadeTot}\r\n \r\n \r\n Valor Total dos Itens (R$): {FormatNumber(valorTot, true)}\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoCondicional from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerCondicional({imprimirCondicional}) {\r\n\r\n const [formManutencao, setFormManutencao] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosItens, setDadosItens] = useState([]);\r\n\r\n if (!!manutencao.dados) {\r\n formManutencao.setFieldsValue(manutencao.dados);\r\n dadosItens.sort((a, b) => b.vci_sequencia - a.vci_sequencia);\r\n } else {\r\n //formManutencao.resetFields();\r\n }\r\n\r\n function fecharDrawer() {\r\n formManutencao.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n setDadosItens([]);\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n destroyOnClose: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n fecharDrawer={fecharDrawer}\r\n className=\"opc\"\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import EventEmitter from 'eventemitter3';\r\n\r\nconst eventEmitter = new EventEmitter();\r\n\r\nconst Emitter = {\r\n on: (event, fn) => eventEmitter.on(event, fn),\r\n once: (event, fn) => eventEmitter.once(event, fn),\r\n off: (event, fn) => eventEmitter.off(event, fn),\r\n emit: (event, payload) => eventEmitter.emit(event, payload)\r\n}\r\n\r\nObject.freeze(Emitter);\r\n\r\nexport default Emitter;","import React, { useEffect, useState } from \"react\";\r\nimport api from \"../../../services/api\";\r\nimport { getClienteCat } from \"../../../services/auth\";\r\nimport { Table, TableBody, TableCell, TableRow } from \"@material-ui/core\";\r\nimport { Button, Modal } from \"antd\";\r\nimport formatNumber from \"../../../ValueObjects/formatNumber\";\r\nimport { CheckCircleOutlined, CloseCircleOutlined, ExclamationCircleOutlined, ShoppingOutlined } from \"@ant-design/icons\";\r\nimport { initDatabase, saveShoppingCart } from \"../../../services/CarrinhoDB\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport { exibirMensagemException } from \"../../../services/funcoes\";\r\n\r\n\r\nexport default function ModalDadosPecas({ exibirModal, fecharModal, codigoPeca }) {\r\n const [dadosPeca, setDadosPeca] = useState({});\r\n const [dadosTabela, setDadosTabela] = useState([]);\r\n const [valorFinal, setValorFinal] = useState(\"\");\r\n const history = useHistory();\r\n const listaShoppingCart = [];\r\n\r\n useEffect(() => {\r\n initDatabase();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (exibirModal && !!codigoPeca) {\r\n buscarDados();\r\n }\r\n }, [exibirModal]);\r\n\r\n const onCloseModal = () => {\r\n fecharModal()\r\n };\r\n\r\n function buscarDados() {\r\n api.get(`Cat007/BuscarInfoPeca?empresa=1&codCliente=${getClienteCat()}&codPeca=${codigoPeca}`).then(\r\n res => {\r\n let dados = { ...res.data };\r\n let listaDadosTab = [\r\n createData(\"Preço Lista:\", \"R$ \" + formatNumber(!!dados.precoLista ? dados.precoLista : 0, true), \"\"),\r\n createData(\"(%) Desconto:\", formatNumber(!!dados.percDescCli ? dados.percDescCli : 0, true), \"\"),\r\n createData(\"Preço Líquido: \", \"R$ \" + formatNumber(!!dados.valorLiquido ? dados.valorLiquido : 0, true), \"\"),\r\n createData(\"(%) IPI: \", formatNumber(!!dados.percIpi ? dados.percIpi : 0, true) + \" (R$ \" + formatNumber(!!dados.valIpi ? dados.valIpi : 0, true) + \")\", \"\"),\r\n createData(\"% MVA: \", formatNumber(!!dados.perMva ? dados.perMva : 0, false), \"\"),\r\n createData(\"% ICMS: \", formatNumber(!!dados.percIcms ? dados.percIcms : 0, false) + \" (R$ \" + formatNumber(!!dados.valIcms ? dados.valIcms : 0, true) + \")\", \"\"),\r\n createData(\"% Red Base de Calculo ICMS: \", formatNumber(!!dados.percRedBaseCalcST ? dados.percRedBaseCalcST : 0, true), \"\"),\r\n createData(\"Base Cálculo ICMS ST: \", formatNumber(!!dados.baseCalcST ? dados.baseCalcST : 0, false), \"\"),\r\n createData(\"Valor do ICMS ST: \", \"R$ \" + formatNumber(!!dados.valST ? dados.valST : 0, true), \"\"),\r\n createData(\"Preço Final: \", \"R$ \" + formatNumber(!!dados.precoFinal ? dados.precoFinal : 0, true), \"\"),\r\n createData(\"Estoque: \", dados.estoque > 0 ? \"ITEM DISPONÍVEL\" : \"ITEM EM PRODUÇÃO\", dados.estoque > 0 ? \"txtEstoqueAzul\" : \"txtEstoqueVermelho\")\r\n ];\r\n setDadosTabela(listaDadosTab);\r\n setDadosPeca(dados);\r\n\r\n listaDadosTab.forEach(function (dado) {\r\n if (dado.name === \"Preço Final: \") {\r\n setValorFinal(dado.value);\r\n return;\r\n }\r\n });\r\n }\r\n ).catch(err => {\r\n exibirMensagemException(err);\r\n fecharModal();\r\n })\r\n };\r\n\r\n function createData(name, value, style) {\r\n return { name, value, style }\r\n };\r\n\r\n function addShoppingCart(codigoPeca, descricaoPeca, qtd, valorPeca) {\r\n valorPeca = valorPeca.replace(/[^\\d.,]/g, \"\");\r\n valorPeca = valorPeca.replace('.', '').replace(',', '.');\r\n const valor = parseFloat(valorPeca);\r\n\r\n saveShoppingCart(codigoPeca, descricaoPeca, qtd, valor)\r\n .then(() => {\r\n onCloseModal();\r\n Modal.confirm({\r\n title: 'Sucesso',\r\n icon: ,\r\n content: 'Item adicionado ao orçamento com sucesso.',\r\n okText: 'Orçamento',\r\n cancelText: 'Voltar',\r\n centered: true,\r\n onOk() {\r\n history.replace('/carrinhoCatalogo')\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n onCloseModal();\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: 'Erro ao adicionar item ao carrinho',\r\n okText: 'OK',\r\n centered: true\r\n })\r\n })\r\n }\r\n\r\n return (\r\n
\r\n

Código da peça: {dadosPeca.codPeca}

\r\n

Código Alternativo: {dadosPeca.codigoAlternativo}

\r\n

Descrição: {dadosPeca.descricao}

\r\n

Modelos/Inf Adicionais: {dadosPeca.infAdicional}

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

Unidade de Medida: {dadosPeca.unidadeMedida}

\r\n

Qtde da Embalagem: {dadosPeca.quantidade}

\r\n

Peso: {formatNumber(!!dadosPeca.peso ? dadosPeca.peso : 0, true, 2)}

\r\n

NCM: {dadosPeca.ncm}

\r\n
\r\n
\r\n \r\n {dadosTabela.map((row) => (\r\n \r\n {row.name}\r\n {row.value}\r\n \r\n ))}\r\n \r\n\r\n
\r\n
\r\n

Informações Cliente: {dadosPeca.infoCliente}

\r\n

Cidade: {dadosPeca.clienteCidade}

\r\n

CEP: {dadosPeca.clienteCep} UF: {dadosPeca.clienteUF}

\r\n
\r\n
\r\n \r\n \r\n
\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Table } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { FiltroProdutoPdi, Tabela } from \"../../components\";\r\n\r\nexport default function TabItens({ formulario, dadosEndereco, dadosTabela, totalPedido, custo, dadosOperacao }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [editando, setEditando] = useState(false);\r\n const [dadosEditando, setDadosEditando] = useState({});\r\n const [quantidade, setQuantidade] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!!totalPedido && !!totalPedido.setTotalPedido) {\r\n let valorTotal = 0;\r\n let qtd = 0;\r\n if (!!dadosTabela && !!dadosTabela.dadosItens) {\r\n let seqKey = 0;\r\n dadosTabela.dadosItens.map(dado => {\r\n valorTotal += dado.valorItemDesconto;\r\n qtd += dado.pdi_quantidade;\r\n dado.key = seqKey;\r\n seqKey++;\r\n });\r\n }\r\n totalPedido.setTotalPedido(valorTotal);\r\n setQuantidade(qtd);\r\n } else {\r\n totalPedido.setTotalPedido(0);\r\n setQuantidade(0);\r\n }\r\n }, [dadosTabela.dadosItens]);\r\n\r\n function editarProdutos(item) {\r\n setDadosEditando(item);\r\n setEditando(true);\r\n };\r\n\r\n function removerItem(item) {\r\n let dadosTemp = [...dadosTabela.dadosItens];\r\n dadosTemp = dadosTemp.filter((dados) => dados !== item);\r\n dadosTemp.sort((a, b) => b.pdi_numeroitem - a.pdi_numeroitem);\r\n dadosTemp = dadosTemp.map((dados, index) => {\r\n return {\r\n ...dados,\r\n pdi_numeroitem: dadosTemp.length - index\r\n };\r\n });\r\n dadosTabela.setDadosItens(dadosTemp);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n {!!dadosTabela.dadosItens && dadosTabela.dadosItens.length > 0 &&\r\n (\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n {pro_descricao}\r\n \r\n \r\n \r\n \r\n EAN: {!!pro_ean ? pro_ean : prg_ean}\r\n \r\n \r\n Grade: {descricaograde}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'N°',\r\n align: 'center',\r\n width: '2%',\r\n fixed: 'left',\r\n render: ({ pdi_numeroitem }) => (\r\n
\r\n {pdi_numeroitem}\r\n
\r\n )\r\n },\r\n // {\r\n // title: 'CFOP',\r\n // align: 'center',\r\n // width: '4%',\r\n // fixed: 'left',\r\n // render: ({ pdi_cfop }) => (\r\n //
\r\n // {nfi_cfop}\r\n //
\r\n // ),\r\n // },\r\n // {\r\n // title: `${dadosContribuinte.emp_regimetributario === 1 ? 'CSOSN' : 'CST'}`,\r\n // align: 'center',\r\n // width: '5%',\r\n // fixed: 'left',\r\n // render: ({ cst_id, cso_id }) => (\r\n //
\r\n //
\r\n // {dadosContribuinte.emp_regimetributario === 1 ? cso_id : cst_id}\r\n // \r\n // \r\n // ),\r\n // },\r\n {\r\n title: 'Qtde.',\r\n width: '4%',\r\n align: 'right',\r\n fixed: 'left',\r\n render: ({ pdi_quantidade }) => (\r\n
\r\n {FormatNumber(pdi_quantidade, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: '5%',\r\n fixed: 'left',\r\n render: ({ pdi_valorunitario }) => (\r\n
\r\n {FormatNumber(pdi_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desc.',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ percdesc }) => (\r\n
\r\n {percdesc}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Acres.',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ pdi_percacresc }) => (\r\n
\r\n {FormatNumber(pdi_percacresc, true)}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr. Frete',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ pdi_valorfrete }) => (\r\n
\r\n {FormatNumber(pdi_valorfrete, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Bc. Icms',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMS?.ret_baseIcms, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: '% Icms',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMS?.ret_aliquotaIcms, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Icms',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMS?.ret_valorIcms, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Bc. ST',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMSST?.ret_baseIcmsSt, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: '% ST',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMSST?.ret_aliquotaIcmsSt, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr ST',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoICMSST?.ret_valorIcmsSt, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: '6%',\r\n fixed: 'right',\r\n render: ({ valorItemDesconto }) => (\r\n
\r\n {FormatNumber(valorItemDesconto, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: '5%',\r\n fixed: 'right',\r\n render: (record, e, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Quantidade:\r\n \r\n \r\n {quantidade}\r\n \r\n \r\n \r\n \r\n Valor Total dos Itens (R$):\r\n \r\n \r\n \r\n {FormatNumber(totalPedido.totalPedido, true)}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Drawer, Modal, Form } from \"antd\";\r\nimport ManutencaoTransportador from '../../pages/transportadores/manutencao';\r\nimport { CloseOutlined, ExclamationCircleOutlined, SaveOutlined } from '@ant-design/icons';\r\nimport { useForm } from 'antd/lib/form/Form';\r\n\r\nexport default function DrawerTransportadores({ form, exibirDrawerTransportadores, fecharDrawerTransportadores }) {\r\n\r\n const [formulario] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n\r\n function fecharDrawer() {\r\n form.setFieldsValue(formulario.getFieldsValue());\r\n fecharDrawerTransportadores();\r\n formulario.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n { fecharDrawer() }}\r\n onOk={() => formulario.submit()}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { Form, Row, Col, Input, Select, Radio } from \"antd\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { Data, InputPreco, SelectIncluir } from '../../components';\r\nimport DrawerTransportadores from '../../components/drawerTransportadores';\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function TabTransporte({ form, dadosVeiculos, valorTotalPedido }) {\r\n\r\n const [dadosTransportador, setDadosTransportador] = useState([]);\r\n const [formTransp] = Form.useForm();\r\n const [mostrarModalTransp, setMostrarModalTransp] = useState(false);\r\n const [mostrarTransportador, setMostrarTransportador] = useState(true);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n if (!!form.getFieldValue().enderecoCliente) {\r\n form.setFieldsValue({ pee_id: form.getFieldValue().enderecoCliente });\r\n }\r\n if (!!form.getFieldValue().trn_id) {\r\n buscarVeiculos();\r\n }\r\n if (form.getFieldValue().ped_modalidadefrete === 9) {\r\n setMostrarTransportador(false);\r\n }\r\n form.setFieldsValue({ ped_dataprevisaoentrega: moment(new Date()) });\r\n //carregarListaTransp();\r\n };\r\n\r\n function buscarVeiculos() {\r\n if (!!form.getFieldValue().trn_id) {\r\n api.get(`VeiculoTransportador/ListarVeiculoTransportador?codigoTransportador=${form.getFieldValue().trn_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n dadosVeiculos.setDadosVeiculos(res.data.items);\r\n form.setFieldsValue({ trv_id: res.data.items[0].trv_id });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n function retornaValorFrete() {\r\n let pdi_valorfrete = 0;\r\n let dados = [...dadosTransportador];\r\n let transportador = dados.filter((transp) => (transp.trn_id === form.getFieldValue().trn_id))[0];\r\n if (!!transportador) {\r\n if (!!transportador.trn_valorfretefixo && transportador.trn_valorfretefixo > 0) {\r\n pdi_valorfrete = transportador.trn_valorfretefixo;\r\n } else if (!!transportador.trn_percentualfrete && transportador.trn_percentualfrete > 0) {\r\n pdi_valorfrete = (valorTotalPedido * transportador.trn_percentualfrete) / 100;\r\n }\r\n }\r\n form.setFieldsValue({ pdi_valorfrete: pdi_valorfrete });\r\n };\r\n\r\n function abrirDrawerTransportador() {\r\n setMostrarModalTransp(true);\r\n };\r\n\r\n function fecharModalTransp() {\r\n //carregarListaTransp();\r\n setMostrarModalTransp(false);\r\n };\r\n\r\n function alterarFrete(event) {\r\n if (event.target.value === 9) {\r\n form.setFieldsValue({ trn_id: null });\r\n form.setFieldsValue({ trv_id: null });\r\n form.setFieldsValue({ pdi_valoroutrasdespesas: 0 });\r\n form.setFieldsValue({ pdi_valorfrete: 0 });\r\n setMostrarTransportador(false);\r\n } else {\r\n setMostrarTransportador(true);\r\n }\r\n };\r\n\r\n function carregarListaTransp(callback) {\r\n api.get(`Transportador/ListarTransportador`).then(\r\n (res) => {\r\n let seq = 0;\r\n res.data.forEach((transp) => {\r\n transp.key = seq++;\r\n });\r\n setDadosTransportador(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n if (!!callback) {\r\n callback();\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n { alterarFrete(dados) }}>\r\n 0 - Contratação do Frete por conta do Remetente (CIF)\r\n 1 - Contratação do Frete por conta do Destinatário (FOB)\r\n 2 - Contratação do Frete por conta de Terceiros\r\n 3 - Transporte Próprio por conta do Remetente\r\n 4 - Transporte Próprio por conta do Destinatário\r\n 9 - Sem Frete\r\n \r\n \r\n \r\n \r\n {mostrarTransportador &&\r\n \r\n \r\n \r\n { buscarVeiculos(campo); retornaValorFrete(campo); }} name=\"trn_id\" conteudo={\r\n trn => ({trn.trn_id} - {trn.pes_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Typography, Row, Col, Form, Divider, Select, Button, InputNumber, Card, Table, notification, Input, Tag } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, FormOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { Data, InputPreco, SelectIncluir } from \"../../components\";\r\nimport DrawerVendedores from \"../../components/drawerVendedores\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { CheckOutlined, CloseOutlined } from \"@material-ui/icons\";\r\n\r\nexport default function TabFaturamento({ form, valorTotalPedido, listaFormaPagamento, setListaFormaPagamento, emiteTransferencia, dadosOrcamento }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [editarValores, setEditarValores] = useState(false);\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [formaPagamento, setFormaPagamento] = useState([]);\r\n const [condicaoPagamento, setCondicaoPagamento] = useState([]);\r\n const [valorJaPago, setValorJaPago] = useState(false);\r\n const [pagamentoTotal, setPagamentoTotal] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [editandoParcelas, setEditandoParcelas] = useState(false);\r\n const [executarParcelas, setExecutarParcelas] = useState(false);\r\n const [formaPagamentoAtual, setFormaPagamentoAtual] = useState(null);\r\n const editarDesconto = () => {\r\n setEditarValores(!editarValores)\r\n };\r\n const pagamentosCodigos = {\r\n dinheiro: 1,\r\n cheque: 2,\r\n cartaoCredito: 3,\r\n cartaoDebito: 4,\r\n crediarioLoja: 5,\r\n valeAlimentacao: 10,\r\n valeRefeicao: 11,\r\n valePresente: 12,\r\n valeCombustivel: 13,\r\n duplicataMercantil: 14,\r\n boleto: 15,\r\n depositoBancario: 16,\r\n pixDinamico: 17,\r\n transfBancaria: 18,\r\n programaFidelidade: 19,\r\n pixEstatico: 20,\r\n creditoEmLoja: 21,\r\n falhaDeHardware: 22,\r\n semPagamento: 90,\r\n outro: 99\r\n };\r\n useEffect(() => {\r\n carregarDados();\r\n calcularTotal();\r\n recalcularTotalPedido();\r\n }, []);\r\n\r\n useEffect(() => {\r\n let valor = 0;\r\n if (!!listaFormaPagamento && listaFormaPagamento.length > 0) {\r\n listaFormaPagamento.forEach((lista) => {\r\n valor += parseFloat(lista.pfp_valor);\r\n });\r\n if (valor >= valorTotal) {\r\n setPagamentoTotal(true);\r\n } else {\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n if (listaFormaPagamento.some(dado => !dado.parcelas || dado.parcelas.length === 0)){\r\n setExecutarParcelas(true);\r\n } else {\r\n listaFormaPagamento.forEach(dado => {\r\n if (dado.parcelas && dado.parcelas.length > 0) {\r\n dado.pedidoparcela = dado.parcelas.map(parcela => {\r\n return {\r\n ...parcela,\r\n pcl_numeroparcela: parcela.prc_numeroparcela,\r\n dataVencimento: parcela.prc_datavencimento,\r\n valorParcela: parcela.prc_valor,\r\n };\r\n });\r\n delete dado.parcelas\r\n }\r\n });\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: {dados: { ...manutencao.dados, ...{ faturamento: listaFormaPagamento } } } });\r\n } else {\r\n setPagamentoTotal(false);\r\n }\r\n setValorJaPago(valor);\r\n }, [listaFormaPagamento]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.faturamento && executarParcelas) {\r\n let dados = manutencao.dados.faturamento;\r\n let index = dados.length - 1;\r\n setExecutarParcelas(false);\r\n if (dados[index].fpg_tipopagamento === pagamentosCodigos.crediarioLoja) {\r\n validarJaPossuiCrediario(() => {\r\n popularParcelas();\r\n });\r\n } else if (dados[index].fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n validarJaPossuiBoleto(() => {\r\n popularParcelas();\r\n });\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function carregarDados() {\r\n if (!!dadosOrcamento) {\r\n form.setFieldsValue({ pdi_valorfrete: dadosOrcamento.orc_valorfrete });\r\n if (listaFormaPagamento[0].orf_percentualdesconto) {\r\n form.setFieldsValue({ percentualDesconto: listaFormaPagamento[0].orf_percentualdesconto });\r\n calculaDesconto('perc')\r\n setEditarValores(true);\r\n }\r\n }\r\n };\r\n\r\n function validarJaPossuiCrediario(callback) {\r\n let dados = [...listaFormaPagamento];\r\n if (!dados.find((formaPgto => (formaPgto.fpg_tipopagamento === pagamentosCodigos.crediarioLoja && !!formaPgto.pedidoparcela && formaPgto.pedidoparcela.length > 0)))) {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n function validarJaPossuiBoleto(callback) {\r\n let dados = [...listaFormaPagamento];\r\n let possuiBoletoComParcelas = dados.some(formaPgto => \r\n formaPgto.fpg_tipopagamento === pagamentosCodigos.boleto &&\r\n !!formaPgto.pedidoparcela &&\r\n formaPgto.pedidoparcela.length > 0\r\n );\r\n let possuiBoletoSemParcelas = dados.some(formaPgto => \r\n formaPgto.fpg_tipopagamento === pagamentosCodigos.boleto &&\r\n (!formaPgto.pedidoparcela || formaPgto.pedidoparcela.length === 0)\r\n );\r\n\r\n if (!possuiBoletoComParcelas || possuiBoletoSemParcelas) {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n function popularParcelas(callback) {\r\n let dados = [...listaFormaPagamento];\r\n let index = manutencao.dados.faturamento.length - 1;\r\n\r\n api.get(`CondicaoPagamento/ListarParcelamento?codigoCondicaoPagamento=${manutencao.dados.faturamento[index].cpg_id}`).then(\r\n res => {\r\n if (!!res.data && res.data.length > 0) {\r\n let resto = 0;\r\n let somaParcelas = 0;\r\n let listaParcelas = [];\r\n let indexPosicao = manutencao.dados.faturamento.length - 1;\r\n res.data.forEach((parcela) => {\r\n let dataAtual = new Date();\r\n let parc = {};\r\n let dataVencimento = new Date(dataAtual.setDate(dataAtual.getDate() + parcela.pcl_numerodias));\r\n parc.fpg_id = manutencao.dados.faturamento[indexPosicao].fpg_id;\r\n parc.fpg_descricao = manutencao.dados.faturamento[indexPosicao].fpg_descricao;\r\n parc.fpg_tipopagamento = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento;\r\n parc.cpg_id = manutencao.dados.faturamento[indexPosicao].cpg_id;\r\n parc.pcl_numerodias = parcela.pcl_numerodias;\r\n parc.pcl_percparcela = parcela.pcl_percparcela;\r\n parc.pcl_numeroparcela = parcela.pcl_numeroparcela;\r\n parc.prc_numeroparcela = parcela.pcl_numeroparcela;\r\n parc.dataPagamento = dataVencimento;\r\n parc.prc_datavencimento = moment(dataVencimento);\r\n parc.dataVencimento = moment(dataVencimento);\r\n let valorParcela = ((parcela.pcl_percparcela / 100) * parseFloat(manutencao.dados.faturamento[index].pfp_valor)).toFixed(2);\r\n parc.valorParcela = parseFloat(valorParcela);\r\n parc.prc_valor = parseFloat(valorParcela);\r\n somaParcelas += parc.valorParcela;\r\n listaParcelas.push(parc);\r\n });\r\n somaParcelas = somaParcelas.toFixed(2);\r\n somaParcelas = parseFloat(somaParcelas);\r\n resto = parseFloat(manutencao.dados.faturamento[index].pfp_valor) - somaParcelas;\r\n if (resto != 0) {\r\n let numeroUltimaParcela = res.data.length - 1;\r\n let valParcela = listaParcelas[numeroUltimaParcela].valorParcela;\r\n let totalParcela = (valParcela + resto).toFixed(2);\r\n totalParcela = parseFloat(totalParcela);\r\n listaParcelas[numeroUltimaParcela].prc_valor = totalParcela;\r\n listaParcelas[numeroUltimaParcela].valorParcela = totalParcela;\r\n }\r\n dados[index].pedidoparcela = listaParcelas;\r\n manutencao.dados.faturamento[indexPosicao].editando = false;\r\n setListaFormaPagamento(dados);\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n\r\n function valorRestantePgto(dadosTemp) {\r\n let restante = 0;\r\n let valorPago = 0;\r\n let valor = form.getFieldValue().pfp_valor;\r\n dadosTemp.forEach((dados) => {\r\n valorPago += parseFloat(dados.pfp_valor);\r\n });\r\n restante = parseFloat(form.getFieldValue().valorTotal) - valorPago;\r\n if (parseFloat(restante.toFixed(3)) === 0) {\r\n setPagamentoTotal(true);\r\n } else {\r\n setPagamentoTotal(false);\r\n }\r\n form.setFieldsValue({ pfp_valor: restante.toFixed(2) });\r\n setEditando(false);\r\n };\r\n\r\n function calcularTotal() {\r\n let valor = 0;\r\n valor = parseFloat(valorTotalPedido) + parseFloat(!!form.getFieldValue().pdi_valorfrete ? form.getFieldValue().pdi_valorfrete : 0) + parseFloat(!!form.getFieldValue().pdi_valoroutrasdespesas ? form.getFieldValue().pdi_valoroutrasdespesas : 0);\r\n setValorTotal(valor);\r\n form.setFieldsValue({ ped_valorTotal: valor.toFixed(2) });\r\n valorRestantePgto([...listaFormaPagamento]);\r\n };\r\n\r\n async function listarCondicao(fpg_id, dadosIniciais = false) {\r\n if (!dadosIniciais) {\r\n form.setFieldsValue({ cpg_id: null });\r\n }\r\n\r\n return api.get(`CondicaoPagamento/Listar?Ativo=true&codigoFormaPagamento=${fpg_id}&PageSize=500`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setCondicaoPagamento(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n async function adicionarFormaPagamento() {\r\n if (editando) {\r\n if (!form.getFieldValue().fpg_id || !form.getFieldValue().cpg_id) {\r\n notification.warning({ message: 'Aviso', description: 'Informe a forma e a condicao de pagamento!' });\r\n }\r\n let novaFormaPagamento = (await api.get(`FormaPagamento/Get?id=${form.getFieldValue().fpg_id}`)).data;\r\n let novaCondicoesPagamento = condicaoPagamento.filter((condicao) => { return condicao.cpg_id === form.getFieldValue().cpg_id; })[0];\r\n let pagamentoTemp = [];\r\n pagamentoTemp.push({\r\n fpg_id: form.getFieldValue().fpg_id,\r\n fpg_descricao: novaFormaPagamento.fpg_descricao,\r\n cpg_descricao: !!novaCondicoesPagamento && novaCondicoesPagamento.cpg_descricao ? novaCondicoesPagamento.cpg_descricao : '',\r\n cpg_id: !!form.getFieldValue().cpg_id ? form.getFieldValue().cpg_id : null,\r\n pfp_valor: parseFloat(form.getFieldValue().pfp_valor),\r\n fpg_tipopagamento: novaFormaPagamento.fpg_tipopagamento\r\n });\r\n setListaFormaPagamento(pagamentoTemp);\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n valorRestantePgto(pagamentoTemp);\r\n setEditando(false);\r\n\r\n } else {\r\n let dadosTemp = [...listaFormaPagamento];\r\n if (!!form.getFieldValue().fpg_id && (condicaoPagamento.length === 0 || !!form.getFieldValue().cpg_id)) {\r\n if (listaFormaPagamento.find((formas) => (\r\n formas.fpg_id === form.getFieldValue().fpg_id && formas.cpg_id === form.getFieldValue().cpg_id\r\n ))) {\r\n let dados = listaFormaPagamento.find((formas) => (\r\n formas.fpg_id === form.getFieldValue().fpg_id && formas.cpg_id === form.getFieldValue().cpg_id\r\n ));\r\n if (parseFloat(form.getFieldValue().ped_valorTotal) < parseFloat(form.getFieldValue().pfp_valor) + (parseFloat(valorJaPago) - dados.pfp_valor)) {\r\n notification.warning({ message: 'Aviso', description: 'Valor de pagamento maior que o total do pedido!' });\r\n return;\r\n } else {\r\n dados.pfp_valor = parseFloat(form.getFieldValue().pfp_valor);\r\n setListaFormaPagamento(dadosTemp);\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n valorRestantePgto(dadosTemp);\r\n }\r\n } else {\r\n if (parseFloat(form.getFieldValue().ped_valorTotal) < parseFloat(form.getFieldValue().pfp_valor) + parseFloat(valorJaPago)) {\r\n notification.warning({ message: 'Aviso', description: 'Valor de pagamento maior que o total do pedido!' });\r\n } else {\r\n let dadosFormaPagamento = (await api.get(`FormaPagamento/Get?id=${form.getFieldValue().fpg_id}`)).data;\r\n\r\n let dadosCondicoesPagamento = condicaoPagamento.filter((condicao) => { return condicao.cpg_id === form.getFieldValue().cpg_id; })[0];\r\n dadosTemp.push({\r\n fpg_id: form.getFieldValue().fpg_id,\r\n fpg_descricao: dadosFormaPagamento.fpg_descricao,\r\n cpg_descricao: !!dadosCondicoesPagamento && dadosCondicoesPagamento.cpg_descricao ? dadosCondicoesPagamento.cpg_descricao : '',\r\n cpg_id: !!form.getFieldValue().cpg_id ? form.getFieldValue().cpg_id : null,\r\n pfp_valor: parseFloat(form.getFieldValue().pfp_valor),\r\n fpg_tipopagamento: dadosFormaPagamento.fpg_tipopagamento\r\n });\r\n setListaFormaPagamento(dadosTemp);\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n valorRestantePgto(dadosTemp);\r\n }\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Informe a forma e a condicao de pagamento!' });\r\n }\r\n }\r\n };\r\n\r\n function calculaDesconto(campo) {\r\n let percValor = (!!form.getFieldValue().percentualDesconto ? form.getFieldValue().percentualDesconto : 0);\r\n let valor = (!!form.getFieldValue().ped_valorTotalDesc ? form.getFieldValue().ped_valorTotalDesc : 0);\r\n if (campo === 'perc') {\r\n valor = (percValor * valorTotalPedido) / 100;\r\n form.setFieldsValue({ ped_valorTotalDesc: parseFloat(valor).toFixed(2) });\r\n } else if (campo === 'valor') {\r\n valor = (valor / valorTotalPedido) * 100;\r\n valor = parseFloat(valor).toFixed(2);\r\n form.setFieldsValue({ percentualDesconto: valor });\r\n }\r\n recalcularTotalPedido();\r\n };\r\n\r\n function calculaAcrescimo(campo) {\r\n let perc = (!!form.getFieldValue().percentualAcrescimo ? form.getFieldValue().percentualAcrescimo : 0);\r\n let valor = (!!form.getFieldValue().ped_valorTotalAcre ? form.getFieldValue().ped_valorTotalAcre : 0);\r\n if (campo === 'perc') {\r\n valor = (perc * valorTotalPedido) / 100;\r\n form.setFieldsValue({ ped_valorTotalAcre: parseFloat(valor).toFixed(2) });\r\n } else if (campo === 'valor') {\r\n valor = (100 * valor) / valorTotalPedido;\r\n form.setFieldsValue({ percentualAcrescimo: parseFloat(valor).toFixed(2) })\r\n }\r\n recalcularTotalPedido();\r\n };\r\n\r\n function recalcularTotalPedido() {\r\n let formulario = form.getFieldValue();\r\n const percDesconto = formulario.percentualDesconto ? parseFloat(formulario.percentualDesconto) / 100 : 0;\r\n const percAcresc = formulario.percentualAcrescimo ? parseFloat(formulario.percentualAcrescimo) / 100 : 0;\r\n const valorFrete = formulario.pdi_valorfrete;\r\n const valorOutros = formulario.pdi_valoroutrasdespesas;\r\n const valorCFreteEOutros = parseFloat(valorTotalPedido) + parseFloat(valorFrete) + parseFloat(valorOutros);\r\n const calcuPercDesc = parseFloat(valorCFreteEOutros) * parseFloat(percDesconto);\r\n const calcuPercAcresc = parseFloat(valorCFreteEOutros) * parseFloat(percAcresc);\r\n const valorTotal = parseFloat(valorCFreteEOutros) - parseFloat(calcuPercDesc) + parseFloat(calcuPercAcresc);\r\n form.setFieldsValue({ valorTotal: valorTotal.toFixed(2) });\r\n form.setFieldsValue({ ped_valorTotal: valorTotal.toFixed(2) });\r\n form.setFieldsValue({ pfp_valor: valorTotal.toFixed(2) });\r\n if (listaFormaPagamento.length > 0) {\r\n listaFormaPagamento[0].pfp_valor = valorTotal.toFixed(2);\r\n }\r\n setValorTotal(valorTotal.toFixed(2));\r\n };\r\n\r\n async function editarFormasPagamento(forma) {\r\n setPagamentoTotal(false);\r\n setEditando(true);\r\n await listarCondicao(forma.fpg_id, true)\r\n form.setFieldsValue({ fpg_id: forma.fpg_id });\r\n form.setFieldsValue({ cpg_id: forma.cpg_id });\r\n form.setFieldsValue({ pfp_valor: forma.pfp_valor });\r\n };\r\n\r\n function removerFormaPagamento(forma) {\r\n let dadosTemp = [...listaFormaPagamento];\r\n dadosTemp = dadosTemp.filter((dados) => dados !== forma);\r\n form.setFieldsValue({ pfp_valor: forma.pfp_valor });\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n setListaFormaPagamento(dadosTemp);\r\n valorRestantePgto(dadosTemp);\r\n recalcularTotalPedido();\r\n setEditando(false);\r\n };\r\n\r\n function editarParcelas(forma) {\r\n let dados = forma;\r\n if (dados.fpg_tipopagamento === pagamentosCodigos.crediarioLoja || dados.fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n setEditandoParcelas(true);\r\n setFormaPagamentoAtual(dados.fpg_id);\r\n }\r\n }\r\n\r\n function salvarParcelas(record) {\r\n let formasPgto = [...listaFormaPagamento];\r\n let formaPgto = formasPgto.find((forma) => (forma.fpg_id === record.fpg_id));\r\n formaPgto.pedidoparcela.forEach((item, i) => {\r\n i++;\r\n item.prc_datavencimento = form.getFieldValue(`dataVencimento${i}`);\r\n item.dataVencimento = form.getFieldValue(`dataVencimento${i}`);\r\n item.valorParcela = parseFloat(form.getFieldValue(`valorParcela${i}`));\r\n item.prc_valor = parseFloat(form.getFieldValue(`valorParcela${i}`));\r\n });\r\n setListaFormaPagamento(formasPgto);\r\n setEditandoParcelas(false);\r\n }\r\n\r\n function onChangeValorParc(numeroParc, qtdTotParcelas) {\r\n let dadosFormaPagamento = [...listaFormaPagamento];\r\n let valorJaUtilizado = 0;\r\n let valorRestante = 0;\r\n let valorRestanteTot = 0;\r\n let valorParcelas = 0;\r\n let valorTotal = parseFloat(dadosFormaPagamento[0].pfp_valor);\r\n let dados = form.getFieldValue();\r\n if (numeroParc === qtdTotParcelas) {\r\n return;\r\n }\r\n for (let i = 1; i <= numeroParc; i++) {\r\n valorJaUtilizado += parseFloat(dados[`valorParcela${i}`]);\r\n }\r\n valorRestante = valorTotal - valorJaUtilizado;\r\n valorParcelas = parseFloat((valorRestante / (qtdTotParcelas - numeroParc)).toFixed(2));\r\n for (let i = qtdTotParcelas; i > numeroParc; i--) {\r\n valorRestanteTot += valorParcelas;\r\n form.setFieldsValue({ [`valorParcela${i}`]: valorParcelas });\r\n }\r\n let valorSobra = valorTotal - (valorJaUtilizado + valorRestanteTot);\r\n form.setFieldsValue({ [`valorParcela${qtdTotParcelas}`]: parseFloat((valorParcelas + valorSobra).toFixed(2)) });\r\n }\r\n\r\n function ajustarDataParcelas(numeroParc, qtdTotParcelas) {\r\n let dataAtual = new Date(form.getFieldValue([`dataVencimento${numeroParc}`]).toDate());\r\n for (let i = numeroParc + 1; i <= qtdTotParcelas; i++) {\r\n let dataVenc = new Date(dataAtual.setDate(new Date(dataAtual).getDate() + 30));\r\n form.setFieldsValue({ [`dataVencimento${i}`]: moment(dataVenc) });\r\n }\r\n }\r\n\r\n const expandedRowRender = record => {\r\n return
(\r\n {pcl_numeroparcela}\r\n ),\r\n }, {\r\n title: 'Data Pagamento',\r\n render: ({ dataVencimento, pcl_numeroparcela, fpg_id }) => (\r\n
\r\n {editandoParcelas && fpg_id === formaPagamentoAtual ? { ajustarDataParcelas(pcl_numeroparcela, record.pedidoparcela.length) }} /> : {moment(dataVencimento).format('DD/MM/YYYY')}\r\n }\r\n
\r\n )\r\n }, {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ valorParcela, pcl_numeroparcela, fpg_id }) => (\r\n
\r\n {editandoParcelas && fpg_id === formaPagamentoAtual ? { onChangeValorParc(pcl_numeroparcela, record.pedidoparcela.length) }} /> : {FormatNumber(valorParcela, true)}\r\n }\r\n
\r\n ),\r\n }, {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n {record.fpg_tipopagamento !== pagamentosCodigos.programaFidelidade && !record.fpg_quitacaoantecipacao &&
\r\n {!editandoParcelas &&\r\n \r\n {editandoParcelas && record.fpg_id === formaPagamentoAtual &&\r\n */}\r\n\r\n \r\n \r\n Resumo do Pedido\r\n \r\n }>\r\n \r\n \r\n \r\n {FormatNumber(valorTotalPedido, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(form.getFieldValue().pdi_valorfrete, true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(form.getFieldValue().pdi_valoroutrasdespesas, true)}\r\n \r\n \r\n \r\n {!emiteTransferencia && \r\n \r\n \r\n \r\n }\r\n {editarValores &&\r\n
\r\n \r\n
\r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onBlur={() => { calculaDesconto('perc') }}\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n { calculaDesconto('valor') }} />\r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onBlur={() => { calculaAcrescimo('perc') }}\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n { calculaAcrescimo('valor') }} />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n IPI (R$): {FormatNumber(form.getFieldValue().valorTotalIPI, true)}\r\n \r\n \r\n \r\n \r\n Substituição Tributária (R$): {FormatNumber(form.getFieldValue().valorTotalSt, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total do Pedido (R$) {FormatNumber(valorTotal, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!pagamentoTotal && \r\n {!emiteTransferencia && \r\n \r\n { listarCondicao(registro) }} conteudo={\r\n fp => ({fp.fpg_descricao})\r\n } />\r\n \r\n }\r\n {condicaoPagamento.length > 0 && \r\n \r\n \r\n \r\n }\r\n \r\n {!emiteTransferencia &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n }\r\n \r\n \r\n
\r\n {!!listaFormaPagamento && listaFormaPagamento.length > 0 &&
(\r\n
\r\n \r\n {fpg_descricao} {!!cpg_descricao ? `/ ${cpg_descricao}` : ''}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ pfp_valor }) => (\r\n
\r\n {FormatNumber(pfp_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Total dos Pagamentos (R$):\r\n \r\n \r\n \r\n {FormatNumber(totalPagamento, true)}\r\n \r\n \r\n \r\n )\r\n }} dataSource={listaFormaPagamento}\r\n />}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Select, Steps, Input, notification, Modal, Switch, Typography } from \"antd\";\r\nimport { ExclamationCircleOutlined, ExclamationOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions, selectPaginadoActions } from \"../../actions\";\r\nimport { MaskFormat } from \"../../ValueObjects\";\r\nimport { SelectIncluir, FormGW, Data, InputCpfCnpj, DrawerCliente, SelectPaginacao } from '../../components';\r\nimport DrawerVendedores from \"../../components/drawerVendedores\";\r\nimport { TabItens, TabTransporte, TabFaturamento } from './tabPage';\r\nimport { ModalEmail, ModalEndereco, ModalEnderecoNew, ModalTelefone } from \"../../components/modals\";\r\nimport { getNomeUsuario, getIdUsuario, getEmpresa, getLocal } from '../../services/auth';\r\nimport { compararDatas, imprimirRelatorioJasper, validaForm, calculaValorProporcional, isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\nimport { Divider } from \"@material-ui/core\";\r\n\r\nexport default function ManutencaoPedidos({ formulario, carregando, aoSalvar, clientes, dadosOrcamento, mostraBtnSalvar, proximaPag, pages, exibirDrawerPedidos }) {\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [dadosEndereco, setDadosEndereco] = useState([]);\r\n const [dadosEnderecoLocal, setDadosEnderecoLocal] = useState({});\r\n const [dadosContribuinte, setDadosContribuinte] = useState({});\r\n const [listaTelefone, setListaTelefone] = useState([]);\r\n const [dadosTelefone, setDadosTelefone] = useState([]);\r\n const [dadosVeiculos, setDadosVeiculos] = useState([]);\r\n const [dadosEmail, setDadosEmail] = useState([]);\r\n const [listaEmail, setListaEmail] = useState([]);\r\n const [pessoaFisica, setPessoaFisica] = useState(true);\r\n const [abreModalEndereco, setAbreModalEndereco] = useState(false);\r\n const [abreModalTelefone, setAbreModalTelefone] = useState(false);\r\n const [abreModalEmail, setAbreModalEmail] = useState(false);\r\n const [formularioTelefone] = Form.useForm();\r\n const [formularioEmail] = Form.useForm();\r\n const [dadosItens, setDadosItens] = useState([]);\r\n const [totalPedido, setTotalPedido] = useState(0);\r\n const [dadosFormasPagamento, setDadosFormasPagamento] = useState([]);\r\n const [emiteTransferencia, setEmiteTransferencia] = useState(false);\r\n const [tipoPreco, setTipoPreco] = useState([]);\r\n const [filiaisEmpresa, setFiliaisEmpresa] = useState([]);\r\n const [custo, setCusto] = useState({});\r\n const [abrirDrawerVendedores, setAbrirDrawerVendedores] = useState(false);\r\n const [formVendedores] = Form.useForm();\r\n const [openDrawerCliente, setOpenDrawerCliente] = useState(false);\r\n\r\n const [listaIndicadorPresenca, setListaIndicadorPresenca] = useState([]);\r\n const switchTransferencia = () => {\r\n setEmiteTransferencia(!emiteTransferencia);\r\n };\r\n\r\n useEffect(() => {\r\n if (exibirDrawerPedidos) {\r\n if (!manutencao.dados && clientes) {\r\n const { formasPagamento, itens, ...restoClientes } = clientes;\r\n manutencao.dados = {\r\n ...restoClientes,\r\n formaPgto: formasPagamento.map((forma, index) => {\r\n if (index === 0) {\r\n const { orf_id, orc_id, orf_valortotal, acrescimo, desconto, disabled, orf_observacao, total, ...restoForma } = forma;\r\n return { ...restoForma, pfp_valor: total };\r\n }\r\n return forma;\r\n }),\r\n itens: itens.map((item, index) => {\r\n const { disabled, grade, oit_desconto, oit_id, oit_observacao, oit_qtde, oit_valortotal, oit_valorunitario, orc_id, ump_casasdecimais, ump_id, ...restoItem } = item;\r\n return {\r\n ...restoItem,\r\n descricaograde: grade,\r\n pdi_quantidade: oit_qtde,\r\n pdi_valortotal: oit_valortotal,\r\n pdi_valorunitario: oit_valorunitario,\r\n valorItemDesconto: oit_valortotal,\r\n pdi_numeroitem: index + 1\r\n };\r\n })\r\n };\r\n setDadosFormasPagamento(manutencao.dados.formaPgto)\r\n dadosOrcamento.formasPagamento = manutencao.dados.formaPgto;\r\n formulario.setFieldsValue({ ven_id: dadosOrcamento.ven_id });\r\n if (clientes.pes_id) {\r\n formulario.setFieldsValue({ pes_id: clientes.pes_id });\r\n } else {\r\n formulario.setFieldsValue({ pes_id: clientes.pes_nome });\r\n notification.warning({ message: 'Aviso!', description: 'Realize o cadastro do Cliente' });\r\n }\r\n }\r\n carregarDadosInciais();\r\n if (!!manutencao.dados) {\r\n formulario.setFieldsValue(manutencao.dados);\r\n if (!!manutencao.dados.pes_id) {\r\n formulario.setFieldsValue({ pes_id: manutencao.dados.pes_id });\r\n carregarDadosCliente(manutencao.dados.pes_id)\r\n }\r\n if (!!manutencao.dados.loc_id_transferencia) {\r\n formulario.setFieldsValue({ loc_id_transferencia: manutencao.dados.loc_id_transferencia });\r\n }\r\n if (!!manutencao.dados.ped_id_duplicar) {\r\n carregarDadosAlt(manutencao.dados.ped_id_duplicar);\r\n } else if (!!manutencao.dados.ped_id) {\r\n carregarDadosItems(manutencao.dados.ped_id);\r\n if (!!manutencao.dados.itens) {\r\n setDadosItens(manutencao.dados.itens);\r\n }\r\n }\r\n if (clientes) {\r\n setDadosItens(manutencao.dados.itens);\r\n }\r\n setDadosFormasPagamento(manutencao.dados.formaPgto)\r\n\r\n popularOperacaoFiscal(manutencao.dados.ope_id);\r\n }\r\n if (!!manutencao.dados && !!manutencao.dados.ped_datainclusao) {\r\n formulario.setFieldsValue({ ped_datainclusao: moment(manutencao.dados.ped_datainclusao) });\r\n } else if (!!!formulario.getFieldsValue().ped_datainclusao) {\r\n formulario.setFieldsValue({ ped_datainclusao: moment(new Date()) });\r\n }\r\n }\r\n if (exibirDrawerPedidos && !!manutencao.dados && !!manutencao.dados.pes_id) {\r\n let lista = [];\r\n if (!!manutencao.dados.pes_id) {\r\n lista.push({ name: \"pes_id\", campo: \"Filtro\", value: manutencao.dados.pes_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [exibirDrawerPedidos]);\r\n\r\n useEffect(() => {\r\n if (filiaisEmpresa.length > 0 && !!formulario.getFieldValue().loc_id_transferencia) {\r\n buscarDadosLocal(formulario.getFieldValue().loc_id_transferencia);\r\n }\r\n }, [filiaisEmpresa]);\r\n\r\n useEffect(() => {\r\n if (tipoPreco.length > 0) {\r\n api.get(`ParametroEmpresa/BuscarParametros`).then(retornoParametrosEmp => {\r\n if (retornoParametrosEmp.status === 200) {\r\n let dados = {};\r\n if (!!retornoParametrosEmp.data.par_custopadraonftransferencia) {\r\n let custo = tipoPreco.filter((custo) => { return custo.key === retornoParametrosEmp.data.par_custopadraonftransferencia });\r\n if (custo.length > 0) {\r\n dados = custo[0];\r\n if (!(!!formulario.getFieldValue().ped_precoutilizado)) {\r\n formulario.setFieldsValue({ ped_precoutilizado: custo[0].key });\r\n }\r\n }\r\n }\r\n setCusto(dados);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n }, [tipoPreco]);\r\n\r\n useEffect(() => {\r\n if (!!proximaPag.proximaPag || proximaPag.proximaPag === 0) {\r\n validarTrocaPg(proximaPag.proximaPag);\r\n }\r\n }, [proximaPag.proximaPag]);\r\n\r\n\r\n useEffect(() => {\r\n if (dadosTelefone.length > 0) {\r\n dadosTelefone[0].pes_id = formulario.getFieldValue().pes_id;\r\n api.post(`PessoaTelefone/Incluir`, dadosTelefone[0]).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n carregarDadosCliente(formulario.getFieldValue().pes_id);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n setDadosTelefone([]);\r\n }\r\n )\r\n }\r\n }, [dadosTelefone]);\r\n\r\n useEffect(() => {\r\n if (dadosEmail.length > 0) {\r\n dadosEmail[0].pes_id = formulario.getFieldValue().pes_id;\r\n api.post('PessoaEmail/Incluir', dadosEmail[0]).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n carregarDadosCliente(formulario.getFieldValue().pes_id);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n setDadosEmail([]);\r\n }\r\n );\r\n }\r\n }, [dadosEmail]);\r\n\r\n useEffect(() => {\r\n if (emiteTransferencia) {\r\n setPessoaFisica(false);\r\n }\r\n }, [emiteTransferencia]);\r\n\r\n async function carregarDadosInciais() {\r\n let listaIndicadorPresenca = await api.get('Enum/Listar?nome=IndicadorPresenca');\r\n if (listaIndicadorPresenca.status === 200) {\r\n setListaIndicadorPresenca(listaIndicadorPresenca.data);\r\n }\r\n let retornoSerie = await api.get(`SerieFiscal/Listar?CodigoModeloDocFiscal=55&EmitenteDocumento=0`);\r\n if (retornoSerie.status === 200) {\r\n if (retornoSerie.data.items.length === 1) {\r\n formulario.setFieldsValue({ ser_id: retornoSerie.data.items[0].ser_id });\r\n }\r\n }\r\n api.get(`Enum/Listar?nome=TipoPrecoUtilizar`).then(\r\n retornoTipoPreco => {\r\n if (retornoTipoPreco.status === 200) {\r\n retornoTipoPreco.data = retornoTipoPreco.data.filter((item) => { return item.key > 0 });\r\n setTipoPreco(retornoTipoPreco.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => console.error(erro)\r\n );\r\n\r\n api.get(`Local/ListarLocalUsuario?codigoEmpresa=${getEmpresa()}`).then(\r\n retornoFiliais => {\r\n if (retornoFiliais.status === 200) {\r\n setFiliaisEmpresa(retornoFiliais.data.items.filter((item) => { return item.loc_id !== parseInt(getLocal()) }));\r\n }\r\n }\r\n ).catch(\r\n (erro) => console.error(erro)\r\n );\r\n\r\n api.get(`dadosContribuinte/Buscar`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDadosContribuinte(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n async function validarTrocaPg(proxPagina) {\r\n let paginaAtual = pages.tagPages;\r\n let listaValidacoes = [];\r\n\r\n if (paginaAtual < proxPagina) {\r\n switch (paginaAtual) {\r\n case 0:\r\n listaValidacoes = emiteTransferencia ? [\r\n { nome: 'loc_id_transferencia', obrigatorio: true, label: 'Local' },\r\n { nome: 'ped_precoutilizado', obrigatorio: true, label: 'Preço' },\r\n { nome: 'ope_id', obrigatorio: true, label: 'Operação' }\r\n ] : [\r\n { nome: 'enderecoCliente', obrigatorio: true, label: 'Endereço' },\r\n { nome: 'pes_id', obrigatorio: true, label: 'Cliente' },\r\n { nome: 'ope_id', obrigatorio: true, label: 'Operação' }\r\n ];\r\n break;\r\n case 1:\r\n if (!!dadosItens && dadosItens.length === 0) {\r\n notification.warning({ message: 'Aviso', description: 'Favor inserir ao menos um item no pedido!' });\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n break;\r\n case 2:\r\n if (compararDatas(formulario.getFieldValue().ped_dataprevisaoentrega, formulario.getFieldValue().ped_datainclusao, '<')) {\r\n notification.warning({ message: 'Aviso', description: 'Data da previsa não pode ser menor que a data de emissão!' });\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n await validarTransporte(dadosItens);\r\n break;\r\n }\r\n if (validaForm(formulario, listaValidacoes)) {\r\n pages.setTagPages(proxPagina);\r\n } else {\r\n proximaPag.setProximaPag(paginaAtual);\r\n }\r\n } else {\r\n pages.setTagPages(proxPagina);\r\n }\r\n };\r\n\r\n function carregarDadosAlt(ped_id) {\r\n mostraBtnSalvar(false);\r\n api.get(`PedidoItem/ListarItensPedidoADuplicar?codigoPedido=${ped_id}`).then(\r\n (res) => {\r\n res.data.forEach(item => {\r\n let grade = '';\r\n let valorTotal = 0;\r\n item.valorItemDesconto = parseFloat(item.pdi_valortotal);\r\n valorTotal = item.pdi_valorunitario * item.pdi_quantidade;\r\n item.percdesc = (valorTotal > 0 ? parseFloat(((item.pdi_valordesconto / valorTotal) * 100).toFixed(2)) : 0);\r\n if (!!item.atributos && item.atributos.length > 0) {\r\n item.atributos.forEach((atrib) => {\r\n grade += atrib.mgp_descricao + ', ';\r\n });\r\n item.grade = grade.substr(0, grade.lastIndexOf(','));\r\n }\r\n });\r\n setDadosItens(res.data);\r\n formulario.setFieldsValue({ ped_id: null });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function carregarDadosItems(ped_id) {\r\n api.get(`PedidoItem/ListarItensPedido?codigoPedido=${ped_id}`).then(\r\n (res) => {\r\n let pdi_valorfrete = 0;\r\n res.data.forEach(item => {\r\n let grade = '';\r\n let valorTotal = 0;\r\n item.valorItemDesconto = parseFloat(item.pdi_valortotal);\r\n valorTotal = item.pdi_valorunitario * item.pdi_quantidade;\r\n item.percdesc = (valorTotal > 0 ? parseFloat(((item.pdi_valordesconto / valorTotal) * 100).toFixed(2)) : 0);\r\n pdi_valorfrete += parseFloat(!!item.pdi_valorfrete ? item.pdi_valorfrete : 0);\r\n if (!!item.atributos && item.atributos.length > 0) {\r\n item.atributos.forEach((atrib) => {\r\n grade += atrib.mgp_descricao + ', ';\r\n });\r\n item.grade = grade.substr(0, grade.lastIndexOf(','));\r\n }\r\n });\r\n setDadosItens(res.data);\r\n formulario.setFieldsValue({ pdi_valorfrete: pdi_valorfrete });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validaValorPago(valores) {\r\n let retorno = false;\r\n let valorPago = 0;\r\n if (dadosFormasPagamento.length > 0) {\r\n dadosFormasPagamento.forEach(formaPgto => { valorPago += parseFloat(formaPgto.pfp_valor) });\r\n if (valorPago === parseFloat(valores.ped_valorTotal) || valorPago === parseFloat(formulario.getFieldValue().ped_valorTotal)) {\r\n retorno = true;\r\n }\r\n } else {\r\n retorno = true;\r\n }\r\n return retorno;\r\n };\r\n\r\n function incluirCliente(retorno) {\r\n if (retorno) {\r\n formulario.setFieldsValue({ pes_id: retorno });\r\n let lista = [];\r\n lista.push({ name: \"pes_id\", campo: \"Filtro\", value: retorno });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n carregarDadosCliente(retorno);\r\n }\r\n }\r\n\r\n async function salvarManutencao(valores) {\r\n if (!validaValorPago(valores)) {\r\n notification.warning({ message: 'Aviso', description: \"Valor de pagamentos menor que total do pedido!\" });\r\n return;\r\n }\r\n let endereco = {};\r\n valores.pedidoitens = dadosItens;\r\n if (dadosFormasPagamento.length > 0) {\r\n valores.pedidoformapgtos = dadosFormasPagamento;\r\n } else if (emiteTransferencia) {\r\n valores.pedidoformapgtos = [];\r\n } else {\r\n let arrayDados = [];\r\n let dados = {};\r\n dados.pfp_valor = parseFloat(formulario.getFieldValue().ped_valorTotal);\r\n dados.cpg_id = !!valores.cpg_id ? valores.cpg_id : null;\r\n dados.fpg_id = valores.fpg_id;\r\n arrayDados.push(dados);\r\n valores.pedidoformapgtos = arrayDados;\r\n }\r\n if (emiteTransferencia) {\r\n endereco = dadosEnderecoLocal;\r\n valores.pes_id = null;\r\n let filial = filiaisEmpresa.find((filial) => { return filial.loc_id === valores.loc_id_transferencia });\r\n valores.pes_telefone = !!filial.loc_telefone ? filial.loc_telefone : \"\";\r\n valores.pes_nroestabelecimento = filial.loc_numeroestabelecimento;\r\n } else {\r\n let cliente = (await api.get(`Cliente/BuscarByIdPessoa/${formulario.getFieldValue().pes_id}`)).data;\r\n endereco = dadosEndereco.filter(endereco => (endereco.pee_id === formulario.getFieldValue().enderecoCliente))[0];\r\n valores.pes_nroestabelecimento = (!!endereco.pee_numero ? endereco.pee_numero : 'SN');\r\n valores.pes_id = endereco.pes_id;\r\n valores.loc_id_transferencia = null;\r\n valores.pes_telefone = !!formulario.getFieldValue().pes_telefone ? formulario.getFieldValue().pes_telefone : !!formulario.getFieldValue().telefoneCliente ? formulario.getFieldValue().telefoneCliente : \"\";\r\n valores.cli_id = cliente.cli_id;\r\n }\r\n valores.emp_id = getEmpresa();\r\n valores.loc_id = getLocal();\r\n valores.ven_id = formulario.getFieldValue().ven_id;\r\n valores.ped_ativo = true;\r\n valores.ped_datainclusao = formulario.getFieldValue().ped_datainclusao;\r\n valores.ped_dataprevisaoentrega = formulario.getFieldValue().ped_dataprevisaoentrega;\r\n valores.ped_datavalidade = formulario.getFieldValue().ped_datainclusao;\r\n valores.ped_observacao = formulario.getFieldValue().ped_observacao;\r\n valores.ped_valorfrete = parseFloat(formulario.getFieldValue().pdi_valorfrete);\r\n valores.ped_valorTotalitens = parseFloat(totalPedido);\r\n valores.ped_valorTotalAcre = (!!formulario.getFieldValue().ped_valorTotalAcre ? parseFloat(formulario.getFieldValue().ped_valorTotalAcre) : 0);\r\n valores.ped_valorTotalDesc = (!!formulario.getFieldValue().ped_valorTotalDesc ? parseFloat(formulario.getFieldValue().ped_valorTotalDesc) : 0);\r\n valores.ped_valoroutrasdespesas = (!!formulario.getFieldValue().pdi_valoroutrasdespesas ? parseFloat(formulario.getFieldValue().pdi_valoroutrasdespesas) : 0);\r\n valores.ped_valorTotal = parseFloat(valores.ped_valorTotal);\r\n valores.valorFrete = parseFloat(formulario.getFieldValue().pdi_valorfrete);\r\n valores.valorDesconto = (!!formulario.getFieldValue().ped_valorTotalDesc ? parseFloat(formulario.getFieldValue().ped_valorTotalDesc) : 0);\r\n valores.valorAcrescimo = (!!formulario.getFieldValue().ped_valorTotalAcre ? parseFloat(formulario.getFieldValue().ped_valorTotalAcre) : 0);\r\n valores.valorOutrasDespesas = (!!formulario.getFieldValue().pdi_valoroutrasdespesas ? parseFloat(formulario.getFieldValue().pdi_valoroutrasdespesas) : 0);\r\n valores.pes_bairro = endereco.bai_nome;\r\n valores.pes_cep = endereco.cep_cep;\r\n valores.pes_cidade = endereco.cid_descricao;\r\n valores.pes_endereco = endereco.log_logradouro;\r\n valores.pes_uf = endereco.est_sigla;\r\n valores.ped_responsavelpedido = getNomeUsuario();\r\n valores.ped_modalidadefrete = formulario.getFieldValue().ped_modalidadefrete;\r\n valores.usu_id = parseInt(getIdUsuario());\r\n if (valores.duplicar) {\r\n valores.ped_id = null;\r\n }\r\n carregando(true);\r\n if (!!valores.ped_id && !valores.ped_id_duplicar) {\r\n valores.stp_id = formulario.getFieldValue().stp_id;\r\n api.put(`Pedido/Editar`, valores).then(\r\n (res) => {\r\n notification.success({ message: 'Operação concluída', description: `Pedido editado com sucesso!` });\r\n Modal.confirm({\r\n title: \"Imprimir?\",\r\n icon: ,\r\n content: `Deseja imprimir o pedido?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n okType: \"primary\",\r\n centered: true,\r\n onOk() {\r\n imprimirRelatorioJasper(29, { idPedido: res.data.ped_id });\r\n }\r\n });\r\n aoSalvar();\r\n recarregarDados();\r\n }\r\n ).catch(\r\n (erro) => {\r\n if (!!erro.response && !!erro.response.data && !!erro.response.data.Message) {\r\n Modal.warning({\r\n content: erro.response.data.Message,\r\n title: 'Aviso',\r\n });\r\n }\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n }\r\n );\r\n } else {\r\n if (!!valores.ped_id_duplicar) {\r\n if (dadosFormasPagamento.length > 0) {\r\n valores.pedidoformapgtos.forEach((pgto) => {\r\n pgto.pfp_id = null;\r\n });\r\n }\r\n valores.pedidoitens.forEach((item) => {\r\n item.ped_id = null;\r\n item.pdi_id = null;\r\n })\r\n }\r\n api.post(`Pedido/Incluir`, valores).then(\r\n (res) => {\r\n notification.success({ message: 'Operação concluída', description: `Pedido incluído com sucesso!` });\r\n Modal.confirm({\r\n title: \"Imprimir?\",\r\n icon: ,\r\n content: `Deseja imprimir o pedido?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n okType: \"primary\",\r\n centered: true,\r\n onOk() {\r\n imprimirRelatorioJasper(29, { idPedido: res.data.ped_id });\r\n }\r\n });\r\n aoSalvar();\r\n recarregarDados();\r\n }\r\n ).catch(\r\n (erro) => {\r\n if (!!erro.response && !!erro.response.data) {\r\n Modal.warning({\r\n content: erro.response.data,\r\n title: 'Aviso',\r\n });\r\n }\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n }\r\n );\r\n }\r\n }\r\n\r\n function recarregarDados() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ped_datainclusao' } });\r\n };\r\n\r\n async function carregarDadosCliente(codigo) {\r\n if (!!codigo) {\r\n let cliente = (await api.get(`Cliente/BuscarByIdPessoa/${codigo}`)).data;\r\n if (!!cliente) {\r\n formulario.setFieldsValue({ 'pej_inscricaoestadual': cliente.pej_inscricaoestadual });\r\n retornarDadosCPFCNPJ(cliente);\r\n if (cliente.emails.length > 0) {\r\n setListaEmail(cliente.emails);\r\n formulario.setFieldsValue({ dadosEmailCliente: cliente.emails[0].pem_email })\r\n }\r\n if (cliente.enderecos.length > 0) {\r\n setDadosEndereco(cliente.enderecos);\r\n formulario.setFieldsValue({ enderecoCliente: cliente.enderecos[0].pee_id })\r\n } else {\r\n setDadosEndereco([]);\r\n if (!!formulario.getFieldValue().pes_id) {\r\n Modal.confirm({\r\n title: 'Endereço não encontrado',\r\n icon: ,\r\n content: 'Deseja incluir um endereço para este cliente?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n setAbreModalEndereco(true);\r\n }\r\n });\r\n }\r\n }\r\n if (cliente.telefones.length > 0) {\r\n setListaTelefone(cliente.telefones);\r\n formulario.setFieldsValue({ telefoneCliente: cliente.telefones[0].psc_numero })\r\n }\r\n } else {\r\n limparCliente();\r\n }\r\n } else {\r\n limparCliente();\r\n }\r\n };\r\n\r\n function limparCliente() {\r\n formulario.setFieldsValue({\r\n cpf: null,\r\n cnpj: null,\r\n telefoneCliente: null,\r\n enderecoCliente: null,\r\n dadosEmailCliente: null\r\n })\r\n setDadosEndereco([]);\r\n setDadosEmail([]);\r\n setListaTelefone([]);\r\n }\r\n\r\n async function retornarDadosCPFCNPJ(cliente) {\r\n if (!!cliente) {\r\n if (!!cliente.pef_cpf) {\r\n setPessoaFisica(true);\r\n formulario.setFieldsValue({ cpf: cliente.pef_cpf, cli_id: cliente.cli_id });\r\n } else if (!!cliente.pej_cnpj) {\r\n setPessoaFisica(false);\r\n formulario.setFieldsValue({ cnpj: cliente.pej_cnpj, cli_id: cliente.cli_id });\r\n }\r\n }\r\n };\r\n function adicionarEndereco() {\r\n if (!!formulario.getFieldValue().pes_id) {\r\n setAbreModalEndereco(true);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: \"Favor informar um cliente!\" })\r\n }\r\n };\r\n\r\n function onCloseModalEndereco(dados) {\r\n setAbreModalEndereco(false);\r\n };\r\n\r\n function adicionarTelefone() {\r\n if (!!formulario.getFieldValue().pes_id) {\r\n setAbreModalTelefone(true);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: \"Favor informar um cliente!\" })\r\n }\r\n };\r\n\r\n function onCloseModalTelefone() {\r\n setAbreModalTelefone(false);\r\n };\r\n\r\n function onCloseModalEmail() {\r\n setAbreModalEmail(false);\r\n };\r\n\r\n function adicionarEmail() {\r\n if (!!formulario.getFieldValue().pes_id) {\r\n setAbreModalEmail(true);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: \"Favor informar um cliente!\" });\r\n }\r\n };\r\n\r\n async function buscarDadosLocal(loc_id_transferencia) {\r\n if (!!loc_id_transferencia) {\r\n let filial = filiaisEmpresa.find((filial) => { return filial.loc_id === loc_id_transferencia });\r\n let retornoEndereco = await api.get(`LogradouroCidade/BuscarLogradouroCidade?codigoLogradouroCidade=${filial.lcd_id}&estrangeiro=0`)\r\n let endereco = \"\";\r\n if (retornoEndereco.status === 200) {\r\n setDadosEnderecoLocal(retornoEndereco.data);\r\n endereco = retornoEndereco.data.log_logradouro;\r\n }\r\n setEmiteTransferencia(true);\r\n formulario.setFieldsValue({ loc_email: filial.loc_email.endereco, loc_telefone: filial.loc_telefone, cnpj: filial.loc_cnpj.numero, log_logradouro: endereco });\r\n }\r\n };\r\n\r\n function alterarCusto(e) {\r\n if (!!e) {\r\n let custo = tipoPreco.find((custo) => { return custo.key === e });\r\n if (!!custo) {\r\n setCusto(custo);\r\n }\r\n }\r\n };\r\n\r\n function fecharDrawerVendedores() {\r\n setAbrirDrawerVendedores(false);\r\n };\r\n\r\n async function validarTransporte() {\r\n await rateioFrete();\r\n await recalcularImpostos();\r\n }\r\n\r\n async function recalcularImpostos() {\r\n if (dadosItens.length > 0) {\r\n let total = 0;\r\n let totalSt = 0;\r\n let totalIPI = 0;\r\n let possuiIe = !!formulario.getFieldValue().pej_inscricaoestadual ? true : false;\r\n let cpf = formulario.getFieldValue()?.cpf || '';\r\n let cnpj = formulario.getFieldValue()?.cnpj || '';\r\n let fisicaJuridica = cnpj.length === 14 ? 2 : cpf.length == 11 ? 1 : 3;\r\n let ufDestino = dadosEndereco && dadosEndereco.length > 0 ? dadosEndereco[0].est_sigla : dadosContribuinte.est_sigla\r\n let ufOrigem = dadosContribuinte.est_sigla;\r\n for (const p of dadosItens) {\r\n try {\r\n let impostos = await CalcularImpostoItem(p.orm_id, p.cst_id, p.cso_i, ufOrigem, ufDestino, p.pdi_quantidade, p.pdi_valorunitario, p.pdi_valorfrete, p.pdi_valoracrescimo,\r\n p.pdi_valordesconto, p.impostos.retornoICMS.ret_aliquotaIcms, p.impostos.retornoICMS.ret_aliquotaIcms, p.impostos.retornoICMS.ret_percReducaoIcms,\r\n p.impostos.retornoICMSST.ret_aliquotaIcmsSt, p.impostos.retornoICMSST.ret_percMva, p.impostos.retornoICMSST.ret_percReducaoIcmsST, null,\r\n p.ncm_percentual, fisicaJuridica, formulario.getFieldValue().ntf_consumidorfinal, possuiIe, formulario.getFieldValue().ped_indicadorpresenca);\r\n if (isObjetoDiffVazio(impostos)) {\r\n p.pdi_valoricmsst = impostos.retornoICMSST.ret_valorIcmsSt;\r\n p.pdi_valoripi = impostos.retornoIPI.ret_valorIpi;\r\n p.total = (p.pdi_quantidade * p.pdi_valorunitario) - p.pdi_valordesconto + p.pdi_valoracrescimo + p.pdi_valoripi + p.pdi_valoricmsst;\r\n p.impostos = impostos;\r\n }\r\n totalSt += parseFloat(p.pdi_valoricmsst);\r\n totalIPI += parseFloat(p.pdi_valoripi);\r\n total += parseFloat(p.total);\r\n } catch (error) {\r\n console.error(\"Error item:\", error);\r\n }\r\n }\r\n formulario.setFieldsValue({ valorTotalSt: totalSt, valorTotalIPI: totalIPI });\r\n }\r\n }\r\n\r\n async function rateioFrete() {\r\n let _numeroItem = 1;\r\n let _totalFrete = 0;\r\n if (dadosItens.length > 0) {\r\n let _valorFrete = parseFloat(formulario.getFieldValue().pdi_valorfrete);\r\n if (_valorFrete > 0) {\r\n // Ordena os itens em ordem de maior valor crescente\r\n var itens = dadosItens.sort((a, b) => a.total - b.total);\r\n // Calcular a soma da multiplicação dos campos\r\n let somaTotal = dadosItens.reduce((total, item) => {\r\n let resultadoMultiplicacao = item.pdi_valorunitario * item.pdi_quantidade;\r\n return total + resultadoMultiplicacao;\r\n }, 0);\r\n itens.forEach(item => {\r\n let valorTotalItem = parseFloat(item.pdi_valorunitario * item.pdi_quantidade);\r\n item.pdi_valorfrete = calculaValorProporcional(valorTotalItem, _valorFrete, somaTotal);\r\n if (_numeroItem == dadosItens.length) {\r\n item.pdi_valorfrete = parseFloat((_valorFrete - _totalFrete).toFixed(2))\r\n }\r\n _totalFrete += item.pdi_valorfrete;\r\n _numeroItem++;\r\n });\r\n }\r\n }\r\n rateioAcrescimo(dadosItens);\r\n }\r\n\r\n async function rateioAcrescimo(dadosItens) {\r\n let _numeroItem = 1;\r\n let _totalAcrescimo = 0;\r\n if (dadosItens.length > 0) {\r\n let _valorAcrescimo = parseFloat(formulario.getFieldValue().pdi_valoroutrasdespesas);\r\n if (_valorAcrescimo > 0) {\r\n // Ordena os itens em ordem de maior valor crescente\r\n var itens = dadosItens.sort((a, b) => a.total - b.total);\r\n // Calcular a soma da multiplicação dos campos\r\n let somaTotal = dadosItens.reduce((total, item) => {\r\n let resultadoMultiplicacao = item.pdi_valorunitario * item.pdi_quantidade;\r\n return total + resultadoMultiplicacao;\r\n }, 0);\r\n itens.forEach(item => {\r\n item.nfi_valorseguro = 0;\r\n let valorTotalItem = parseFloat(item.pdi_valorunitario * item.pdi_quantidade);\r\n let valoracresc = calculaValorProporcional(valorTotalItem, _valorAcrescimo, somaTotal);\r\n //transforma o valor acrescimo em porcentagem\r\n item.percacresc = (valoracresc * 100) / valorTotalItem;\r\n item.pdi_percacresc = (valoracresc * 100) / valorTotalItem;\r\n _totalAcrescimo += item.percacresc;\r\n _numeroItem++;\r\n });\r\n }\r\n }\r\n }\r\n\r\n async function popularOperacaoFiscal(id) {\r\n if (!!id) {\r\n api.get(`OperacaoFiscal/Buscar/${id}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n formulario.setFieldsValue({ ped_indicadorpresenca: res.data.ope_indicadorpresenca });\r\n }\r\n }\r\n ).catch(\r\n error => { console.log(error); }\r\n )\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n Emite Nota de Transferência\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {emiteTransferencia && \r\n \r\n \r\n \r\n \r\n }\r\n {emiteTransferencia && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n popularOperacaoFiscal(idOperacao)} conteudo={\r\n ope => ({ope.ope_descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({pv.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.tagPages === 0 &&\r\n
\r\n \r\n {!emiteTransferencia &&
\r\n \r\n carregarDadosCliente(dados)}\r\n funcaoIncluir={() => setOpenDrawerCliente(true)}\r\n conteudo={\r\n pc => ({pc.cli_codigo} - {pc.pes_nome}
\r\n {(!!pc.pej_cnpj ? `CNPJ.: ${MaskFormat(pc.pej_cnpj, '', true)}` : !!pc.pef_cpf ? `CPF.: ${MaskFormat(pc.pef_cpf, '', true)}` : '')}\r\n
)\r\n }\r\n />\r\n
\r\n }\r\n {pessoaFisica && \r\n \r\n }\r\n {!pessoaFisica && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {emiteTransferencia ? \r\n \r\n : { adicionarEmail() }}\r\n campoDescricao={'pem_email'}\r\n campoValue={'pem_id'}\r\n campoKey={'pem_id'}\r\n placeHolder={'Selecione um E-mail'}\r\n labelFormItem={'E-mail'}\r\n nameFormItem={'dadosEmailCliente'} />}\r\n \r\n \r\n {emiteTransferencia ? \r\n \r\n : { adicionarTelefone() }}\r\n campoDescricao={'psc_numero'}\r\n campoValue={'psc_id'}\r\n campokey={'psc_id'}\r\n placeHolder={'Selecione um Telefone'}\r\n labelFormItem={'Telefone'}\r\n nameFormItem={'telefoneCliente'} />}\r\n \r\n \r\n \r\n \r\n \r\n \"Endereço\" Endereço\r\n \r\n \r\n \r\n \r\n \r\n \r\n {emiteTransferencia ? \r\n \r\n : { adicionarEndereco() }}\r\n campoDescricao={['log_logradouro', 'cid_descricao', 'est_sigla', 'tpe_descricao']}\r\n campoValue={'pee_id'}\r\n campoKey={'pee_id'}\r\n placeHolder={\"Selecione um Endereço\"}\r\n labelFormItem={'Endereço'}\r\n nameFormItem={'enderecoCliente'}\r\n rulesFormItem={[{ required: true, message: 'Informe o Endereço' }]}\r\n />}\r\n \r\n \r\n \r\n }\r\n {pages.tagPages === 1 &&\r\n (endereco.pee_id === formulario.getFieldValue().enderecoCliente))[0]}\r\n dadosTabela={{ dadosItens, setDadosItens }}\r\n totalPedido={{ totalPedido, setTotalPedido }} custo={emiteTransferencia ? custo : {}}\r\n dadosOperacao={formulario.getFieldValue().ope_id}\r\n />\r\n }\r\n {pages.tagPages === 2 &&\r\n \r\n }\r\n {pages.tagPages === 3 &&\r\n \r\n }\r\n \r\n \r\n \r\n\r\n { onCloseModalEndereco() }} />\r\n { onCloseModalTelefone() }} />\r\n { onCloseModalEmail() }} />\r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, LeftOutlined, RightOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\nimport ManutencaoPedidos from './manutencao';\r\nimport { DrawerNav } from '../../components';\r\n\r\nexport default function DrawerPedidos({ clientes, exibirDrawer, fecharDrawerPedidos, dadosOrcamento }) {\r\n\r\n const [formPedidos] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [mostraBtnSalvar, setMostraBtnSalvar] = useState(false);\r\n const [tagPages, setTagPages] = useState(null);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n\r\n function fecharDrawer() {\r\n setProximaPag(null);\r\n setTagPages(0);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n fecharDrawerPedidos();\r\n formPedidos.resetFields();\r\n setCarregando(false);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n }\r\n fecharDrawer={fecharDrawer}\r\n footer={\r\n
\r\n \r\n {mostraBtnSalvar &&
\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Typography, Row, Col, Form, Divider, InputNumber, Card, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { validarNumeros } from \"../../services/funcoes\";\r\nimport { FormasPagamento, InputPreco } from \"../../components\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\nimport { isObjetoDiffVazio, calculaValorProporcional } from \"../../services/funcoes\";\r\n\r\nexport default function TabFaturamento({ form, dadosItens, dadosVendedor, dadosOperacao }) {\r\n\r\n const [valorNota, setValorNota] = useState(0);\r\n const [valorTotalSt, setvalorTotalSt] = useState(0);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState(!!manutencao.dados && !!manutencao.dados.faturamento && manutencao.dados.faturamento.length > 0 ? manutencao.dados.faturamento : [])\r\n const [controlModal, setControlModal] = useState(false);\r\n useEffect(() => {\r\n rateios();\r\n calcularFaturamento();\r\n }, [manutencao.dados])\r\n\r\n function calcularFaturamento() {\r\n let formulario = form.getFieldValue();\r\n let subTotal = 0;\r\n dadosItens.forEach((item) => {\r\n subTotal += item.total;\r\n });\r\n form.setFieldsValue({ subTotalNotaFiscal: subTotal });\r\n form.setFieldsValue({ valorFrete: validarNumeros(formulario.valorFrete) });\r\n form.setFieldsValue({ valorSeguro: validarNumeros(formulario.valorSeguro) });\r\n setvalorTotalSt(formulario.valorTotalSt)\r\n setValorNota(parseFloat(subTotal) + parseFloat(formulario.valorFrete) + parseFloat(formulario.valorSeguro) + parseFloat(formulario.valorOutrasDespesas));\r\n };\r\n\r\n useEffect(() => {\r\n recalcularTotal();\r\n }, [valorNota]);\r\n\r\n function calcularDesconto(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorDesconto);\r\n let perc = validarNumeros(formulario.percentualDesconto);\r\n let tot = parseFloat(valorNota);\r\n let result = 0;\r\n\r\n if (listaFormaPagamento.length > 0 && !!!controlModal) {\r\n setControlModal(true);\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: 'Tem certeza que deseja adicionar desconto? As formas de pagamento terão que ser incluídas novamente.',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n setListaFormaPagamento([]);\r\n },\r\n onCancel() {\r\n form.setFieldsValue({ valorDesconto: 0, percentualDesconto: 0, valorTotal: listaFormaPagamento[0].pfp_valor });\r\n }\r\n });\r\n }\r\n\r\n\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorDesconto: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percentualDesconto: result.toFixed(2) });\r\n }\r\n\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function calcularAcrescimo(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorAcrescimo);\r\n let perc = validarNumeros(formulario.percentualAcrescimo);\r\n let tot = (!!valorNota ? parseFloat(valorNota) : 0);\r\n let result = 0;\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorAcrescimo: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percentualAcrescimo: result.toFixed(2) });\r\n }\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function recalcularTotal() {\r\n let formulario = form.getFieldValue();\r\n let valor = 0;\r\n if (!!formulario) {\r\n valor = valorNota - validarNumeros(formulario.valorDesconto) + validarNumeros(formulario.valorAcrescimo);\r\n form.setFieldsValue({ valorTotal: valor.toFixed(2) });\r\n let valorPago = 0;\r\n if (!!manutencao.dados && !!manutencao.dados.faturamento) {\r\n manutencao.dados.faturamento.forEach((dadosFat) => {\r\n valorPago += parseFloat(dadosFat.pfp_valor);\r\n if (listaFormaPagamento.length == 0 || form.getFieldValue().valorDesconto > 0);\r\n {\r\n valorPago = 0;\r\n }\r\n });\r\n }\r\n form.setFieldsValue({ pfp_valor: (valor - valorPago).toFixed(2) });\r\n }\r\n };\r\n\r\n async function rateios() {\r\n await reteioDesconto();\r\n await recalcularImpostos();\r\n }\r\n\r\n async function recalcularImpostos() {\r\n if (dadosItens.length > 0) {\r\n let total = 0;\r\n let totalSt = 0;\r\n let possuiIe = !!form.getFieldValue().pej_inscricaoestadual ? true : false;\r\n let fisicaJuridica = form.getFieldValue().ntf_cpfcnpj.length === 14 ? 2 : form.getFieldValue().ntf_cpfcnpj.length == 11 ? 1 : 3;\r\n for (const p of dadosItens) {\r\n try {\r\n let _valorTotalDescontoItem = (!!p.nfi_valordescontorateado ? p.nfi_valordescontorateado : p.nfi_valordescontorateado) + p.nfi_valordesconto;\r\n let impostos = await CalcularImpostoItem(p.orm_id, p.cst_id, p.cso_id, p.iod_uforigem, p.iod_ufdestino, p.nfi_qtde, p.nfi_valorunitario, p.nfi_valorfrete, p.nfi_valoroutros,\r\n _valorTotalDescontoItem, p.impostos.retornoICMS.ret_aliquotaIcms, p.impostos.retornoICMS.ret_aliquotaIcms, p.impostos.retornoICMS.ret_percReducaoIcms,\r\n p.impostos.retornoICMSST.ret_aliquotaIcmsSt, p.impostos.retornoICMSST.ret_percMva, p.impostos.retornoICMSST.ret_percReducaoIcmsST, null,\r\n p.impostos.retornoICMSST.ncm_percentual, fisicaJuridica, form.getFieldValue().ntf_consumidorfinal, possuiIe, form.getFieldValue().ntf_indicadorpresenca);\r\n\r\n if (isObjetoDiffVazio(impostos)) {\r\n p.nfi_valoricmsst = impostos.retornoICMSST.ret_valorIcmsSt;\r\n p.nfi_valoripi = impostos.retornoIPI.ret_valorIpi;\r\n p.total = (p.nfi_qtde * p.nfi_valorunitario) - p.nfi_valordesconto + p.nfi_valoroutros + p.nfi_valoripi + p.nfi_valoricmsst;\r\n p.impostos = impostos;\r\n }\r\n totalSt += parseFloat(p.nfi_valoricmsst);\r\n total += parseFloat(p.total + p.nfi_valorfrete);\r\n } catch (error) {\r\n // Handle any potential errors here\r\n console.error(\"Error item:\", error);\r\n }\r\n }\r\n form.setFieldsValue({ valorTotalSt: totalSt });\r\n\r\n calcularFaturamento();\r\n }\r\n }\r\n function reteioDesconto() {\r\n let formulario = form.getFieldsValue();\r\n let _numeroItem = 1;\r\n let _totalDesconto = 0;\r\n if (dadosItens.length > 0) {\r\n let _valorDesconto = parseFloat(formulario.valorDesconto);\r\n if (_valorDesconto > 0) {\r\n // Ordena os itens em ordem de maior valor crescente\r\n var itens = dadosItens.sort((a, b) => a.total - b.total);\r\n // Calcular a soma da multiplicação dos campos\r\n let somaTotal = dadosItens.reduce((total, item) => {\r\n let resultadoMultiplicacao = item.nfi_valorunitario * item.nfi_qtde;\r\n return total + resultadoMultiplicacao;\r\n }, 0);\r\n\r\n itens.forEach(item => {\r\n let valorTotalItem = parseFloat(item.nfi_valorunitario * item.nfi_qtde);\r\n item.nfi_valordescontorateado = calculaValorProporcional(valorTotalItem, _valorDesconto, somaTotal);\r\n if (_numeroItem == dadosItens.length) {\r\n item.nfi_valordescontorateado = parseFloat((_valorDesconto - _totalDesconto).toFixed(2))\r\n }\r\n _totalDesconto += item.nfi_valordescontorateado;\r\n _numeroItem++;\r\n });\r\n }\r\n }\r\n }\r\n\r\n function vendedorDescMaxFinal() {\r\n let totalDesconto = 0;\r\n let totalValorDescontoItens = 0;\r\n dadosItens.forEach((itens) => {\r\n totalValorDescontoItens += parseFloat(itens.nfi_valordesconto);\r\n });\r\n let percentualDescontoConcedido = parseFloat(((totalValorDescontoItens * 100) / parseFloat(form.getFieldsValue().subTotalNotaFiscal)).toFixed(2));\r\n totalDesconto = percentualDescontoConcedido + parseFloat(form.getFieldValue().percentualDesconto);\r\n if (!!dadosVendedor && JSON.stringify(dadosVendedor) !== '{}' && !!dadosVendedor.ven_maximodesconto) {\r\n if (totalDesconto > (dadosVendedor.ven_maximodesconto * 100)) {\r\n notification.warning({ description: `O desconto máximo para este vendedor não pode exceder ${dadosVendedor.ven_maximodesconto * 100}% !`, message: 'Aviso' });\r\n form.setFieldsValue({ percentualDesconto: (dadosVendedor.ven_maximodesconto * 100) - parseFloat(percentualDescontoConcedido) });\r\n calcularDesconto('PERC');\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Totais da Nota Fiscal\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onBlur={() => { vendedorDescMaxFinal(); rateios(); }}\r\n onChange={() => { calcularDesconto('PERC'); }}\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n { vendedorDescMaxFinal(); rateios(); }} onChange={() => { calcularDesconto('VALOR'); }} />\r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onChange={() => { calcularAcrescimo('PERC') }}\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n { calcularAcrescimo('VALOR') }} />\r\n \r\n \r\n \r\n \r\n IPI (R$): 0,00\r\n \r\n \r\n \r\n \r\n Substituição Tributária (R$): {FormatNumber(valorTotalSt, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total da Nota (R$)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, {useEffect } from 'react';\r\nimport { Row, Col, Card, Form, Typography, Input, Divider, InputNumber } from \"antd\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function TabResumo({ form, itensNota }) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Resumo da Nota Fiscal\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n disabled\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n disabled\r\n />\r\n \r\n \r\n \r\n ou \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n IPI: R$ 0,00\r\n \r\n \r\n \r\n \r\n Substituição Tributária (R$): {FormatNumber(form.getFieldValue().valorTotalSt)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total de Itens da Nota: {itensNota.length}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total da Nota\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Typography, Row, Col, Form, Divider, Input, Select, Steps, Button, Modal, notification, Spin } from \"antd\";\r\nimport { CalendarOutlined, ExclamationCircleOutlined, ExclamationOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { TabFaturamento, TabResumo } from './tabPage';\r\nimport { Data, DrawerCliente, FormGW, InputCep, InputCpfCnpj, SelectIncluir, SelectPaginacao } from '../../components';\r\nimport { TabItens, TabTransporte } from '../tabNotaFiscal/index';\r\nimport { drawerActions, manutencaoActions, selectPaginadoActions } from '../../actions';\r\nimport { ModalAliquotaSimplesNacional, ModalEndereco, ModalTelefone } from \"../../components/modals\";\r\nimport { validaForm, validarNumeros, isObjetoDiffVazio, novaAbaNavegador, calculaValorProporcional, openPdfNewTab, HasValue, imprimirRelatorioJasper } from '../../services/funcoes';\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\nimport SelectPaginado from '../../components/selectPaginado';\r\nimport { MaskFormat } from '../../ValueObjects/index';\r\nimport { getCnpjEmpresa, getDadosIntegra, setDadosIntegra } from '../../services/auth';\r\nimport apiPayer from '../../services/apiPayer';\r\n\r\nexport default function ManutencaoNotaFiscal({ form, carregando, aoSalvar, pages, proximaPag, salvarRascunho, showDrawerExtra, fecharDrawerNotaFiscal }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [vendedores, setVendedores] = useState([]);\r\n const [clientes, setClientes] = useState([]);\r\n const [serie, setSerie] = useState([]);\r\n const [dadosEndereco, setDadosEndereco] = useState([]);\r\n const [telefone, setTelefone] = useState([]);\r\n const [email, setEmail] = useState([]);\r\n const [pessoaFisica, setPessoaFisica] = useState(1);\r\n const [dadosContribuinte, setDadosContribuinte] = useState({});\r\n const [formularioTelefone] = Form.useForm();\r\n const [dadosTelefone, setDadosTelefone] = useState([]);\r\n const [abreModalTelefone, setAbreModalTelefone] = useState(false);\r\n const [dadosItens, setDadosItens] = useState([]);\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState([]);\r\n const [listaVeiculos, setListaVeiculos] = useState([]);\r\n const [abreModalSimplesNac, setAbreModalSimplesNac] = useState(false)\r\n const [dadosTransp, setDadosTransp] = useState({});\r\n const [dadosVendedor, setDadosVendedor] = useState({});\r\n const [openModalEndereco, setOpenModalEndereco] = useState(false);\r\n const [formEndereco] = Form.useForm();\r\n const [permiteValidar, setPermiteValidar] = useState(true);\r\n const [openDrawerCliente, setOpenDrawerCliente] = useState(false);\r\n const [openValidaIE, setOpenValidaIE] = useState(true);\r\n const [codigoCliente, setCodigoCliente] = useState(null);\r\n const [editando, setEditando] = useState(false);\r\n const [operacaoFiscal, setOperacaoFiscal] = useState({});\r\n const [carregarPagina, setCarregarPagina] = useState(false);\r\n const [listaIndicadorPresenca, setListaIndicadorPresenca] = useState([]);\r\n const [consumidorFinal, setconsumidorFinal] = useState([]);\r\n const [listaSubjacente, setListaSubjacente] = useState([]);\r\n const listaValidacoesDest = [\r\n { nome: 'ope_id', obrigatorio: true, label: 'Operação' },\r\n { nome: 'ntf_indicadorpresenca', obrigatorio: true, label: 'Indicador de Presença' },\r\n { nome: 'pes_id', obrigatorio: true, label: 'Destinatário' },\r\n { nome: 'cep_cep', obrigatorio: true, label: 'Cep' },\r\n { nome: 'ntf_endereco', obrigatorio: true, label: 'Endereço' },\r\n { nome: 'ntf_consumidorfinal', obrigatorio: true, label: 'Destinatario é consumidor final?' }\r\n ];\r\n\r\n const statusPagamentoIntegraPagto = {\r\n Aprovada: 1,\r\n Rejeitada: 2,\r\n Pendente: 3,\r\n Cancelada: 4,\r\n Abortada: 5,\r\n Finalizada: 6,\r\n NaoAutorizada: 7,\r\n }\r\n\r\n var modalInstance = null;\r\n\r\n const listaValidacoesTransp = [\r\n { nome: 'ntf_modalidadefrete', obrigatorio: true, label: 'Modalidade do Frete' }\r\n ];\r\n\r\n const pagamentosCodigos = {\r\n dinheiro: 1,\r\n cheque: 2,\r\n cartaoCredito: 3,\r\n cartaoDebito: 4,\r\n crediarioLoja: 5,\r\n valeAlimentacao: 6,\r\n valeRefeicao: 7,\r\n valeCombustivel: 9,\r\n antecipacao: 12,\r\n valePresente: 12,\r\n boleto: 15,\r\n depositoBancario: 16,\r\n pix: 17,\r\n transfBancaria: 18,\r\n semPagamento: 90,\r\n outro: 99\r\n };\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n carregarDados();\r\n if (!!manutencao.dados && !!manutencao.dados.ntf_id) {\r\n form.setFieldsValue(manutencao.dados);\r\n setEditando(true);\r\n } else {\r\n setEditando(false);\r\n }\r\n if (!!!form.getFieldValue().ntf_dataemissao) {\r\n form.setFieldsValue({ ntf_dataemissao: moment(new Date()) });\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n useEffect(() => {\r\n if (!!showDrawerExtra) {\r\n carregarDados();\r\n form.setFieldsValue(manutencao.dados);\r\n if (!!!form.getFieldValue().ntf_dataemissao) {\r\n form.setFieldsValue({ ntf_dataemissao: moment(new Date()) });\r\n }\r\n }\r\n if (!!showDrawerExtra && !!form.getFieldValue().pes_id) {\r\n let lista = [];\r\n if (!!form.getFieldValue().pes_id) {\r\n lista.push({ name: \"pes_id\", campo: \"Filtro\", value: form.getFieldValue().pes_id });\r\n buscarDadosCliente(form.getFieldValue().pes_id);\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n form.setFieldsValue(manutencao.dados);\r\n }\r\n }, [showDrawerExtra]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n if (!!manutencao.dados.faturamento) {\r\n setListaFormaPagamento(manutencao.dados.faturamento);\r\n }\r\n if (!!manutencao.dados.formaPgto && !!!manutencao.dados.antecipacao) {\r\n manutencao.dados.formaPgto.forEach((forma) => {\r\n if (forma.fpg_tipopagamento === pagamentosCodigos.crediarioLoja && forma.fpg_quitacaoantecipacao) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ antecipacao: [{ valorAntecipacao: forma.nfp_valor }] } } } });\r\n }\r\n });\r\n }\r\n if (!!manutencao.dados.formaPgto && !!!manutencao.dados.faturamento) {\r\n manutencao.dados.formaPgto.forEach((formas) => {\r\n formas.pfp_valor = parseFloat(formas.nfp_valor);\r\n });\r\n let dadosFormaPgto = [...manutencao.dados.formaPgto];\r\n dadosFormaPgto = manutencao.dados.formaPgto.filter((dados) => dados.fpg_tipopagamento !== pagamentosCodigos.crediarioLoja && !dados.fpg_quitacaoantecipacao);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ faturamento: dadosFormaPgto } } } });\r\n }\r\n if (!!manutencao.dados.pes_id && (!!!manutencao.dados.destinatario || (manutencao.dados.destinatario.pes_id !== manutencao.dados.pes_id))) {\r\n let lista = [];\r\n lista.push({ name: \"pes_id\", campo: \"Filtro\", value: manutencao.dados.pes_id });\r\n lista.push({ name: \"ope_id\", campo: \"CodigoOperacao\", value: manutencao.dados.ope_id });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n buscarDadosCliente(manutencao.dados.pes_id);\r\n popularOperacaoFiscal(manutencao.dados.ope_id);\r\n }\r\n if (!!manutencao.dados && !!manutencao.dados.itensNf) {\r\n if (!!manutencao.dados.itensNf[0].ped_id || !!manutencao.dados.itensNf[0].ntf_id) {\r\n calcularFrete(manutencao.dados.itensNf);\r\n }\r\n if (dadosItens.length === 0) {\r\n setDadosItens(manutencao.dados.itensNf);\r\n }\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!clientes && clientes.length > 0 && (!!manutencao.dados || !!form.getFieldValue().pes_id)) {\r\n let cliente = !!manutencao.dados ? manutencao.dados.pes_id : form.getFieldValue().pes_id;\r\n buscarDadosCliente(cliente);\r\n }\r\n }, [clientes]);\r\n\r\n useEffect(() => {\r\n if ((!!proximaPag.proximaPag || proximaPag.proximaPag === 0) && permiteValidar) {\r\n validarTrocaPg(proximaPag.proximaPag);\r\n } else {\r\n setPermiteValidar(true);\r\n }\r\n }, [proximaPag.proximaPag]);\r\n\r\n function calcularFrete() {\r\n let valorFrete = 0;\r\n manutencao.dados.itensNf.forEach((item) => {\r\n if (!!item.ped_id) {\r\n valorFrete += parseFloat(!!item.pdi_valorfrete ? item.pdi_valorfrete : 0);\r\n } else {\r\n valorFrete += parseFloat(!!item.nfi_valorfrete ? item.nfi_valorfrete : 0);\r\n }\r\n });\r\n form.setFieldsValue({ valorFrete: valorFrete });\r\n };\r\n\r\n async function carregarDados() {\r\n setCarregarPagina(true);\r\n let listaIndicadorPresenca = await api.get('Enum/Listar?nome=IndicadorPresenca');\r\n if (listaIndicadorPresenca.status === 200) {\r\n setListaIndicadorPresenca(listaIndicadorPresenca.data);\r\n }\r\n let consumidorFinal = await api.get('Enum/Listar?nome=ConsumidorFinal');\r\n if (consumidorFinal.status === 200) {\r\n setconsumidorFinal(consumidorFinal.data);\r\n }\r\n let listaVendedor = await api.get('Vendedor/ListarVendedor');\r\n if (listaVendedor.status === 200) {\r\n setVendedores(listaVendedor.data.items);\r\n }\r\n let listaSerie = await api.get('SerieFiscal/Listar?EmitenteDocumento=0&CodigoModeloDocFiscal=55&SomenteAtivos=true');\r\n let serie = [];\r\n if (listaSerie.status === 200) {\r\n serie = listaSerie.data.items;//.filter(item => (item.mdf_id === '55' && item.ser_emitentedocumento === 0));\r\n setSerie(serie);\r\n if (serie.length > 0) {\r\n form.setFieldsValue({ ser_id: serie[0].ser_id });\r\n }\r\n }\r\n\r\n let listaDadosContribuinte = await api.get('dadosContribuinte/Buscar');\r\n setCarregarPagina(false);\r\n if (listaDadosContribuinte.status === 200) {\r\n if (!!listaDadosContribuinte.data) {\r\n setDadosContribuinte(listaDadosContribuinte.data);\r\n if (listaDadosContribuinte.data.emp_regimetributario === 1) {\r\n popularDadosSimples();\r\n }\r\n } else {\r\n Modal.warning({\r\n title: 'Dados Contribuinte não parâmetrizados!',\r\n content: 'Favor parametrizar os dados do contribuinte'\r\n });\r\n aoSalvar();\r\n }\r\n }\r\n };\r\n\r\n function setarAdjacentes(adjacentes) {\r\n let key = 1;\r\n adjacentes.forEach((item) => {\r\n item.key = key++;\r\n });\r\n setListaSubjacente(adjacentes);\r\n }\r\n\r\n function tratarDadosSubjacente(id) {\r\n let value = listaSubjacente.find(x => x.pop_id === id);\r\n if (HasValue(value.pop_cep)) {\r\n fetch(`https://viacep.com.br/ws/${value.pop_cep.replace(`-`, ``)}/json/`).then(\r\n res => res.json()\r\n ).then(\r\n result => {\r\n let dadosEndereco = {\r\n pee_id: id,\r\n ntf_endereco: id,\r\n bai_nome: value.pop_bairro,\r\n bairro: value.pop_bairro,\r\n cep_cep: value.pop_cep,\r\n cid_nome: result.localidade,\r\n complemento: value.pop_complemento,\r\n pee_complemento: value.pop_complemento,\r\n log_logradouro: value.pop_endereco,\r\n pee_numero: value.pop_numero,\r\n numero: value.pop_numero,\r\n est_sigla: result.uf\r\n };\r\n setDadosEndereco([dadosEndereco]);\r\n form.setFieldsValue(\r\n dadosEndereco);\r\n },\r\n erro => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n );\r\n }\r\n }\r\n\r\n function setarEnderecos(enderecos) {\r\n if (enderecos != null && enderecos.length > 0) {\r\n setDadosEndereco(enderecos);\r\n let end = enderecos[0];\r\n buscarCep(end.cep_cep);\r\n form.setFieldsValue({\r\n ntf_endereco: end.pee_id,\r\n cep_cep: end.cep_cep,\r\n pse_id: end.pse_id,\r\n bai_nome: end.bai_nome,\r\n pee_numero: end.pee_numero,\r\n pee_complemento: end.pee_complemento\r\n });\r\n let lista = [];\r\n lista.push({ name: \"pse_id\", campo: \"pse_id\", value: end.pse_id });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n } else {\r\n setDadosEndereco([]);\r\n if (!!form.getFieldValue().pes_id) {\r\n Modal.confirm({\r\n title: 'Endereço não encontrado',\r\n icon: ,\r\n content: 'Deseja incluir um endereço para este destinatário?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n setOpenModalEndereco(true);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n function setarTelefones(telefones) {\r\n setTelefone(telefones);\r\n if (telefones != null && telefones.length > 0) {\r\n let telefone;\r\n if (telefones.length > 1) {\r\n let telefonePrincipal = telefones.filter(f => f.psc_principal == true)\r\n if (telefonePrincipal.length > 0) {\r\n telefone = telefonePrincipal[0].psc_id;\r\n }\r\n else {\r\n telefone = telefones[0].psc_id;\r\n }\r\n } else {\r\n telefone = telefones[0].psc_id;\r\n }\r\n form.setFieldsValue({ telefoneDestinatario: telefone });\r\n }\r\n };\r\n\r\n function setarEmails(emails) {\r\n setEmail(emails);\r\n if (emails != null && emails.length > 0) {\r\n let email;\r\n if (emails.length > 1) {\r\n let emailPricipal = emails.filter(f => f.pem_emailprincipal == true);\r\n if (emailPricipal.length > 0) {\r\n email = emailPricipal[0].pem_id;\r\n }\r\n else {\r\n email = emails[0].pem_id;\r\n }\r\n } else {\r\n email = emails[0].pem_id;\r\n }\r\n form.setFieldsValue({ ntf_emaildestinatario: email });\r\n }\r\n };\r\n\r\n function popularDadosSimples() {\r\n let data = new Date();\r\n let dados = {};\r\n dados.asn_ano = data.getFullYear();\r\n dados.asn_mes = data.getMonth() + 1;\r\n api.get(`AliquotaSimplesNacional/Listar?Ano=${dados.asn_ano}&Mes=${dados.asn_mes}`).then(\r\n res => {\r\n if (!isObjetoDiffVazio(res.data?.items[0])) {\r\n setAbreModalSimplesNac(true);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n if (!!!erro) {\r\n setAbreModalSimplesNac(true);\r\n } else {\r\n console.log(erro);\r\n }\r\n }\r\n )\r\n };\r\n async function modalVerificaIEdestinatario(pagina) {\r\n if (modalInstance !== null) {\r\n modalInstance.destroy();\r\n }\r\n modalInstance = Modal.confirm({\r\n title: 'Atenção',\r\n content: 'Destinatário sem Inscrição Estadual, deseja seguir com emissão da Nota Fiscal?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n onOk: () => {\r\n setOpenValidaIE(false);\r\n //validarTrocaPg(pagina)\r\n },\r\n onCancel: () => {\r\n setOpenValidaIE(true);\r\n }\r\n });\r\n };\r\n\r\n async function validarOperacao() {\r\n let retorno;\r\n let end = dadosEndereco.filter((end) => (end.pee_id === form.getFieldValue().ntf_endereco))[0];\r\n let interestadual = false;\r\n if (end?.est_sigla !== dadosContribuinte.est_sigla) {\r\n interestadual = true;\r\n }\r\n form.setFieldsValue({ interestadual: interestadual });\r\n\r\n if (!!end && form.getFieldValue().pej_inscricaoestadual === null\r\n && form.getFieldValue().ntf_indicadorpresenca === 0 && end.est_sigla !== dadosContribuinte.est_sigla) {\r\n Modal.warning({\r\n title: \"Verifique a Operação Fiscal Informada\",\r\n content: \"Nota Fiscal emitida para destinatário interestadual não contribuinte, deve ter uma operação que configure o tipo de indicador de presença do destinatário. Esta operação esta cadastrada com o indicador de presença 0-Não se Aplica - Verifique a Situação!\",\r\n });\r\n retorno = false;\r\n } else {\r\n retorno = true;\r\n }\r\n return retorno;\r\n };\r\n\r\n async function buscarDadosCliente(registro) {\r\n if (!!registro) {\r\n let cliente = (await api.get(`Cliente/BuscarByIdPessoa/${registro}`)).data;\r\n if (!!cliente) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ destinatario: cliente } } } });\r\n form.setFieldsValue({ 'pej_inscricaoestadual': cliente.pej_inscricaoestadual });\r\n form.setFieldsValue({ 'pes_nome': cliente.pes_nome });\r\n form.setFieldsValue({ 'cli_id': cliente.cli_id });\r\n setarCpfCnpj(cliente);\r\n setarEnderecos(cliente.enderecos);\r\n setarTelefones(cliente.telefones);\r\n setarEmails(cliente.emails);\r\n if (cliente.pes_fisicajuridica === 1) // Pessoa Fisica\r\n {\r\n if (cliente.pef_produtorrural) {\r\n form.setFieldsValue({ 'pej_inscricaoestadual': cliente.enderecos[0].pie_inscricaoestadual });\r\n }\r\n if (form.getFieldValue().pej_inscricaoestadual != null && form.getFieldValue().pej_inscricaoestadual != undefined) {\r\n form.setFieldsValue({ 'ntf_consumidorfinal': 1 });\r\n }\r\n else {\r\n form.setFieldsValue({ 'ntf_consumidorfinal': 0 });\r\n }\r\n } else {\r\n form.setFieldsValue({ 'ntf_consumidorfinal': null }); // Usuario deve definir, pois pode ou não ser consumidor final\r\n }\r\n if (cliente?.pessoaorgaospublicos?.length > 0) {\r\n setarAdjacentes(cliente.pessoaorgaospublicos);\r\n } else {\r\n setListaSubjacente([]);\r\n }\r\n } else {\r\n limparCliente();\r\n }\r\n } else {\r\n limparCliente();\r\n }\r\n };\r\n\r\n function limparCliente() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ destinatario: null } } } });\r\n form.setFieldsValue({ 'pej_inscricaoestadual': null });\r\n form.setFieldsValue({ 'pes_nome': null });\r\n form.setFieldsValue({ 'ntf_cpfcnpj': null });\r\n setarEnderecos([]);\r\n setarTelefones([]);\r\n setarEmails([]);\r\n }\r\n\r\n function setarCpfCnpj(cliente) {\r\n let cpfCnpj = '';\r\n if (cliente.pes_fisicajuridica > 0) {\r\n if (cliente.pes_fisicajuridica === 1) {\r\n cpfCnpj = cliente.pef_cpf;\r\n setPessoaFisica(1);\r\n } else if (cliente.pes_fisicajuridica === 2) {\r\n cpfCnpj = cliente.pej_cnpj;\r\n setPessoaFisica(2);\r\n } else if (cliente.pes_fisicajuridica === 3) {\r\n cpfCnpj = cliente.pes_idestrangeiro;\r\n setPessoaFisica(3);\r\n }\r\n form.setFieldsValue({ ntf_cpfcnpj: cpfCnpj });\r\n } else {\r\n notification.warn(\"Cliente informado com cadastro de pessoa física/jurídica/estrangeira incorreto!\");\r\n form.setFieldsValue({ pes_id: null });\r\n return false;\r\n }\r\n };\r\n function buscarDadosEndereco(pee_id) {\r\n let end = dadosEndereco.filter((end) => (end.pee_id === pee_id))[0];\r\n if (!!end) {\r\n form.setFieldsValue({ pse_id: end.pse_id });\r\n if (end.pse_id) {\r\n let lista = [];\r\n lista.push({ name: \"pse_id\", campo: \"pse_id\", value: end.pse_id });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n if (end.pie_inscricaoestadual) {\r\n form.setFieldsValue({ 'pej_inscricaoestadual': end.pie_inscricaoestadual });\r\n }\r\n form.setFieldsValue({ cep_cep: end.cep_cep });\r\n buscarCep(end.cep_cep);\r\n form.setFieldsValue({ bai_nome: end.bai_nome });\r\n form.setFieldsValue({ pee_numero: end.pee_numero });\r\n form.setFieldsValue({ pee_complemento: end.pee_complemento });\r\n }\r\n };\r\n async function validarTrocaPg(pagina) {\r\n let paginaAtual = pages.tagPages;\r\n let listaValidacoes = [];\r\n switch (paginaAtual) {\r\n case 0:\r\n listaValidacoes = listaValidacoesDest;\r\n if (openValidaIE === true && pessoaFisica == 2) {\r\n let ie = form.getFieldValue().pej_inscricaoestadual;\r\n if (ie == null || ie == \"\") {\r\n await modalVerificaIEdestinatario(pagina)\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n if (!validarOperacao()) {\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n break;\r\n case 1:\r\n if (paginaAtual < pagina) {\r\n if (!!dadosItens && dadosItens.length === 0) {\r\n notification.warning({ message: 'Aviso', description: 'Nota Fiscal deve ter ao menos 1 item!' });\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n case 2:\r\n listaValidacoes = listaValidacoesTransp;\r\n await validarTransporte();\r\n break;\r\n case 3:\r\n if (paginaAtual < pagina) {\r\n listaValidacoes = [];\r\n let validaFaturamento = await validarFaturamento();\r\n if (validaFaturamento === false || listaFormaPagamento.length === 0) {\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n case 4:\r\n listaValidacoes = [];\r\n break;\r\n }\r\n if (validaForm(form, listaValidacoes)) {\r\n pages.setTagPages(pagina);\r\n } else {\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n }\r\n };\r\n async function validarTransporte() {\r\n await reteioFrete();\r\n await recalcularImpostos();\r\n }\r\n async function recalcularImpostos() {\r\n if (dadosItens.length > 0) {\r\n let total = 0;\r\n let totalSt = 0;\r\n let possuiIe = !!form.getFieldValue().pej_inscricaoestadual ? true : false;\r\n let fisicaJuridica = form.getFieldValue().ntf_cpfcnpj.length === 14 ? 2 : form.getFieldValue().ntf_cpfcnpj.length == 11 ? 1 : 3;\r\n for (const p of dadosItens) {\r\n try {\r\n let impostos = await CalcularImpostoItem(p.orm_id, p.cst_id, p.cso_id, p.iod_uforigem, p.iod_ufdestino, p.nfi_qtde, p.nfi_valorunitario, p.nfi_valorfrete, p.nfi_valoroutros,\r\n p.nfi_valordesconto, p.impostos.retornoICMS.ret_aliquotaIcms, p.impostos.retornoICMS.ret_aliquotaIcms, p.impostos.retornoICMS.ret_percReducaoIcms,\r\n p.impostos.retornoICMSST.ret_aliquotaIcmsSt, p.impostos.retornoICMSST.ret_percMva, p.impostos.retornoICMSST.ret_percReducaoIcmsST, null,\r\n p.impostos.retornoICMSST.ncm_percentual, fisicaJuridica, form.getFieldValue().ntf_consumidorfinal, possuiIe, form.getFieldValue().ntf_indicadorpresenca);\r\n\r\n if (isObjetoDiffVazio(impostos)) {\r\n p.nfi_valoricmsst = impostos.retornoICMSST.ret_valorIcmsSt;\r\n p.nfi_valoripi = impostos.retornoIPI.ret_valorIpi;\r\n p.total = (p.nfi_qtde * p.nfi_valorunitario) - p.nfi_valordesconto + p.nfi_valoroutros + p.nfi_valoripi + p.nfi_valoricmsst;\r\n p.impostos = impostos;\r\n }\r\n totalSt += parseFloat(p.nfi_valoricmsst);\r\n total += parseFloat(p.total);\r\n } catch (error) {\r\n // Handle any potential errors here\r\n console.error(\"Error item:\", error);\r\n }\r\n }\r\n form.setFieldsValue({ valorTotalSt: totalSt });\r\n // form.setFieldsValue({ valorTotal: total });\r\n }\r\n }\r\n\r\n\r\n\r\n // async function recalcularImpostos() {\r\n // if (dadosItens.length > 0) {\r\n // dadosItens.forEach(p => {\r\n // let impostos = await CalcularImpostoItem(p.orm_id, p.cst_id, p.cso_id, p.iod_uforigem, p.iod_ufdestino, p.nfi_qtde, p.nfi_valorunitario, p.nfi_valorfrete, p.nfi_valoroutros,\r\n // p.nfi_valordesconto, p.impostos.retornoICMS.ret_aliquotaIcms, p.impostos.retornoICMS.ret_aliquotaIcms, p.impostos.retornoICMS.ret_percReducaoIcms,\r\n // p.impostos.retornoICMSST.ret_aliquotaIcmsSt, p.impostos.retornoICMSST.ret_percMva, p.impostos.retornoICMSST.ret_percReducaoIcmsST, null,\r\n // p.impostos.retornoICMSST.ncm_percentual, 2, 0, true);\r\n\r\n // if (isObjetoDiffVazio(impostos)) {\r\n // p.nfi_valoricmsst = impostos.retornoICMSST.ret_valorIcmsSt;\r\n // p.nfi_valoripi = impostos.retornoIPI.ret_valorIpi;\r\n // p.impostos = impostos;\r\n // }\r\n // });\r\n // }\r\n // console.log(\"Recalculo de Imposto\", dadosItens)\r\n // }\r\n\r\n function reteioFrete() {\r\n let formulario = form.getFieldsValue();\r\n let _numeroItem = 1;\r\n let _totalFrete = 0;\r\n if (dadosItens.length > 0) {\r\n let _valorFrete = parseFloat(formulario.valorFrete);\r\n if (_valorFrete > 0) {\r\n // Ordena os itens em ordem de maior valor crescente\r\n var itens = dadosItens.sort((a, b) => a.total - b.total);\r\n // Calcular a soma da multiplicação dos campos\r\n let somaTotal = dadosItens.reduce((total, item) => {\r\n let resultadoMultiplicacao = item.nfi_valorunitario * item.nfi_qtde;\r\n return total + resultadoMultiplicacao;\r\n }, 0);\r\n\r\n itens.forEach(item => {\r\n let valorTotalItem = parseFloat(item.nfi_valorunitario * item.nfi_qtde);\r\n item.nfi_valorfrete = calculaValorProporcional(valorTotalItem, _valorFrete, somaTotal);\r\n if (_numeroItem == dadosItens.length) {\r\n item.nfi_valorfrete = parseFloat((_valorFrete - _totalFrete).toFixed(2))\r\n }\r\n _totalFrete += item.nfi_valorfrete;\r\n _numeroItem++;\r\n });\r\n }\r\n }\r\n }\r\n async function validarFaturamento() {\r\n let formulario = form.getFieldsValue();\r\n let retorno = true;\r\n let valorTotal = 0;\r\n let operacao = operacaoFiscal;\r\n if (listaFormaPagamento.length > 0) {\r\n listaFormaPagamento.forEach(forma => {\r\n valorTotal += parseFloat(forma.pfp_valor);\r\n if (forma.editando == true) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor salvar as alterações em andamento nas parcelas(forma pagamento) para continuar!' });\r\n }\r\n });\r\n if (parseFloat(formulario.valorTotal) === 0) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso!', description: 'Valor da Nota Inválido!' });\r\n } else {\r\n if ((validarNumeros(formulario.valorTotal) !== parseFloat(valorTotal.toFixed(2))) || operacao.tip_id == !5) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Valor informado nas formas de pagamento é menor que o valor total da nota!' });\r\n }\r\n }\r\n } else {\r\n if (!!formulario.fpg_id) {\r\n let formaPagamento = (await api.get(`FormaPagamento/Get?id=${formulario.fpg_id}`)).data;\r\n if (!listaFormaPagamento.cpg_id) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher as formas de pagamento!' });\r\n }\r\n else if (formaPagamento.fpg_tipoavistaaprazo === 1) {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher as formas de pagamento!' });\r\n }\r\n } else {\r\n retorno = false;\r\n notification.warning({ message: 'Aviso', description: 'Favor preencher as formas de pagamento!' });\r\n }\r\n }\r\n return retorno;\r\n };\r\n function adicionarTelefone() {\r\n if (!!form.getFieldValue().pes_id) {\r\n setAbreModalTelefone(true);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: \"Favor informar um cliente!\" })\r\n }\r\n };\r\n function onCloseModalTelefone() {\r\n setAbreModalTelefone(false);\r\n };\r\n function onCloseModalAliquotaSimplesNacional() {\r\n setAbreModalSimplesNac(false);\r\n form.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n };\r\n async function validarDadosNota(dados) {\r\n dados = await popularDados();\r\n dados.gerarBoleto = false;\r\n dados.ntf_ufdest = dados.notaFiscalDestinatario?.ntf_ufdest;\r\n dados.notaFiscalFaturamento.forEach((formasPgto) => {\r\n if (formasPgto.fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n dados.gerarBoleto = true;\r\n }\r\n });\r\n salvarNota(dados);\r\n };\r\n\r\n async function modalAutorizarSefaz(dados) {\r\n Modal.confirm({\r\n title: 'Atenção!',\r\n content: (\r\n
\r\n

\r\n A operação fiscal está configurada para gerar um rascunho antes de autorizar a nota no SEFAZ.\r\n
\r\n
\r\n O que você deseja fazer com a Nota Nº {dados.ntf_numero} - Modelo: {dados.ntf_modelo} Data: {moment(dados.ntf_dataemissao).format('DD/MM/YYYY HH:mm')}?\r\n

\r\n
\r\n ),\r\n okText: 'Autorizar Agora',\r\n cancelText: 'Autorizar Depois',\r\n onOk() {\r\n realizarReenvioSefaz(dados);\r\n },\r\n onCancel() {\r\n\r\n }\r\n })\r\n }\r\n\r\n async function realizarReenvioSefaz(dadosNota) {\r\n let _link = `NotaFiscal/ReenviarNotaSefaz/${dadosNota.ntf_id}`;\r\n if (dadosNota.ntf_finalidade === 3)// Nota ajuste\r\n _link = `NotaFiscalDebitoCredito/ReenviarNotaSefaz/${dadosNota.ntf_id}`;\r\n\r\n api.post(_link).then(\r\n (retornoNF) => {\r\n if (retornoNF.status === 200) {\r\n if (retornoNF.data.ntf_status === 1 && !!retornoNF.data.ntf_chavenfe) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${retornoNF.data.ntf_chavenfe}`);\r\n let formaPagItegrado = retornoNF.data.notafiscalformapgtos.filter((item) => (HasValue(item.imp_id)))\r\n if (formaPagItegrado.length > 0) {\r\n novaAbaNavegador(`Danfe/GerarComprovantePagamentoViaLoja?IdNotaFiscal=${retornoNF.data.ntf_id}`);\r\n }\r\n }\r\n }\r\n notification.success({ message: 'Sucesso', description: `NF-e Autorizada com sucesso!` });\r\n }\r\n\r\n ).catch(\r\n (erro) => {\r\n if (!!erro.response && !!erro.response.data) {\r\n notification.error({ description: erro.response.data, message: `Aviso` });\r\n } else {\r\n notification.error({ description: 'Não foi possível Autorizar a Nota Fiscal!', message: `Aviso` });\r\n }\r\n }\r\n ).finally(() => {\r\n aoSalvar();\r\n });\r\n console.log(dadosNota)\r\n }\r\n\r\n async function salvarNota(dados) {\r\n if (dados.notaFiscalDestinatario.pes_fisicajuridica === 1) {\r\n dados.ntf_consumidorfinal = 1;\r\n } else {\r\n if (dados.ntf_consumidorfinal !== 0 && dados.ntf_consumidorfinal !== 1) {\r\n notification.warning({ message: 'Aviso', description: 'Não foi selecionado o destino da mercadoria!' });\r\n return;\r\n }\r\n }\r\n dados.ntf_modalidadefrete = !!dados.notaFiscalTransportadora ? dados.notaFiscalTransportadora.ntf_modalidadefrete : 9;\r\n await analisaFormaPagamento(dados);\r\n };\r\n\r\n async function analisaFormaPagamento(dados) {\r\n let pagamentoMaquininha = false;\r\n let dadosIntegracaoPos = {};\r\n let cnpjEmpresa = getCnpjEmpresa();\r\n let listaIdsIntegracao = [];\r\n for (const item of dados.notaFiscalFaturamento) {\r\n if (item.fpg_tipopagamento === pagamentosCodigos.cartaoCredito || item.fpg_tipopagamento === pagamentosCodigos.cartaoDebito || item.fpg_tipopagamento === pagamentosCodigos.pix) {\r\n if (item.fpg_tipointegracao != null) {\r\n if (item.fpg_tipointegracao == 1) {// vero\r\n let tipopgto = 0;\r\n let metodopgto = 0;\r\n let submetodopgto = 0;\r\n\r\n if (item.fpg_tipopagamento === pagamentosCodigos.cartaoCredito) {\r\n tipopgto = 2;\r\n metodopgto = 1;\r\n submetodopgto = 4;\r\n if (item.parcelas?.length == 1) {\r\n submetodopgto = 1\r\n }\r\n }\r\n if (item.fpg_tipopagamento === pagamentosCodigos.cartaoDebito) {\r\n tipopgto = 3;\r\n metodopgto = 1;\r\n submetodopgto = 3;\r\n if (item.parcelas?.length == 1) {\r\n submetodopgto = 1\r\n }\r\n }\r\n if (item.fpg_tipopagamento === pagamentosCodigos.pix) {\r\n tipopgto = 1;\r\n metodopgto = 3;\r\n submetodopgto = 1\r\n }\r\n dadosIntegracaoPos = {\r\n imp_cnpjlocal: cnpjEmpresa,\r\n imp_valor: item.pfp_valor,\r\n imp_tipopgto: tipopgto,\r\n imp_metodopgto: metodopgto,\r\n imp_submetodopgto: submetodopgto,\r\n imp_qtdeparcelas: item.parcelas?.length,\r\n }\r\n if (!isObjetoDiffVazio(item.integrapgto)) {\r\n item.integrapgtook = false;\r\n item.integrapgto = await criaRegistroIntegraPagto(dadosIntegracaoPos);\r\n listaIdsIntegracao.push(item.integrapgto);\r\n }\r\n item.imp_id = item.integrapgto.imp_id;\r\n } else if (item.fpg_tipointegracao == 2) {//payer\r\n await pagamentoPayer(item);\r\n //if (dados.notaFiscalFaturamento.length >= 2) { ??\r\n pagamentoMaquininha = true;\r\n break;\r\n //}\r\n }\r\n pagamentoMaquininha = true;\r\n } else {\r\n pagamentoMaquininha = false;\r\n }\r\n }\r\n }\r\n if (pagamentoMaquininha) {\r\n setDadosIntegra(dados);\r\n modalAguardandoPagamento(dados);\r\n } else {\r\n concluirVenda(dados);\r\n }\r\n }\r\n\r\n async function pagamentoPayer(item) {\r\n let dadosIntegracaoPos = {};\r\n let _paymentType = \"\";\r\n let _paymentMethodSubType = \"\";\r\n let _installments = \"\";\r\n let _paymentMethod = \"\";\r\n let _command = \"payment\"\r\n\r\n if (item.fpg_tipopagamento === pagamentosCodigos.cartaoCredito) {\r\n _paymentMethod = \"Card\";\r\n _paymentType = \"Credit\";\r\n _paymentMethodSubType = \"Financed_no_Fees\";\r\n\r\n if (item.parcelas?.length == 1) {\r\n _paymentMethodSubType = \"Full_Payment\";\r\n } else {\r\n _installments = (item.parcelas?.length).toString();\r\n }\r\n }\r\n if (item.fpg_tipopagamento === pagamentosCodigos.cartaoDebito) {\r\n if (item.parcelas?.length > 1) {\r\n _paymentMethodSubType = \"Financed_Debit\";\r\n _installments = (item.parcelas?.length).toString();\r\n } else {\r\n _paymentMethodSubType = \"Full_Payment\";\r\n }\r\n _paymentMethod = \"Card\";\r\n _paymentType = \"Debit\"\r\n }\r\n if (item.fpg_tipopagamento === pagamentosCodigos.pix) {\r\n _paymentType = \"Cash\";\r\n _paymentMethod = \"Pix\";\r\n }\r\n\r\n dadosIntegracaoPos = {\r\n command: _command,\r\n value: parseFloat(item.pfp_valor),\r\n paymentMethod: _paymentMethod,\r\n paymentType: _paymentType,\r\n paymentMethodSubType: _paymentMethodSubType,\r\n installments: _installments\r\n };\r\n if (!isObjetoDiffVazio(item.integrapgto)) {\r\n item.integrapgtook = false;\r\n try {\r\n let retorno = await apiPayer.post('Client/Request', dadosIntegracaoPos);\r\n } catch (error) {\r\n notification.warning({ description: 'Verifique se o checkout Payer esteja iniciado, caso contrário inicie o mesmo para continuar !', message: 'AVISO!' });\r\n }\r\n }\r\n }\r\n\r\n async function criaRegistroIntegraPagto(dadosIntegracaoPos) {\r\n let retorno;\r\n try {\r\n retorno = (await api.post(`IntegraPagto/Incluir`, dadosIntegracaoPos)).data;\r\n } catch (error) {\r\n notification.warning({ description: 'Erro ao mandar o pagamento para a máquina!', message: 'AVISO!' });\r\n console.log(error);\r\n return false;\r\n }\r\n return retorno;\r\n }\r\n\r\n\r\n function modalAguardandoPagamento(dados) {\r\n if (modalInstance !== null) {\r\n modalInstance.destroy();\r\n }\r\n modalInstance = Modal.confirm({\r\n title: 'Aviso',\r\n content: 'Aguardando Pagamento!',\r\n okText: 'Pagamento Efetuado',\r\n cancelText: 'Cancelar Pagamento',\r\n onOk: () => {\r\n verificarPagamentos(dados);\r\n },\r\n onCancel: () => {\r\n cancelarPagamentoMaquina(dados);\r\n }\r\n });\r\n }\r\n\r\n async function cancelarPagamentoMaquina(dados) {\r\n for (var item of dados.notaFiscalFaturamento) {\r\n if (item.fpg_tipopagamento === pagamentosCodigos.cartaoCredito || item.fpg_tipopagamento === pagamentosCodigos.cartaoDebito || item.fpg_tipopagamento === pagamentosCodigos.pix) {\r\n let retorno = (await api.put(`IntegraPagto/CancelarPagamento?Id=${item.integrapgto.imp_id}`)).data;\r\n if (retorno) {\r\n item.integrapgtook = false;\r\n item.integrapgto = null;\r\n } else {\r\n notification.warning({ description: 'Erro ao efetuar o cancelamento!', message: 'Aviso!' });\r\n modalAguardandoPagamento(dados)\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async function verificarPagamentos(dados) {\r\n for (var item of dados.notaFiscalFaturamento) {\r\n if (item.fpg_tipopagamento === pagamentosCodigos.cartaoCredito || item.fpg_tipopagamento === pagamentosCodigos.cartaoDebito || item.fpg_tipopagamento === pagamentosCodigos.pix) {\r\n if (item.fpg_tipointegracao != null && (item.integrapgtook == false || item.integrapgtook == null || item.integrapgtook == undefined) && item.fpg_tipointegracao == 1) {// Vero\r\n let retorno = (await api.get(`IntegraPagto/Buscar/${item.integrapgto.imp_id}`)).data;\r\n if (retorno.imp_statuspgto == statusPagamentoIntegraPagto.Pendente) {\r\n if (modalInstance !== null) {\r\n modalInstance.destroy();\r\n }\r\n modalAguardandoPagamento(dados);\r\n } else if (retorno.imp_statuspgto == statusPagamentoIntegraPagto.Aprovada) {\r\n item.integrapgtook = true;\r\n item.integrapgto = retorno;\r\n item.rcc_nsu = retorno.imp_autorizacao;\r\n } else if (retorno.imp_statuspgto == statusPagamentoIntegraPagto.NaoAutorizada) {\r\n notification.warning({ description: 'Pagamento não Autorizado!', message: 'Aviso!' });\r\n } else if (retorno.imp_statuspgto == statusPagamentoIntegraPagto.Cancelada) {\r\n notification.warning({ description: 'Pagamento Cancelado!', message: 'Aviso!' });\r\n }\r\n }\r\n if (item.fpg_tipointegracao != null && (item.integrapgtook == false) && item.fpg_tipointegracao == 2) {// Payer\r\n let retorno;\r\n try {\r\n retorno = (await apiPayer.get('Client/Response')).data;\r\n\r\n } catch (error) {\r\n notification.warning({ description: 'Verifique se o checkout Payer esteja iniciado, caso contrário inicie o mesmo para continuar !', message: 'AVISO!' });\r\n await pagamentoPayer(item);\r\n break\r\n }\r\n\r\n if (retorno.statusTransaction == \"PENDING\") {\r\n break\r\n } else if (retorno.statusTransaction == \"APPROVED\") {\r\n let ret = (await api.post(`IntegraPagto/IncluirPayer`, retorno)).data;\r\n item.integrapgtook = true;\r\n item.integrapgto = ret;\r\n item.rcc_nsu = ret.authorizerId;\r\n item.imp_id = ret.imp_id;\r\n } else if (retorno.statusTransaction == \"UNAUTHORIZED\") {\r\n notification.warning({ description: 'Pagamento não Autorizado, verifique no Checkout Payer e tente novamente!', message: 'Aviso!' });\r\n return;\r\n //analisaFormaPagamento(docfiscal);\r\n } else if (retorno.statusTransaction == \"ABORTED\") {\r\n notification.warning({ description: 'Pagamento Cancelado!', message: 'Aviso!' });\r\n }\r\n } else if (item.fpg_tipointegracao != null && (item.integrapgtook == null || item.integrapgtook == undefined) && item.fpg_tipointegracao == 2) {\r\n await pagamentoPayer(item);\r\n }\r\n }\r\n }\r\n await verificaTodosPagamentos(dados);\r\n }\r\n\r\n async function verificaTodosPagamentos(dados) {\r\n let finalizarVenda = true;\r\n let listaFaturamento = dados.notaFiscalFaturamento;\r\n listaFaturamento.forEach(item => {\r\n if (item.fpg_tipopagamento === pagamentosCodigos.cartaoCredito || item.fpg_tipopagamento === pagamentosCodigos.cartaoDebito || item.fpg_tipopagamento === pagamentosCodigos.pix) {\r\n if (item.fpg_tipointegracao != null && (item.integrapgtook == false || item.integrapgtook == null || item.integrapgtook == undefined)) {\r\n finalizarVenda = false;\r\n }\r\n }\r\n });\r\n if (finalizarVenda == true) {\r\n concluirVenda(dados);\r\n } else {\r\n modalAguardandoPagamento(dados);\r\n }\r\n }\r\n\r\n function concluirVenda(dados) {\r\n if (!!form.getFieldValue().ntf_id) {\r\n dados.ntf_id = form.getFieldValue().ntf_id;\r\n editarNota(dados);\r\n } else {\r\n dados.ntf_dhsaient = moment(new Date());\r\n incluirNota(dados);\r\n }\r\n }\r\n\r\n function incluirNota(dados) {\r\n carregando(true);\r\n api.post(`NotaFiscal/Incluir`, dados).then(\r\n res => {\r\n notification.success({ message: 'Sucesso', description: `Nota incluída com sucesso!` });\r\n if (HasValue(dados.ser_id)) {\r\n if (dados.ope_gerarespelho === true) {\r\n modalAutorizarSefaz(res.data);\r\n openPdfNewTab(`NotaFiscal/GerarEspelhoDanfeNFe?IdNotaFiscal=${res.data.ntf_id}`)\r\n } else {\r\n if (res.data.ntf_status === 1 && !!res.data.ntf_chavenfe && res.data.ntf_docfiscal == true) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${res.data.ntf_chavenfe}`);\r\n }\r\n }\r\n } else {\r\n imprimirDAVLS(res.data)\r\n }\r\n if (dados.gerarBoleto && !!res.data.ntf_id) {\r\n novaAbaNavegador(`Boleto/ImprimirBoletos/${res.data.ntf_id}`);\r\n }\r\n if (res.status === 200 && !!dados.ped_id) {\r\n tratarPedidoFaturado(dados.ped_id);\r\n }\r\n if (res.status === 200 && !!dados.vnc_id) {\r\n AlterarSituacaoCondicional(dados.vnc_id);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n if (!!erro.response && !!erro.response.data) {\r\n Modal.warning({\r\n content: erro.response.data,\r\n title: 'Aviso',\r\n onOk: () => {\r\n aoSalvar();\r\n }\r\n })\r\n }\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n function imprimirDAVLS(registro) {\r\n Modal.confirm({\r\n title: 'Qual modelo de impressão deseja?',\r\n icon: ,\r\n okText: 'Não Fiscal',\r\n cancelText: 'Modelo A4',\r\n centered: true,\r\n onOk() {\r\n novaAbaNavegador(`NotaFiscal/Imprimir?id=${registro.ntf_id}`);\r\n },\r\n onCancel() {\r\n imprimirRelatorioJasper(20, { idNotaFiscal: registro.ntf_id });\r\n }\r\n });\r\n };\r\n\r\n function editarNota(dados) {\r\n carregando(true);\r\n api.put(`NotaFiscal/Editar`, dados).then(\r\n res => {\r\n notification.success({ message: 'Sucesso', description: `Nota editada com sucesso!` });\r\n if (HasValue(dados.ser_id)) {\r\n if (dados.ope_gerarespelho === true) {\r\n modalAutorizarSefaz(res.data);\r\n openPdfNewTab(`NotaFiscal/GerarEspelhoDanfeNFe?IdNotaFiscal=${res.data.ntf_id}`)\r\n } else {\r\n if (res.data.ntf_status === 1 && !!res.data.ntf_chavenfe && res.data.ntf_docfiscal == true) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${res.data.ntf_chavenfe}`);\r\n }\r\n }\r\n } else {\r\n imprimirDAVLS(res.data)\r\n }\r\n if (dados.gerarBoleto && !!res.data.ntf_id) {\r\n novaAbaNavegador(`Boleto/ImprimirBoletos/${res.data.ntf_id}`);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n if (!!erro.response && !!erro.response.data && !!erro.response.data.Message) {\r\n Modal.warning({\r\n content: erro.response.data.Message,\r\n title: 'Aviso',\r\n onOk: () => {\r\n aoSalvar();\r\n }\r\n })\r\n }\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n\r\n async function tratarPedidoFaturado(id) {\r\n api.put(`Pedido/TratarHistoricoPedidoFaturado/${id}`).then(\r\n ok => {\r\n console.log(ok);\r\n }).catch(\r\n error => {\r\n console.log(error)\r\n }).finally(() => {\r\n aoSalvar();\r\n });\r\n }\r\n\r\n async function AlterarSituacaoCondicional(id) {\r\n api.put(`VendaCondicional/AlterarSituacaoCondicional?IdCondicional=${id}&SituacaoCondicional=2`).then(\r\n ok => {\r\n console.log(ok);\r\n }).catch(\r\n error => {\r\n console.log(error)\r\n }).finally(() => {\r\n aoSalvar();\r\n });\r\n }\r\n\r\n async function popularDados() {\r\n let valores = form.getFieldsValue();\r\n let dados = form.getFieldValue();\r\n valores.ntf_docfiscal = !!dados.ser_id;\r\n valores.notafiscalitens = popularDadosItens(dados);\r\n valores.notaFiscalFaturamento = preencherDadosFaturamento(dados);\r\n valores.notaFiscalDestinatario = await preencherDadosDestinatario(dados);\r\n valores.notaFiscalTransportadora = preencherDadosTransportadores(dados);\r\n valores.tipooperacao = operacaoFiscal;\r\n valores.ope_gerarespelho = operacaoFiscal.ope_gerarespelho;\r\n valores.serieFiscal = preencherDadosSerieFiscal(dados);\r\n return valores;\r\n };\r\n\r\n function popularDadosItens(dados) {\r\n let valorFrete = dados.valorFrete;\r\n let valorSeguro = dados.valorSeguro;\r\n let qtdTotalItens = 0;\r\n let freteUn = 0;\r\n let seguroUn = 0;\r\n dadosItens.forEach((itens) => {\r\n qtdTotalItens += itens.nfi_qtde;\r\n itens.nfi_numeropedidocompra = !!itens.nfi_numeropedidocompra ? itens.nfi_numeropedidocompra.toString() : '';\r\n //itens.nfi_cfop = itens.nfi_cfop.toString();\r\n });\r\n freteUn = valorFrete / qtdTotalItens;\r\n seguroUn = valorSeguro / qtdTotalItens;\r\n dadosItens.forEach((itens) => {\r\n itens.nfi_valorfrete = freteUn * dados.nfi_qtde;\r\n itens.nfi_valorseguro = seguroUn * dados.nfi_qtde;\r\n });\r\n return dadosItens;\r\n };\r\n\r\n function preencherDadosFaturamento() {\r\n let dadosForma = [];\r\n let recebimentoCartao = !!manutencao.dados.recebimentoCartao ? manutencao.dados.recebimentoCartao[0] : null;\r\n listaFormaPagamento.forEach(forma => {\r\n let aux = { ...forma };\r\n aux.fpg_id = forma.fpg_id;\r\n aux.cpg_id = forma.cpg_id;\r\n if (forma.fpg_tipopagamento === pagamentosCodigos.cheque && !!manutencao.dados.dadosModalCheque) {\r\n aux.ctc_id = manutencao.dados.dadosModalCheque.contaCorrente;\r\n aux.cheques = manutencao.dados.dadosModalCheque.cheques;\r\n }\r\n aux.nfp_valor = parseFloat(forma.pfp_valor);\r\n aux.bce_id = !!recebimentoCartao ? recebimentoCartao.bce_id : null;\r\n aux.rcc_nsu = !!recebimentoCartao ? recebimentoCartao.rcc_nsu : null;\r\n if (forma.fpg_tipopagamento === pagamentosCodigos.antecipacao) {\r\n aux.antecipacoes = forma.formaPagamento.antecipacoes;\r\n } else {\r\n aux.antecipacoes = [];\r\n }\r\n //aux.cheques = [{chq_valor: 0, pes_id: null, chq_dataemissao: null}];\r\n dadosForma.push(aux);\r\n });\r\n return dadosForma;\r\n };\r\n\r\n async function preencherDadosDestinatario(form) {\r\n let dadosDestinatario = {};\r\n let subjacente = listaSubjacente?.filter(sub => sub.pop_id === form.ntf_subjacente)[0];\r\n let cliente = (await api.get(`Cliente/BuscarByIdPessoa/${form.pes_id}`)).data;\r\n let enderecoDest = dadosEndereco?.filter(pe => pe.pee_id === form.ntf_endereco)[0];\r\n let telefoneDest = cliente.telefones?.filter(pt => pt.psc_id === form.telefoneDestinatario)[0];\r\n let emailDest = cliente.emails?.filter(pem => pem.pem_id === form.ntf_emaildestinatario)[0];\r\n dadosDestinatario.pes_id = form.pes_id;\r\n dadosDestinatario.pes_fisicajuridica = cliente.pes_fisicajuridica;\r\n dadosDestinatario.ntf_nomedest = subjacente?.pop_nome ?? cliente.pes_nome;\r\n dadosDestinatario.ntf_cnpjcpfdest = (!!cliente.pej_cnpj ? cliente.pej_cnpj : cliente.pef_cpf);\r\n dadosDestinatario.ntf_iedest = form.pej_inscricaoestadual;\r\n dadosDestinatario.ntf_idestrangeirodest = cliente.pes_idestrangeiro;\r\n dadosDestinatario.ntf_logradourodest = enderecoDest?.log_logradouro;\r\n dadosDestinatario.ntf_numeroenderecodest = enderecoDest?.pee_numero;\r\n dadosDestinatario.ntf_complementodest = enderecoDest?.complemento;\r\n dadosDestinatario.ntf_bairrodest = enderecoDest?.bai_nome;\r\n dadosDestinatario.ntf_cepdest = enderecoDest?.cep_cep;\r\n dadosDestinatario.ntf_ufdest = enderecoDest?.est_sigla;\r\n dadosDestinatario.ntf_telefonedest = telefoneDest?.psc_numero ?? '';\r\n dadosDestinatario.ntf_emaildest = emailDest?.pem_email ?? null;\r\n return dadosDestinatario;\r\n };\r\n\r\n function preencherDadosTransportadores(form) {\r\n let dadosTransportador = {};\r\n let veiculoTransp = listaVeiculos.filter((veiculo) => (veiculo.trv_id = form.trv_id))[0];\r\n dadosTransportador.ntf_modalidadefrete = form.ntf_modalidadefrete;\r\n dadosTransportador.trn_id = !!dadosTransp && !!dadosTransp.trn_id ? dadosTransp.trn_id : null;\r\n dadosTransportador.trv_id = !!veiculoTransp ? veiculoTransp.trv_id : null;\r\n dadosTransportador.trv_observacao = !!veiculoTransp ? veiculoTransp.trv_observacao : null;\r\n dadosTransportador.trv_placa = !!veiculoTransp ? veiculoTransp.trv_placa : null;\r\n dadosTransportador.trv_uf = !!veiculoTransp ? veiculoTransp.trv_uf : null;\r\n dadosTransportador.trv_marca = !!veiculoTransp ? veiculoTransp.trv_marca : null;\r\n dadosTransportador.trv_modelo = !!veiculoTransp ? veiculoTransp.trv_modelo : null;\r\n dadosTransportador.trv_rntc = !!veiculoTransp ? veiculoTransp.trv_rntc : null;\r\n dadosTransportador.nvl_pesoliquido = form.nvl_pesoliquido;\r\n dadosTransportador.nvl_qtdevolumes = form.nvl_qtdevolumes;\r\n dadosTransportador.nvl_pesobruto = form.nvl_pesobruto;\r\n dadosTransportador.nvl_especievolume = form.nvl_especievolume;\r\n dadosTransportador.nvl_marcavolume = form.nvl_marcavolume;\r\n return dadosTransportador;\r\n };\r\n function preencherDadosSerieFiscal(dados) {\r\n let dadosSerieFiscal = serie.filter((item) => (item.ser_id === dados.ser_id))[0];\r\n return dadosSerieFiscal;\r\n }\r\n function alterarVendedor() {\r\n let dadosVen = vendedores.filter((ven) => (ven.ven_id === parseInt(form.getFieldValue().ven_id)))[0];\r\n setDadosVendedor(dadosVen);\r\n };\r\n function onSuccessAliquotaSimplesNacional() {\r\n setAbreModalSimplesNac(false);\r\n };\r\n\r\n function buscarCep(cep) {\r\n if (HasValue(cep)) {\r\n fetch(`https://viacep.com.br/ws/${cep.replace(`-`, ``)}/json/`)\r\n .then(\r\n res => res.json()\r\n ).then(\r\n result => {\r\n form.setFieldsValue({ cidade: `${result.localidade} / ${result.uf}` });\r\n },\r\n erro => {\r\n notification.warning({ message: 'Aviso', description: 'Cep não encontrado!' })\r\n }\r\n );\r\n }\r\n };\r\n\r\n function oncloseModalEndereco() {\r\n setOpenModalEndereco(false)\r\n };\r\n\r\n useEffect(() => {\r\n if (!!codigoCliente) {\r\n api.get(`Cliente/ListarClientesAtivos?filtro=&ordem=%2Bpes_nome`).then(listaCliente => {\r\n setClientes(listaCliente.data);\r\n }).finally(() => {\r\n form.setFieldsValue({ pes_id: codigoCliente });\r\n let lista = [];\r\n lista.push({ name: \"pes_id\", campo: \"Filtro\", value: codigoCliente });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n });\r\n }\r\n }, [codigoCliente]);\r\n\r\n useEffect(() => {\r\n if (!!codigoCliente) {\r\n buscarDadosCliente(codigoCliente);\r\n }\r\n }, [clientes]);\r\n\r\n async function popularOperacaoFiscal(id) {\r\n if (!!id) {\r\n api.get(`OperacaoFiscal/Buscar/${id}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setOperacaoFiscal(res.data);\r\n form.setFieldsValue({ ntf_indicadorpresenca: res.data.ope_indicadorpresenca });\r\n }\r\n }\r\n ).catch(\r\n error => { console.log(error); }\r\n )\r\n }\r\n };\r\n function verificarConsumidorFinal(ie) {\r\n if (ie != null && ie != undefined)\r\n form.setFieldsValue({ 'ntf_consumidorfinal': 1 });\r\n else\r\n form.setFieldsValue({ 'ntf_consumidorfinal': null });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {!!editando &&
\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n popularOperacaoFiscal(idOperacao)} conteudo={\r\n op => ({op.ope_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {editando && \r\n \r\n \r\n \r\n }\r\n {!editando && pessoaFisica !== 1 && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {\r\n proximaPag.setProximaPag(e);\r\n }} current={pages.tagPages}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.tagPages === 0 &&\r\n
\r\n \r\n
\r\n \r\n setOpenDrawerCliente(true)}\r\n nameValue=\"pes_id\" allowClear={true} onChangeFunction={(dados) => {\r\n buscarDadosCliente(dados)\r\n }} conteudo={\r\n pc => ({pc.cli_codigo} - {pc.pes_nome}
\r\n {(!!pc.pej_cnpj ? `CNPJ.: ${MaskFormat(pc.pej_cnpj, '', true)}` : !!pc.pef_cpf ? `CPF.: ${MaskFormat(pc.pef_cpf, '', true)}` : '')}\r\n
)\r\n } />\r\n
\r\n \r\n \r\n \r\n {pessoaFisica === 1 &&\r\n \r\n }\r\n {pessoaFisica === 2 &&\r\n \r\n }\r\n {pessoaFisica === 3 &&\r\n \r\n }\r\n \r\n \r\n \r\n { verificarConsumidorFinal(event.currentTarget.value) }}>\r\n \r\n \r\n \r\n { adicionarTelefone() }}\r\n campoDescricao={'psc_numero'}\r\n campoValue={'psc_id'}\r\n campokey={'psc_id'}\r\n placeHolder={'Selecione o Telefone'}\r\n labelFormItem={'Telefone'}\r\n nameFormItem={'telefoneDestinatario'} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Endereço\" Endereço\r\n \r\n \r\n \r\n \r\n \r\n {\r\n listaSubjacente.length > 0 &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({pse.pse_nome})\r\n } />\r\n \r\n \r\n \r\n { buscarCep(event.currentTarget.value) }} />\r\n \r\n \r\n \r\n \r\n Não sei o CEP\r\n \r\n \r\n \r\n \r\n {\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {pages.tagPages === 1 &&\r\n (end.pee_id === form.getFieldValue().ntf_endereco))[0]}\r\n dadosOperacao={operacaoFiscal}\r\n dadosContribuinte={dadosContribuinte}\r\n dadosVendedor={dadosVendedor}\r\n carregarPagina={setCarregarPagina} />\r\n }\r\n {pages.tagPages === 2 &&\r\n \r\n }\r\n {pages.tagPages === 3 &&\r\n \r\n }\r\n {pages.tagPages === 4 &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n { onCloseModalTelefone() }} />\r\n \r\n \r\n \r\n \r\n );\r\n}","import axios from 'axios';\r\n\r\nconst apiPayer = axios.create({\r\n baseURL: 'http://localhost:6060/',\r\n});\r\n\r\napiPayer.interceptors.request.use(async config => {\r\n return config;\r\n});\r\n\r\napiPayer.interceptors.response.use(function (response) {\r\n return response;\r\n }, function (error) {\r\n if (error.response) { \r\n console.log(error)\r\n }\r\n return Promise.reject(error);\r\n });\r\n\r\nexport default apiPayer;","export default __webpack_public_path__ + \"static/media/i-car.ab57d7de.png\";","export default __webpack_public_path__ + \"static/media/i-info.62c0263c.png\";","export default __webpack_public_path__ + \"static/media/i-boleto.3ebe0f30.png\";","import { Button, Col, Divider, Form, Input, Row, Select, Table, Typography, Modal, notification } from 'antd';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { DeleteOutlined, EditOutlined, ExclamationCircleOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport { ModalManutencaoPecasCat } from '../../components/modals';\r\nimport { SelectPaginacao } from '../../components';\r\n\r\n\r\nexport default function GrupoCatalogo({ formulario, formCatalog, listaGrupos, editandoGrp, sequenciaGrp, openDrawer, aoSalvarGrupos }) {\r\n const [listaPecas, setListaPecas] = useState([]);\r\n const [exibirModalPecas, setExibirModalPecas] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [sequencial, setSequencial] = useState(0);\r\n const [subgrupoSelect, setSubgrupoSelect] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!editandoGrp) {\r\n let listaTempGrp = listaGrupos.listaGrupos.find(x => x.Sequencia == sequenciaGrp);\r\n\r\n formulario.setFieldsValue({\r\n codCatalogo: formCatalog.getFieldValue().Codigo,\r\n sequenciaGrp: listaTempGrp.Sequencia,\r\n codigoGrp: listaTempGrp.Codigo,\r\n descricaoGrp: listaTempGrp.Descricao,\r\n codSubGrupo: listaTempGrp.SubGrupo.Codigo,\r\n });\r\n\r\n if (listaTempGrp.Pecas) {\r\n setListaPecas(listaTempGrp.Pecas);\r\n }\r\n\r\n }\r\n\r\n if (!!openDrawer && !editandoGrp) {\r\n formulario.setFieldsValue({ codCatalogo: formCatalog.getFieldValue().Codigo });\r\n formulario.setFieldsValue({ sequenciaGrp: listaGrupos.listaGrupos?.length + 1 });\r\n }\r\n }, [editandoGrp, openDrawer]);\r\n\r\n const editarPecas = (sequencia) => {\r\n setSequencial(sequencia);\r\n setEditando(true);\r\n setExibirModalPecas(true);\r\n }\r\n\r\n const aoSalvar = () => {\r\n setExibirModalPecas(false);\r\n setEditando(false);\r\n }\r\n //VERIFICAR LOGICA EXCLUIR COM SEQUENCIAL\r\n const modalExcluir = (record) => {\r\n const index = listaPecas.findIndex(item => item.Sequencia === record.Sequencia);\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: 'Deseja realmente excluir a peça?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n removerPecas(index);\r\n }\r\n });\r\n }\r\n\r\n const removerPecas = (index) => {\r\n const novaListaPecas = [...listaPecas];\r\n novaListaPecas.splice(index, 1);\r\n\r\n novaListaPecas.forEach((item, index) => {\r\n item.Sequencia = index + 1;\r\n });\r\n\r\n setListaPecas(novaListaPecas);\r\n\r\n }\r\n\r\n function salvar() {\r\n let dados = {};\r\n let subGrupo = subgrupoSelect.find(x => x.key == formulario.getFieldValue().codSubGrupo);\r\n dados.Codigo = formulario.getFieldValue().codigoGrp;\r\n dados.Descricao = formulario.getFieldValue().descricaoGrp;\r\n dados.Sequencia = formulario.getFieldValue().sequenciaGrp;\r\n dados.CaminhoImg = 'null';\r\n dados.SubGrupo = {\r\n Codigo: subGrupo.codSubGrupo,\r\n Descricao: subGrupo.descricao\r\n }\r\n dados.Pecas = [];\r\n dados.Pecas = listaPecas.map(item => {\r\n return { ...item };\r\n });\r\n let lista = [...listaGrupos.listaGrupos];\r\n\r\n if (editandoGrp) {\r\n const index = lista.findIndex(item => item.Sequencia === sequenciaGrp);\r\n if (index !== -1) {\r\n lista[index] = dados;\r\n listaGrupos.setListaGrupos(lista);\r\n }\r\n } else {\r\n lista.push(dados);\r\n listaGrupos.setListaGrupos(lista);\r\n }\r\n\r\n aoSalvarGrupos();\r\n setListaPecas([]);\r\n formulario.resetFields();\r\n }\r\n\r\n const validarCodGrupo = (rules, value, callback) => {\r\n if (value && listaGrupos.listaGrupos.some(grupo => grupo.Codigo === value && grupo.Sequencia !== sequenciaGrp)) {\r\n notification.warning({ description: 'Este código de grupo já existe!', message: 'Aviso!' });\r\n } else if (value && value.length > 9) {\r\n notification.warning({ description: 'Código do grupo deve ser menor que 9 digitos!', message: 'Aviso!' });\r\n formulario.setFieldsValue({ \"codigoGrp\": value.substring(0, 9) });\r\n } else {\r\n callback();\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n {est.codSubGrupo} - {est.descricao})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Peças\r\n \r\n Adicione a(s) peça(s) do Catálogo aqui. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n {NumeroItem}\r\n )\r\n },\r\n {\r\n title: \"Cód. Peça\",\r\n align: \"center\",\r\n render: ({ CodPeca }) => (\r\n {CodPeca}\r\n )\r\n }, {\r\n title: \"Descrição\",\r\n align: \"center\",\r\n render: ({ descpeca }) => (\r\n {descpeca}\r\n ),\r\n }, {\r\n title: \"Sequencia\",\r\n align: \"center\",\r\n render: ({ Sequencia }) => (\r\n {Sequencia}\r\n ),\r\n }, {\r\n title: \"Quantidade\",\r\n align: \"center\",\r\n render: ({ Quantidade }) => (\r\n {Quantidade}\r\n ),\r\n }, {\r\n title: \"Observação\",\r\n align: \"center\",\r\n render: ({ Observacoes }) => (\r\n {Observacoes}\r\n ),\r\n }, {\r\n title: 'Ações',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 95,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Form, Input } from 'antd';\r\nimport { MaskedInput } from 'antd-mask-input';\r\n\r\nexport default function InputCpfCnpj(props) {\r\n\r\n const mask = !!props.mask ? props.mask : (props.cpf ? '000.000.000-00' : '00.000.000/0000-00');\r\n\r\n class NovoValor extends React.Component {\r\n\r\n onChange = (e, a) => {\r\n const { value } = e.target;\r\n let data = value;\r\n\r\n this.props.onChange(data.replace(/\\D/g, \"\"));\r\n };\r\n\r\n onBlur = (e) => {\r\n if (!!props.onBlur) {\r\n props.onBlur(e);\r\n }\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!!props.onKeyUp) {\r\n props.onKeyUp(e);\r\n }\r\n }\r\n\r\n onPressEnter = (e) => {\r\n if (!!props.onPressEnter) {\r\n props.onPressEnter(e);\r\n }\r\n };\r\n\r\n onFocus = (e) => {\r\n if (!!props.onFocus) {\r\n props.onFocus(e);\r\n }\r\n };\r\n\r\n onKeyPress = (e) => {\r\n if (!!props.onKeyPress) {\r\n props.onKeyPress(e);\r\n }\r\n };\r\n\r\n render() {\r\n const { value } = this.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n class InputCpfCnpj extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { value: '' };\r\n }\r\n\r\n onChange = value => {\r\n this.setState({ value });\r\n if (!!props.onChange) {\r\n props.onChange();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n };\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useEffect, useRef, useState } from \"react\";\r\nimport moment from 'moment';\r\nimport { Row, Col, Form, Select, Button, Switch, Table, Tag, notification, Modal, Input } from \"antd\";\r\nimport { UndoOutlined, EditOutlined, DeleteOutlined, CheckCircleOutlined } from \"@ant-design/icons\";\r\nimport { FormGW, Editar, Excluir, Data } from \"../../components\";\r\nimport api from \"../../services/api\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { ModalDevolucaoCondicional } from \"../../components/modals\";\r\nimport DrawerNFExtra from \"./drawerNFExtra\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function DevolucaoCondicional({ formulario, aoSalvar, dadosItens, exibirDrawerDevolucao, setCarregando, setExibirDrawerNota }) {\r\n\r\n const [formItemCondicional, setFormItemCondicional] = useState([]);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openModal, setOpenModal] = useState(false);\r\n const [riscarCampos, setRiscarCampos] = useState(false);\r\n const [checkedSwitch, setCheckedSwitch] = useState(false);\r\n const [dadosDevolucao, setDadosDevolucao] = useState({});\r\n const [quantidadeTot, setQuantidadeTot] = useState(0);\r\n const [valorTot, setValorTot] = useState(0.00);\r\n const codBarras = useRef();\r\n\r\n useEffect(() => {\r\n let dadosTemp = dadosItens.dadosItens;\r\n if (checkedSwitch) {\r\n setRiscarCampos(true);\r\n dadosTemp.forEach((item) => {\r\n item.vci_devolvido = item.vci_quantidade;\r\n item.devolvidoTotal = true;\r\n })\r\n }\r\n else {\r\n setRiscarCampos(false);\r\n dadosTemp.forEach(\r\n (item) => {\r\n item.vci_devolvido = 0;\r\n item.devolvidoTotal = false;\r\n }\r\n )\r\n }\r\n dadosItens.setDadosItens(dadosTemp);\r\n }, [checkedSwitch])\r\n\r\n useEffect(() => {\r\n if (!!!dadosItens.dadosItens || dadosItens.dadosItens.length === 0) {\r\n carregarDados();\r\n }\r\n }, [dadosDevolucao]);\r\n\r\n useEffect(() => {\r\n let dadosTemp = dadosItens.dadosItens;\r\n dadosTemp.forEach((item) => {\r\n if (item.vci_devolvido === item.vci_quantidade) {\r\n item.devolvidoTotal = true;\r\n }\r\n })\r\n }, [dadosItens.dadosItens])\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n if (!!manutencao.dados.length && manutencao.dados.length > 0) {\r\n let key = 0;\r\n manutencao.dados.forEach((item) => {\r\n item.key = key++;\r\n })\r\n dadosItens.setDadosItens(manutencao.dados);\r\n } else {\r\n setDadosDevolucao(manutencao.dados);\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function recalcularTotais(dados) {\r\n let qtd = 0;\r\n let valor = 0;\r\n dados.forEach((dado) => {\r\n qtd += (dado.vci_quantidade - dado.vci_devolvido);\r\n valor += dado.vci_valorun * (dado.vci_quantidade - dado.vci_devolvido);\r\n });\r\n setValorTot(valor);\r\n setQuantidadeTot(qtd);\r\n };\r\n\r\n useEffect(() => {\r\n recalcularTotais(dadosItens.dadosItens);\r\n }, [dadosItens.dadosItens]);\r\n\r\n function desfazerDevolucao(record) {\r\n let dadosTemp = dadosItens.dadosItens;\r\n dadosTemp.filter((item) => { return item.vci_id === record.vci_id })[0].vci_devolvido = 0;\r\n dadosTemp.filter((item) => { return item.vci_id === record.vci_id })[0].devolvidoTotal = false;\r\n dadosItens.setDadosItens(dadosTemp);\r\n recalcularTotais(dadosTemp);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosTemp } });\r\n };\r\n\r\n const salvar = (record) => {\r\n let dadosCondicional = {\r\n vnc_id: record.vnc_id,\r\n vendacondicionalitens: dadosItens.dadosItens\r\n }\r\n\r\n let dadosNota = {\r\n vnc_id: record.vnc_id,\r\n pes_id: record.pes_id,\r\n itensNf: dadosItens.dadosItens.filter(item => (item.vci_devolvido !== item.vci_quantidade))\r\n };\r\n setCarregando(true)\r\n api.put(`VendaCondicional/Devolver`, dadosCondicional).then(\r\n (res) => {\r\n if (dadosNota.itensNf.lenght > 0) {\r\n notification.success({ message: 'Operação concluída', description: \"Condicional modificado com sucesso!\" });\r\n dadosNota.vnc_id = res.data.vnc_id;\r\n } else {\r\n notification.success({ message: 'Operação concluída', description: \"Itens da condicional devolvidos com sucesso!\" });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.warning({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n if (!!dadosNota && dadosNota.itensNf.length > 0) {\r\n dadosNota.pes_id = dadosNota.pes_id;\r\n dadosNota.itensNf.forEach((itens) => {\r\n itens.nfi_qtde = itens.vci_quantidade - itens.vci_devolvido;\r\n itens.nfi_valorunitario = itens.vci_valorun;\r\n itens.percdes = 0;\r\n itens.nfi_valordesconto = 0;\r\n itens.percacresc = 0;\r\n itens.nfi_valoroutros = 0;\r\n itens.nfi_ean = !!itens.prg_ean ? itens.prg_ean : itens.pro_ean;\r\n itens.total = itens.vci_valorun * itens.nfi_qtde;\r\n });\r\n Modal.confirm({\r\n title: 'Sucesso',\r\n icon: ,\r\n content: 'Condicional modificado com sucesso!',\r\n okText: 'Emitir NFE',\r\n cancelText: 'Ok',\r\n okType: 'success',\r\n centered: true,\r\n onOk() {\r\n setExibirDrawerNota(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosNota } });\r\n exibirDrawerDevolucao.setExibirDrawerDevolucao(false);\r\n },\r\n onCancel() {\r\n aoSalvar();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n exibirDrawerDevolucao.setExibirDrawerDevolucao(false);\r\n }\r\n });\r\n } else {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n exibirDrawerDevolucao.setExibirDrawerDevolucao(false);\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vnc_datalancamento' } });\r\n setCarregando(false);\r\n\r\n }\r\n );\r\n }\r\n\r\n function excluirItens(record) {\r\n let listaTemp = [...dadosItens.dadosItens];\r\n let itemTemp = listaTemp.filter((item) => (item.key === record.key))[0];\r\n itemTemp.devolvidoTotal = true;\r\n itemTemp.vci_devolvido = itemTemp.vci_quantidade;\r\n dadosItens.setDadosItens(listaTemp);\r\n }\r\n\r\n function carregarDados() {\r\n if (!!dadosDevolucao.vnc_id) {\r\n api.get(`VendaCondicionalItem/Listar?IdVendaCondicional=${dadosDevolucao.vnc_id}`).then(\r\n (res) => {\r\n let key = 0;\r\n res.data.forEach((item) => {\r\n item.key = key++;\r\n if (item.vci_devolvido == item.vci_quantidade)\r\n item.devolvidoTotal = true;\r\n })\r\n dadosItens.setDadosItens(res.data);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n function editarQuantidadeDev(record) {\r\n setFormItemCondicional(record);\r\n };\r\n\r\n async function onPressEnterProCodigo(campo) {\r\n let codigoEan = campo.target.value.trim();\r\n let listaTemp = [...dadosItens.dadosItens];\r\n let itemEncontrado = false;\r\n let todosItensDevolvidos = true;\r\n for (let i = 0; i < listaTemp.length; i++) {\r\n if (listaTemp[i].pro_ean === codigoEan || listaTemp[i].prg_ean === codigoEan) {\r\n itemEncontrado = true;\r\n if (listaTemp[i].vci_quantidade - listaTemp[i].vci_devolvido > 0) {\r\n todosItensDevolvidos = false;\r\n listaTemp[i].vci_devolvido++;\r\n if (listaTemp[i].vci_quantidade - listaTemp[i].vci_devolvido === 0) {\r\n listaTemp[i].devolvidoTotal = true;\r\n }\r\n dadosItens.setDadosItens(listaTemp);\r\n break;\r\n }\r\n }\r\n };\r\n if (itemEncontrado == false) {\r\n return (\r\n notification.warning({\r\n message: \"Aviso\",\r\n description: \"Item não encontrado!\",\r\n })\r\n )\r\n }\r\n if (todosItensDevolvidos == true) {\r\n return (\r\n notification.warning({\r\n message: \"Aviso\",\r\n description: \"Quantidade totalmente devolvida para este produto!\",\r\n })\r\n )\r\n }\r\n formulario.setFieldsValue({ pro_codigo: null });\r\n\r\n setarFocoProduto();\r\n };\r\n\r\n function setarFocoProduto() {\r\n setTimeout(() => {\r\n if (codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n }, 300);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setCheckedSwitch(!checkedSwitch)} /> Devolver Todos os Itens?\r\n \r\n \r\n \r\n \r\n {\r\n onPressEnterProCodigo(value)\r\n }} placeholder=\"Informe o Produto/Mercadoria\" />\r\n \r\n \r\n \r\n
\r\n
(\r\n \r\n {(!!riscarCampos || devolvidoTotal ? ( #{pro_codigo} ) : (#{pro_codigo}))}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Itens',\r\n width: '35%',\r\n render: ({ pro_descricao, pro_ean, prg_ean, descricaograde, devolvidoTotal }) => (\r\n
\r\n \r\n
\r\n {(!!riscarCampos || devolvidoTotal ? ( {pro_descricao} ) : (pro_descricao))}\r\n \r\n \r\n \r\n \r\n {(!!riscarCampos || devolvidoTotal ? ( EAN: {pro_ean || prg_ean} ) : (EAN: {pro_ean || prg_ean}))}\r\n \r\n \r\n {(!!descricaograde ? (!!riscarCampos || devolvidoTotal ? ( Grade: {descricaograde} ) : (Grade: {descricaograde})) : '')}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Nº',\r\n width: '2%',\r\n render: ({ vci_sequencia }) => (\r\n
\r\n {vci_sequencia}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: '8%',\r\n render: ({ vci_quantidade, devolvidoTotal, vci_devolvido }) => (\r\n
\r\n {(!!riscarCampos || devolvidoTotal ? (Ficou com: {vci_quantidade - vci_devolvido}) : (Ficou com: {vci_quantidade - vci_devolvido} ))}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: '12%',\r\n editable: true,\r\n render: ({ devolvidoTotal, vci_devolvido }, record) => (\r\n
\r\n \r\n
\r\n {(!!riscarCampos || devolvidoTotal ? ( Devolveu: {vci_devolvido} ) : (vci_devolvido > 0) ? Devolveu: {vci_devolvido} : )}\r\n \r\n \r\n {(!!riscarCampos || devolvidoTotal ? ((Todos)) : )}\r\n \r\n \r\n {(!!riscarCampos || vci_devolvido > 0 ? \r\n {\r\n editarQuantidadeDev(record);\r\n }} icon={} />\r\n */}\r\n \r\n excluirItens(record)} icon={} />\r\n \r\n \r\n \r\n },\r\n },\r\n ]} dataSource={dadosItens.dadosItens} />\r\n \r\n \r\n setOpenModal(false)} dados={formItemCondicional} dadosItens={dadosItens.dadosItens} formularioDados={formulario} />\r\n \r\n \r\n \r\n Quantidade Total de Itens: {quantidadeTot}\r\n \r\n \r\n Valor Total dos Itens (R$): {FormatNumber(valorTot, true)}\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\nimport { Row, Col, Button, Drawer, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport DevolucaoCondicional from './devolucao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\nimport { useStateValue } from '../../state';\r\nimport api from '../../services/api';\r\n\r\n\r\nexport default function DrawerDevolucao({ exibirDrawerDevolucao, dataPesquisa,setExibirDrawerNota }) {\r\n\r\n const [formManutencao] = Form.useForm()\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [dadosItens, setDadosItens] = useState([]);\r\n\r\n if (!!manutencao.dados) {\r\n manutencao.dados.vnc_datalancamento = moment(manutencao.dados.vnc_datalancamento);\r\n manutencao.dados.vnc_prazoretorno = moment(manutencao.dados.vnc_prazoretorno);\r\n formManutencao.setFieldsValue(manutencao.dados);\r\n dadosItens.sort((a, b) => b.vci_sequencia - a.vci_sequencia);\r\n } else {\r\n // formManutencao.resetFields();\r\n formManutencao.setFieldsValue({ icm_ativo: true });\r\n }\r\n\r\n function fecharDrawer() {\r\n formManutencao.resetFields();\r\n setDadosItens([]);\r\n exibirDrawerDevolucao.setExibirDrawerDevolucao(false);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vnc_datalancamento' } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer()\r\n }\r\n });\r\n };\r\n\r\n return (\r\n\r\n { fecharDrawer() }}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n\r\n \r\n\r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Select } from 'antd';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { selectPaginadoActions } from '../../actions';\r\n\r\nexport default function SelectPaginado({\r\n url, name, hidden = false, form, allowClear = true, order = \"\", placeholder = \"Selecione um registro\", onChangeFunction, onBlurFunction, onClearFunction, conteudo, campoFiltro = \"filtro\", multiple = false, setarPrimeiroReg = false, disabled = false\r\n}) {\r\n const [{ manutencao, selectPaginado }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [lista, setLista] = useState([]);\r\n const [filtro, setFiltro] = useState('');\r\n const [pagina, setPagina] = useState(1);\r\n const [registrosPorPagina, setRegistrosPorPagina] = useState(50);\r\n const [alterouPag, setAlterouPag] = useState(false);\r\n const [campoDescricao, setCampoDescricao] = useState(null);\r\n const [valor, setValor] = useState(null);\r\n const [primeiroReg, setPrimeiroReg] = useState(setarPrimeiroReg);\r\n\r\n useEffect(() => {\r\n if (pagina === 1) {\r\n carregarDados();\r\n } else {\r\n setPagina(1);\r\n setAlterouPag(true);\r\n }\r\n }, [filtro]);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, [pagina]);\r\n\r\n useEffect(() => {\r\n if (!!lista && selectPaginado?.length > 0) {\r\n let lista = [...selectPaginado];\r\n let item = selectPaginado.find(s => { return s.name === name });\r\n if (!!item && !!item.value) {\r\n if (!!item.campo) {\r\n setCampoDescricao(item.campo);\r\n }\r\n setPagina(1);\r\n setFiltro(item.value);\r\n let idx = lista.indexOf(item);\r\n lista.splice(idx, 1);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } })\r\n }\r\n }\r\n }, [selectPaginado]);\r\n\r\n useEffect(() => {\r\n setValor(form.getFieldValue([name]));\r\n }, [form.getFieldValue([name])]);\r\n\r\n async function carregarDados() {\r\n let parametrosUrl = \"\";\r\n !!filtro ? parametrosUrl = `&${!!campoDescricao ? campoDescricao : campoFiltro}=${filtro}` : parametrosUrl = \"\";\r\n if (!!campoDescricao) {\r\n setCampoDescricao(null);\r\n }\r\n\r\n if (!!order) {\r\n parametrosUrl += `&order=${order}`;\r\n }\r\n parametrosUrl += `&PageNumber=${pagina}&PageSize=${registrosPorPagina}`;\r\n if (url.search(/[?]/g) === -1) {\r\n parametrosUrl = parametrosUrl.replace('&', '?');\r\n }\r\n setCarregando(true);\r\n let res = await api.get(`${url}${parametrosUrl}`);\r\n setCarregando(false);\r\n if (res.status == 200) {\r\n let indice = 0;\r\n let dados = [];\r\n\r\n if (filtro !== '' || alterouPag) {\r\n if (pagina > 1) {\r\n indice = lista.length;\r\n let l = [...lista];\r\n l.forEach(i => {\r\n dados.push(i);\r\n });\r\n res.data?.items?.map((item, idx) => {\r\n item.key = indice;\r\n dados.push(item);\r\n indice++;\r\n });\r\n setLista(dados);\r\n } else {\r\n res.data?.items?.map((item, idx) => {\r\n item.key = indice;\r\n dados.push(item);\r\n indice++;\r\n });\r\n setLista(dados);\r\n }\r\n setAlterouPag(false);\r\n } else {\r\n setPagina(1);\r\n res.data?.items?.map((item, idx) => {\r\n item.key = indice;\r\n dados.push(item);\r\n indice++;\r\n });\r\n setLista(dados);\r\n }\r\n if (primeiroReg && !!filtro && !!selectPaginado && !!selectPaginado.find(s => { return s.name === name })) {\r\n onChange(!!dados[0]?.id ? dados[0].id : null);\r\n }\r\n }\r\n };\r\n\r\n function onPopUpScroll(e) {\r\n const { target } = e;\r\n if (parseFloat(Math.round(target.scrollTop + target.offsetHeight).toFixed(2)) === target.scrollHeight || parseFloat(Math.round(target.scrollTop + target.offsetHeight).toFixed(2)) === target.scrollHeight - 1) {\r\n setPagina(pagina + 1);\r\n setAlterouPag(true);\r\n }\r\n };\r\n\r\n function onChange(valor) {\r\n if (!form) {\r\n console.log(\"Form não definido para o componente de select!\");\r\n } else {\r\n if (!valor) {\r\n setFiltro('');\r\n }\r\n setValor(valor);\r\n form.setFieldsValue({ [name]: valor });\r\n }\r\n if (!!onChangeFunction && (!!valor || valor == 0)) {\r\n onChangeFunction(valor);\r\n }\r\n };\r\n\r\n function onBlur(valor) {\r\n if (!!onBlurFunction) {\r\n onBlurFunction(valor);\r\n }\r\n };\r\n\r\n function onClear(valor) {\r\n if (!!onClearFunction) {\r\n onClearFunction(valor);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n setCodigoEmpresa(value);\r\n }} order=\"emp_razaosocial\"\r\n conteudo={\r\n e => ({e.emp_nomefantasia}
Razao Social: {e.emp_razaosocial}
)\r\n } />\r\n
\r\n \r\n \r\n {formLogin.getFieldValue()?.emp_id && \r\n \r\n \r\n setCodigoLocal(valor)} conteudo={Local => (\r\n {Local.loc_descricao}{!Local.loc_ativo ? ' (INATIVO)' : ''}\r\n )} />\r\n \r\n \r\n }\r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Form, Input, Button, notification } from 'antd';\r\nimport { MailOutlined, ArrowLeftOutlined, SendOutlined } from '@ant-design/icons';\r\nimport api from '../../services/api';\r\n\r\nexport default function EsqueciSenha({ onAcessar, formulario }) {\r\n\r\n\r\n function enviarEmailRecuperarSenha() {\r\n let emailUsuario = formulario.getFieldValue().email;\r\n if (!!emailUsuario) {\r\n api.put(`Usuario/EnviarEmailRecuperarSenha/${emailUsuario}`).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Enviamos um E-mail para você com as instruções para recuperar sua senha!\" })\r\n }\r\n ).catch(\r\n error => {\r\n notification.warning({ message: `AVISO!`, description: `Usuário não encontrado!` });\r\n }\r\n )\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","export default __webpack_public_path__ + \"static/media/i-saida.8a117db2.png\";","import React, { Children, useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Card, Modal, Spin } from \"antd\";\r\nimport { CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalProcessoLento(props) {\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n O Processo pode demorar um pouco!\r\n \r\n
\r\n
\r\n {props.children}\r\n
\r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Col, Form, Input, InputNumber, Row, Select, Modal, Divider, Typography, notification } from 'antd';\r\nimport { CheckCircleOutlined } from '@material-ui/icons';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { info } from '../../services/funcoes';\r\nimport { Data, FormGW, InputPreco } from \"../../components\";\r\nimport { getEmpresa } from '../../services/auth';\r\n\r\nexport default function LancamentoTransferencia({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [listaFiliais, setListaFiliais] = useState([]);\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [listaContaCorrenteDestino, setListaContaCorrenteDestino] = useState([]);\r\n const [listaContaGerencialOrigem, setListaContaGerencialOrigem] = useState([]);\r\n const [listaContaGerencialAgrupadorOrigem, setListaContaGerencialAgrupadorOrigem] = useState([]);\r\n const [listaContaGerencialDestino, setListaContaGerencialDestino] = useState([]);\r\n const [listaContaGerencialAgrupadorDestino, setListaContaGerencialAgrupadorDestino] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n api.get(`Local/Listar?Ativo=true&CodigoEmpresa=${getEmpresa()}&PageSize=500&PageNumber=1`).then(\r\n res => {\r\n setListaFiliais(res.data.items);\r\n });\r\n api.get(`contaCorrente/ListarContasParaTransferencia?filtro=&codigoContaCorrente=&ordem=+ctc_descricao`).then(res => {\r\n setListaContaCorrente(res.data);\r\n });\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?filtro=&CodReceitaDespesa=1`).then(res => {\r\n setListaContaGerencialAgrupadorOrigem(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencialOrigem(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n });\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?filtro=&CodReceitaDespesa=2`).then(res => {\r\n setListaContaGerencialAgrupadorDestino(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencialDestino(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n });\r\n listarContaDestino(null);\r\n formulario.setFieldsValue({ mcc_datahora: moment(new Date()) });\r\n }, []);\r\n\r\n function listarContaDestino(filial) {\r\n filial = !!filial ? `&IdLocalTransferencia=${filial}` : '';\r\n api.get(`contaCorrente/ListarContasParaTransferencia?filtro=&codigoContaCorrente=&ordem=+ctc_descricao${filial}`).then(res => {\r\n setListaContaCorrenteDestino(res.data);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.ctc_id) {\r\n manutencao.dados.ctc_id_origem = manutencao.dados.ctc_id;\r\n formulario.setFieldsValue(manutencao.dados);\r\n } else {\r\n formulario.setFieldsValue({ ctc_id: null, mcc_datahora: moment(new Date()) });\r\n }\r\n }, [ui.showDrawerTransferencia]);\r\n\r\n const salvarManutencao = (values) => {\r\n values.pes_id = null;\r\n values.mcc_id = null;\r\n values.mcc_entradasaida = 3;\r\n values.ctgorigem = { ctg_id: values.ctg_id_origem };\r\n values.ctgdestino = { ctg_id: values.ctg_id_destino };\r\n values.ctcorigem = { ctc_id: values.ctc_id_origem };\r\n values.ctcdestino = { ctc_id: values.ctc_id_destino };\r\n values.localdestino = { loc_id: formulario.getFieldsValue().loc_id };\r\n values.mcc_numerodocumento = !!values.mcc_numerodocumento ? values.mcc_numerodocumento.toString() : '';\r\n values.mcc_valor = parseFloat(values.mcc_valor);\r\n if(values.ctcorigem.ctc_id == values.ctcdestino.ctc_id){\r\n notification.warning({ message: `Aviso!`, description: `Conta corrente ORIGEM não pode ser a mesma que a Conta corrente DESTINO, Verifique!` });\r\n return;\r\n }\r\n carregando(true);\r\n api.post('/MovimentoContaCorrente/IncluirLancamentoCaixa', values).then(res => {\r\n if (res.status === 200) {\r\n Modal.confirm({\r\n title: 'Lançamento de Transferência incluído com sucesso!',\r\n icon: ,\r\n content: '',\r\n okText: 'Incluir mais um',\r\n cancelText: 'OK',\r\n centered: true,\r\n onOk() {\r\n carregando(false);\r\n formulario.resetFields();\r\n formulario.setFieldsValue({ mcc_datahora: moment(new Date()) });\r\n },\r\n onCancel() {\r\n aoSalvar();\r\n carregando(false);\r\n }\r\n });\r\n }\r\n }).catch(err => {\r\n info(\"Não foi possível realizar o lançamento!\");\r\n }).finally(() => {\r\n carregando(false);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \"Transferência\" De\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaContaGerencialAgrupadorOrigem.map(item => (\r\n \r\n {listaContaGerencialOrigem.filter((conta) => { return conta.ctc_id === item.ctc_id }).map(conta => (\r\n {conta.ctg_descricao}\r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Para\" Para\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return { label: item.ctc_descricao, value: item.ctc_id, key: item.ctc_id }\r\n })} filterOption={(input, option) => option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0} placeholder=\"Selecione uma Conta Corrente Destino\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Radio, Form, Col, Row, Select, Input, InputNumber, Button, Switch, Collapse, Modal, Table, notification, RadioChangeEvent } from 'antd';\r\nimport { ArrowUpOutlined, ArrowDownOutlined, SearchOutlined, CheckCircleOutlined } from '@ant-design/icons';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { Data, FormGW, InputPreco, SelectPaginacao } from \"../../components\";\r\nimport { FormatNumber, FormatDate } from '../../ValueObjects/';\r\nimport SelectPaginado from '../../components/selectPaginado';\r\nimport { MaskFormat } from '../../ValueObjects/index';\r\nimport { HasValue } from '../../services/funcoes';\r\n\r\nexport default function LancamentoCaixaManutencao({ formulario, carregando, aoSalvar, initialValues }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [acompanharLancamentos, setAcompanharLancamentos] = useState(false);\r\n const [openPesquisaAvancada, setOpenPesquisaAvancada] = useState(false);\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [listaContaGerencial, setListaContaGerencial] = useState([]);\r\n const [listaContaGerencialAgrupador, setListaContaGerencialAgrupador] = useState([]);\r\n const [listaContaGerencialPesquisa, setListaContaGerencialPesquisa] = useState([]);\r\n const [listaContaGerencialAgrupadorPesquisa, setListaContaGerencialAgrupadorPesquisa] = useState([]);\r\n const [listaCaixa, setListaCaixa] = useState([]);\r\n const [saldoAtualConta, setSaldoAtualConta] = useState(null);\r\n const [saldoAnteriorConta, setSaldoAnteriorConta] = useState(null);\r\n const togglePesquisa = () => {\r\n setOpenPesquisaAvancada(!openPesquisaAvancada);\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`contaCorrente/ListarContasParaTransferencia?filtro=&codigoContaCorrente=&ordem=+ctc_descricao`).then(res => {\r\n setListaContaCorrente(res.data);\r\n });\r\n\r\n buscarDadosContaGerencial(manutencao.dados.operacao);\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?filtro=`).then(res => {\r\n setListaContaGerencialAgrupadorPesquisa(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencialPesquisa(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n });\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n manutencao.dados.mcc_datahora = moment(new Date());\r\n manutencao.dados.mcc_entradasaida = manutencao.dados.operacao;\r\n manutencao.dados.dataInicial = moment(new Date());\r\n manutencao.dados.dataFinal = moment(new Date());\r\n formulario.setFieldsValue(manutencao.dados);\r\n buscarSaldoConta();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function reverse(lista) {\r\n let retorno = [];\r\n\r\n for (let i = lista.length - 1; i >= 0; i--) {\r\n retorno.push(lista[i])\r\n }\r\n return retorno;\r\n };\r\n\r\n function buscarDadosContaGerencial(value) {\r\n api.get(`ContaGerencial/ListarAtivosEstruturadoPelaCategoria?filtro=&CodReceitaDespesa=${value}`).then(res => {\r\n setListaContaGerencialAgrupador(res.data.filter((item) => { return item.podeSelecionar === false }));\r\n setListaContaGerencial(res.data.filter((item) => { return item.podeSelecionar === true }));\r\n });\r\n };\r\n\r\n\r\n\r\n function listarCaixa() {\r\n let saldoAnterior = 0;\r\n let lista = [];\r\n if (HasValue(formulario.getFieldValue().ctc_id)) {\r\n if (!!formulario.getFieldValue().dataInicial && !!formulario.getFieldValue().dataFinal && !!formulario.getFieldValue().ctc_id) {\r\n api.get(`ContaCorrente/BuscarSaldoAnteriorContaCorrente?idContaCorrente=${formulario.getFieldValue().ctc_id}&dataBase=${FormatDate(formulario.getFieldValue().dataInicial.toDate().toLocaleDateString())}`).then(res => {\r\n setSaldoAnteriorConta(res.data);\r\n saldoAnterior = res.data;\r\n });\r\n let url = `MovimentoContaCorrente/ListarCaixa?IdContaCorrente=${formulario.getFieldValue().ctc_id}\r\n &dataInicial=${FormatDate(formulario.getFieldValue().dataInicial.toDate().toLocaleDateString())}\r\n &dataFinal=${FormatDate(formulario.getFieldValue().dataFinal.toDate().toLocaleDateString())}&ordem=-mcc_dataHora`;\r\n\r\n if (!!formulario.getFieldValue().ctg_id_consulta) {\r\n url += `&IdContaGerencial=${formulario.getFieldValue().ctg_id_consulta}`;\r\n }\r\n if (!!formulario.getFieldValue().valor_consulta && formulario.getFieldValue().valor_consulta > 0) {\r\n url += `&FiltroValor=${parseFloat(formulario.getFieldValue().valor_consulta)}`;\r\n }\r\n\r\n api.get(url).then(res => {\r\n lista = res.data;\r\n lista = reverse(lista);\r\n lista.forEach((caixa) => {\r\n if (caixa.mcc_entradasaida === 1) {\r\n saldoAnterior -= parseFloat(caixa.mcc_valor);\r\n } else if (caixa.mcc_entradasaida === 2) {\r\n saldoAnterior += parseFloat(caixa.mcc_valor);\r\n }\r\n caixa.saldoAnterior = saldoAnterior;\r\n });\r\n lista = reverse(lista);\r\n setListaCaixa(lista);\r\n });\r\n }\r\n }else{\r\n notification.warning({ message: `Aviso!`, description: `Favor informar a Conta Corrente para a pesquisa!` });\r\n }\r\n };\r\n\r\n function salvarManutencao(values) {\r\n values.mcc_id = null;\r\n values.mcc_valor = parseFloat(values.mcc_valor);\r\n values.mcc_entradasaida = parseInt(values.mcc_entradasaida);\r\n values.mcc_numerodocumento = !!values.mcc_numerodocumento ? values.mcc_numerodocumento.toString() : '';\r\n carregando(true);\r\n api.post('/MovimentoContaCorrente/IncluirLancamentoCaixa', values).then(\r\n res => {\r\n Modal.confirm({\r\n title: 'Lançamento adicionado com sucesso!',\r\n icon: ,\r\n content: '',\r\n okText: 'Incluir mais um',\r\n cancelText: 'OK',\r\n centered: true,\r\n onOk() {\r\n carregando(false);\r\n formulario.resetFields();\r\n formulario.setFieldsValue({ mcc_datahora: moment(new Date()), mcc_entradasaida: manutencao.dados });\r\n },\r\n onCancel() {\r\n aoSalvar();\r\n carregando(false);\r\n }\r\n });\r\n }).catch(\r\n err => {\r\n notification.warning({ message: `Aviso!`, description: `Não foi possivel realizar o lançamento!` });\r\n }\r\n ).finally(() => {\r\n carregando(false)\r\n aoSalvar();;\r\n });;\r\n };\r\n\r\n async function buscarSaldoConta() {\r\n let saldoAnterior = 0;\r\n if (!!formulario.getFieldValue().ctc_id) {\r\n await api.get(`ContaCorrente/ListarSaldoContaCorrente?tipoLancamento=1`).then(\r\n res => {\r\n saldoAnterior = res.data.filter(item => (item.ctc_id === formulario.getFieldValue().ctc_id))[0].saldo;\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n setSaldoAtualConta(saldoAnterior);\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n buscarDadosContaGerencial(e.target.value)} buttonStyle=\"solid\" optionType=\"button\" size=\"middle\">\r\n Entrada\r\n Saída\r\n \r\n \r\n \r\n \r\n
\r\n Saldo Atual da Conta (R$)\r\n
\r\n \r\n {FormatNumber(saldoAtualConta, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaContaGerencialAgrupador.map(item => (\r\n \r\n {listaContaGerencial.filter((conta) => { return conta.ctc_id === item.ctc_id }).map(conta => (\r\n {conta.ctg_descricao}\r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n ({pc.pes_nome}
\r\n {(!!pc.pej_cnpj ? `CNPJ.: ${MaskFormat(pc.pej_cnpj, '', true)}` : !!pc.pef_cpf ? `CPF.: ${MaskFormat(pc.pef_cpf, '', true)}` : '')}\r\n
)\r\n } />\r\n
\r\n \r\n \r\n \r\n ({h.his_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setAcompanharLancamentos(checked)} /> Desejo acompanhar os lançamentos realizados na conta corrente selecionada\r\n \r\n \r\n \r\n {acompanharLancamentos &&\r\n
\r\n \r\n
\r\n \r\n \r\n {openPesquisaAvancada ? : } Filtrar os Lançamentos Registrados\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaCaixa.length > 0 &&\r\n
(\r\n
\r\n {moment(mcc_dataHora).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Conta Gerencial',\r\n render: ({ ctg_descricao }) => (\r\n
\r\n {ctg_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Entrada (R$)',\r\n align: 'right',\r\n render: ({ mcc_valor, mcc_entradasaida }) => (\r\n
\r\n \r\n {(mcc_entradasaida === 2) ? FormatNumber(!!mcc_valor ? mcc_valor : 0, true, false) : ''}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Saída (R$)',\r\n align: 'right',\r\n render: ({ mcc_valor, mcc_entradasaida }) => (\r\n
\r\n \r\n {(mcc_entradasaida === 1) ? FormatNumber(!!mcc_valor ? mcc_valor : 0, true, false) : ''}\r\n \r\n
\r\n ),\r\n }, {\r\n title: 'Saldo (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ saldoAnterior }) => (\r\n
\r\n {(saldoAnterior < 0) ? {FormatNumber(saldoAnterior, true, false)} : {FormatNumber(saldoAnterior, true, false)}}\r\n
\r\n ),\r\n }\r\n ]\r\n } footer={() =>\r\n \r\n \r\n
\r\n Saldo Anterior a Data Inicial(R$): {FormatNumber(!!saldoAnteriorConta ? saldoAnteriorConta : 0, true, false)}\r\n
\r\n \r\n \r\n } scroll={{ x: 900 }} />\r\n }\r\n \r\n }\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState, useRef } from 'react';\r\nimport { Form, Input, notification } from 'antd';\r\nimport { HasValue } from '../../services/funcoes';\r\n\r\nexport default function InputEmail(props) {\r\n\r\n const [value, setValue] = useState('');\r\n const [isValid, setIsValid] = useState(true);\r\n const inputRef = useRef(null);\r\n\r\n const validateEmail = (email) => {\r\n const re = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n return re.test(String(email).toLowerCase());\r\n };\r\n\r\n const handleBlur = (e) => {\r\n if (HasValue(value)) {\r\n if (!validateEmail(value)) {\r\n setIsValid(false);\r\n notification.warning({ message: `Aviso!`, description: `E-mail invalido` });\r\n setTimeout(() => inputRef.current.focus(), 0); // Retorna o foco ao campo\r\n } else {\r\n setIsValid(true);\r\n }\r\n }\r\n if (!!props.onBlur) {\r\n props.onBlur(e);\r\n }\r\n };\r\n\r\n const handleChange = (e) => {\r\n setValue(e.target.value);\r\n if (!!props.onChange) {\r\n props.onChange(e.target.value);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Marca Ativa\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoGrupoProduto({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const salvarManutencao = (values) => {\r\n\r\n carregando(true);\r\n let retorno;\r\n let enderecoUrl = 'GrupoProduto/';\r\n\r\n if (values.gru_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Grupo foram salvos com sucesso!\" });\r\n retorno = res.data.gru_id;\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n\r\n } else {\r\n enderecoUrl += \"Incluir\"\r\n api.post(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Grupo foram salvos com sucesso!\" });\r\n retorno = res.data.gru_id;\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n };\r\n }\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && manutencao.dados.duplicar) {\r\n formulario.setFieldsValue({ gru_id: null });\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+gru_nome' } });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, Select, notification } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW, SelectPaginacao } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { selectPaginadoActions } from \"../../actions\";\r\n\r\nexport default function ManutencaoSubGrupo({ formulario, carregando, aoSalvar, editando, openDrawer, gruId }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [filtroAdd, setFiltroAdd] = useState(null);\r\n var lista = [];\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.sgp_id && editando.editando) {\r\n let lista = [];\r\n if (!!manutencao.dados.gru_id) {\r\n lista.push({ name: \"gru_id\", campo: \"CodigoGrupo\", value: manutencao.dados.gru_id });\r\n }\r\n if (lista.length > 0) {\r\n editando.setEditando(false);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: {itens: lista} });\r\n }\r\n formulario.setFieldsValue(manutencao.dados);\r\n } else {\r\n formulario.setFieldsValue({ sgp_id: null });\r\n setFiltroAdd(` &ApenasAtivos=true`);\r\n }\r\n }, [ui.showDrawer, manutencao.dados]);\r\n\r\n const salvarManutencao = (values) => {\r\n carregando(true);\r\n let retorno;\r\n let enderecoUrl = 'SubGrupo/';\r\n\r\n if (values.sgp_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Subgrupo foram salvos com sucesso!\" });\r\n retorno = res.data;\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n } else {\r\n enderecoUrl += `Incluir`;\r\n api.post(enderecoUrl, values).then(res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Subgrupo foram salvos com sucesso!\" });\r\n retorno = res.data;\r\n }\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if(!!openDrawer){\r\n lista.push({ name: \"gru_id\", campo: \"CodigoGrupo\", value: gruId.gru_id });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n }, [openDrawer]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n ({gru.gru_id} - {gru.gru_nome})\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tabs, Row, Col, Form, Input, Select, Radio, Checkbox, notification, Modal, Typography, Divider, InputNumber } from \"antd\";\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport { FormGW, Data, FormularioDinamico, InputCpfCnpj, SelectPaginacao } from \"../../components\";\r\nimport { Endereco, Email, Telefone, Ocupacao, OutrosContatos } from '../pessoas/pages';\r\nimport { trataRetornoFormularioDinamico, trataSetaDadosFormularioDinamico, HasValue, validaForm, validarCpf, isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function ManutencaoVendedor({ formulario, salvandoDados, aoSalvar, editando, pagina }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [opcoesCriarUsuario, setOpcoesCriarUsuario] = useState(0);\r\n const [listaUsuarios, setListaUsuarios] = useState([]);\r\n const [listaEstadoCivil, setListaEstadoCivil] = useState([]);\r\n const [listaUsuariosLocal, setListaUsuariosLocal] = useState([]);\r\n const [desabilitarCfpCnpj, setDesabilitarCpfCnpj] = useState(false);\r\n const [elementosFormulario, setElementosFormulario] = useState([]);\r\n const [exibirOpcoes, setExibirOpcoes] = useState(true);\r\n const [listaCidades, setListaCidades] = useState(false);\r\n const [filtroCdd, setFiltroCdd] = useState(null);\r\n\r\n useEffect(() => {\r\n formulario.setFieldsValue({ criarUsuario: opcoesCriarUsuario })\r\n }, [opcoesCriarUsuario]);\r\n\r\n useEffect(() => {\r\n if (!!pagina.pagina && pagina.pagina > parseInt(abaSelecionada)) {\r\n validarAbas(pagina.pagina.toString());\r\n }\r\n }, [pagina]);\r\n\r\n useEffect(() => {\r\n if (!!abaSelecionada && pagina.pagina !== parseInt(abaSelecionada)) {\r\n pagina.setPagina(parseInt(abaSelecionada));\r\n }\r\n }, [abaSelecionada]);\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.ven_id && editando.editando) {\r\n listaVendedor(manutencao.dados.ven_id);\r\n let lista = [];\r\n if (!!manutencao.dados.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: manutencao.dados.pef_rguf });\r\n }\r\n if (!!manutencao.dados.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: manutencao.dados.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n editando.setEditando(false);\r\n }\r\n if (manutencao.dados.key === undefined) {\r\n editando.setEditando(false);\r\n }\r\n formulario.setFieldsValue(manutencao.dados);\r\n\r\n if (manutencao.dados.vendedorcampopersonalizados?.length > 0) {\r\n carregaDadosCamposAdicionais();\r\n }\r\n\r\n if (manutencao.dados?.usu_id > 0) {\r\n setOpcoesCriarUsuario(2)\r\n setExibirOpcoes(false);\r\n }\r\n } else {\r\n setFocusCpfCnpj();\r\n }\r\n }, [ui.showDrawer, manutencao.dados]);\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n carregaCamposPersonalizados();\r\n }, []);\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n let _cpfCnpj = formulario.getFieldValue().pef_cpf ? formulario.getFieldValue().pef_cpf : manutencao.dados.pef_cpf;\r\n _cpfCnpj = _cpfCnpj.replace(/[^\\d]+/g, '');\r\n if (HasValue(_cpfCnpj)) {\r\n if (_cpfCnpj.length === 11) {\r\n if (validarCpf(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n }\r\n }\r\n } else {\r\n setFocusCpfCnpj();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => { if (!!elementosFormulario && elementosFormulario.length > 0) carregaDadosCamposAdicionais(); }, [elementosFormulario]);\r\n\r\n function setFocusCpfCnpj() {\r\n setTimeout(\r\n () => {\r\n try {\r\n let element = document.getElementById(\"pef_cpf\");\r\n if (element) {\r\n element.focus();\r\n }\r\n } catch (error) {\r\n console.log('error :>> ', error);\r\n }\r\n }, 300);\r\n }\r\n function carregarCidades(UfEstado) {\r\n if (!!UfEstado) {\r\n setListaCidades(true);\r\n setFiltroCdd(` &UfEstado=${UfEstado}`);\r\n }\r\n else {\r\n setListaCidades(false);\r\n }\r\n }\r\n const salvarManutencao = values => {\r\n let usu = {}\r\n if (values.criarUsuario === 1) {\r\n usu = { operacao: values.criarUsuario, email: values.emailUsuario };\r\n } else if (values.criarUsuario === 2) {\r\n usu = { operacao: values.criarUsuario, usu_id: values.usu_id, email: listaUsuarios.find(item => item.usu_id === values.usu_id).usu_email };\r\n } else {\r\n usu = { operacao: 0, email: '' };\r\n }\r\n values.usuarioVinculado = usu;\r\n values.pessoaemails = !!manutencao.dados.emails && manutencao.dados.emails.length > 0 ? manutencao.dados.emails : [];\r\n values.pessoasocupacoes = !!manutencao.dados.ocupacoes && manutencao.dados.ocupacoes.length > 0 ? manutencao.dados.ocupacoes : [];\r\n values.regioesVenda = !!manutencao.dados.regioes && manutencao.dados.regioes.length > 0 ? manutencao.dados.regioes : [];\r\n values.nacionalidades = !!manutencao.dados.nacionalidades && manutencao.dados.nacionalidades.length > 0 ? manutencao.dados.nacionalidades : [];\r\n values.pessoaoutrocontatos = !!manutencao.dados.pessoaoutrocontatos && manutencao.dados.pessoaoutrocontatos.length > 0 ? manutencao.dados.pessoaoutrocontatos : [];\r\n values.pessoatelefones = manutencao.dados.telefones;\r\n values.enderecos = !!manutencao.dados.enderecos && manutencao.dados.enderecos.length > 0 ? manutencao.dados.enderecos : [];\r\n values.pef_dataalteracao = moment(new Date());\r\n values.vendedorcampopersonalizados = salvarCamposAdicionais(values);\r\n\r\n salvandoDados(true);\r\n if (!!values.ven_id) {\r\n api.put(`Vendedor/Editar`, values).then(\r\n res => {\r\n notification.success({ message: 'Sucesso!', description: `Vendedor editado com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n notification.error({ message: 'Erro ao Gravar dados do Vendedor.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n salvandoDados(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n api.post(`Vendedor/Incluir`, values).then(\r\n res => {\r\n notification.success({ message: 'Sucesso!', description: `Vendedor incluido com sucesso!` });\r\n let cpfFuncionario = values.pef_cpf.replaceAll('.', '').replaceAll('/', '').replaceAll('-', '');\r\n listarVendedorCpf(cpfFuncionario, (dadosVendedor) => {\r\n modalAdicionarFuncionarioVendedor(dadosVendedor);\r\n });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n notification.error({ message: 'Erro ao Gravar dados do Vendedor.', description: JSON.stringify(erro.response) });\r\n }\r\n ).finally(\r\n () => {\r\n salvandoDados(false);\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n\r\n };\r\n\r\n const salvarCamposAdicionais = (values) => {\r\n var camposAdicionais = [];\r\n elementosFormulario?.map((elemento) => {\r\n values = trataRetornoFormularioDinamico(values, elemento);\r\n let vendedorcampopersonalizados = { ...manutencao.dados };\r\n let forDados = vendedorcampopersonalizados.vendedorcampopersonalizados?.filter(f => f.cap_id == elemento.cap_id)[0];\r\n if ((!!forDados ? forDados.vcp_valor : \"\") !== (!!values[elemento.cap_nomeelemento] ? values[elemento.cap_nomeelemento] : \"\")) {\r\n camposAdicionais.push({ vcp_id: !!forDados ? forDados.vcp_id : null, ven_id: values.ven_id, cap_id: elemento.cap_id, vcp_valor: values[elemento.cap_nomeelemento] });\r\n }\r\n });\r\n return camposAdicionais;\r\n }\r\n\r\n const listaValidacoesVen = [\r\n { nome: 'pef_cpf', obrigatorio: true, label: 'CPF' },\r\n { nome: 'pes_nome', obrigatorio: true, label: 'Nome' },\r\n ];\r\n\r\n function validarAbas(tab) {\r\n let listaValidacoes = [];\r\n let valida = false;\r\n switch (abaSelecionada) {\r\n case '1':\r\n listaValidacoes = [...listaValidacoesVen];\r\n if (formulario.getFieldValue().criarUsuario === 1) {\r\n listaValidacoes.push({ nome: 'emailUsuario', obrigatorio: true, label: 'E-mail Principal do Vendedor' });\r\n } else if (formulario.getFieldValue().criarUsuario === 2) {\r\n listaValidacoes.push({ nome: 'usu_id', obrigatorio: true, label: 'Usuário para vincular ao Vendedor' });\r\n }\r\n valida = true;\r\n break;\r\n case '3':\r\n if (!(!!manutencao.dados.enderecos && manutencao.dados.enderecos.length > 0)) {\r\n notification.warning({ description: 'Favor informar ao menos um endereço!', message: 'Aviso' });\r\n pagina.setPagina(parseInt(abaSelecionada));\r\n return;\r\n }\r\n break;\r\n }\r\n if (validaForm(formulario, listaValidacoes) && valida) {\r\n setAbaSelecionada(tab);\r\n } else if (!valida) {\r\n setAbaSelecionada(tab);\r\n } else {\r\n pagina.setPagina(parseInt(abaSelecionada));\r\n }\r\n };\r\n\r\n function carregaCamposPersonalizados() {\r\n api.get(`CamposPersonalizados/ListarTodos?TipoEntidade=6&PageNumber=1&PageSize=1000&Order=+cap_ordem`).then(res => {\r\n if (res.status === 200) {\r\n setElementosFormulario(res.data.items);\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao carregar Campos personalizados!');\r\n }\r\n );\r\n };\r\n\r\n function carregaDadosCamposAdicionais() { //Campos Adicionais\r\n let camposPersonalizados = { ...manutencao.dados };\r\n camposPersonalizados?.vendedorcampopersonalizados?.map(d => {\r\n let elemento = elementosFormulario.filter(f => f.cap_id === d.cap_id)[0];\r\n if (!!elemento)\r\n trataSetaDadosFormularioDinamico(formulario, elemento, d.vcp_valor);\r\n })\r\n }\r\n\r\n function carregarDados() {\r\n salvandoDados(false);\r\n let parametro = !!formulario.getFieldValue().ven_id ? `?codigoVendedor=${formulario.getFieldValue().ven_id}` : '';\r\n api.get(`Vendedor/ListarUsuariosNaoVinculadosVendedor${parametro}`).then(\r\n res => {\r\n setListaUsuarios(res.data);\r\n }).catch(\r\n erro =>\r\n console.error(erro)\r\n );\r\n api.get(`Usuario/RetornaUsuariosLocal?filtro=`).then(\r\n res => {\r\n setListaUsuariosLocal(res.data);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n\r\n api.get(`EstadoCivil/Listar`).then(\r\n res => {\r\n setListaEstadoCivil(res.data.items);\r\n }).catch(\r\n erro =>\r\n console.error(erro)\r\n );\r\n }\r\n\r\n function validarEmail(email) {\r\n email = email.target.value;\r\n if (!!email) {\r\n let emailUsuarioExistente = false;\r\n listaUsuarios.forEach((usuario) => {\r\n if (usuario.usu_email.endereco == email) {\r\n emailUsuarioExistente = true;\r\n }\r\n });\r\n\r\n let emailUsuarioDisponivel = false;\r\n if (!!emailUsuarioExistente) {\r\n listaUsuariosLocal.forEach((usuario) => {\r\n if (usuario.usu_email.endereco == email) {\r\n emailUsuarioDisponivel = true;\r\n }\r\n });\r\n } else {\r\n emailUsuarioDisponivel = true;\r\n }\r\n\r\n if (!!!emailUsuarioDisponivel) {\r\n notification.warning({ description: `Endereço de e-mail informado ${email} já está vinculado a outro vendedor! Informe outro e-mail e tende novamente.`, message: `Aviso!` })\r\n } else {\r\n api.get(`Usuario/RetornaUsuarioEmail?email=${email}`).then(\r\n res => {\r\n if (!!res.data) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `O E-mail ${email} já pertence a um usuário no sistema, ao continuar este usuário terá acesso a esta empresa vinculado a este novo vendedor.`,\r\n okText: `Continuar com o usuário existente`,\r\n cancelText: `Informar outro e-mail`,\r\n centered: true,\r\n onOk() {\r\n adicionaEmail(email)\r\n },\r\n onCancel() {\r\n formulario.setFieldsValue({ emailUsuario: null });\r\n }\r\n });\r\n } else {\r\n adicionaEmail(email);\r\n }\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n }\r\n };\r\n\r\n function adicionaEmail(email) {\r\n let principal = true;\r\n let verifica = true;\r\n if (!!manutencao.dados.emails) {\r\n if (!!manutencao.dados.emails.length > 0) {\r\n principal = false;\r\n }\r\n manutencao.dados.emails.forEach((email) => {\r\n if (email.pem_email === email) {\r\n verifica = false;\r\n }\r\n })\r\n }\r\n if (verifica) {\r\n let listaEmails = [...!!manutencao.dados.emails ? manutencao.dados.emails : []];\r\n let dadosEmail = {};\r\n dadosEmail.pem_email = email;\r\n dadosEmail.pem_ativo = true;\r\n dadosEmail.pem_emailprincipal = principal;\r\n dadosEmail.pem_enviarboleto = false;\r\n dadosEmail.pem_enviarcartacobranca = false;\r\n dadosEmail.pem_enviarnfe = false;\r\n dadosEmail.pem_enviarpromocao = false;\r\n dadosEmail.pem_enviarvencparcela = false;\r\n listaEmails.push(dadosEmail);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ emails: listaEmails } } } });\r\n } else {\r\n notification.warning({ description: `Este E-mail já foi adicionado na lista de e-mails`, message: `Atenção!` });\r\n }\r\n };\r\n\r\n function verificarCpfValido(dado) {\r\n let valorCampo;\r\n if (!!dado.currentTarget) {\r\n valorCampo = dado.currentTarget.value.replace(/\\D/g, '');\r\n } else {\r\n valorCampo = dado;\r\n }\r\n if (HasValue(valorCampo)) {\r\n if (!validarCpf(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n formulario.setFieldsValue({ pef_cpf: null });\r\n setFocusCpfCnpj();\r\n } else {\r\n verificaCpf(valorCampo)\r\n }\r\n }\r\n }\r\n\r\n function verificaCpf(pef_cpf) {\r\n api.get(`PessoaFisica/VerificarCpfExistente?cpf=${pef_cpf}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_vendedor) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"O CPF informado já esta cadastrado no sistema!\\n Deseja atualizar seus dados?\",\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n listarVendedorCpf(pef_cpf);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n } else {\r\n listarVendedorCpf(pef_cpf);\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n function listaVendedor(ven_id) {\r\n if (!!!ven_id) {\r\n return;\r\n }\r\n api.get(`Vendedor/BuscarVendedor/${ven_id}`).then(\r\n (res) => {\r\n let valores = res.data;\r\n if (!!res.data && isObjetoDiffVazio(res.data)) {\r\n valores.pef_rguf = res.data.pef_rguf == \"\" ? null : res.data.pef_rguf;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.pef_dataalteracao = !!valores.pef_dataalteracao ? moment(valores.pef_dataalteracao) : null;\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarVendedorCpf(pef_cpf, callback) {\r\n api.get(`Vendedor/BuscarVendedorCpf/${pef_cpf}`).then(\r\n res => {\r\n let valores = res.data;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.pef_dataalteracao = !!valores.pef_dataalteracao ? moment(valores.pef_dataalteracao) : null;\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n valores.ven_ativo = true;\r\n let lista = [];\r\n if (!!valores.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: valores.pef_rguf });\r\n }\r\n if (!!valores.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: valores.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n editando.setEditando(false);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n if (!!callback) {\r\n callback(res.data);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function modalAdicionarFuncionarioVendedor(dadosVendedor) {\r\n\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Deseja cadastrar esse vendedor como Funcionário da empresa?`,\r\n cancelText: 'Não',\r\n okText: 'Sim',\r\n okType: 'sucess',\r\n centered: true,\r\n onOk() {\r\n adicionarFuncionarioVendedor(dadosVendedor);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n }\r\n });\r\n }\r\n\r\n function adicionarFuncionarioVendedor(dadosVendedor) {\r\n dadosVendedor.fun_ativo = true;\r\n api.post(`Funcionario/Incluir`, dadosVendedor).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Vendedor cadastrado como Funcionário com sucesso!\" });\r\n }).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n salvandoDados(false);\r\n aoSalvar();\r\n })\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n validarAbas(tab)}>\r\n \r\n
\r\n \r\n
\r\n { verificarCpfValido(pef_cpf) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Feminino\r\n Masculino\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(!editando.editando || (editando.editando && exibirOpcoes)) && setOpcoesCriarUsuario(0)} value={0}>Não criar Usuário para este Vendedor}\r\n setOpcoesCriarUsuario(1)} value={1}>Criar um Usuário Automaticamente\r\n setOpcoesCriarUsuario(2)} value={2}>Vincular usuário existente\r\n \r\n \r\n \r\n prevValues.criarUsuario !== currentValues.criarUsuario}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue('criarUsuario') === 1) return (\r\n \r\n \r\n { validarEmail(valor) }} />\r\n \r\n \r\n );\r\n if (getFieldValue('criarUsuario') === 2) return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarCidades(UfEstado)} onSelectFunction={(UfEstado) => carregarCidades(UfEstado)}\r\n conteudo={\r\n est => (\r\n {est.est_sigla} - {est.est_descricao})\r\n } />\r\n \r\n \r\n\r\n \r\n \r\n ({cid.cid_id} - {cid.cid_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Vendedor Ativo? \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n placeholder=\"(%) Comissão à Vista\" />\r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n placeholder=\"(%) Comissão à Prazo\" />\r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n placeholder=\"(%) Máximo de Desconto\" />\r\n \r\n \r\n \r\n \r\n ({est.est_sigla} - {est.est_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n Vendedor Externo? \r\n \r\n \r\n \r\n \r\n Considerar Desconto? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Campos Campos Adicionais\r\n \r\n \r\n Adicione abaixo as informações adicionais.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Tabs, Row, Col, Form, Input, Radio, Switch, Tooltip, Checkbox, Select, InputNumber, notification, Modal, Typography, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport { validarIE } from \"../../services/funcoesIE\";\r\nimport { Data, FormGW, FormularioDinamico, InputPreco, SelectPaginacao } from \"../../components\";\r\nimport { isObjetoDiffVazio, validarCnpj, validarCpf, consultaCNPJ, retornaSoNumeros, HasValue, validarTelefone, validarEmail } from \"../../services/funcoes\";\r\nimport { Endereco, Email, Telefone, OutrosContatos, Veiculos, Nacionalidade } from '../pessoas/pages';\r\nimport { trataRetornoFormularioDinamico, trataSetaDadosFormularioDinamico } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoTransportador({ formulario, carregando, aoSalvar, editando }) {\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [dadosEstrangeiro, setDadosEstrangeiro] = useState(false);\r\n const [fretePorConta, setFretePorConta] = useState([]);\r\n const [tipoTransporte, setTipoTransporte] = useState([]);\r\n const [cpfCnpj, setCpfCnpj] = useState(\"\");\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [pessoaJuridica, setPessoaJuridica] = useState(false);\r\n const [baixadoRec, setBaixadoRec] = useState(false);\r\n const [desabilitarCfpCnpj, setDesabilitarCpfCnpj] = useState(false);\r\n const [elementosFormulario, setElementosFormulario] = useState([]);\r\n const [filtroCdd, setFiltroCdd] = useState(null);\r\n const [listaCidades, setListaCidades] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.trn_id && editando.editando) {\r\n let lista = [];\r\n if (!!manutencao.dados.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: manutencao.dados.pef_rguf });\r\n carregarCidades(manutencao.dados.pef_rguf);\r\n }\r\n if (!!manutencao.dados.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: manutencao.dados.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n editando.setEditando(false);\r\n }\r\n\r\n formulario.setFieldsValue(manutencao.dados);\r\n\r\n }\r\n }, [ui.showDrawer, manutencao.dados]);\r\n\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.trn_id) {\r\n listaTransportador(manutencao.dados.trn_id);\r\n }\r\n //formulario.setFieldsValue(manutencao.dados);\r\n }, []);\r\n\r\n useEffect(() => { if (!!elementosFormulario && elementosFormulario.length > 0) carregaDadosCamposAdicionais(); }, [elementosFormulario]);\r\n useEffect(() => {\r\n if (manutencao?.dados?.transportadorcampopersonalizados?.length > 0)\r\n carregaDadosCamposAdicionais();\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n listarFretePorConta();\r\n listarTipoTransporte();\r\n carregaCamposPersonalizados();\r\n }, []);\r\n\r\n const switchEstrangeiro = () => {\r\n setDadosEstrangeiro(!dadosEstrangeiro)\r\n };\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n let _cpfCnpj = formulario.getFieldValue().cpfCnpj ? formulario.getFieldValue().cpfCnpj : manutencao.dados.cpfCnpj;\r\n _cpfCnpj = _cpfCnpj.replace(/[^\\d]+/g, '');\r\n if (HasValue(_cpfCnpj)) {\r\n if (_cpfCnpj.length === 11) {\r\n if (validarCpf(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n }\r\n else if (_cpfCnpj.length === 14) {\r\n if (validarCnpj(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n } else {\r\n setDesabilitarCpfCnpj(false);\r\n }\r\n }\r\n if (!!manutencao.dados.cpfCnpj) {\r\n if (manutencao.dados.cpfCnpj.length > 11) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n }\r\n } else {\r\n setFocusCpfCnpj();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function setFocusCpfCnpj() {\r\n setTimeout(\r\n () => {\r\n try {\r\n let element = document.getElementById(\"cpf\");\r\n if (element) {\r\n element.focus();\r\n }\r\n } catch (error) {\r\n console.log('error :>> ', error);\r\n }\r\n }, 300);\r\n }\r\n\r\n const salvarManutencao = valores => {\r\n valores.pes_fisicajuridica = pessoaJuridica ? 2 : (dadosEstrangeiro ? 3 : 1);\r\n valores.listaPessoasAutorizadas = manutencao.dados.pessoaAutorizada;\r\n valores.enderecos = !!manutencao.dados.enderecos && manutencao.dados.enderecos.length > 0 ? manutencao.dados.enderecos : [];\r\n valores.pessoaemails = !!manutencao.dados.emails && manutencao.dados.emails.length > 0 ? manutencao.dados.emails : [];\r\n valores.pessoatelefones = !!manutencao.dados.telefones && manutencao.dados.telefones.length > 0 ? manutencao.dados.telefones : [];\r\n valores.pessoaoutrocontatos = !!manutencao.dados.pessoaoutrocontatos && manutencao.dados.pessoaoutrocontatos.length > 0 ? manutencao.dados.pessoaoutrocontatos : [];\r\n valores.pessoanacionalidades = !!manutencao.dados.nacionalidades && manutencao.dados.nacionalidades.length > 0 ? manutencao.dados.nacionalidades : [];\r\n valores.transportadorveiculos = !!manutencao.dados.veiculos && manutencao.dados.veiculos.length > 0 ? manutencao.dados.veiculos : [];\r\n\r\n valores.pef_produtorrural = false;\r\n valores.pej_databaixasefaz = !!valores.pej_databaixasefaz ? valores.pej_databaixasefaz : null;\r\n valores.pej_baixadoreceita = !!valores.pej_baixadoreceita ? valores.pej_baixadoreceita : false;\r\n valores.trn_valorfretefixo = !!valores.trn_valorfretefixo ? parseFloat(valores.trn_valorfretefixo) : parseFloat(0);\r\n valores.trn_percentualfrete = !!valores.trn_percentualfrete ? parseFloat(valores.trn_percentualfrete) : parseFloat(0);\r\n valores.transportadorcampopersonalizados = salvarCamposAdicionais(valores);\r\n\r\n valores.cpfCnpj = valores.cpfCnpj.replaceAll('.', '').replaceAll('/', '').replaceAll('-', '');\r\n if (!!valores.idEstrangeiro && dadosEstrangeiro) {\r\n valores.isEstrangeiro = true;\r\n valores.pes_estrangeiro = true;\r\n } else {\r\n valores.isEstrangeiro = false;\r\n valores.pes_estrangeiro = false;\r\n\r\n if (valores.cpfCnpj.length === 11) {\r\n valores.pes_fisicajuridica = 1;\r\n valores.pef_cpf = valores.cpfCnpj;\r\n if (!validarCpf(valores.cpfCnpj)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n return false;\r\n }\r\n } else if (valores.cpfCnpj.length === 14) {\r\n valores.pes_fisicajuridica = 2;\r\n valores.pej_cnpj = valores.cpfCnpj;\r\n if (!validarCnpj(valores.cpfCnpj)) {\r\n notification.warning({ message: 'Aviso', description: 'CNPJ informado é inválido' });\r\n return false;\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'CPF/CNPJ informado é inválido' });\r\n return false;\r\n }\r\n }\r\n\r\n if (!!valores.pej_inscricaoestadual && !validarIE(valores.pej_inscricaoestadual, valores.pej_inscuf)) {\r\n notification.warning({ message: 'Aviso', description: 'Inscrição Estadual informada é inválida' });\r\n return false;\r\n } else if (!!!valores.pej_inscricaoestadual) {\r\n valores.pej_inscricaoestadual = \"\";\r\n }\r\n\r\n carregando(true);\r\n if (!!valores.trn_id) {\r\n api.put(`Transportador/Editar`, valores).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: `Transportador editado com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n api.post(`Transportador/Incluir`, valores).then(\r\n res => {\r\n notification.success({ message: 'Aviso', description: `Transportador incluído com sucesso!` });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n }\r\n\r\n };\r\n function carregarCidades(UfEstado) {\r\n if (!!UfEstado) {\r\n setListaCidades(true);\r\n setFiltroCdd(` &UfEstado=${UfEstado}`);\r\n }\r\n else {\r\n setListaCidades(false);\r\n }\r\n }\r\n\r\n const salvarCamposAdicionais = (values) => {\r\n var camposAdicionais = [];\r\n elementosFormulario?.map((elemento) => {\r\n values = trataRetornoFormularioDinamico(values, elemento);\r\n let transportadorcampopersonalizados = { ...manutencao.dados };\r\n let forDados = transportadorcampopersonalizados.transportadorcampopersonalizados?.filter(f => f.cap_id == elemento.cap_id)[0];\r\n if ((!!forDados ? forDados.fcp_valor : \"\") !== (!!values[elemento.cap_nomeelemento] ? values[elemento.cap_nomeelemento] : \"\")) {\r\n camposAdicionais.push({ tcp_id: !!forDados ? forDados.tcp_id : null, trn_id: values.trn_id, cap_id: elemento.cap_id, tcp_valor: values[elemento.cap_nomeelemento] });\r\n }\r\n });\r\n return camposAdicionais;\r\n }\r\n function carregaCamposPersonalizados() {\r\n api.get(`CamposPersonalizados/ListarTodos?entidade=5&PageNumber=1&PageSize=1000&Order=+cap_ordem`).then(res => {\r\n if (res.status === 200) {\r\n setElementosFormulario(res.data.items);\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao carregar Campos personalizados!');\r\n }\r\n );\r\n };\r\n\r\n function carregaDadosCamposAdicionais() { //Campos Adicionais\r\n let camposPersonalizados = { ...manutencao.dados };\r\n camposPersonalizados?.transportadorcampopersonalizados?.map(d => {\r\n let elemento = elementosFormulario.filter(f => f.cap_id === d.cap_id)[0];\r\n if (!!elemento)\r\n trataSetaDadosFormularioDinamico(formulario, elemento, d.tcp_valor);\r\n })\r\n }\r\n\r\n\r\n\r\n function listarFretePorConta() {\r\n api.get(`Enum/Listar?nome=FretePorConta`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setFretePorConta(res.data);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function listarTipoTransporte() {\r\n api.get(`Enum/Listar?nome=TipoTransporteInternacional`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setTipoTransporte(res.data);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function validarFisicoJuridico(event) {\r\n let valorCampo = event.currentTarget.value.replace(/\\D/g, '');\r\n if (valorCampo.length === 11) {\r\n if (!validarCpf(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n formulario.setFieldsValue({ cpfCnpj: \"\" })\r\n setFocusCpfCnpj();\r\n return false;\r\n }\r\n } else if (valorCampo.length === 14) {\r\n if (!validarCnpj(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CNPJ informado é inválido' });\r\n formulario.setFieldsValue({ cpfCnpj: \"\" })\r\n setFocusCpfCnpj();\r\n return false;\r\n }\r\n }\r\n setPessoaJuridica(valorCampo.length === 14);\r\n };\r\n\r\n function validarCpfCnpjExistente(cpfCnpj) {\r\n if (cpfCnpj) {\r\n if (cpfCnpj.length === 14) {\r\n validarCnpjExiste(cpfCnpj);\r\n } else if (cpfCnpj.length === 11) {\r\n validarCpfExiste(cpfCnpj);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'O CFP/CNPJ informado é inválido. Deve conter 11 ou 14 dígitos' });\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'O CFP/CNPJ não foi informado' });\r\n }\r\n };\r\n\r\n function validarCpfExiste(cpfCnpj) {\r\n api.get(`PessoaFisica/VerificarCpfExistente?cpf=${cpfCnpj}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_transportador) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"O CPF informado já esta cadastrado no sistema!\\n Deseja atualizar seus dados?\",\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n listarTransportadorCpfCnpj(cpfCnpj);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n } else {\r\n listarTransportadorCpfCnpj(cpfCnpj);\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validarCnpjExiste(cpfCnpj) {\r\n api.get(`PessoaJuridica/VerificarCnpjExistente?cnpj=${cpfCnpj}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_transportador) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"O CNPJ informado já esta cadastrado no sistema!\\n Deseja atualizar seus dados?\",\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n listarTransportadorCpfCnpj(cpfCnpj);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n } else {\r\n listarTransportadorCpfCnpj(cpfCnpj);\r\n }\r\n } else {\r\n receitaWS(cpfCnpj);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function listaTransportador(trn_id) {\r\n if (!!!trn_id) {\r\n return;\r\n }\r\n api.get(`Transportador/BuscarTransportador/${trn_id}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_fisicajuridica === 2) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n if (!!res.data && isObjetoDiffVazio(res.data)) {\r\n let valores = res.data;\r\n valores.pej_datafundacao = !!valores.pej_datafundacao ? moment(valores.pej_datafundacao) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pef_dataalteracao = !!valores.pef_dataalteracao ? moment(valores.pef_dataalteracao) : null;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n const receitaWS = (cpfCnpj) => {\r\n if (!HasValue(formulario.getFieldsValue().pes_nome)) {\r\n consultaCNPJ(cpfCnpj).then((retorno) => {\r\n let dados = retorno;\r\n if (dados.status === \"OK\" && dados.situacao === \"ATIVA\") {\r\n let dadosForm = {};\r\n\r\n if (dados.efr !== \"\") {\r\n dadosForm.pes_orgaopublico = true;\r\n }\r\n dadosForm.pes_nome = dados.nome;\r\n if (!!dados.abertura) {\r\n let dia = dados.abertura.substring(0, 2);\r\n let mes = dados.abertura.substring(3, 5);\r\n let ano = dados.abertura.substring(6, 10);\r\n dadosForm.pej_datafundacao = moment(new Date(ano, mes, dia));\r\n }\r\n dadosForm.pej_nomefantasia = dados.fantasia;\r\n\r\n\r\n let listaEnderecos = [];\r\n let tipoEndereco = {};\r\n tipoEndereco.pais = \"BRASIL\";\r\n tipoEndereco.pse_id = 33;\r\n tipoEndereco.tpe_id = 4;\r\n tipoEndereco.tpe_descricao = \"COMERCIAL\";\r\n tipoEndereco.pee_numero = dados.numero;\r\n tipoEndereco.pee_ativo = true;\r\n tipoEndereco.pee_enderecoprincipal = true;\r\n tipoEndereco.cep_cep = retornaSoNumeros(dados.cep);\r\n tipoEndereco.pee_complemento = dados.complemento;\r\n tipoEndereco.bai_nome = dados.bairro;\r\n tipoEndereco.log_logradouro = dados.logradouro;\r\n tipoEndereco.cid_descricao = dados.municipio;\r\n tipoEndereco.est_sigla = dados.uf;\r\n tipoEndereco.enderecoCompleto = tipoEndereco.log_logradouro + ', ' + tipoEndereco.pee_numero + ' - ' + tipoEndereco.bai_nome + ' - ' + tipoEndereco.pee_complemento + ' - ' + tipoEndereco.cep_cep + ' - ' + tipoEndereco.cid_descricao + ' - ' + tipoEndereco.uf;\r\n listaEnderecos.push(tipoEndereco);\r\n\r\n let listaTelefones = [];\r\n if (dados.telefone !== \"\" && validarTelefone(retornaSoNumeros(dados.telefone).substring(0, 10))) {\r\n let tpt = {};\r\n tpt.tpt_id = 1;\r\n tpt.tpt_descricao = \"COMERCIAL\";\r\n tpt.psc_ativo = true;\r\n tpt.psc_numero = retornaSoNumeros(dados.telefone).substring(0, 10);\r\n tpt.psc_principal = true;\r\n listaTelefones.push(tpt);\r\n }\r\n\r\n let listaEmails = [];\r\n if (dados.email !== \"\" && validarEmail(dados.email)) {\r\n let email = {};\r\n email.pem_email = dados.email;\r\n email.pem_emailprincipal = true;\r\n email.pem_enviarboleto = false;\r\n email.pem_enviarcartacobranca = false;\r\n email.pem_enviarnfe = false;\r\n email.pem_enviarpromocao = false;\r\n email.pem_enviarvencparcela = false;\r\n email.pem_ativo = true;\r\n listaEmails.push(email);\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ telefones: listaTelefones }, ...{ emails: listaEmails }, ...{ enderecos: listaEnderecos } } } });\r\n formulario.setFieldsValue(dadosForm);\r\n\r\n }\r\n if (dados.status === \"OK\" && dados.situacao === \"BAIXADA\") {\r\n notification.warning({ message: 'Aviso', description: 'Empresa/CNPJ ' + dados.situacao + ' na receita!' });\r\n }\r\n }, (erro) => {\r\n console.log('ERRO:', erro);\r\n });\r\n }\r\n }\r\n function listarTransportadorCpfCnpj(cpfCnpj) {\r\n cpfCnpj = cpfCnpj.replaceAll('-', '').replaceAll('/', '').replaceAll('.', '');\r\n if (cpfCnpj === null || cpfCnpj === \"\") {\r\n return false;\r\n }\r\n api.get(`Transportador/BuscarTransportardorCpfCnpj/${cpfCnpj}`).then(\r\n (res) => {\r\n let valores = res.data;\r\n if (res.data.pes_fisicajuridica === 2) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n if (!!res.data && isObjetoDiffVazio(res.data)) {\r\n valores.trn_ativo = true;\r\n valores.pej_datafundacao = !!valores.pej_datafundacao ? moment(valores.pej_datafundacao) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n valores.pef_dataalteracao = !!valores.pef_dataalteracao ? moment(valores.pef_dataalteracao) : null;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n } else {\r\n if (cpfCnpj.length === 14) {\r\n setPessoaJuridica(true);\r\n receitaWS(cpfCnpj);\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n if (cpfCnpj.length === 14) {\r\n setPessoaJuridica(true);\r\n receitaWS(cpfCnpj);\r\n }\r\n }\r\n );\r\n }\r\n function alteraBaixadoRec(record) {\r\n setBaixadoRec(record);\r\n };\r\n\r\n\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n {!desabilitarCfpCnpj && \r\n Transportador Estrangeiro\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosEstrangeiro === false &&\r\n \r\n \r\n { validarFisicoJuridico(valor); validarCpfCnpjExistente(valor.currentTarget.value.replace(/\\D/g, '')) }}\r\n onChange={(event, type) => {\r\n setCpfCnpj(event.target.value);\r\n }} />\r\n \r\n \r\n }\r\n {!!dadosEstrangeiro &&\r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {pessoaJuridica && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {pessoaJuridica && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!pessoaJuridica && <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarCidades(UfEstado)} onSelectFunction={(UfEstado) => carregarCidades(UfEstado)}\r\n conteudo={\r\n est => (\r\n {est.est_sigla} - {est.est_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({cid.cid_id} - {cid.cid_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Transportador Ativo? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pessoaJuridica &&\r\n \r\n \r\n \r\n { alteraBaixadoRec(value) }}>Baixado da Receita?\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!pessoaJuridica && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Campos Campos Adicionais\r\n \r\n \r\n Adicione abaixo as informações adicionais.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Tabs, Typography, Row, Col, Form, Divider, Input, Select, Button, Radio, Checkbox, Switch, Tooltip, Modal, notification } from \"antd\";\r\nimport { CalculatorFilled, ExclamationCircleOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { ModalCalcularLimite } from \"../../components/modals/\";\r\nimport { drawerActions, listagemActions, manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport { FormGW, InputPreco, FormularioDinamico, Data, SelectPaginacao, InputPercentual } from \"../../components\";\r\nimport { compararDatas, consultaCNPJ, isObjetoDiffVazio, retornaSoNumeros, validarCnpj, validarCpf, HasValue, validarEmail, validarTelefone } from \"../../services/funcoes\";\r\nimport { OrgaoSubjacente, Endereco, Email, Telefone, Ocupacao, Nacionalidade, OutrosContatos, PessoasAutorizadas } from '../pessoas/pages';\r\nimport moment from \"moment\";\r\nimport { validarIE } from \"../../services/funcoesIE\";\r\nimport { trataRetornoFormularioDinamico, trataSetaDadosFormularioDinamico } from \"../../services/funcoes\";\r\nimport { func } from \"prop-types\";\r\nimport InputEmail from \"../../components/inputEmail\";\r\n\r\n\r\nexport default function ManutencaoClientes({ carregando, aoSalvar, editando, formulario, dadosOrcamento }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n const [pessoaJuridica, setPessoaJuridica] = useState(false);\r\n const [orgaoPublico, setOrgaoPublico] = useState(false);\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [dadosEstrangeiro, setDadosEstrangeiro] = useState(false);\r\n const [openModalCalcular, setOpenModalCalcular] = useState(false);\r\n const [cpfCnpj, setCpfCnpj] = useState(null);\r\n const [mask, setMask] = useState(\"\");\r\n const [listaCidades, setListaCidades] = useState(false);\r\n const [dadosRegimeTrib, setDadosRegimeTrib] = useState([]);\r\n const [elementosFormulario, setElementosFormulario] = useState([]);\r\n const [desabilitarCfpCnpj, setDesabilitarCpfCnpj] = useState(false);\r\n const [produtorRural, setProdutorRural] = useState(false);\r\n const [filtroCdd, setFiltroCdd] = useState(null);\r\n const switchEstrangeiro = () => {\r\n setDadosEstrangeiro(!dadosEstrangeiro)\r\n };\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.cli_id && editando.editando) {\r\n let lista = [];\r\n if (!!manutencao.dados.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: manutencao.dados.pef_rguf });\r\n }\r\n if (!!manutencao.dados.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: manutencao.dados.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n editando.setEditando(false);\r\n }\r\n\r\n formulario.setFieldsValue(manutencao.dados);\r\n\r\n }\r\n }, [ui.showDrawer, manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.cli_id) {\r\n listaCliente(manutencao.dados.cli_id);\r\n }\r\n if (!!manutencao.dados && !!manutencao.dados.cpfCnpj) {\r\n if (manutencao.dados.cpfCnpj.length > 11) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n\r\n }\r\n if (dadosOrcamento) {\r\n formulario.setFieldsValue({ pes_nome: dadosOrcamento.orc_nomecliente })\r\n }\r\n buscarRegimeTributario();\r\n carregaCamposPersonalizados();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n let _cpfCnpj = formulario.getFieldValue().cpfCnpj ? formulario.getFieldValue().cpfCnpj : manutencao.dados.cpfCnpj;\r\n _cpfCnpj = _cpfCnpj?.replace(/[^\\d]+/g, '');\r\n if (HasValue(_cpfCnpj)) {\r\n if (_cpfCnpj.length === 11) {\r\n if (validarCpf(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n }\r\n else if (_cpfCnpj.length === 14) {\r\n if (validarCnpj(_cpfCnpj)) {\r\n setDesabilitarCpfCnpj(true);\r\n }\r\n } else {\r\n setDesabilitarCpfCnpj(false);\r\n }\r\n }\r\n if (!!manutencao.dados.cpfCnpj) {\r\n if (manutencao.dados.cpfCnpj.length > 11) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n }\r\n } else {\r\n setFocusCpfCnpj();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => { if (!!elementosFormulario && elementosFormulario.length > 0) carregaDadosCamposAdicionais(); }, [elementosFormulario]);\r\n useEffect(() => {\r\n if (manutencao?.dados?.clientecampopersonalizados?.length > 0)\r\n carregaDadosCamposAdicionais();\r\n }, [manutencao.dados]);\r\n\r\n const switchPublico = () => {\r\n setOrgaoPublico(!orgaoPublico);\r\n };\r\n\r\n function carregarCidades(UfEstado) {\r\n if (!!UfEstado) {\r\n setListaCidades(true);\r\n setFiltroCdd(` &UfEstado=${UfEstado}`);\r\n }\r\n else {\r\n setListaCidades(false);\r\n }\r\n }\r\n function carregaCamposPersonalizados() {\r\n api.get(`CamposPersonalizados/ListarTodos?TipoEntidade=1&PageNumber=1&PageSize=1000&Order=+cap_ordem`).then(res => {\r\n if (res.status === 200) {\r\n setElementosFormulario(res.data.items);\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao carregar Campos personalizados!');\r\n }\r\n );\r\n };\r\n\r\n function setFocusCpfCnpj() {\r\n setTimeout(\r\n () => {\r\n try {\r\n let element = document.getElementById(\"cpf\");\r\n if (element) {\r\n element.focus();\r\n }\r\n } catch (error) {\r\n console.log('error :>> ', error);\r\n }\r\n }, 300);\r\n }\r\n\r\n function carregaDadosCamposAdicionais() { //Campos Adicionais\r\n let camposPersonalizados = { ...manutencao.dados };\r\n camposPersonalizados?.clientecampopersonalizados?.map(d => {\r\n let elemento = elementosFormulario.filter(f => f.cap_id === d.cap_id)[0];\r\n if (!!elemento)\r\n trataSetaDadosFormularioDinamico(formulario, elemento, d.ccp_valor);\r\n })\r\n }\r\n\r\n const salvarCamposAdicionais = (values) => {\r\n var camposAdicionais = [];\r\n elementosFormulario?.map((elemento) => {\r\n values = trataRetornoFormularioDinamico(values, elemento);\r\n let clientecampopersonalizados = { ...manutencao.dados };\r\n let forDados = clientecampopersonalizados.clientecampopersonalizados?.filter(f => f.cap_id == elemento.cap_id)[0];\r\n if (!!values[elemento.cap_nomeelemento]) {\r\n camposAdicionais.push({ ccp_id: !!forDados ? forDados.ccp_id : null, cli_id: values.cli_id, cap_id: elemento.cap_id, ccp_valor: String(values[elemento.cap_nomeelemento]) });\r\n }\r\n });\r\n return camposAdicionais;\r\n }\r\n\r\n const receitaWS = (cpfCnpj) => {\r\n if (!HasValue(formulario.getFieldsValue().pes_nome)) {\r\n consultaCNPJ(cpfCnpj).then((retorno) => {\r\n let dados = retorno;\r\n if (dados.status === \"OK\" && dados.situacao === \"ATIVA\") {\r\n let dadosForm = {};\r\n\r\n if (dados.efr !== \"\") {\r\n dadosForm.pes_orgaopublico = true;\r\n }\r\n dadosForm.pes_nome = dados.nome;\r\n if (!!dados.abertura) {\r\n let dia = dados.abertura.substring(0, 2);\r\n let mes = dados.abertura.substring(3, 5);\r\n let ano = dados.abertura.substring(6, 10);\r\n dadosForm.pej_datafundacao = moment(new Date(ano, mes, dia));\r\n }\r\n dadosForm.pej_nomefantasia = dados.fantasia;\r\n\r\n\r\n let listaEnderecos = [];\r\n let tipoEndereco = {};\r\n tipoEndereco.pais = \"BRASIL\";\r\n tipoEndereco.pse_id = 33;\r\n tipoEndereco.tpe_id = 4;\r\n tipoEndereco.tpe_descricao = \"COMERCIAL\";\r\n tipoEndereco.pee_numero = dados.numero;\r\n tipoEndereco.pee_ativo = true;\r\n tipoEndereco.pee_enderecoprincipal = true;\r\n tipoEndereco.cep_cep = retornaSoNumeros(dados.cep);\r\n tipoEndereco.pee_complemento = dados.complemento;\r\n tipoEndereco.bai_nome = dados.bairro;\r\n tipoEndereco.log_logradouro = dados.logradouro;\r\n tipoEndereco.cid_descricao = dados.municipio;\r\n tipoEndereco.est_sigla = dados.uf;\r\n tipoEndereco.enderecoCompleto = tipoEndereco.log_logradouro + ', ' + tipoEndereco.pee_numero + ' - ' + tipoEndereco.bai_nome + ' - ' + tipoEndereco.pee_complemento + ' - ' + tipoEndereco.cep_cep + ' - ' + tipoEndereco.cid_descricao + ' - ' + tipoEndereco.uf;\r\n listaEnderecos.push(tipoEndereco);\r\n\r\n let listaTelefones = [];\r\n if (dados.telefone !== \"\" && validarTelefone(retornaSoNumeros(dados.telefone).substring(0, 10))) {\r\n let tpt = {};\r\n tpt.tpt_id = 1;\r\n tpt.tpt_descricao = \"COMERCIAL\";\r\n tpt.psc_ativo = true;\r\n tpt.psc_numero = retornaSoNumeros(dados.telefone).substring(0, 10);\r\n tpt.psc_principal = true;\r\n listaTelefones.push(tpt);\r\n }\r\n\r\n let listaEmails = [];\r\n\r\n if (dados.email !== \"\" && validarEmail(dados.email)) {\r\n let email = {};\r\n email.pem_email = dados.email;\r\n email.pem_emailprincipal = true;\r\n email.pem_enviarboleto = false;\r\n email.pem_enviarcartacobranca = false;\r\n email.pem_enviarnfe = false;\r\n email.pem_enviarpromocao = false;\r\n email.pem_enviarvencparcela = false;\r\n email.pem_ativo = true;\r\n listaEmails.push(email);\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ telefones: listaTelefones }, ...{ emails: listaEmails }, ...{ enderecos: listaEnderecos } } } });\r\n formulario.setFieldsValue(dadosForm);\r\n\r\n }\r\n if (dados.status === \"OK\" && dados.situacao === \"BAIXADA\") {\r\n notification.warning({ message: 'Aviso', description: 'Empresa/CNPJ ' + dados.situacao + ' na receita!' });\r\n }\r\n }, (erro) => {\r\n console.log('ERRO:', erro);\r\n });\r\n }\r\n }\r\n\r\n function listaCliente(cli_id) {\r\n if (!!!cli_id) {\r\n return;\r\n }\r\n api.get(`Cliente/BuscarCliente/${cli_id}`).then(\r\n (res) => {\r\n let valores = res.data;\r\n if (res.data.pes_fisicajuridica === 2) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n if (!!res.data && isObjetoDiffVazio(res.data)) {\r\n res.data.pef_rguf = res.data.pef_rguf == \"\" ? null : res.data.pef_rguf;\r\n valores.pef_datanascimento = !!valores.pef_datanascimento ? moment(valores.pef_datanascimento) : null;\r\n valores.cli_datainiciallimitecred = !!valores.cli_datainiciallimitecred ? moment(valores.cli_datainiciallimitecred) : null;\r\n valores.cli_datafinallimitecred = !!valores.cli_datafinallimitecred ? moment(valores.cli_datafinallimitecred) : null;\r\n valores.pef_rgdataexpedicao = !!valores.pef_rgdataexpedicao ? moment(valores.pef_rgdataexpedicao) : null;\r\n valores.cli_dataalteracao = !!valores.cli_dataalteracao ? moment(valores.cli_dataalteracao) : null;\r\n valores.cli_datainclusao = !!valores.cli_datainclusao ? moment(valores.cli_datainclusao) : null;\r\n valores.pes_dataalteracao = !!valores.pes_dataalteracao ? moment(valores.pes_dataalteracao) : null;\r\n valores.pes_datainclusao = !!valores.pes_datainclusao ? moment(valores.pes_datainclusao) : null;\r\n setProdutorRural(!!valores.pef_produtorrural);\r\n setOrgaoPublico(valores.pes_orgaopublico);\r\n if (!!valores.pessoaorgaospublicos && valores.pessoaorgaospublicos.length > 0) {\r\n valores.listaOrgaoPublico = valores.pessoaorgaospublicos;\r\n }\r\n formulario.setFieldsValue(valores);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: valores } });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function salvarManutencao(values) {\r\n values = { ...values, ...formulario.getFieldValue() };\r\n if (!!manutencao.dados) {\r\n if (!!manutencao.dados.telefones && manutencao.dados.telefones.length > 0) {\r\n values.pessoatelefones = manutencao.dados.telefones;\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Favor informar o telefone' });\r\n return false;\r\n }\r\n if (!!manutencao.dados.enderecos && manutencao.dados.enderecos.length > 0) {\r\n if (manutencao.dados.enderecos.filter(end => (end.pee_ativo)).length > 0) {\r\n values.enderecos = manutencao.dados.enderecos;\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Favor informar um endereço ativo!' });\r\n return false;\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Favor informar o endereço' });\r\n return false;\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Favor informar o endereço e telefone' });\r\n return false;\r\n }\r\n if (!!values.cli_datainiciallimitecred && !!values.cli_datafinallimitecred) {\r\n if (compararDatas(values.cli_datafinallimitecred, values.cli_datainiciallimitecred, '<')) {\r\n notification.warning({ message: `Aviso!`, description: `Data Final de Crédito não pode ser menor que a Data Inicial de Crédito` });\r\n return false;\r\n }\r\n }\r\n if (!!values.pej_inscricaoestadual) {\r\n values.pej_inscuf = manutencao.dados.enderecos.filter((endereco) => { return endereco.pee_enderecoprincipal === true })[0].est_sigla;\r\n }\r\n if (!!values.pej_inscricaoestadual && !validarIE(values.pej_inscricaoestadual, values.pej_inscuf)) {\r\n notification.warning({ message: 'Aviso', description: 'Inscrição Estadual informada é inválida' });\r\n return false;\r\n }\r\n if (HasValue(values.pej_emailpessoacontato) && !validarEmail(values.pej_emailpessoacontato)) {\r\n notification.warning({ message: `Aviso!`, description: `E-mail invalido` });\r\n return false;\r\n }\r\n\r\n values.pes_orgaopublico = orgaoPublico;\r\n if (orgaoPublico) {\r\n values.pessoaorgaospublicos = !!manutencao.dados.listaOrgaoPublico && manutencao.dados.listaOrgaoPublico.length > 0 ? manutencao.dados.listaOrgaoPublico : [];\r\n }\r\n values.pef_datanascimento = !!values.pef_datanascimento ? moment(values.pef_datanascimento) : null;\r\n values.pessoaautorizada = !!manutencao.dados.pessoaautorizada && manutencao.dados.pessoaautorizada.length > 0 ? manutencao.dados.pessoaautorizada : [];\r\n values.pessoaemails = !!manutencao.dados.emails && manutencao.dados.emails.length > 0 ? manutencao.dados.emails : [];\r\n values.pessoasocupacoes = !!manutencao.dados.ocupacoes && manutencao.dados.ocupacoes.length > 0 ? manutencao.dados.ocupacoes : [];\r\n values.pessoaoutrocontatos = !!manutencao.dados.pessoaoutrocontatos && manutencao.dados.pessoaoutrocontatos.length > 0 ? manutencao.dados.pessoaoutrocontatos : [];\r\n values.pessoanacionalidades = !!manutencao.dados.listaNacionalidade && manutencao.dados.listaNacionalidade.length > 0 ? manutencao.dados.listaNacionalidade : [];\r\n\r\n values.cpfCnpj = values.cpfCnpj.replaceAll('.', '').replaceAll('/', '').replaceAll('-', '');\r\n if (!!dadosEstrangeiro) {\r\n values.pes_fisicajuridica = 3;\r\n } else {\r\n if (values.cpfCnpj.length === 11) {\r\n values.pes_fisicajuridica = 1;\r\n values.pef_cpf = values.cpfCnpj;\r\n if (!validarCpf(values.cpfCnpj)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n return false;\r\n }\r\n } else if (values.cpfCnpj.length === 14) {\r\n values.pes_fisicajuridica = 2;\r\n values.pej_cnpj = values.cpfCnpj;\r\n if (!validarCnpj(values.cpfCnpj)) {\r\n notification.warning({ message: 'Aviso', description: 'CNPJ informado é inválido' });\r\n return false;\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'CPF/CNPJ informado é inválido' });\r\n return false;\r\n }\r\n }\r\n\r\n values.regimeTributario = values.cli_regimetributariofiscal ? dadosRegimeTrib.filter((item) => (item.key === values.cli_regimetributariofiscal))[0] : null;\r\n\r\n values.clientecampopersonalizados = salvarCamposAdicionais(values);\r\n carregando(true);\r\n\r\n if (!!values.cli_id) {\r\n api.put(`Cliente/Editar`, values).then(\r\n (res) => {\r\n notification.success({ message: 'Aviso', description: `Cliente editado com sucesso!` });\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.error({ message: 'Erro ao salvar dados do Cliente.', description: JSON.stringify(erro.response) });\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n aoSalvar();\r\n }\r\n );\r\n } else {\r\n api.post(`Cliente/Incluir`, values).then(\r\n (res) => {\r\n notification.success({ message: 'Aviso', description: `Cliente incluído com sucesso!` });\r\n let idRetorno = res.data.pes_id;\r\n aoSalvar(idRetorno);\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.error({ message: 'Erro ao salvar dados do Cliente.', description: JSON.stringify(erro.response) });\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n }\r\n );\r\n }\r\n };\r\n\r\n function validarFisicoJuridico(event) {\r\n let valorCampo = event.currentTarget.value.replace(/\\D/g, '');\r\n if (valorCampo.length === 11) {\r\n if (!validarCpf(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CPF informado é inválido' });\r\n formulario.setFieldsValue({ cpfCnpj: \"\" })\r\n setFocusCpfCnpj();\r\n return false;\r\n }\r\n } else if (valorCampo.length === 14) {\r\n if (!validarCnpj(valorCampo)) {\r\n notification.warning({ message: 'Aviso', description: 'CNPJ informado é inválido' });\r\n formulario.setFieldsValue({ cpfCnpj: \"\" })\r\n setFocusCpfCnpj();\r\n return false;\r\n }\r\n }\r\n setPessoaJuridica(valorCampo.length === 14);\r\n };\r\n\r\n function validarCpfCnpjExistente(cpfCnpj) {\r\n if (cpfCnpj) {\r\n if (cpfCnpj.length === 14) {\r\n validarCnpjExiste(cpfCnpj);\r\n } else if (cpfCnpj.length === 11) {\r\n validarCpfExiste(cpfCnpj);\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'O CFP/CNPJ informado é inválido. Deve conter 11 ou 14 dígitos' });\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'O CFP/CNPJ não foi informado' });\r\n }\r\n };\r\n\r\n function validarCpfExiste(cpfCnpj) {\r\n api.get(`PessoaFisica/VerificarCpfExistente?cpf=${cpfCnpj}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_cliente) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"O CPF informado já esta cadastrado no sistema!\\n Deseja atualizar seus dados?\",\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n listarClienteCpfCnpj(cpfCnpj);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n }else{\r\n listarClienteCpfCnpj(cpfCnpj);\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: res.data });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function validarCnpjExiste(cpfCnpj) {\r\n api.get(`PessoaJuridica/VerificarCnpjExistente?cnpj=${cpfCnpj}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n if (res.data.pes_cliente) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"O CNPJ informado já esta cadastrado no sistema!\\n Deseja atualizar seus dados?\",\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n listarClienteCpfCnpj(cpfCnpj);\r\n },\r\n onCancel() {\r\n formulario.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n });\r\n } else {\r\n listarClienteCpfCnpj(cpfCnpj);\r\n }\r\n }else {\r\n receitaWS(cpfCnpj);\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function listarClienteCpfCnpj(cpfCnpj) {\r\n let dados = {};\r\n if (!!!cpfCnpj) {\r\n return false;\r\n }\r\n api.get(`Cliente/BuscarClienteCpfCnpj/${cpfCnpj}`).then(\r\n async res => {\r\n dados = res.data;\r\n if (!!dados && isObjetoDiffVazio(dados)) {\r\n setOrgaoPublico(dados.pes_orgaopublico);\r\n if (!!dados.orgaoPublico && dados.orgaoPublico.length > 0) {\r\n dados.listaOrgaoPublico = dados.orgaoPublico;\r\n }\r\n if (res.data.pes_fisicajuridica === 2) {\r\n setPessoaJuridica(true);\r\n } else {\r\n setPessoaJuridica(false);\r\n }\r\n dados.cli_ativo = true;\r\n dados.cli_clientecontribuinteicms = !!dados.pej_inscricaoestadual ? true : false;\r\n dados.cli_dataalteracao = !!dados.cli_dataalteracao ? moment(dados.cli_dataalteracao) : null;\r\n dados.cli_datainclusao = !!dados.cli_datainclusao ? moment(dados.cli_datainclusao) : null;\r\n dados.pef_dataalteracao = !!dados.pef_dataalteracao ? moment(dados.pef_dataalteracao) : null;\r\n dados.pef_datanascimento = !!dados.pef_datanascimento ? moment(dados.pef_datanascimento) : null;\r\n dados.pef_rgdataexpedicao = !!dados.pef_rgdataexpedicao ? moment(dados.pef_rgdataexpedicao) : null;\r\n dados.pes_dataalteracao = !!dados.pes_dataalteracao ? moment(dados.pes_dataalteracao) : null;\r\n dados.pes_datainclusao = !!dados.pes_datainclusao ? moment(dados.pes_datainclusao) : null;\r\n dados.pej_datafundacao = !!dados.pej_datafundacao ? moment(dados.pej_datafundacao) : null;\r\n dados.cli_datainiciallimitecred = !!dados.cli_datainiciallimitecred ? moment(dados.cli_datainiciallimitecred) : null;\r\n dados.cli_datafinallimitecred = !!dados.cli_datafinallimitecred ? moment(dados.cli_datafinallimitecred) : null;\r\n setProdutorRural(!!dados.pef_produtorrural);\r\n setOrgaoPublico(!!dados.pej_orgaop);\r\n let lista = [];\r\n if (!!dados.pef_rguf) {\r\n lista.push({ name: \"pef_rguf\", campo: \"Uf\", value: dados.pef_rguf });\r\n }\r\n if (!!dados.pef_codigocidadenascimento) {\r\n lista.push({ name: \"pef_codigocidadenascimento\", campo: \"IdCidade\", value: dados.pef_codigocidadenascimento });\r\n }\r\n if (lista.length > 0) {\r\n editando.setEditando(false);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n formulario.setFieldsValue(dados);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n if (cpfCnpj.length === 14) {\r\n setPessoaJuridica(true);\r\n receitaWS(cpfCnpj);\r\n }\r\n }\r\n );\r\n };\r\n\r\n function buscarRegimeTributario() {\r\n api.get(`Enum/Listar?nome=RegimeTributarioFiscal`).then(\r\n res => {\r\n setDadosRegimeTrib(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {!desabilitarCfpCnpj &&\r\n
\r\n \r\n Cliente Estrangeiro\r\n \r\n \r\n }\r\n \r\n \r\n {!!!dadosEstrangeiro &&\r\n \r\n \r\n {\r\n validarFisicoJuridico(valor); validarCpfCnpjExistente(valor.currentTarget.value.replace(/\\D/g, ''));\r\n }}\r\n onChange={(event, type) => {\r\n setCpfCnpj(event.target.value);\r\n setMask(type === \"CPF\");\r\n }} />\r\n \r\n \r\n }\r\n {!!dadosEstrangeiro &&\r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {!pessoaJuridica &&\r\n <>\r\n \r\n \r\n \r\n Feminino\r\n Masculino\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarCidades(UfEstado)} onSelectFunction={(UfEstado) => carregarCidades(UfEstado)}\r\n conteudo={\r\n est => (\r\n {est.est_sigla} - {est.est_descricao})\r\n } />\r\n \r\n \r\n\r\n \r\n \r\n ({cid.cid_id} - {cid.cid_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n {/* colocado no endereço quando produtor Rural \r\n {produtorRural && !pessoaJuridica &&\r\n \r\n \r\n {\r\n !!campo.currentTarget.value ? formulario.setFieldsValue({ cli_clientecontribuinteicms: true }) : formulario.setFieldsValue({ cli_clientecontribuinteicms: false })\r\n }} />\r\n \r\n \r\n } */}\r\n {pessoaJuridica &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n !!campo.currentTarget.value ? formulario.setFieldsValue({ cli_clientecontribuinteicms: true }) : formulario.setFieldsValue({ cli_clientecontribuinteicms: false })\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n É Órgão Público?\r\n \r\n \r\n \r\n \r\n Cliente Ativo? \r\n \r\n \r\n \r\n \r\n Contribuinte ICMS? \r\n \r\n \r\n \r\n \r\n { setProdutorRural(!produtorRural) }}> Produtor Rural \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Informações Informações Financeiras\r\n \r\n \r\n Adicione as informações financeiras aqui.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Não protestar? \r\n \r\n \r\n \r\n \r\n Venda somente a vista? \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Percentual de Desconto (%)\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pessoaJuridica &&\r\n \r\n \r\n Baixado da Receita? \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {!!orgaoPublico &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!dadosEstrangeiro &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Campos Campos Adicionais\r\n \r\n \r\n Adicione abaixo as informações adicionais.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Table, Modal } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { FiltroProdutoOrcamento } from \"../../components\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function TabItens({ form, dadosItens }) {\r\n\r\n const [quantidadeItens, setQuantidadeItens] = useState(0);\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [editando, setEditando] = useState(false);\r\n const [dadosEditando, setDadosEditando] = useState({});\r\n\r\n useEffect(() => {\r\n if (dadosItens.listaProduto.length > 0) {\r\n let total = 0;\r\n setQuantidadeItens(dadosItens.listaProduto.length);\r\n dadosItens.listaProduto.forEach((item) => {\r\n total += parseFloat(item.oit_qtde * item.oit_valorunitario);\r\n });\r\n setValorTotal(total);\r\n } else {\r\n setQuantidadeItens(0);\r\n setValorTotal(0);\r\n }\r\n }, [dadosItens.listaProduto]);\r\n\r\n function editarItem(registro) {\r\n setDadosEditando(registro);\r\n setEditando(true);\r\n };\r\n\r\n function removerItem(record) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: 'Deseja remover o item da nota?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n let dadosTemp = [...dadosItens.listaProduto];\r\n let dadosRet = dadosTemp.filter((item => item !== record));\r\n dadosItens.setListaProduto(dadosRet);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n {!!dadosItens.listaProduto && dadosItens.listaProduto.length > 0 &&
(\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n {pro_descricao}\r\n \r\n \r\n \r\n \r\n EAN: {!!pro_ean ? pro_ean : prg_ean}\r\n \r\n \r\n Grade: {grade}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: 40,\r\n align: 'center',\r\n render: ({ oit_qtde }) => (\r\n
\r\n {oit_qtde}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: 50,\r\n render: ({ oit_valorunitario }) => (\r\n
\r\n {FormatNumber(oit_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: 60,\r\n render: ({ total, oit_qtde, oit_valorunitario }) => (\r\n
\r\n {FormatNumber((oit_qtde * oit_valorunitario), true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 40,\r\n fixed: 'right',\r\n render: (record, e, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Quantidade Itens:\r\n \r\n \r\n {quantidadeItens}\r\n \r\n \r\n \r\n \r\n Valor Total dos Itens (R$):\r\n \r\n \r\n {FormatNumber(valorTotal, true)}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Typography, Row, Col, Form, Divider, InputNumber, Card, notification, Button, Select, Table, Input } from \"antd\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { validarNumeros } from \"../../services/funcoes\";\r\nimport { InputPreco, } from \"../../components\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\n\r\nexport default function TabFaturamentoNovo({ form, dadosItens, dadosVendedor, orcamento }) {\r\n\r\n const [valorOrcamento, setValorOrcamento] = useState(0);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [condicaoPagamento, setCondicaoPagamento] = useState([]);\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [pagamentoTotal, setPagamentoTotal] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [dadosItemEditando, setDadosItemEditando] = useState({})\r\n\r\n useEffect(() => {\r\n calcularFaturamento();\r\n if (orcamento != null) {\r\n setExibirDetalhes(true);\r\n } else {\r\n setExibirDetalhes(false);\r\n }\r\n }, [manutencao.dados])\r\n\r\n useEffect(() => {\r\n recalcularTotal();\r\n formasPagamento();\r\n }, [valorOrcamento]);\r\n\r\n function formasPagamento() {\r\n let pagamento = [...orcamento.orcamentoFormaPagamento];\r\n let dados = pagamento;\r\n let formulario = form.getFieldValue();\r\n dados.forEach((itens) => {\r\n let total = validarNumeros(formulario.valorTotal);\r\n let acrescimo = (itens.orf_percentualacrescimo * total) / 100;\r\n let desconto = (itens.orf_percentualdesconto * total) / 100;\r\n\r\n itens.total = total;\r\n itens.valoracrescimo = acrescimo;\r\n itens.valordesconto = desconto;\r\n itens.valorPagamento = (total + acrescimo) - desconto;\r\n })\r\n orcamento.setOrcamentoFormaPagamento(dados);\r\n };\r\n\r\n function desconto() {\r\n let formulario = form.getFieldValue();\r\n let valorTotal = parseFloat(formulario.valorTotal);\r\n let totalItens = parseFloat(formulario.totalItens);\r\n let desconto = 0;\r\n let acrescimo = 0;\r\n if (valorTotal < totalItens) {\r\n desconto = (formulario.totalItens - formulario.valorTotal);\r\n form.setFieldsValue({ valorDesconto: desconto.toFixed(2) });\r\n form.setFieldsValue({ valorAcrescimo: 0 });\r\n calcularAcrescimo(\"VALOR\");\r\n calcularDesconto(\"VALOR\");\r\n }\r\n if (valorTotal > totalItens) {\r\n acrescimo = (formulario.valorTotal - formulario.totalItens);\r\n form.setFieldsValue({ valorAcrescimo: acrescimo.toFixed(2) });\r\n form.setFieldsValue({ valorDesconto: 0 });\r\n calcularAcrescimo(\"VALOR\");\r\n calcularDesconto(\"VALOR\");\r\n }\r\n if (valorTotal === totalItens) {\r\n form.setFieldsValue({\r\n valorDesconto: 0, valorAcrescimo: 0, orf_percentualacrescimo: 0, orf_percentualdesconto: 0 \r\n })\r\n }\r\n }\r\n\r\n function calcularFaturamento() {\r\n let formulario = form.getFieldValue();\r\n let totalItens = 0;\r\n dadosItens.forEach((item) => {\r\n totalItens += item.oit_qtde * item.oit_valorunitario;\r\n });\r\n form.setFieldsValue({ totalItens: totalItens.toFixed(2) });\r\n form.setFieldsValue({ orc_valorfrete: validarNumeros(formulario.orc_valorfrete) });\r\n form.setFieldsValue({ valorSeguro: validarNumeros(formulario.valorSeguro) });\r\n form.setFieldsValue({ orc_valoroutros: validarNumeros(formulario.orc_valoroutros) })\r\n setValorOrcamento(parseFloat(totalItens));\r\n };\r\n\r\n function calcularDesconto(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorDesconto);\r\n let perc = validarNumeros(formulario.orf_percentualdesconto);\r\n let tot = parseFloat(valorOrcamento);\r\n let result = 0;\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorDesconto: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ orf_percentualdesconto: result.toFixed(2) });\r\n }\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function calcularAcrescimo(campo) {\r\n let formulario = form.getFieldValue();\r\n let valor = validarNumeros(formulario.valorAcrescimo);\r\n let perc = validarNumeros(formulario.orf_percentualacrescimo);\r\n let tot = (!!valorOrcamento ? parseFloat(valorOrcamento) : 0);\r\n let result = 0;\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ valorAcrescimo: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ orf_percentualacrescimo: result.toFixed(2) });\r\n }\r\n }\r\n recalcularTotal();\r\n };\r\n\r\n function recalcularTotal() {\r\n let formulario = form.getFieldValue();\r\n \r\n const percDesconto = formulario.orf_percentualdesconto ? parseFloat(formulario.orf_percentualdesconto) /100 : 0;\r\n const percAcresc = formulario.orf_percentualacrescimo ? parseFloat(formulario.orf_percentualacrescimo) /100 : 0;\r\n\r\n const valorFrete = validarNumeros(formulario.orc_valorfrete);\r\n const valorSeguro = validarNumeros(formulario.valorSeguro);\r\n const valorOutros = validarNumeros(formulario.orc_valoroutros);\r\n //Calcular valor com frete e outros\r\n const valorCFreteEOutros = valorOrcamento + valorFrete + valorSeguro + valorOutros;\r\n //Calcular descontos e acrescimos\r\n const calcuPercDesc = valorCFreteEOutros * percDesconto;\r\n const calcuPercAcresc = valorCFreteEOutros * percAcresc;\r\n //Calcular valor total e subtotal\r\n const valorTotal = valorCFreteEOutros - calcuPercDesc + calcuPercAcresc;\r\n const subTotal = valorOrcamento + valorFrete + valorSeguro + valorOutros;\r\n\r\n form.setFieldsValue({\r\n valorTotal: valorTotal.toFixed(2),\r\n subTotal: subTotal.toFixed(2)\r\n })\r\n\r\n setValorTotal(subTotal);\r\n form.setFieldsValue({ pfp_valor: valorTotal.toFixed(2) });\r\n };\r\n\r\n function vendedorDescMaxFinal() {\r\n let totalDesconto = 0;\r\n let totalValorDescontoItens = 0;\r\n dadosItens.forEach((itens) => {\r\n totalValorDescontoItens += parseFloat(itens.nfi_valordesconto);\r\n });\r\n let percentualDescontoConcedido = parseFloat(((totalValorDescontoItens * 100) / parseFloat(form.getFieldsValue().totalItens)).toFixed(2));\r\n totalDesconto = percentualDescontoConcedido + parseFloat(form.getFieldValue().orf_percentualdesconto);\r\n if (!!dadosVendedor && JSON.stringify(dadosVendedor) !== '{}' && !!dadosVendedor.ven_maximodesconto) {\r\n if (totalDesconto > (dadosVendedor.ven_maximodesconto * 100)) {\r\n notification.warning({ description: `O desconto máximo para este vendedor não pode exceder ${dadosVendedor.ven_maximodesconto * 100}% !`, message: 'Aviso' });\r\n form.setFieldsValue({ orf_percentualdesconto: (dadosVendedor.ven_maximodesconto * 100) - parseFloat(percentualDescontoConcedido) });\r\n calcularDesconto('PERC');\r\n }\r\n }\r\n };\r\n\r\n async function listarCondicao(fpg_id, dadosIniciais = false) {\r\n if (!dadosIniciais) {\r\n form.setFieldsValue({ cpg_id: null })\r\n }\r\n api.get(`CondicaoPagamento/Listar?codigoFormaPagamento=${fpg_id}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setCondicaoPagamento(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n //não mecher daqui pra cima realiza os calculos que ja estão certos\r\n\r\n async function adicionarLista() {\r\n let valorPgmto = parseFloat(form.getFieldValue().valorTotal);\r\n let pagamento = [...orcamento.orcamentoFormaPagamento]\r\n const fpgIncluida = pagamento.some(item => \r\n item.fpg_id === form.getFieldValue().fpg_id &&\r\n item.cpg_id === form.getFieldValue().cpg_id &&\r\n item.valorPagamento === valorPgmto\r\n );\r\n\r\n if (fpgIncluida) {\r\n notification.warning({ message: 'Aviso', description: 'Forma de Pagamento ja incluída!' });\r\n } else {\r\n if (editando) {\r\n if (!form.getFieldValue().fpg_id) {\r\n notification.warning({ message: 'Aviso', description: 'Informe a forma de pagamento!' });\r\n } else if (condicaoPagamento.length > 0 && !form.getFieldValue().cpg_id) {\r\n notification.warning({ message: 'Aviso', description: 'Informe uma condição de pagamento!' });\r\n } else {\r\n let novaFormaPagamento = (await api.get(`FormaPagamento/Get?id=${form.getFieldValue().fpg_id}`)).data;\r\n let novaCondicoesPagamento = condicaoPagamento.filter((condicao) => { return condicao.cpg_id === form.getFieldValue().cpg_id; })[0];\r\n let dadosTemp = [...orcamento.orcamentoFormaPagamento]\r\n let dadosItem = dadosItemEditando;\r\n\r\n let pagamentoTemp = {\r\n key: dadosItem.key,\r\n fpg_id: form.getFieldValue().fpg_id,\r\n fpg_descricao: novaFormaPagamento.fpg_descricao,\r\n cpg_descricao: !!novaCondicoesPagamento && novaCondicoesPagamento.cpg_descricao ? novaCondicoesPagamento.cpg_descricao: '',\r\n cpg_id: !!form.getFieldValue().cpg_id ? form.getFieldValue().cpg_id : null,\r\n valorPagamento: parseFloat(form.getFieldValue().valorTotal),\r\n valoracrescimo: form.getFieldValue().valorAcrescimo,\r\n valordesconto: form.getFieldValue().valorDesconto,\r\n orf_observacao: form.getFieldValue().orf_observacao,\r\n orf_percentualacrescimo: form.getFieldValue().orf_percentualacrescimo,\r\n orf_percentualdesconto: form.getFieldValue().orf_percentualdesconto,\r\n valoritens: form.getFieldValue().totalItens\r\n }\r\n\r\n dadosTemp = dadosTemp.map(item => item.key === dadosItem.key ? pagamentoTemp : item);\r\n orcamento.setOrcamentoFormaPagamento(dadosTemp)\r\n notification.success({ message: 'Aviso', description: 'Forma de Pagamento editada com sucesso!' });\r\n }\r\n setEditando(false);\r\n } else {\r\n let dadosTemp = [...orcamento.orcamentoFormaPagamento];\r\n let dados = {};\r\n let campo = form.getFieldsValue();\r\n if (!campo.fpg_id) {\r\n notification.warning({ message: 'Aviso', description: 'Informe uma forma de pagamento!' });\r\n } if (condicaoPagamento.length > 0 && !campo.cpg_id) {\r\n notification.warning({ message: 'Aviso', description: 'Informe uma condição de pagamento!' });\r\n } else {\r\n var condicao = condicaoPagamento.filter((condicao) => { return condicao.cpg_id === form.getFieldValue().cpg_id; })[0];\r\n //var condicao = await api.get(`CondicaoPagamneto/Listar?codigoCondicaoPagamento=${form.getFieldValue().cpg_id}`);\r\n var forma = await api.get(`FormaPagamento/Get?id=${form.getFieldValue().fpg_id}`);\r\n dados.key = dadosTemp.length + 1;\r\n dados.orc_id = form.getFieldValue().orc_id;\r\n dados.fpg_id = form.getFieldValue().fpg_id;\r\n dados.fpg_descricao = forma.data.fpg_descricao;\r\n dados.cpg_id = !!form.getFieldValue().cpg_id ? form.getFieldValue().cpg_id: null;\r\n dados.cpg_descricao = !!condicao && condicao.cpg_descricao ? condicao.cpg_descricao: '';\r\n dados.orf_percentualacrescimo = form.getFieldValue().orf_percentualacrescimo;\r\n dados.orf_percentualdesconto = form.getFieldValue().orf_percentualdesconto;\r\n dados.orf_observacao = form.getFieldValue().orf_observacao;\r\n dados.valoritens = form.getFieldValue().totalItens;\r\n dados.valordesconto = parseFloat(form.getFieldValue().valorDesconto);\r\n dados.valoracrescimo = parseFloat(form.getFieldValue().valorAcrescimo);\r\n dados.valorPagamento = parseFloat(form.getFieldValue().valorTotal);\r\n\r\n dadosTemp.push(dados); //adiciona os dados do novo orcamento a um array\r\n //dados.key = retornaSequencial(dadosTemp); //seta o key no orcamento cadastrado\r\n orcamento.setOrcamentoFormaPagamento(dadosTemp); //adiciona os dados temporarios a lista de orcamentos\r\n notification.success({ message: 'Aviso', description: 'Forma de Pagametno incluída com sucesso!' });\r\n }\r\n }\r\n }\r\n setExibirDetalhes(true);\r\n limparCampos();\r\n recalcularTotal();\r\n setEditando(false)\r\n };\r\n\r\n function cancelar() {\r\n limparCampos();\r\n recalcularTotal();\r\n setEditando(false);\r\n };\r\n\r\n function limparCampos() {\r\n form.setFieldsValue({\r\n fpg_id: null, cpg_id: null, orf_percentualdesconto: 0, orf_percentualacrescimo: 0,// orc_valorfrete: 0, orc_valoroutros: 0, \r\n valorAcrescimo: 0, valorDesconto: 0, orf_observacao: ''\r\n });\r\n };\r\n\r\n async function editarItem(registro) {\r\n setPagamentoTotal(false);\r\n setEditando(true);\r\n setDadosItemEditando(registro);\r\n\r\n await listarCondicao(registro.fpg_id, true)\r\n form.setFieldsValue({ fpg_id: registro.fpg_id });\r\n form.setFieldsValue({ cpg_id: registro.cpg_id });\r\n form.setFieldsValue({ valorTotal: registro.valorPagamento });\r\n form.setFieldsValue({ orf_observacao: registro.orf_observacao });\r\n form.setFieldsValue({ valorDesconto: registro.valordesconto });\r\n form.setFieldsValue({ valorAcrescimo: registro.valoracrescimo });\r\n form.setFieldsValue({ orf_percentualacrescimo: registro.orf_percentualacrescimo });\r\n form.setFieldsValue({ orf_percentualdesconto: registro.orf_percentualdesconto });\r\n };\r\n\r\n function removerItem(item) {\r\n let dadosTemp = [...orcamento.orcamentoFormaPagamento];\r\n dadosTemp = dadosTemp.filter((dados) => dados !== item);\r\n orcamento.setOrcamentoFormaPagamento(dadosTemp);\r\n setEditando(false)\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Resumo do Orçamento\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n { recalcularTotal(); }}\r\n />\r\n \r\n \r\n { recalcularTotal(); }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total do Orçamento (R$) {FormatNumber(valorTotal, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!pagamentoTotal && \r\n \r\n \r\n \r\n { listarCondicao(registro) }} conteudo={\r\n fp => ({fp.fpg_descricao})\r\n } />\r\n \r\n \r\n {condicaoPagamento.length > 0 && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onBlur={() => { vendedorDescMaxFinal(); }}\r\n onChange={() => { calcularDesconto('PERC'); }}\r\n />\r\n \r\n \r\n \r\n { vendedorDescMaxFinal(); }} onChange={() => { calcularDesconto('VALOR'); }} />\r\n \r\n \r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n onBlur={() => { calcularAcrescimo('PERC') }}\r\n />\r\n \r\n \r\n \r\n { calcularAcrescimo('VALOR') }}\r\n />\r\n \r\n \r\n { desconto() }}\r\n defaultValue={\"valorTotal\"} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n
\r\n {!!orcamento.orcamentoFormaPagamento && orcamento.orcamentoFormaPagamento.length > 0 &&\r\n
(\r\n
\r\n {fpg_descricao} {!!cpg_descricao ? `/ ${cpg_descricao}` : ''}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Desconto (R$)',\r\n width: 90,\r\n align: 'right',\r\n render: ({ valordesconto }) => (\r\n
\r\n {FormatNumber(valordesconto, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Acréscimo (R$)',\r\n width: 90,\r\n align: 'right',\r\n render: ({ valoracrescimo }) => (\r\n
\r\n {FormatNumber(valoracrescimo, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n width: 90,\r\n align: 'right',\r\n render: ({ valorPagamento }) => (\r\n
\r\n {FormatNumber(valorPagamento, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n width: 60,\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Obs.: { !!orf_observacao ? orf_observacao : \"Não Informado\" } \r\n \r\n \r\n \r\n ),\r\n }} dataSource={orcamento.orcamentoFormaPagamento} scroll={{ x: 900 }} />}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Select, Input, Steps, notification, Button, Tooltip } from \"antd\";\r\nimport { UserAddOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport moment from \"moment\";\r\nimport { useStateValue } from \"../../state\";\r\nimport SelectPaginado from \"../../components/selectPaginado\";\r\nimport { MaskFormat } from \"../../ValueObjects\";\r\nimport { Data, InputCpfCnpj, InputPhone } from \"../../components\";\r\nimport { TabItens, TabFaturamento } from \"./tabPage\";\r\nimport { validaForm } from \"../../services/funcoes\";\r\n\r\nexport default function ManutencaoOrcamento({ formulario, aoSalvar, vendedor, pages, proximaPag }) {\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const [pessoaFisica, setPessoaFisica] = useState(true);\r\n const [listaProduto, setListaProduto] = useState([]);\r\n const [orcamentoFormaPagamento, setOrcamentoFormaPagamento] = useState([])\r\n const [permiteValidar, setPermiteValidar] = useState(true);\r\n const [clienteSemCadastro, setClienteSemCadastro] = useState(false);\r\n const [dadosCliente, setDadosCliente] = useState({});\r\n const listaValidacoesDest = []\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n if (!!manutencao.dados.orcamentoFormaPagamento) {\r\n setOrcamentoFormaPagamento(manutencao.dados.orcamentoFormaPagamento);\r\n carregarDados();\r\n }\r\n manutencao.dados.orc_datainclusao = moment(manutencao.dados.orc_datainclusao);\r\n manutencao.dados.orc_datavalidade = moment(manutencao.dados.orc_datavalidade);\r\n let record = manutencao.dados;\r\n if (!!manutencao.dados.orc_id && listaProduto.length === 0) {\r\n carregarDados(record);\r\n buscarDadosOrcamento(record);\r\n }\r\n if (!!manutencao.dados.pef_cpf) {\r\n setPessoaFisica(true);\r\n }\r\n else if (!!manutencao.dados.pej_cnpj) {\r\n setPessoaFisica(false);\r\n }\r\n if (manutencao.dados.cli_id === null) {\r\n setClienteSemCadastro(true)\r\n }\r\n setDadosCliente(manutencao.dados);\r\n formulario.setFieldsValue(manutencao.dados);\r\n formulario.setFieldsValue({ pes_id: manutencao.dados.pes_nome })\r\n formulario.setFieldsValue({ cpf: manutencao.dados.pef_cpf })\r\n formulario.setFieldsValue({ cnpj: manutencao.dados.pej_cnpj })\r\n formulario.setFieldsValue({ orc_numerotelefone: manutencao.dados.pes_telefone})\r\n }\r\n if (!!manutencao.dados && !!manutencao.dados.orc_datainclusao) {\r\n formulario.setFieldsValue({ orc_datainclusao: (manutencao.dados.orc_datainclusao) });\r\n } else if (!!!formulario.getFieldsValue().orc_datainclusao) {\r\n formulario.setFieldsValue({ orc_datainclusao: moment(new Date()) });\r\n formulario.setFieldsValue({ orc_datavalidade: moment(new Date()).add(1, 'days') });\r\n }\r\n }, [manutencao.dados])\r\n\r\n useEffect(() => {\r\n if ((!!proximaPag.proximaPag || proximaPag.proximaPag === 0) && permiteValidar) {\r\n validarTrocaPg(proximaPag.proximaPag);\r\n } else {\r\n setPermiteValidar(true);\r\n }\r\n }, [proximaPag.proximaPag])\r\n\r\n const informarCliente = () => {\r\n setClienteSemCadastro(!clienteSemCadastro);\r\n if (!clienteSemCadastro) {\r\n formulario.setFieldsValue({ cpf: null, cnpj: null, pes_nome: null, pes_id: null })\r\n } \r\n };\r\n\r\n function carregarDados(record) {\r\n api.get(`OrcamentoItem/DadosItem?orcamento=${record.orc_id}`).then(\r\n (res) => {\r\n let itens = res.data;\r\n setListaProduto(itens);\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function buscarDadosOrcamento(record) {\r\n api.get(`OrcamentoFormaPagamento/Listar?orcamento=${record.orc_id}`).then(\r\n res => {\r\n let key = 1;\r\n res.data.forEach((itens) => {\r\n itens.key = key++;\r\n })\r\n setOrcamentoFormaPagamento(res.data);\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n\r\n async function retornaDadosCliente(dados) {\r\n if (!!dados) {\r\n let clienteSelecionado = (await api.get(`Cliente/BuscarByIdPessoa/${dados}`)).data;\r\n if (!!clienteSelecionado.pef_cpf) {\r\n setPessoaFisica(true);\r\n formulario.setFieldsValue({ cpf: clienteSelecionado.pef_cpf, cli_id: clienteSelecionado.cli_id });\r\n } else if (!!clienteSelecionado.pej_cnpj) {\r\n setPessoaFisica(false);\r\n formulario.setFieldsValue({ cnpj: clienteSelecionado.pej_cnpj, cli_id: clienteSelecionado.cli_id });\r\n }\r\n await api.get(`PessoaTelefone/ListaTelefone?IdPessoa=` + dados).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n const telefonePrincipal = res.data.find(telefone => telefone.psc_principal === true);\r\n if (telefonePrincipal) {\r\n formulario.setFieldsValue({ orc_numerotelefone: telefonePrincipal.psc_numero });\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n }\r\n\r\n function validarTrocaPg(proxPagina) {\r\n let paginaAtual = pages.tagPages;\r\n let listaValidacoes = [];\r\n\r\n if (paginaAtual < proxPagina) {\r\n switch (paginaAtual) {\r\n case 0:\r\n listaValidacoes = listaValidacoesDest;\r\n if (!!listaProduto && listaProduto.length === 0) {\r\n notification.warning({ message: 'Aviso', description: 'Orçamento deve ter ao menos 1 item!' });\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n formulario.validateFields(['']).then(() => {\r\n if (validaForm(formulario, listaValidacoes)) {\r\n pages.setTagPages(proxPagina);\r\n } else {\r\n proximaPag.setProximaPag(paginaAtual);\r\n }\r\n }).catch(() => {\r\n notification.warning({ message: 'Aviso', description: 'Preencha os campos obrigatórios!'});\r\n proximaPag.setProximaPag(paginaAtual);\r\n });\r\n } else {\r\n pages.setTagPages(proxPagina);\r\n }\r\n }\r\n\r\n function preencherDadosOrcamento() {\r\n let dadosForma = [];\r\n orcamentoFormaPagamento.forEach(forma => {\r\n let aux = { ...forma };\r\n aux.valorTotal = formulario.getFieldValue().valorTotal;\r\n aux.orc_id = formulario.getFieldValue().orc_id;\r\n aux.orc_numero = formulario.getFieldValue().orc_numero;\r\n aux.fpg_id = forma.fpg_id;\r\n aux.fpg_descricao = forma.fpg_descricao;\r\n aux.cpg_id = forma.cpg_id;\r\n aux.cpg_descricao = forma.cpg_descricao;\r\n aux.data_sincro = new Date();\r\n aux.orf_id = forma.orf_id;\r\n aux.cpg_descricao = forma.cpg_descricao;\r\n aux.orf_percentualdesconto = !!forma.orf_percentualdesconto ? forma.orf_percentualdesconto : 0;\r\n aux.orf_percentualacrescimo = !!forma.orf_percentualacrescimo ? forma.orf_percentualacrescimo : 0;\r\n dadosForma.push(aux);\r\n });\r\n return dadosForma;\r\n };\r\n\r\n function popularDadosItens() {\r\n let produtos = [];\r\n listaProduto.forEach(itens => {\r\n let aux = { ...itens };\r\n aux.orc_id = itens.orc_id;\r\n aux.pro_id = itens.pro_id;\r\n aux.oit_qtde = itens.oit_qtde;\r\n aux.data_sincro = new Date();\r\n aux.oit_valorunitario = itens.oit_valorunitario;\r\n aux.prg_id = itens.prg_id;\r\n aux.oit_desconto = itens.oit_desconto;\r\n aux.oit_id = itens.oit_id;\r\n produtos.push(aux);\r\n })\r\n return produtos;\r\n };\r\n\r\n async function salvarManutencao(values) {\r\n if (listaProduto.length > 0) {\r\n let dados = {};\r\n if (dadosCliente.cli_id !== undefined && dadosCliente.cli_id !== null) {\r\n var cliente = (await api.get(`Cliente/BuscarCliente/${dadosCliente.cli_id}`)).data;\r\n }\r\n else if (values.pes_id){\r\n var cliente = (await api.get(`Cliente/BuscarByIdPessoa/${values.pes_id}`)).data;\r\n }\r\n dados = { ...values };\r\n dados.orc_id = formulario.getFieldValue().orc_id;\r\n dados.ven_id = formulario.getFieldValue().ven_id;\r\n dados.cli_id = formulario.getFieldValue().cli_id;\r\n dados.orc_observacao = formulario.getFieldValue().orc_observacao;\r\n dados.orc_valorfrete = parseFloat(values.orc_valorfrete);\r\n dados.orc_numero = formulario.getFieldValue().orc_numero;\r\n dados.orc_valordesconto = values.valorDesconto;\r\n dados.orc_valoroutros = parseFloat(values.orc_valoroutros);\r\n dados.orc_datainclusao = formulario.getFieldValue().orc_datainclusao;\r\n dados.orc_datavalidade = formulario.getFieldValue().orc_datavalidade;\r\n dados.orc_responsavelorcamento = formulario.getFieldValue().orc_responsavelorcamento;\r\n dados.orc_numerotelefone = formulario.getFieldValue().orc_numerotelefone;\r\n dados.orcamentoformapagamento = preencherDadosOrcamento(orcamentoFormaPagamento);\r\n dados.orcamentoitem = popularDadosItens(listaProduto);\r\n dados.orc_nomecliente = values.pes_nome || cliente.pes_nome\r\n if (orcamentoFormaPagamento.length === 0) {\r\n notification.warning({ success: 'Aviso', description: 'Selecione uma Forma de Pagamento' })\r\n } else {\r\n if (moment(dados.orc_datavalidade).isBefore(moment(dados.orc_datainclusao))) {\r\n notification.warning({ message: 'Aviso', description: 'Data de validade não pode ser menor que a data de emissão!' });\r\n } else {\r\n try {\r\n var res = dados.orc_id ? await api.put('Orcamento/Editar', dados) : await api.post('Orcamento/Incluir', dados);\r\n if (res.status == 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Orçamento foram salvos com sucesso!\" });\r\n }\r\n } catch (error) {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(error.response) });\r\n } finally {\r\n carregarDados(true);\r\n aoSalvar();\r\n }\r\n }\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso!', description: 'É necessário informar pelo menos um item!' });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n retornaDadosCliente(dados)}\r\n conteudo={\r\n pc => ( {pc.cli_codigo} - {pc.pes_nome}
\r\n {(!!pc.pej_cnpj ? `CNPJ.: ${MaskFormat(pc.pej_cnpj, '', true)}` : !!pc.pef_cpf ? `CPF.: ${MaskFormat(pc.pef_cpf, '', true)}` : '')}\r\n
)\r\n } />\r\n
\r\n }\r\n {clienteSemCadastro && \r\n \r\n \r\n \r\n }\r\n {pessoaFisica && \r\n \r\n }\r\n {!pessoaFisica && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({v.pes_nome})\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.tagPages === 0 &&\r\n \r\n }\r\n {pages.tagPages === 1 &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}","import React,{ useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined, LeftOutlined, RightOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\nimport ManutencaoOrcamento from './manutencaoOrc';\r\nimport { useEffect } from 'react';\r\n\r\nexport default function Drawer({ carregarDados, vendedor }) {\r\n\r\n const [ formOrcamento ] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [ carregando, setCarregando ] = useState(false);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n const [tagPages, setTagPages] = useState(null);\r\n \r\n useEffect(() => {\r\n if (manutencao.dados !== null) {\r\n formOrcamento.setFieldsValue(manutencao.dados);\r\n } else {\r\n formOrcamento.resetFields();\r\n }\r\n }, [manutencao.dados])\r\n \r\n\r\n function fecharDrawer() {\r\n formOrcamento.resetFields();\r\n setTagPages(0);\r\n setProximaPag(null);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null}});\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false}});\r\n setCarregando(false);\r\n carregarDados();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n formOrcamento.resetFields();\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n destroyOnClose={true}\r\n fecharDrawer={() => {fecharDrawer()}}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Typography, Divider, Select, InputNumber, Modal } from \"antd\";\r\nimport { InputPercentual } from '../../components';\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nimport api from \"../../services/api\";\r\n\r\nexport default function TabEntrada({ formulario }) {\r\n\r\n const [listaCstPisCofins, setListaCSTPisCofins] = useState([]);\r\n const [cstpispj, setcstpispj] = useState(null);\r\n const [cstcofinspj, setcstcofinspj] = useState(null);\r\n const [cstpispf, setcstpispf] = useState(null);\r\n const [cstcofinspf, setcstcofinspf] = useState(null);\r\n\r\n useEffect(() => {\r\n if (!!formulario.getFieldValue(['cpc_entradacstpispj', 'cpc_id'])) {\r\n setcstpispj(formulario.getFieldValue(['cpc_entradacstpispj', 'cpc_id']));\r\n }\r\n\r\n if (!!formulario.getFieldValue(['cpc_entradacstcofinspj', 'cpc_id'])) {\r\n setcstcofinspj(formulario.getFieldValue(['cpc_entradacstcofinspj', 'cpc_id']));\r\n }\r\n\r\n if (!!formulario.getFieldValue(['cpc_entradacstpispf', 'cpc_id'])) {\r\n setcstpispf(formulario.getFieldValue(['cpc_entradacstpispf', 'cpc_id']));\r\n }\r\n\r\n if (!!formulario.getFieldValue(['cpc_entradacstcofinspf', 'cpc_id'])) {\r\n setcstcofinspf(formulario.getFieldValue(['cpc_entradacstcofinspf', 'cpc_id']));\r\n }\r\n api.get(`CstPisCofins/ListarEntradaSaida?tipo=E`).then(\r\n res => {\r\n setListaCSTPisCofins(res.data);\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (cstpispj && cstcofinspj)\r\n if (cstpispj !== cstcofinspj)\r\n Modal.warning({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: 'Os CST estão diferentes, normalmente o CST PIS e COFINS devem ser iguais - Verifique a situação!',\r\n okText: 'Ok',\r\n });\r\n }, [cstpispj, cstcofinspj]);\r\n\r\n useEffect(() => {\r\n if (cstpispf && cstcofinspf)\r\n if (cstpispf !== cstcofinspf)\r\n Modal.warning({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: 'Os CST estão diferentes, normalmente o CST PIS e COFINS devem ser iguais - Verifique a situação!',\r\n okText: 'Ok',\r\n });\r\n }, [cstpispf, cstcofinspf]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Entradas\" Entradas\r\n \r\n \r\n Defina a configuração do PIS e da COFINS para as entradas.\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setcstpispj(valor);\r\n if (formulario.getFieldValue(['cpc_entradacstpispj', 'cpc_id']) > 69 && formulario.getFieldValue(['cpc_entradacstpispj', 'cpc_id']) < 76)\r\n formulario.setFieldsValue({ pis_entradapercredbcpispj: 0, pis_entradapercpispj: 0 })\r\n }}>\r\n {listaCstPisCofins.map((item) => (\r\n {item.cpc_id} - {item.cpc_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n 69 && cstpispj < 76}\r\n label=\"% Redução Base de Cálculo\"\r\n name=\"pis_entradapercredbcpispj\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 69 && cstpispj < 76}\r\n label=\"% Alíquota do PIS\"\r\n name=\"pis_entradapercpispj\"\r\n rules={[{ required: (cstpispj < 70 && cstpispj != null) ? true : false, message: 'Informe o % alíquota do PIS' }]}\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 0, message: 'Selecione um CST da COFINS' }]}>\r\n {\r\n setcstcofinspj(valor);\r\n if (formulario.getFieldValue(['cpc_entradacstcofinspj', 'cpc_id']) > 69 && formulario.getFieldValue(['cpc_entradacstcofinspj', 'cpc_id']) < 76)\r\n formulario.setFieldsValue({ pis_entradapercredbccofinspj: 0, pis_entradaperccofinspj: 0 })\r\n }}>\r\n {listaCstPisCofins.map((item) => (\r\n {item.cpc_id} - {item.cpc_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n 69 && cstcofinspj < 76}\r\n label=\"% Redução Base de Cálculo\"\r\n name=\"pis_entradapercredbccofinspj\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 69 && cstcofinspj < 76}\r\n label=\"% Alíquota da COFINS\"\r\n rules={[{ required: (cstcofinspj < 70 && cstcofinspj != null) ? true : false, message: 'Informe o % alíquota do COFINS' }]}\r\n name=\"pis_entradaperccofinspj\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n \r\n {\r\n setcstpispf(valor);\r\n if (formulario.getFieldValue(['cpc_entradacstpispf', 'cpc_id']) > 69 && formulario.getFieldValue(['cpc_entradacstpispf', 'cpc_id']) < 76) formulario.setFieldsValue({ pis_entradapercredbcpispf: 0, pis_entradapercpispf: 0 })\r\n }}>\r\n {listaCstPisCofins.map((item) => (\r\n {item.cpc_id} - {item.cpc_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n 69 && cstpispf < 76}\r\n label=\"% Redução Base de Cálculo\"\r\n name=\"pis_entradapercredbcpispf\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 69 && cstpispf < 76}\r\n label=\"% Alíquota do PIS\"\r\n name=\"pis_entradapercpispf\"\r\n rules={[{ required: (cstpispf < 70 && cstpispf != null) ? true : false, message: 'Informe o % alíquota do PIS' }]}\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 0, message: 'Selecione um CST da COFINS' }]}>\r\n {\r\n setcstcofinspf(valor);\r\n if (formulario.getFieldValue(['cpc_entradacstcofinspf', 'cpc_id']) > 69 && formulario.getFieldValue(['cpc_entradacstcofinspf', 'cpc_id']) < 76) formulario.setFieldsValue({ pis_entradapercredbccofinspf: 0, pis_entradaperccofinspf: 0 })\r\n }}>\r\n {listaCstPisCofins.map((item) => (\r\n {item.cpc_id} - {item.cpc_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n 69 && cstcofinspf < 76}\r\n label=\"% Redução Base de Cálculo\"\r\n name=\"pis_entradapercredbccofinspf\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 69 && cstcofinspj < 76}\r\n label=\"% Alíquota do COFINS\"\r\n rules={[{ required: (cstcofinspf < 70 && cstcofinspf != null) ? true : false, message: 'Informe o % alíquota do COFINS' }]}\r\n name=\"pis_entradaperccofinspf\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Row, Col, Typography, Divider, Select, InputNumber, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { InputPercentual } from '../../components';\r\n\r\nimport api from \"../../services/api\";\r\n\r\nexport default function TabSaida({ formulario }) {\r\n\r\n const [listaCstPisCofins, setListaCSTPisCofins] = useState([]);\r\n const [listaNaturezaEfd, setListaNaturezaEfd] = useState([]);\r\n const [naturezaReceita, setNaturezaReceita] = useState(null);\r\n const [cstcofins, setcofins] = useState(null);\r\n\r\n useEffect(() => {\r\n if (!!formulario.getFieldValue(['cpc_saidacstpis', 'cpc_id']))\r\n setNaturezaReceita(formulario.getFieldValue(['cpc_saidacstpis', 'cpc_id']));\r\n\r\n if (!!formulario.getFieldValue(['cpc_saidacstcofins', 'cpc_id']))\r\n setcofins(formulario.getFieldValue(['cpc_saidacstcofins', 'cpc_id']));\r\n\r\n api.get(`CstPisCofins/ListarEntradaSaida?tipo=S`).then(\r\n res => {\r\n setListaCSTPisCofins(res.data);\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n api.get(`NaturezaReceitaEfd/Listar?cstPis=${naturezaReceita}&cstCofins=${naturezaReceita}`).then(\r\n res => {\r\n setListaNaturezaEfd(res.data.items);\r\n })\r\n }, [naturezaReceita]);\r\n\r\n useEffect(() => {\r\n if (cstcofins && naturezaReceita)\r\n if (cstcofins !== naturezaReceita)\r\n Modal.warning({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: 'Os CST estão diferentes, normalmente o CST PIS e COFINS devem ser iguais - Verifique a situação!',\r\n okText: 'Ok',\r\n });\r\n }, [cstcofins, naturezaReceita]);\r\n\r\n return (\r\n\r\n
\r\n \r\n
\r\n \r\n \"Saídas\" Saídas\r\n \r\n \r\n Defina a configuração do PIS e da COFINS para as saídas.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 3}\r\n label=\"% Redução Base de Cálculo\"\r\n name=\"pis_saidapercredbcpis\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 3}\r\n label=\"% Alíquota do PIS\"\r\n rules={[{ required: (naturezaReceita <= 3) ? true : false, message: 'Informe o % alíquota do PIS' }]}\r\n name=\"pis_saidapercpis\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 0), message: 'Informe o CST da COFINS' }]}>\r\n {\r\n setcofins(valor);\r\n if (formulario.getFieldValue(['cpc_saidacstcofins', 'cpc_id']) > 3) formulario.setFieldsValue({ pis_saidapercredbccofins: 0, pis_saidaperccofins: 0 })\r\n }}>\r\n {listaCstPisCofins.map((item) => (\r\n {item.cpc_id} - {item.cpc_descricao}\r\n ))}\r\n \r\n \r\n \r\n \r\n 3}\r\n label=\"% Redução Base de Cálculo\"\r\n name=\"pis_saidapercredbccofins\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n 3}\r\n label=\"% Alíquota do COFINS\"\r\n rules={[{ required: (naturezaReceita <= 3) ? true : false, message: 'Informe o % alíquota do COFINS' }]}\r\n name=\"pis_saidaperccofins\"\r\n defaultValue={0}\r\n min={0}\r\n max={100}\r\n />\r\n \r\n \r\n prevValues.cpc_saidacstpis !== currentValues.cpc_saidacstpis}>\r\n {({ getFieldValue }) => {\r\n if (getFieldValue(['cpc_saidacstpis', 'cpc_id']) > 3 && getFieldValue(['cpc_saidacstpis', 'cpc_id']) < 49)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, notification, Modal } from \"antd\";\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from \"../../actions\";\r\nimport { TabEntrada, TabSaida } from \"./tabPage\";\r\n\r\nexport default function ManutencaoTributacaoPisCofins({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const salvarTributacaoPisCofins = (values) => {\r\n\r\n\r\n if (!!values.pis_id && !!values.nat_id) {\r\n if (values.cpc_saidacstpis.cpc_id > 3) {\r\n values.nat_id = values.nat_id;//.map((x) => ({ nat_id: x }));\r\n }\r\n }\r\n\r\n if (!!!values.cpc_saidacstpis.cpc_id && !!!values.cpc_saidacstcofins.cpc_id && // não é permitido informar somente a descrição da tributação \r\n !!!values.cpc_entradacstcofinspf.cpc_id && !!!values.cpc_entradacstpispf.cpc_id\r\n && !!!values.cpc_entradacstpispj.cpc_id && !!!values.cpc_entradacstcofinspj.cpc_id) {\r\n carregando(false);\r\n Modal.warning({\r\n title: 'Atenção!',\r\n icon: ,\r\n content: 'Você deve informar ao menos uma configuração do PIS e da COFINS!',\r\n okText: 'Ok',\r\n });\r\n } else {\r\n values.cpc_entradacstcofinspf = !!values.cpc_entradacstcofinspf.cpc_id ? values.cpc_entradacstcofinspf.cpc_id : null;\r\n values.cpc_entradacstcofinspj = !!values.cpc_entradacstcofinspj.cpc_id ? values.cpc_entradacstcofinspj.cpc_id : null;\r\n values.cpc_entradacstpispf = !!values.cpc_entradacstpispf.cpc_id ? values.cpc_entradacstpispf.cpc_id : null;\r\n values.cpc_entradacstpispj = !!values.cpc_entradacstpispj.cpc_id ? values.cpc_entradacstpispj.cpc_id : null;\r\n values.cpc_saidacstcofins = !!values.cpc_saidacstcofins.cpc_id ? values.cpc_saidacstcofins.cpc_id : null;\r\n values.cpc_saidacstpis = !!values.cpc_saidacstpis.cpc_id ? values.cpc_saidacstpis.cpc_id : null;\r\n carregando(true);\r\n if (!!values.pis_id) {\r\n api.put(`TributacaoPisCofins/Editar`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: `Os dados da Tributação foram editados com sucesso!` });\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }).finally(() => {\r\n carregando(false);\r\n aoSalvar();\r\n formulario.resetFields();\r\n });\r\n } else {\r\n api.post(`TributacaoPisCofins/Incluir`, values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: `Os dados da Tributação foram adicionados com sucesso!` });\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }).finally(() => {\r\n carregando(false);\r\n aoSalvar();\r\n formulario.resetFields();\r\n });\r\n }\r\n\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoTributacaoPisCofins from './manutencao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerTributacaoPisCofins() {\r\n\r\n const [formTributacaoPisCofins] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formTributacaoPisCofins.setFieldsValue(manutencao.dados);\r\n }\r\n else {\r\n formTributacaoPisCofins.setFieldsValue({ pis_ativo: true });\r\n }\r\n\r\n function fecharDrawer() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pis_descricao'}})\r\n formTributacaoPisCofins.resetFields();\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n destroyOnClose={true}\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Row, Col, Input, Checkbox, Typography, Divider, Button, Table, Modal, notification } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { FormGW } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { ModalTributacaoIcms } from \"../../components/modals/\";\r\n\r\nexport default function ManutencaoTributacaoIcms({ formulario, carregando, aoSalvar }) {\r\n\r\n const [formModal] = Form.useForm();\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openModal, setOpenModal] = useState(false);\r\n const [listaOrigemDestino, setListaOrigemDestino] = useState([]);\r\n const [dadosOrigemDestino, setDadosOrigemDestino] = useState([]);\r\n\r\n const modalExcluir = (item) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n removerRegistro(item);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => carregaDados(), [])\r\n\r\n useEffect(() => {\r\n if (!!dadosOrigemDestino && dadosOrigemDestino.length > 0) {\r\n let list = [...listaOrigemDestino];\r\n let index = null;\r\n dadosOrigemDestino.forEach((item) => {\r\n if (!!item.iod_id) {\r\n index = list.findIndex(x => x.iod_id === item.iod_id);\r\n list[index] = item;\r\n } else {\r\n if (!!item.iod_novo) {\r\n index = list.findIndex(x => x.iod_novo === item.iod_novo);\r\n list[index] = item;\r\n } else {\r\n let possuiRegistro = list.find(x => x.iod_ufdestino === item.iod_ufdestino);\r\n if (possuiRegistro) {\r\n notification.error({ message: 'Já possui registro com a UF destino ' + item.iod_ufdestino });\r\n } else {\r\n item.iod_novo = item.key;\r\n list.push(item);\r\n }\r\n }\r\n }\r\n });\r\n setListaOrigemDestino(list);\r\n }\r\n }, [dadosOrigemDestino])\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && manutencao.dados.duplicar) {\r\n formulario.setFieldsValue({ icm_id: null });\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+icm_descricao' } });\r\n };\r\n\r\n\r\n function carregaDados() {\r\n if (!!formulario.getFieldValue().icm_id) {\r\n api.get(`TributacaoIcms/Buscar/${formulario.getFieldValue().icm_id}`).then(\r\n res => {\r\n setListaOrigemDestino(res.data.icmsorigemdestinos);\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n carregando(false)\r\n }\r\n );\r\n }\r\n }\r\n\r\n function removerRegistro(registro) {\r\n if (!!registro.iod_id) {\r\n api.delete(`icmsOrigemDestino/Excluir/${registro.iod_id}`).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados da Origem Destino foram excluídos com sucesso!\" });\r\n let lista = [...listaOrigemDestino];\r\n let index = lista.findIndex(i => i.iod_id === registro.iod_id);\r\n lista.splice(index, 1);\r\n setListaOrigemDestino(lista);\r\n }).catch(\r\n erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => carregando(false)\r\n );\r\n } else if (registro.iod_novo !== undefined) {\r\n let list = [...listaOrigemDestino];\r\n let listaTemp = list.filter((item) => (item.iod_novo !== registro.iod_novo));\r\n let iod = 0;\r\n listaTemp.forEach((item) => {\r\n item.iod_novo = iod++;\r\n item.key = iod++;\r\n });\r\n setListaOrigemDestino(listaTemp);\r\n }\r\n }\r\n\r\n function salvarManutencao(values) {\r\n values.icmsorigemdestinos = listaOrigemDestino;\r\n carregando(true);\r\n if (values.icm_id) {\r\n editarManutencao(values);\r\n } else {\r\n incluirManutencao(values)\r\n }\r\n };\r\n\r\n function editarManutencao(values) {\r\n api.put('TributacaoICMS/Editar', values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do ICMS foram salvos com sucesso!\" });\r\n aoSalvar();\r\n atualizarPagina();\r\n }).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n function incluirManutencao(values) {\r\n api.post('TributacaoIcms/Incluir', values).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do ICMS foram salvos com sucesso!\" });\r\n aoSalvar();\r\n atualizarPagina();\r\n }).catch(\r\n err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(\r\n () => {\r\n atualizarPagina();\r\n carregando(false);\r\n aoSalvar();\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Tributação Ativa\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \"Dados Dados de Origem e Destino\r\n \r\n \r\n Defina as Informações de Origem e Destino aqui.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n
\r\n {iod_uforigem}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'UF Destino',\r\n align: 'center',\r\n render: ({ iod_ufdestino }) => (\r\n
\r\n {iod_ufdestino}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CSOSN/CST',\r\n align: 'center',\r\n render: ({ cso_id, cst_id }) => (\r\n
\r\n {!!cso_id ? cso_id : cst_id}\r\n
\r\n ),\r\n },\r\n {\r\n title: '% ICMS',\r\n align: 'center',\r\n render: ({ iod_percicms }) => (\r\n
\r\n \r\n
\r\n {iod_percicms}%\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '% Diferimento',\r\n align: 'center',\r\n render: ({ iod_percdiferimentoicms }) => (\r\n
\r\n {iod_percdiferimentoicms}%\r\n
\r\n ),\r\n },\r\n {\r\n title: '% Redução BC',\r\n align: 'center',\r\n render: ({ iod_percicmsreducaobc }) => (\r\n
\r\n {iod_percicmsreducaobc}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n render: (item) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }} />\r\n \r\n setOpenModal(false)} dados={dadosOrigemDestino} setDados={setDadosOrigemDestino} formulario={formModal} listaOrigemDestino={listaOrigemDestino} /> \r\n \r\n \r\n );\r\n\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Modal, Form } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { DrawerNav } from '../../components';\r\nimport ManutencaoTributacaoIcms from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerTributacaoIcms() {\r\n\r\n const [formTributacaoIcms] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n if (manutencao.dados !== null) {\r\n formTributacaoIcms.setFieldsValue(manutencao.dados);\r\n } else {\r\n formTributacaoIcms.setFieldsValue({ icm_ativo: true });\r\n }\r\n\r\n\r\n function fecharDrawer() {\r\n formTributacaoIcms.resetFields();\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false } });\r\n }\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Row, Col, Form, Select, Input, Button, Table, Tag, Modal, Switch, InputNumber, Checkbox, Radio } from \"antd\";\r\nimport { CloseOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined, PlusOutlined, PrinterOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormGW, SelectPaginacao, SelectProduto } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions, manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { ModalGradeProduto } from \"../../components/modals\";\r\nimport { substituirCaracterEspecial } from \"../../services/funcoes\";\r\nimport { imprimirRawBase64 } from \"../../services/servidorImpressora\";\r\n\r\nexport default function ImprimirImpEtiqueta({ config }) {\r\n const [{ manutencao, listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [formulario] = Form.useForm();\r\n const [listaPreco, setListaPreco] = useState([]);\r\n const [listaProduto, setListaProduto] = useState([]);\r\n const [listaModelo, setListaModelo] = useState([]);\r\n const [listaItens, setListaItens] = useState([]);\r\n const [dadosGrade, setDadosGrade] = useState([]);\r\n const [abrirModalGrade, setAbrirModalGrade] = useState(false);\r\n const [dadosAdicionais, setDadosAdicionais] = useState(false);\r\n\r\n const modalExcluirItem = (record) => {\r\n Modal.confirm({\r\n title: 'Remover?',\r\n icon: ,\r\n content: `Deseja realmente remover o item selecionado?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n removerItem(record);\r\n }\r\n });\r\n };\r\n\r\n const modalImprimir = (record) => {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Confirma a Impressão das Etiquetas?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n montarEtiqueta(record);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n // buscarProdutos();\r\n buscarModelo();\r\n formulario.setFieldsValue({ modelo: config.modeloEtiqueta.met_id });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.dadosGrade) {\r\n buscarDadosGradeModal();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!listaSelectPaginacao?.itens) {\r\n setListaProduto(listaSelectPaginacao?.itens);\r\n }\r\n\r\n }, [listaSelectPaginacao?.itens])\r\n\r\n function buscarModelo() {\r\n api.get(`ModeloEtiqueta/Listar?filtro=&ordem=%2Bmet_descricao`).then(\r\n res => {\r\n let dados = res.data.items;\r\n setListaModelo(dados);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function popularDadosProduto(keyProd) {\r\n let listaItens = [...listaSelectPaginacao?.itens];\r\n //let produto = listaProduto.filter((prod) => (prod.pro_id === pro_id))[0];\r\n let produto = listaItens.find((prod) => prod.key === keyProd);\r\n if (!!produto.prg_id) {\r\n buscarGrade(produto.pro_id)\r\n }\r\n };\r\n\r\n async function buscarGrade(produto) {\r\n let grade = await api.get(`ProdutoGrade/ListarGradesProdutos?codigoProduto=${produto}`);\r\n\r\n if (!!grade.data && grade.data.length > 0) {\r\n setAbrirModalGrade(true);\r\n setDadosGrade(grade.data);\r\n }\r\n };\r\n\r\n function buscarDadosGradeModal() {\r\n let produtoGrade = manutencao.dados.dadosGrade.filter((produto) => (produto.quantidade > 0));\r\n let produtosIncluir = [...listaItens];\r\n produtoGrade.forEach(prodGrade => {\r\n let produto = listaProduto.filter((prod) => (prod.prg_id === prodGrade.prg_id))[0];\r\n produto.lpi_valorvenda = prodGrade.valorVenda;\r\n produto.quantidade = prodGrade.quantidade;\r\n produto.sequencia = !!produtosIncluir.length > 0 ? produtosIncluir[produtosIncluir.length - 1].sequencia + 1 : 1;\r\n produto.observacao = '';\r\n produto.prg_ean = prodGrade.ean;\r\n produtosIncluir.push(produto);\r\n });\r\n setListaItens(produtosIncluir);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, dadosGrade: null } } })\r\n limparCampos();\r\n };\r\n\r\n function adicionarItem() {\r\n let dados = [...listaItens];\r\n let obj = {};\r\n let editando = true;\r\n let prod = {};\r\n if (listaProduto.length == 1) {\r\n prod = listaProduto[0];\r\n } else {\r\n prod = listaProduto.find((produto) => (produto.key === formulario.getFieldValue().pro_id));\r\n }\r\n obj = dados.find((item) => (item.pro_id === prod.pro_id && item.prg_id === prod.prg_id))\r\n if (!!!obj) {\r\n obj = prod;\r\n obj.sequencia = !!dados.length > 0 ? dados[dados.length - 1].sequencia + 1 : 1;\r\n editando = false;\r\n }\r\n obj.quantidade = parseInt(formulario.getFieldValue().quantidade);\r\n obj.observacao = '';\r\n if (!editando) {\r\n dados.push(obj);\r\n }\r\n setListaItens(dados);\r\n limparCampos();\r\n\r\n };\r\n\r\n function editarItem(record) {\r\n let lista = [];\r\n if (!!record) {\r\n if (!!record.prg_id) {\r\n lista.push({ name: \"pro_id\", campo: \"IdGrade\", value: record.prg_id });\r\n } else {\r\n lista.push({ name: \"pro_id\", campo: \"IdProduto\", value: record.pro_id });\r\n }\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n formulario.setFieldsValue({ pro_id: 0, quantidade: record.quantidade, observacao: record.observacao });\r\n }\r\n };\r\n\r\n function removerItem(record) {\r\n let dados = listaItens.filter((item) => item.pro_id !== record.pro_id || (item.pro_id === record.pro_id && item.prg_id !== record.prg_id));\r\n setListaItens(dados)\r\n };\r\n\r\n function limparCampos() {\r\n formulario.setFieldsValue({ pro_id: null, quantidade: null, observacao: '' });\r\n };\r\n\r\n function montarEtiqueta(dadosRel) {\r\n\r\n let listaEtiqueta = [];\r\n let modelo = listaModelo.filter((modelo) => modelo.met_id === formulario.getFieldValue().modelo)[0];\r\n let comandosEnviarImp = [];\r\n listaItens.forEach((item) => {\r\n let indice = 0;\r\n while (indice < item.quantidade) {\r\n let etiqueta = {\r\n pro_codigo: item.pro_codigo,\r\n pro_codigoetiqueta: item.pro_codigoetiqueta,\r\n prg_codigoetiqueta: item.prg_codigoetiqueta,\r\n pro_referencia: item.pro_referencia,\r\n grade: item.grade,\r\n pro_ean: item.pro_ean,\r\n lpi_valorvenda: item.lpi_valorvenda,\r\n pro_descricao: item.pro_descricao\r\n }\r\n listaEtiqueta.push(etiqueta);\r\n indice++;\r\n }\r\n });\r\n\r\n let qtdComandos = parseInt(listaEtiqueta.length / modelo.met_colunas);\r\n for (let x = 0; x < qtdComandos; x++) {\r\n let comando = modelo.met_comando;\r\n for (let i = 1; i <= modelo.met_colunas; i++) {\r\n let indiceEtiqueta = i + (x * modelo.met_colunas);\r\n if (indiceEtiqueta <= listaEtiqueta.length) {\r\n let indice = indiceEtiqueta - 1;\r\n let configCodBarra = formulario.getFieldValue().persCodBarra;\r\n if (configCodBarra === 1) {\r\n comando = comando.replaceAll('@codigoBarras' + i, listaEtiqueta[indice].pro_codigo);\r\n } else if (configCodBarra === 2) {\r\n comando = comando.replaceAll('@codigoBarras' + i, !!listaEtiqueta[indice].pro_codigoetiqueta ? listaEtiqueta[indice].pro_codigoetiqueta : listaEtiqueta[indice].prg_codigoetiqueta);\r\n } else {\r\n comando = comando.replaceAll('@codigoBarras' + i, listaEtiqueta[indice].pro_ean);\r\n }\r\n comando = comando.replaceAll('@precoProduto' + i, 'R$ ' + parseFloat(listaEtiqueta[indice].lpi_valorvenda).toFixed(2).replace('.', ','));\r\n if (dadosAdicionais) {\r\n let entrada = 1;\r\n let qtdParc = formulario.getFieldValue().numeroParcelas\r\n if (formulario.getFieldsValue().possuiEntrada) {\r\n comando = comando.replaceAll('@formaPagamento' + i, `${qtdParc}x(${entrada}+${qtdParc - entrada})`);\r\n } else {\r\n comando = comando.replaceAll('@formaPagamento' + i, `${qtdParc}x`);\r\n }\r\n comando = comando.replaceAll('@valorPagamento' + i, FormatNumber(listaEtiqueta[indice].lpi_valorvenda / qtdParc, true));\r\n } else {\r\n comando = comando.replaceAll('@formaPagamento' + i, ' ');\r\n comando = comando.replaceAll('@valorPagamento' + i, ' ');\r\n }\r\n\r\n comando = comando.replaceAll('@codigoProduto' + i, !!listaEtiqueta[indice].pro_codigo ? listaEtiqueta[indice].pro_codigo : ' ');\r\n comando = comando.replaceAll('@codigoEtiqueta' + i, !!listaEtiqueta[indice].pro_codigoetiqueta ? listaEtiqueta[indice].pro_codigoetiqueta : ' ');\r\n comando = comando.replaceAll('@referenciaProduto' + i, !!listaEtiqueta[indice].pro_referencia ? listaEtiqueta[indice].pro_referencia : ' ');\r\n\r\n if (!!listaEtiqueta[indice].descricaograde) {\r\n comando = comando.replaceAll('@gradeProduto' + i + 'Linha1', listaEtiqueta[indice].descricaograde.substr(0, parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n if (listaEtiqueta[indice].descricaograde.length > parseInt(modelo.met_quantidadecaracteresdescricaoproduto)) {\r\n comando = comando.replaceAll('@gradeProduto' + i + 'Linha2', listaEtiqueta[indice].descricaograde.substr(parseInt(modelo.met_quantidadecaracteresdescricaoproduto), parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n } else {\r\n comando = comando.replaceAll('@gradeProduto' + i + 'Linha2', ' ');\r\n }\r\n } else {\r\n comando = comando.replaceAll('@gradeProduto' + i + 'Linha1', ' ');\r\n comando = comando.replaceAll('@gradeProduto' + i + 'Linha2', ' ');\r\n }\r\n\r\n comando = comando.replaceAll('@descricaoProduto' + i + 'Linha1', listaEtiqueta[indice].pro_descricao.substr(0, parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n\r\n if (listaEtiqueta[indice].pro_descricao.length > parseInt(modelo.met_quantidadecaracteresdescricaoproduto)) {\r\n comando = comando.replaceAll('@descricaoProduto' + i + 'Linha2', listaEtiqueta[indice].pro_descricao.substr(parseInt(modelo.met_quantidadecaracteresdescricaoproduto), parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n } else {\r\n comando = comando.replaceAll('@descricaoProduto' + i + 'Linha2', ' ');\r\n }\r\n\r\n comando = substituirCaracterEspecial(comando);\r\n\r\n } else {\r\n comando = comando.replaceAll('@codigoProduto' + i, ' ');\r\n comando = comando.replaceAll('@codigoEtiqueta' + i, ' ');\r\n comando = comando.replaceAll('@referenciaProduto' + i, ' ');\r\n comando = comando.replaceAll('@codigoBarras' + i, ' ');\r\n comando = comando.replaceAll('@precoProduto' + i, ' ');\r\n comando = comando.replaceAll('@formaPagamento' + i, ' ');\r\n comando = comando.replaceAll('@valorPagamento' + i, ' ');\r\n comando = comando.replaceAll('@gradeProduto' + i + 'Linha1', ' ');\r\n comando = comando.replaceAll('@gradeProduto' + i + 'Linha2', ' ');\r\n comando = comando.replaceAll('@descricaoProduto' + i + 'Linha1', ' ');\r\n comando = comando.replaceAll('@descricaoProduto' + i + 'Linha2', ' ');\r\n }\r\n }\r\n comandosEnviarImp.push(comando);\r\n }\r\n\r\n comandosEnviarImp.reduce(function (p, val) {\r\n return p.then(function () {\r\n\r\n return imprimirRawBase64(config.impressoraEtiqueta.name, val);\r\n });\r\n }, Promise.resolve()).then(\r\n Modal.confirm({\r\n title: 'Atenção',\r\n icon: ,\r\n content: 'A impressão das etiquetas ocorreu corretamente?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n Modal.confirm({\r\n title: 'Atenção',\r\n icon: ,\r\n content: 'Você deseja Limpar a Lista de Dados Temporarios de Impressão de Etiquetas?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirDadosTemporarios();\r\n }\r\n });\r\n }\r\n })\r\n );\r\n };\r\n\r\n function limparItens() {\r\n setListaItens([]);\r\n };\r\n\r\n function excluirDadosTemporarios() {\r\n api.delete(`Etiqueta/ExcluirDadosTemporarios`).then(\r\n res => {\r\n limparItens();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n EAN\r\n Código do Produto\r\n Código Etiqueta\r\n \r\n \r\n \r\n \r\n \r\n ({modelo.met_descricao})\r\n } />\r\n\r\n \r\n \r\n \r\n \r\n { popularDadosProduto(dados) }} ordem={'pro_id'} detalhes={true} selecionarRegUnico={\"key\"} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {listaItens.length > 0 &&
(\r\n
\r\n \r\n
\r\n \r\n {sequencia}\r\n \r\n \r\n \r\n {pro_codigo} - {pro_descricao}\r\n \r\n \r\n \r\n \r\n \r\n EAN: {!!pro_ean ? pro_ean : prg_ean}\r\n \r\n \r\n {!!descricaograde && \r\n \r\n Grade: {descricaograde}\r\n \r\n }\r\n \r\n \r\n )\r\n }, {\r\n title: 'Valor Unit. (R$)',\r\n align: 'right',\r\n render: ({ lpi_valorvenda }) => (\r\n
\r\n {FormatNumber(lpi_valorvenda, true)}\r\n
\r\n )\r\n }, {\r\n title: 'Quant. Etiqueta',\r\n align: 'center',\r\n width: 100,\r\n render: ({ quantidade }) => (\r\n
\r\n {quantidade}\r\n
\r\n )\r\n }, {\r\n title: 'Ações',\r\n fixed: 'right',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n { setDadosAdicionais(!dadosAdicionais) }} /> Informações Adicionais\r\n \r\n \r\n {dadosAdicionais &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Possui Entrada?\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n { setAbrirModalGrade(false); }} dados={dadosGrade} acrescimoDesconto={false} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Typography, Divider, notification, Spin, Form, Select, Card } from \"antd\";\r\nimport { DownloadOutlined, LoadingOutlined, MehOutlined, SyncOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport ImprimirImpEtiqueta from \"./manutencaoEtiqueta\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { carregarConfiguracoes, impressorasInstaladas, ServidorImpressoraOnline } from \"../../services/servidorImpressora\";\r\n\r\nexport default function ServidorImpressao({ formulario, carregando, aoSalvar, servidor, menuConfig = false }) {\r\n const [carregandoServer, setCarregandoServer] = useState(false);\r\n const [listaImpressoras, setListaImpressoras] = useState([]);\r\n const [listaModeloEtiqueta, setListaModeloEtiqueta] = useState([]);\r\n const [abrirManutencao, setAbrirManutencao] = useState(false);\r\n const [config, setConfig] = useState({});\r\n const [dadosConfiguracoes, setDadosConfiguracoes] = useState([]);\r\n const [form] = Form.useForm();\r\n useEffect(() => {\r\n verificarConfiguracao();\r\n listarImpressoras();\r\n listarModeloEtiqueta();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!config && isObjetoDiffVazio(config)) {\r\n let modelo = listaModeloEtiqueta.length > 0 ? listaModeloEtiqueta.filter((modelo) => modelo.met_id === config.modeloEtiqueta.met_id)[0] : { key: null };\r\n if (!!modelo) {\r\n form.setFieldsValue({ modeloEtiquetaImp: modelo.met_id });\r\n } else {\r\n form.setFieldsValue({ modeloEtiquetaImp: null });\r\n }\r\n }\r\n }, [listaModeloEtiqueta]);\r\n\r\n useEffect(() => {\r\n if (!!config && isObjetoDiffVazio(config)) {\r\n let impressoraEtiqueta = listaImpressoras.length > 0 ? listaImpressoras.filter((impressora) => impressora.name === config.impressoraEtiqueta.name)[0] : { key: null };\r\n let impressoraNFiscal = listaImpressoras.length > 0 ? listaImpressoras.filter((impressora) => impressora.name === config.impressoraNaoFiscal.name)[0] : { key: null };\r\n impressoraEtiqueta = !!impressoraEtiqueta ? impressoraEtiqueta :{key: null};\r\n impressoraNFiscal = !!impressoraNFiscal ? impressoraNFiscal :{key: null};\r\n form.setFieldsValue({ impEtiquetaUtilizar: impressoraEtiqueta.key, impressoraNaoFiscal: impressoraNFiscal.key })\r\n }\r\n }, [listaImpressoras]);\r\n\r\n async function verificarConfiguracao() {\r\n let ret = await carregarConfiguracoes();\r\n if (!!ret && !!ret.impressoraEtiqueta && !!ret.impressoraNaoFiscal && !!ret.modeloEtiqueta) {\r\n setConfig(ret);\r\n listarImpressoras();\r\n listarModeloEtiqueta();\r\n if (!menuConfig) {\r\n setAbrirManutencao(true);\r\n }\r\n\r\n }\r\n };\r\n\r\n function downloadServidor() {\r\n let link = document.createElement(\"a\");\r\n link.download = \"new-erp.print-server_0.0.1-x86_64.exe\";\r\n link.href = \"http://update.newerp.com.br/ServidorImpressao/new-erp.print-server_0.0.1-x86_64.exe\";\r\n link.click();\r\n };\r\n\r\n async function verificarServidorNovamente() {\r\n setCarregandoServer(true);\r\n let ret = await ServidorImpressoraOnline();\r\n servidor.setServidorOn(ret.online);\r\n setCarregandoServer(false);\r\n };\r\n\r\n async function listarImpressoras() {\r\n let retImp = await impressorasInstaladas();\r\n let key = 0;\r\n if (!!retImp) {\r\n retImp.forEach((impressora) => {\r\n impressora.key = key;\r\n key++;\r\n });\r\n setListaImpressoras(retImp);\r\n }\r\n };\r\n\r\n function listarModeloEtiqueta() {\r\n api.get(`ModeloEtiqueta/Listar?PageSize=200&PageNumber=1&ordem=met_descricao`).then(\r\n res => {\r\n setListaModeloEtiqueta(res.data.items);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function salvarConfiguracoes() {\r\n let dados = {\r\n impressoraEtiqueta: listaImpressoras.filter((imp) => (imp.key === form.getFieldValue().impEtiquetaUtilizar))[0],\r\n modeloEtiqueta: listaModeloEtiqueta.filter((imp) => (imp.met_id === form.getFieldValue().modeloEtiquetaImp))[0],\r\n impressoraNaoFiscal: listaImpressoras.filter((imp) => (imp.key === form.getFieldValue().impressoraNaoFiscal))[0],\r\n padraoDYMO: null\r\n };\r\n api.post(`http://localhost:3001/configuracao`, JSON.stringify(dados), { headers: { 'Content-type': 'application/json;charset=utf-8' } }).then(\r\n res => {\r\n notification.success({ description: 'Suas definições para o servidor de impressão do GestorWeb neste computador foram salvas com sucesso!', message: 'Servidor de Impressão Configurado' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n if (!!aoSalvar) {\r\n aoSalvar();\r\n }\r\n verificarConfiguracao();\r\n }\r\n );\r\n\r\n };\r\n\r\n return (\r\n
\r\n {!abrirManutencao &&
\r\n
\r\n \r\n
\r\n \r\n \"Servidor Servidor de Impressão Gestor Web\r\n \r\n \r\n O servidor de impressão do Gestor Web, é um software que deve ser instalado no computador para possibilitar a comunicação do Gestor Web em seu navegador de internet com as impressoras instaladas em seu computador.\r\n Desta forma, através do servidor de impressão, é possível realizar impressões como etiquetas de produtos e comprovantes não fiscais diretamente do Gestor Web.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {carregandoServer &&
\r\n \r\n
\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n Verificando Servidor de Impressão do Gestor Web. Aguarde...\r\n \r\n \r\n \r\n }\r\n {servidor.servidorOn &&
\r\n \r\n \r\n Configurações do Servidor de Impressão do Gestor Web para este computador\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!servidor.servidorOn && !carregandoServer &&
\r\n \r\n
\r\n \r\n OPS!
Parece que o servidor de impressão não está em execução no seu computador.\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Servidor\r\n \r\n \r\n \r\n O que posso fazer nesse caso?\r\n \r\n \r\n Verifique se o servidor de impressão esta instalado em seu computador e o inicie:

\r\n 1. Abra o menu iniciar em seu computador;
\r\n 2. Procure por: \"new-erp.print-server\";
\r\n 3. Abra o servidor de impressão (new-erp.print-server);
\r\n 4. Após abrir o programa, minimize a tela do servidor de impressão (new-erp.print-server), para que ele permaneça em execução em seu computador.\r\n
\r\n \r\n O servidor de impressão do Gestor Web não está instalado em seu computador?
\r\n
\r\n
\r\n \r\n 1. Realize o download do instalador do servidor de impressão CLICANDO AQUI;
\r\n 2. Após concluir o download, abra o instalador;
\r\n 3. Siga as instruções do assistente de instalação até concluir o processo;
\r\n 4. Ao concluir o processo de instalação, o servidor de impressão é iniciado automaticamente. Ao abrir, minimize a tela do servidor de impressão, para que ele permaneça em execução em seu computador;
\r\n 5. Não se preocupe, após instalado o servidor de impressão se configura para iniciar automaticamente quando você ligar seu computador.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n }\r\n {abrirManutencao && }\r\n \r\n );\r\n\r\n}","export default function formatDate(data) {\r\n if (data === '' || data === undefined)\r\n return;\r\n\r\n return data.split('/').reverse().join('-');;\r\n}","export default __webpack_public_path__ + \"static/media/i-telefone.322b548c.png\";","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Table, Row, Col, Divider } from 'antd';\r\nimport { ArrowUpOutlined, ArrowDownOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport Emitter from '../../services/emitter';\r\nimport { useStateValue } from '../../state';\r\nimport { listaTabelaDadosActions, listagemActions, manutencaoActions } from '../../actions';\r\nimport { isNotNullOrEmpty } from '../../services/funcoes';\r\n\r\nfunction TabelaDados({ colunas, url, paginacao = true, expandir, selecionarItem = false, ordenar = true, parametrosSelecionarItens,\r\n condicao = undefined, footerTabela, headerTabela, tipo = \"checkbox\", keySelecionaRadio = null }) {\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n const [lista, setLista] = useState([]);\r\n const [pagina, setPagina] = useState(1);\r\n const [registrosPorPagina, setRegistrosPorPagina] = useState(20);\r\n const [listaTbDados, setListaTbDados] = useState([]);\r\n const [{ listagem }, dispatch] = useStateValue();\r\n\r\n const configPaginacao = paginacao ? {\r\n current: pagina,\r\n pageSize: registrosPorPagina,\r\n total: lista.totalItems,\r\n showSizeChanger: true,\r\n onChange: (pg) => setPagina(pg),\r\n onShowSizeChange: (atual, porPagina) => setRegistrosPorPagina(porPagina)\r\n } : null;\r\n\r\n const configSelecionarItem = selecionarItem ?\r\n setCondicaoSelecionarItem()\r\n : null;\r\n\r\n const configSelecionarRadio = tipo == \"radio\" && selecionarItem ?\r\n setSelecionaRadio() : null;\r\n\r\n useEffect(() => {\r\n if (!!listaTbDados && listaTbDados.length > 0) {\r\n dispatch({ type: listaTabelaDadosActions.CHANGE, data: { itens: [...listaTbDados] } });\r\n }\r\n\r\n }, [listaTbDados])\r\n\r\n function setCondicaoSelecionarItem() {\r\n if (!!parametrosSelecionarItens && !!parametrosSelecionarItens.tipo) {\r\n if (parametrosSelecionarItens.tipo === \"change\") {\r\n return {\r\n onChange: (selectedRowKeys, selectedRows) => {\r\n parametrosSelecionarItens.funcao(selectedRowKeys, selectedRows);\r\n }\r\n }\r\n } else if (parametrosSelecionarItens.tipo === \"select\") {\r\n return {\r\n onSelect: (record, selected, selectedRows) => {\r\n parametrosSelecionarItens.funcao(record, selected, selectedRows);\r\n }\r\n }\r\n } else if (parametrosSelecionarItens.tipo === \"selectall\") {\r\n return {\r\n onSelectAll: (selected, selectedRows, changeRows) => {\r\n parametrosSelecionarItens.funcao(selected, selectedRows, changeRows);\r\n }\r\n }\r\n }\r\n }\r\n return \"\";\r\n };\r\n\r\n function setSelecionaRadio() {\r\n if (isNotNullOrEmpty(keySelecionaRadio)) {\r\n return {\r\n selectedRowKeys: [keySelecionaRadio]\r\n }\r\n }\r\n }\r\n\r\n function carregarDados() {\r\n if (listagem.ordem) {\r\n setCarregando(true);\r\n let parametrosUrl = '';\r\n if (paginacao === true) parametrosUrl = `&pageNumber=${pagina}&pageSize=${registrosPorPagina}`;\r\n if (ordenar === true && listagem?.ordem) parametrosUrl += `&order=${listagem.ordem}`;\r\n if (ordenar === true && listagem?.ordem2) parametrosUrl += `&order2=${listagem.ordem2}`;\r\n if (listagem?.filtro) parametrosUrl += listagem?.campoFiltro ? `&${listagem.campoFiltro}=${listagem.filtro}` : `&filtro=${listagem.filtro}`;\r\n if (listagem?.outrosFiltros) parametrosUrl += listagem.outrosFiltros;\r\n if (!!parametrosUrl) parametrosUrl = parametrosUrl.replace('&', '?');\r\n\r\n api.get(url + parametrosUrl).then((res) => {\r\n if (res.status === 200) {\r\n let dados = [];\r\n if (paginacao === true) {\r\n if (condicao !== undefined) {\r\n res.data.items = res.data.items.filter(condicao);\r\n }\r\n if (!!res.data && !!res.data.items) {\r\n res.data.items.map((item, idx) => {\r\n item.key = idx;\r\n dados.push(item);\r\n })\r\n } else {\r\n res.data.map((item, idx) => {\r\n item.key = idx;\r\n dados.push(item);\r\n })\r\n }\r\n } else {\r\n if (condicao !== undefined) {\r\n res.data.filter(condicao);\r\n }\r\n res.data.items.map((item, idx) => {\r\n item.key = idx;\r\n dados.push(item);\r\n })\r\n }\r\n\r\n setListaTbDados(dados);\r\n setLista(res.data);\r\n }\r\n }).finally(() => {\r\n setCarregando(false);\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!!listagem?.pagina) {\r\n setPagina(listagem.pagina);\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: listagem.filtro, pagina: null } })\r\n } else if (!paginacao || !!pagina) {\r\n carregarDados();\r\n }\r\n }, [listagem, pagina, registrosPorPagina])\r\n\r\n useEffect(() => {\r\n Emitter.on('AtualizaDados', (newValue) => carregarDados());\r\n console.log('Emitter On')\r\n }, []);\r\n useEffect(() => () => Emitter.off('AtualizaDados', (newValue) => console.log('Emitter Off')), []);\r\n\r\n return (\r\n
{\r\n return expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n );\r\n }}\r\n\r\n locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }}\r\n rowSelection={selecionarItem ? { type: tipo, ...configSelecionarItem, ...configSelecionarRadio } : null}\r\n scroll={{ x: 920 }} footer={footerTabela} showHeader={headerTabela} columnWidth={30} \r\n />\r\n )\r\n}\r\n\r\nTabelaDados.propTypes = {\r\n colunas: PropTypes.array.isRequired,\r\n url: PropTypes.string.isRequired,\r\n paginacao: PropTypes.bool\r\n}\r\n\r\nexport default TabelaDados;","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/i-dados.e9451d99.png\";","export default __webpack_public_path__ + \"static/media/i-cartao.42a596bd.png\";","import { DownloadOutlined } from \"@ant-design/icons\";\r\nimport { Upload, Row, Col, Button, message, Modal } from \"antd\";\r\nimport React, { useState } from \"react\";\r\n\r\nexport default function UploadFoto({ listaImagens, setListaImagens }) {\r\n const [previewImage, setPreviewImage] = useState('');\r\n const [previewVisible, setPreviewVisible] = useState(false);\r\n\r\n const onChange = ({ fileList: newFileList }) => {\r\n setListaImagens(newFileList);\r\n };\r\n\r\n const onPreview = async file => {\r\n if (!file.url && !file.preview) {\r\n file.preview = await getBase64(file.originFileObj);\r\n }\r\n setPreviewImage(file.url || file.preview);\r\n setPreviewVisible(true);\r\n };\r\n \r\n function getBase64(file) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n\r\n function beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n if (!isJpgOrPng) {\r\n message.error('Você só pode fazer upload de arquivos JPG/PNG!');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('A imagem deve ter menos de 2 MB!');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n }\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Arraste a Imagem ou\r\n
\r\n \r\n \r\n \r\n \r\n setPreviewVisible(false)}\r\n >\r\n \"Imagem\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/i-contato.2e8da8be.png\";","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { clearShoppingCart, deleteCartItem, deleteShoppingCart, editCartItemQuantity, getDateSincro, \r\ninitDatabase, loadShoppingCartItems, clearDateSincro } from \"../../services/CarrinhoDB\";\r\nimport { DownOutlined, ShopOutlined, ShoppingOutlined, ToolOutlined, UpOutlined } from \"@ant-design/icons\";\r\nimport { DeleteOutlineOutlined } from \"@material-ui/icons\";\r\nimport api from \"../../services/api\";\r\nimport { getClienteCat } from \"../../services/auth\";\r\nimport { DrawerPedidoCat } from \"../../components\";\r\nimport { Button } from \"antd\";\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nexport default function CarrinhoCatalogo() {\r\n const [carrinhoItens, setCarrinhoItens] = useState([]);\r\n const [atualizarCarrinho, setAtualizarCarrinho] = useState(false);\r\n const [total, setTotal] = useState(0);\r\n const [precoItem, setPrecoItem] = useState(0);\r\n const [dateSincro, setDateSincro] = useState(0);\r\n const [openDrawerPedido, setOpenDrawerPedido] = useState(false);\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n initDatabase();\r\n loadShoppingCartItems(setCarrinhoItens);\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n loadShoppingCartItems(setCarrinhoItens);\r\n updateTotal();\r\n }, [atualizarCarrinho]);\r\n\r\n useEffect(() => {\r\n getDateSincro(setDateSincro);\r\n if (dateSincro) {\r\n var date = new Date();\r\n date = date.getTime();\r\n\r\n var eq = date - dateSincro;\r\n if (eq >= 86400000) {\r\n\r\n buscarPreco();\r\n }\r\n }\r\n updateTotal();\r\n }, [carrinhoItens])\r\n\r\n const deleteItem = useCallback((codigoPeca) => {\r\n deleteCartItem(codigoPeca);\r\n // setValorFinalPorItem(prevState => {\r\n // const novoEstado = { ...prevState };\r\n // delete novoEstado[codigoPeca];\r\n // return novoEstado;\r\n // });\r\n setAtualizarCarrinho(prevState => !prevState);\r\n }, []);\r\n\r\n const deleteAllItems = useCallback(() => {\r\n clearShoppingCart();\r\n clearDateSincro();\r\n setAtualizarCarrinho(prevState => !prevState)\r\n })\r\n\r\n const editItemQuantity = useCallback((codigoPeca, qtd, more) => {\r\n editCartItemQuantity(codigoPeca, more ? qtd + 1 : qtd - 1);\r\n // buscarDados(codigoPeca, more ? qtd + 1 : qtd - 1);\r\n setAtualizarCarrinho(prevState => !prevState);\r\n }, []);\r\n\r\n const buscarPreco = () => {\r\n var enviarPedido = ConcatPedido(carrinhoItens);\r\n api.post('Cat007/AtualizarCarrinho', enviarPedido)\r\n .then(\r\n res => {\r\n var precoFinal = res.data.map(x => x.precoFinal);\r\n setPrecoItem(precoFinal);\r\n }\r\n )\r\n .catch(\r\n console.error(\"Erro na busca pelo preco dos itens.\")\r\n )\r\n }\r\n\r\n const updateTotal = () => {\r\n const newTotal = carrinhoItens.reduce((acc, item) => {\r\n return acc + item.valor * item.Qtd;\r\n }, 0);\r\n setTotal(newTotal.toFixed(2));\r\n };\r\n\r\n const ConcatPedido = (Itens) => {\r\n var client = getClienteCat();\r\n var itemsCart = Itens.map(x => x.codigo)\r\n var object = {\r\n CodigoCliente: client,\r\n Itens: itemsCart\r\n }\r\n return object;\r\n }\r\n\r\n const concluirPedido = () => {\r\n try{\r\n buscarPreco(carrinhoItens);\r\n }\r\n catch{\r\n console.error()\r\n }\r\n finally {\r\n setOpenDrawerPedido(true);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Orçamento

\r\n
\r\n {carrinhoItens.map(item => (\r\n
\r\n
{item.codigo}
\r\n
\r\n {item.descricao}\r\n
\r\n \r\n
\r\n

{(item.valor * item.Qtd).toFixed(2)}

\r\n
\r\n \r\n
\r\n ))}\r\n {carrinhoItens.length < 1 &&\r\n \r\n Vazio :/\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n

Faturamento Total

\r\n
\r\n

R$

\r\n {total}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Card, Descriptions, Tooltip, Button, Row, Col, Tag, Popconfirm } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined } from '@ant-design/icons';\r\n\r\nimport { TiposElementosFormulario } from './pages';\r\n\r\nexport default function ItemFormulario({ elemento, fnEditar = () => {}, fnExcluir = () => {} }) {\r\n\r\n function RetornaDescricaoElementoFormulario(tipo) {\r\n let retorno = TiposElementosFormulario.filter(el => el.tipo === tipo);\r\n return (retorno.length > 0 ? retorno[0].descricao : \"\");\r\n }\r\n \r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n {RetornaDescricaoElementoFormulario(elemento.widget)}\r\n \r\n \r\n {elemento.key}\r\n \r\n \r\n \r\n {elemento.required ? \"SIM\" : \"NÃO\"}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n fnExcluir()} okText=\"Sim\" cancelText=\"Não\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n\r\n const notificacoes = (\r\n \r\n \r\n \r\n \r\n \r\n Notificações\r\n\r\n \r\n \"PDV\r\n \r\n \r\n PDV Web\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const infoCliCatalogo = (\r\n \r\n \r\n
\r\n \r\n \r\n Cliente:  \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n\r\n\r\n const [color, setColor] = useState({\r\n primaryColor: '#0053a6',\r\n });\r\n\r\n function onColorChange(nextColor) {\r\n const mergedNextColor = {\r\n ...color,\r\n ...nextColor,\r\n };\r\n setColor(mergedNextColor);\r\n }\r\n\r\n const teste = (teste) => {\r\n setClienteCatalogo(teste)\r\n }\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Gestor\r\n \r\n \r\n \r\n
\r\n \r\n Usuário: {getNomeUsuario()} \r\n \r\n
\r\n
\r\n \r\n \r\n Você está acessado a empresa:  \r\n \r\n \r\n {!getStatusFilial() && LOCAL INATIVO (SOMENTE CONSULTA)}\r\n \r\n
\r\n \r\n {catalogo && infoCliCatalogo}\r\n \r\n \r\n {!catalogo && \r\n \r\n \r\n \r\n {\r\n onColorChange({\r\n primaryColor: hex,\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {avatar}\r\n \r\n \r\n }\r\n \r\n setOpenPaginaAbertas(false)} />\r\n setOpenModalEmpresaFilial(false)} />\r\n setOpenModalCliente(false)} teste={true} />\r\n \r\n { efetuarBuscaGlobal(value) }} size=\"middle\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n
\r\n
\r\n {carrinhoItens.map(item => (\r\n
\r\n
{item.codigo}
\r\n {item.descricao}\r\n Valor: R$ {item.valor}\r\n
\r\n Quantidade:\r\n

{item.Qtd}

\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
*/}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n setOpenDrawerSinc(false)}\r\n >\r\n \r\n \r\n \r\n\r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Icon } from '@ant-design/compatible';\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { setTelaAnterior } from \"../../services/auth\";\r\n\r\nexport default function LinkNav(props) {\r\n \r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const functionClick = () => {\r\n if (!!props.onClick) {\r\n props.onClick();\r\n }\r\n setTelaAnterior(props.patch);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {props.label}\r\n \r\n \r\n );\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Layout, Menu, Row, Col, Input } from \"antd\";\r\nimport { Icon } from '@ant-design/compatible';\r\n\r\nimport \"./index.less\";\r\nimport LinkNav from \"../linkNav\";\r\nimport api from \"../../services/api\";\r\nimport { validarPermissaoMenu } from \"../../services/permissoes\";\r\nimport { listagemActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { getTelaAnterior } from \"../../services/auth\";\r\nimport apiWeb from \"../../services/apiWeb\";\r\n\r\nexport default function MenuPage({ incollapsed, catalogo = false }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [listaMenu, setListaMenu] = useState([]);\r\n const [openKeys, setOpenKeys] = useState([]);\r\n const rootKeys = [\"sub0\", \"sub1\", \"sub2\", \"sub3\", \"sub4\", \"sub5\", \"sub6\", \"sub7\", \"sub8\", \"sub9\", \"sub10\", \"sub11\", \"sub12\", \"sub13\", \"sub14\", \"sub15\", \"sub16\", \"sub17\", \"sub18\",\"sub19\"];\r\n\r\n const onOpenChange = (items) => {\r\n const latestOpenKey = items.find((key) => openKeys.indexOf(key) === -1);\r\n if (rootKeys.indexOf(latestOpenKey) === -1) {\r\n setOpenKeys(items);\r\n } else {\r\n setOpenKeys(latestOpenKey ? [latestOpenKey] : openKeys);\r\n }\r\n };\r\n\r\n function CarregaMenu() {\r\n apiWeb.get(`GrupoMenu/RetornaMenu?filtro&IdModulo=${catalogo ? '3' : '2'}`).then((res) => {\r\n if (res.status === 200) {\r\n setListaMenu(res.data);\r\n }\r\n }).catch((erro) => console.error(erro));\r\n }\r\n\r\n function AtzBreadcrumb(item) {\r\n let elemento = item.item.props.elementRef.current;\r\n let elementoPai = elemento.parentNode.parentNode.firstChild;\r\n if (elemento.innerText !== \"Home\") {\r\n localStorage.setItem('@GestorWeb-Breadcrumb', '|' + elementoPai.innerText + '|' + elemento.innerText);\r\n } else {\r\n localStorage.setItem('@GestorWeb-Breadcrumb', '|' + elemento.innerText);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n CarregaMenu()\r\n /*if (catalogo) {\r\n let keys = openKeys;\r\n keys.push(\"sub18\");\r\n setOpenKeys(keys);\r\n }*/\r\n }, []);\r\n useEffect(() => {\r\n if (!incollapsed) {\r\n setOpenKeys(openKeys);\r\n }\r\n }, [openKeys, incollapsed]);\r\n\r\n function pesquisarMenu(e) {\r\n if (!!!e.target.value) {\r\n CarregaMenu();\r\n } else {\r\n api.get(`GrupoMenu/RetornaMenu?filtro=${e.target.value}&IdModulo=${catalogo ? '3' : '2'}`).then(\r\n res => {\r\n let dados = [...res.data];\r\n dados.forEach((menu) => {\r\n menu.subMenu = menu.subMenu.filter((subMenu) => (subMenu.titulo.toLowerCase().indexOf(e.target.value.toLowerCase().trim()) > -1));\r\n });\r\n dados = dados.filter((menu) => (menu.subMenu.length > 0));\r\n setListaMenu(dados);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n <>\r\n \r\n \r\n \r\n { pesquisarMenu(valor) }} onBlur={(valor) => { pesquisarMenu(valor) }} allowClear />\r\n \r\n \r\n \r\n AtzBreadcrumb(item)}>\r\n {\r\n if (catalogo) {\r\n window.location = \"/catalogo#/\"\r\n } else {\r\n window.location = \"/Home#/\"\r\n }\r\n }}\r\n title={\r\n \r\n \r\n Home \r\n \r\n } className=\"home\">\r\n \r\n {listaMenu.map(menu => (\r\n \r\n \r\n {menu.titulo} \r\n \r\n }>\r\n {menu.subMenu.map(itemMenu => {\r\n return itemMenu.pagina.substring(0, 4) !== 'http' ?\r\n (\r\n \r\n {\r\n if (itemMenu.pagina !== getTelaAnterior()) {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: ``, filtro: '', ordem: '' } });\r\n }\r\n }} />\r\n \r\n ) :\r\n (\r\n \r\n )\r\n })\r\n }\r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n\r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Breadcrumb } from \"antd\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\nimport { HomeOutlined } from \"@ant-design/icons\";\r\n\r\n\r\nexport default function BreadcrumbPage({listaTitulo}) {\r\n const [breadcrumb] = useState((localStorage.getItem('@GestorWeb-Breadcrumb') !== null)? localStorage.getItem('@GestorWeb-Breadcrumb') : '');\r\n const [htmlBreadcrumb, setHtmlBreadcrumb] = useState('');\r\n let location = useLocation();\r\n \r\n function MontaBreadcrumb() {\r\n let arrBreadcrumb = breadcrumb.substring(1).split(['|']);\r\n if (location.pathname === \"/\"){\r\n arrBreadcrumb = ['Home']\r\n }\r\n\r\n setHtmlBreadcrumb(\r\n arrBreadcrumb.map((pathname,index) => (\r\n \r\n {arrBreadcrumb.length==index+1? {pathname}:pathname}\r\n \r\n ))\r\n );\r\n };\r\n\r\n useEffect(()=> {MontaBreadcrumb()},[breadcrumb]);\r\n useEffect(()=> {MontaBreadcrumb()},[]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {htmlBreadcrumb}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Form, Input, Tabs, Row, Col, Typography, Card } from 'antd';\r\n\r\nimport \"./modulos.less\";\r\n\r\nexport default function ModulosPage() {\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecione abaixo o módulo que deseja acessar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Varejo \r\n \r\n \r\n Vendas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Compras\"\r\n \r\n \r\n Compras\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"PDV\"\r\n \r\n \r\n PDV\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Cotação\r\n \r\n \r\n Cotação de Vendas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Faturamento\r\n \r\n \r\n Faturamento Contratos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecione abaixo o módulo que deseja acessar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Indústria\"\r\n \r\n \r\n Indústria\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Catálogo\r\n \r\n \r\n Catálogo eletrônico\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecione abaixo o módulo que deseja acessar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Pedidos/O.S.\"\r\n \r\n \r\n Pedidos/O.S\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecione abaixo o módulo que deseja acessar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"A\r\n \r\n \r\n A Receber\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"A\r\n \r\n \r\n A Pagar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Conta\r\n \r\n \r\n Conta Corrente\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Caixa\r\n \r\n \r\n Caixa e Bancos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecione abaixo o módulo que deseja acessar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Contábil\"\r\n \r\n \r\n Contábil\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Fiscal\"\r\n \r\n \r\n Fiscal\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Impostos\"\r\n \r\n \r\n Impostos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"SPED\"\r\n \r\n \r\n SPED\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecione abaixo o módulo que deseja acessar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Indicadores\"\r\n \r\n \r\n Indicadores\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecione abaixo o módulo que deseja acessar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Conta\r\n \r\n \r\n MDF-e\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Selecione abaixo o módulo que deseja acessar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Conta\r\n \r\n \r\n Utilitários\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Upload, message, Modal } from 'antd';\r\nimport { LoadingOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport ImgCrop from \"antd-img-crop\";\r\nimport api from \"../../services/api\";\r\nimport { getEmailUsuario, linkApi } from \"../../services/auth\";\r\nimport { getBase64 } from \"../../services/funcoes\";\r\n\r\nexport default function Perfil({ formulario, aoSalvar, imagemAlterada }) {\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [dadosUsuario, setDadosUsuario] = useState({});\r\n const [fileList, setFileList] = useState([]);\r\n const [imageUrl, setImageUrl] = useState(null);\r\n\r\n const handleChange = (info) => {\r\n if (info.file.status === 'uploading') {\r\n setLoading(true);\r\n }\r\n if (info.file.status !== 'removed') {\r\n let originFileObj = info.file.originFileObj;\r\n if (typeof originFileObj === 'undefined') {\r\n originFileObj = info.fileList[0].originFileObj;\r\n }\r\n getBase64(originFileObj).then(\r\n base64 => {\r\n setLoading(false);\r\n setImageUrl(base64);\r\n }\r\n );\r\n }\r\n if (info.file.status === 'removed') {\r\n setImageUrl(null);\r\n }\r\n\r\n setFileList(info.fileList);\r\n };\r\n\r\n function beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n if (!isJpgOrPng) {\r\n message.error('Você só pode fazer upload de arquivos JPG/PNG!');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('A imagem deve ter menos de 2 MB!');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n }\r\n\r\n const uploadButton = (\r\n
\r\n {loading ? : }\r\n
Enviar Imagem
\r\n
\r\n );\r\n\r\n useEffect(() => {\r\n let url = `${linkApi}Usuario/CarregarAvatar?email=${getEmailUsuario()}`;\r\n setImageUrl(url);\r\n imagemAlterada(url);\r\n let img = [{\r\n uid: '-1',\r\n name: 'avatar',\r\n status: 'done',\r\n url: url,\r\n }];\r\n setFileList(img);\r\n api.get(`Usuario/RetornaUsuarioPerfilEmail?email=${getEmailUsuario()}`).then(\r\n (res) => {\r\n setDadosUsuario(res.data);\r\n formulario.setFieldsValue({ usu_nome: res.data.usu_nome, usu_email: res.data.usu_email });\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n }, []);\r\n\r\n function salvarDadosPerfil(values) {\r\n let dadosEnviar = { ...dadosUsuario };\r\n dadosEnviar.usu_nome = values.usu_nome;\r\n if (fileList.length > 0) {\r\n dadosEnviar.usu_avatar = { data: imageUrl, type: fileList[0].type };\r\n } else {\r\n dadosEnviar.usu_avatar = { data: null, type: null };\r\n }\r\n\r\n api.post(`Usuario/EditarProfile`, JSON.stringify(dadosEnviar), { headers: { 'Content-Type': 'application/json;charset=utf-8' } }).then(\r\n (retorno) => {\r\n if (retorno) {\r\n Modal.success({\r\n content: 'Dados atualizados com sucesso!',\r\n });\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n Modal.error({\r\n title: 'Não foi possível atualizar os dados!',\r\n content: (\r\n
\r\n

{erro.response.data.Message}

\r\n
\r\n )\r\n });\r\n }\r\n ).finally(() => {\r\n aoSalvar();\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n setImageUrl(null)}\r\n beforeUpload={beforeUpload}\r\n maxCount={1}\r\n >\r\n {fileList.length === 0 && uploadButton}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from 'react';\r\nimport { Select } from 'antd';\r\nimport SelectPaginacao from '../selectPaginacao';\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function SelectProduto(props) {\r\n\r\n\r\n return (\r\n { }}\r\n onBlurFunction={!!props.onBlur ? props.onBlur : () => { }}\r\n onSelectFunction={!!props.onSelect ? props.onSelect : () => { }}\r\n nameLabel={props.ordem}\r\n atualizaComponente={!!props.atualizaComponente ? props.atualizaComponente : false}\r\n allowClear={!!props.allowClear ? props.allowClear : false}\r\n disabled={!!props.disabled}\r\n placeholder={!!props.placeholder ? props.placeholder : \"Selecione um produto\"}\r\n filtroExtra={props.filtroExtra}\r\n filtroPesq={props.filtroPesq}\r\n setListaDados={!!props.setListaDados ? props.setListaDados : null}\r\n selecionarRegUnico={!!props.selecionarRegUnico ? props.selecionarRegUnico : null}\r\n registrosPorPagina={props.registrosPorPagina ?? 50}\r\n conteudo={(produto) => (\r\n \r\n \r\n {produto.pro_codigo} - {produto.pro_descricao}\r\n \r\n \r\n Vlr. Unitário:\r\n \r\n \r\n {FormatNumber(produto.lpi_valorvenda, true)}\r\n \r\n
\r\n {[\r\n (!!props.detalhes &&
),\r\n (!!props.detalhes && !!produto.descricaograde && `Grade: ${produto.descricaograde}`),\r\n (!!props.detalhes && (!!produto.descricaograde) &&
),\r\n (!!props.detalhes && (!!produto.pro_ean || !!produto.prg_ean) && (\r\n <>\r\n EAN/GTIN: {produto.pro_ean || produto.prg_ean}\r\n \r\n )),\r\n (!!props.detalhes && ((!!produto.pro_ean || !!produto.prg_ean) && !!produto.pro_codigoetiqueta) && (\r\n <>\r\n Cód.Etiqueta: {produto.pro_codigoetiqueta}\r\n \r\n )),\r\n ].filter(Boolean)}\r\n
\r\n
\r\n )}\r\n />\r\n )\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { Form, Input } from \"antd\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from '../../actions';\r\n\r\nexport default function FiltroSearch({ labelInput, placeholderInput, nameInput = \"\", form = null, ordem = null, filtroFixo = \"\" }) {\r\n\r\n const [{ listagem }, dispatch] = useStateValue();\r\n\r\n useEffect(() => { dispatch({ type: listagemActions.CHANGE, data: { filtro: null, pagina: 1, ordem: ordem } }) }, []);\r\n\r\n return (\r\n \r\n {\r\n if (!filtroFixo) {\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: valor, pagina: 1 } })\r\n } else {\r\n dispatch({ type: listagemActions.CHANGE, data: { filtro: valor, pagina: 1, outrosFiltros: filtroFixo } })\r\n }\r\n\r\n }\r\n } onBlur={valor => {\r\n if (!!form && !!nameInput) {\r\n form.setFieldsValue({ [nameInput]: valor.target.value });\r\n }\r\n }} />\r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Form } from \"antd\";\r\nimport { Radio } from \"antd\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from '../../actions';\r\nimport { useEffect } from \"react\";\r\n\r\nexport default function FiltroAtivo({ labelInput, nameInput = \"\"}) {\r\n\r\n const [{ listagem }, dispatch] = useStateValue();\r\n\r\n return (\r\n \r\n {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: \"&\" + [nameInput] + \"=\" + valor.target.value } })\r\n }}>\r\n Todos\r\n Ativo\r\n Inativo\r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Form, Select } from \"antd\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions } from '../../actions';\r\n\r\nexport default function FiltroOrdenacao({ opcoesOrdenacao }) {\r\n\r\n const [{ listagem }, dispatch] = useStateValue();\r\n\r\n return (\r\n \r\n
(\r\n
\r\n {prl_numerolote}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Qtde',\r\n align: 'center',\r\n width: 75,\r\n render: ({ prl_qtde }) => (\r\n
\r\n {prl_qtde}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Data Entrada',\r\n align: 'left',\r\n width: 160,\r\n render: ({ prl_dataentrada }) => (\r\n
\r\n {moment(prl_dataentrada).format('DD/MM/YYYY')}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Data Fabricação',\r\n align: 'left',\r\n width: 160,\r\n render: ({ prl_datafabricacao }) => (\r\n
\r\n {moment(prl_datafabricacao).format('DD/MM/YYYY')}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Data Vencimento',\r\n align: 'left',\r\n width: 160,\r\n render: ({ prl_datavencimento }) => (\r\n
\r\n {moment(prl_datavencimento).format('DD/MM/YYYY')}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Informação Adicional',\r\n align: 'left',\r\n render: ({ prl_infoadicional}) => (\r\n
\r\n {prl_infoadicional}\r\n
\r\n )\r\n }\r\n ]}\r\n dataSource={item.itemLote}\r\n pagination={false}\r\n />\r\n \r\n \r\n )\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Tag, Table, Button, Tooltip } from \"antd\";\r\n\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { FileSearchOutlined } from '@ant-design/icons';\r\nimport ModalDetalheLoteNfi from '../modals/modalDetalhesLoteNfi';\r\n\r\nexport default function TabDetalheItens({ itensNF }) {\r\n\r\n const [percentualDesc, setPercentualDesc] = useState(true);\r\n const [exibirModalLote, setExibirModalLote] = useState(false);\r\n const [dadosItem, setDadosItem] = useState([]);\r\n\r\n function retornarPercentual(perc_desconto, nfi_valordesconto) {\r\n if (percentualDesc) {\r\n return (\r\n
\r\n {perc_desconto}%\r\n
\r\n )\r\n } else {\r\n return (\r\n
\r\n {FormatNumber(nfi_valordesconto, true)}\r\n
\r\n )\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n fixed: 'left',\r\n width: '20%',\r\n render: ({ pro_codigo, pro_descricao, atributos, descricaoGrade }) => (\r\n
\r\n \r\n
\r\n {(!!pro_descricao ? pro_descricao : 'Débito/Crédito de imposto')}\r\n \r\n {!!atributos &&\r\n \r\n \r\n {atributos.mgp_descricao}\r\n \r\n \r\n }\r\n {!!descricaoGrade &&\r\n \r\n \r\n {descricaoGrade}\r\n \r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'N°',\r\n width: '1.5%',\r\n align: 'center',\r\n fixed: 'left',\r\n render: ({ nfi_numeroitem }) => (\r\n
\r\n \r\n
\r\n {(nfi_numeroitem)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: `${!!itensNF && !!itensNF[0].nis_csosn ? 'CSOSN' : 'CST'}`,\r\n width: '2.5%',\r\n align: 'center',\r\n render: ({ nis_origemmercadoria, nis_csosn, nig_cst, nig_origemmercadoria }) => (\r\n
\r\n \r\n
\r\n {(!!nis_csosn ? nis_origemmercadoria + nis_csosn : nig_origemmercadoria + nig_cst)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CFOP',\r\n width: '2%',\r\n align: 'center',\r\n render: ({ nfi_cfop }) => (\r\n
\r\n \r\n
\r\n {nfi_cfop}\r\n \r\n \r\n \r\n ),\r\n }, {\r\n title: 'NCM',\r\n width: '3%',\r\n align: 'center',\r\n render: ({ nfi_ncm }) => (\r\n
\r\n \r\n
\r\n {nfi_ncm}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CEST',\r\n width: '2.8%',\r\n align: 'center',\r\n render: ({ cet_id }) => (\r\n
\r\n \r\n
\r\n {cet_id}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'C.Benef',\r\n width: '3%',\r\n align: 'center',\r\n render: ({ cbf_codigo }) => (\r\n
\r\n \r\n
\r\n {cbf_codigo}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'UM.',\r\n width: '2%',\r\n align: 'center',\r\n render: ({ nfi_unidademedida }) => (\r\n
\r\n \r\n
\r\n {nfi_unidademedida}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nfi_qtde }) => (\r\n
\r\n \r\n
\r\n {nfi_qtde}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr Unit.(R$)',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ nfi_valorunitario }) => (\r\n
\r\n {FormatNumber(nfi_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Frete.(R$)',\r\n align: 'right',\r\n width: '3%',\r\n render: ({ nfi_valorfrete }) => (\r\n
\r\n \r\n {FormatNumber(nfi_valorfrete, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Acrés.(R$)',\r\n align: 'right',\r\n width: '3%',\r\n render: ({ nfi_valoroutros }) => (\r\n
\r\n \r\n {FormatNumber(nfi_valoroutros, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: () => {\r\n return (\r\n
\r\n \r\n
\r\n Desc.\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n },\r\n width: '3%',\r\n align: 'right',\r\n render: ({ perc_desconto, nfi_valordesconto }) => (\r\n retornarPercentual(perc_desconto, nfi_valordesconto)\r\n ),\r\n },\r\n {\r\n title: 'BC Icms',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nig_valorbc }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nig_valorbc, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '% Icms',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nig_percicms }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nig_percicms, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr Icms',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nig_valoricms }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nig_valoricms, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'BC Icms St',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nis_valorbcst, nig_valorbcst }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nis_valorbcst?? nig_valorbcst, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '% Icms St',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nis_percicmsst,nig_percicmsst }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nis_percicmsst?? nig_percicmsst, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr Icms St',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nis_valoricmsst, nig_valoricmsst }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nis_valoricmsst ?? nig_valoricmsst, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '% MVA',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nis_percmvast, nig_percmvast }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nis_percmvast ?? nig_percmvast, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'BC IPI',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ npi_valorbcipi }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(npi_valorbcipi, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '% IPI',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ npi_percaliquotaipi }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(npi_percaliquotaipi, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr IPI',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ npi_valoripi }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(npi_valoripi, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n width: '5%',\r\n render: ({ nfi_valorunitario, nfi_qtde }) => (\r\n
\r\n \r\n {FormatNumber(nfi_qtde * nfi_valorunitario, true)}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Lotes',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: '3%',\r\n render: (record) => {\r\n const itemLote = record.itemLote && record.itemLote.length > 0;\r\n const tooltip = itemLote ? 'Clique para ver os Lotes do Produto' : 'Lotes do Produto não disponível';\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n Nº: {prc_numeroparcela}\r\n \r\n \r\n Vencimento: {!!prc_datavencimento ? moment(prc_datavencimento).format('DD/MM/YYYY') : null}\r\n \r\n \r\n Valor (R$): {FormatNumber(!!prc_valor ? prc_valor : 0, true)}\r\n \r\n \r\n \r\n );\r\n } else if (record.fpg_tipopagamento === 3 || record.fpg_tipopagamento === 4) {\r\n dataSource = record.parcelasCartao;\r\n renderFunction = ({ bce_nomecredenciadora,rcc_conciliado, rcc_parcelarecebimento, rcc_previsaorecebimento, rcc_valor }) => (\r\n
\r\n \r\n
\r\n Bandeira: {bce_nomecredenciadora}\r\n \r\n \r\n Conciliado: {rcc_conciliado == true ? 'Sim' : 'Não'}\r\n \r\n \r\n Nº: {rcc_parcelarecebimento}\r\n \r\n \r\n Previsão recebimento: {!!rcc_previsaorecebimento ? moment(rcc_previsaorecebimento).format('DD/MM/YYYY') : null}\r\n \r\n \r\n Valor (R$): {FormatNumber(!!rcc_valor ? rcc_valor : 0, true)}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n const rowExpandable = record => {\r\n return (record.fpg_tipopagamento === 3 || record.fpg_tipopagamento === 4 || record.fpg_tipopagamento === 5);\r\n };\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n {record.fpg_emiteboleto === true &&\r\n \r\n \r\n }\r\n \r\n );\r\n }\r\n\r\n function imprimirBoleto(record) {\r\n if (!!record.ntf_id) {\r\n novaAbaNavegador(`Boleto/ImprimirBoletos/${record.ntf_id}`);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n (\r\n
\r\n \r\n
\r\n {fpg_descricao + (!!cpg_descricao ? '/ ' + cpg_descricao : '')}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'NSU / Id Integração',\r\n render: ({ imp_autorizacao, imp_idintegracao }) => (\r\n
\r\n \r\n {!!imp_autorizacao &&
\r\n {imp_autorizacao + ' / ' + imp_idintegracao}\r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Cód. Vale Presente',\r\n render: ({ nfp_codigovalepresente }) => (\r\n
\r\n \r\n {!!nfp_codigovalepresente &&
\r\n {nfp_codigovalepresente}\r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Valor Troco',\r\n align: 'right',\r\n render: ({ nfp_valortroco }) => (\r\n
\r\n \r\n
\r\n R$ {FormatNumber(!!nfp_valortroco ? nfp_valortroco : 0, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Valor Líquido',\r\n align: 'right',\r\n render: ({ nfp_valor, nfp_valortroco }) => (\r\n
\r\n \r\n
\r\n R$ {FormatNumber(!!nfp_valor ? (nfp_valor - nfp_valortroco) : 0, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalprodutos,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalbcicms,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalbcicmsst,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalbcipi,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalfrete,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalicms,true)}\r\n {/* pode ser utilizado tambem o campo valototalicmsst */}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalicmsst,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalipi,true)}\r\n {/* pode ser utilizado tambem o campo totalvaloripi */}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotaldesconto, true)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotaloutros,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valorbcpis,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valorbccofins,true)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalnota,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalpis,true)}\r\n \r\n \r\n {FormatNumber(detalheNotaFiscal.valortotalcofins,true)}\r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Tag, Table, Button } from \"antd\";\r\n\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport moment from 'moment';\r\n\r\nexport default function TabNotaReferenciada({ docsreferenciados }) {\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {!!ntf_numero ? ntf_numero : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: 30,\r\n align: 'center',\r\n render: ({ datadoc }) => (\r\n
\r\n \r\n
\r\n {!!datadoc ? moment(datadoc).format('DD/MM/YYYY') : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Chave',\r\n width: 140,\r\n align: 'center',\r\n render: ({ dfr_chave }) => (\r\n
\r\n \r\n
\r\n {!!dfr_chave ? dfr_chave : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Valor Total',\r\n width: 30,\r\n align: 'center',\r\n render: ({ totaldoc }) => (\r\n
\r\n \r\n
\r\n {!!FormatNumber(totaldoc, true) ? FormatNumber(totaldoc, true) : '0,00'}\r\n \r\n \r\n \r\n ),\r\n }\r\n ]\r\n } />\r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Descriptions, Tabs } from \"antd\";\r\n\r\nimport { TabDetalheItens, TabDetalheIFormaPagamento, TabDetalheTotalizadores, TabNotaReferenciada } from './tabPage';\r\nimport { useStateValue } from '../../state';\r\nimport moment from 'moment';\r\nimport { FormatFone, MaskFormat } from '../../ValueObjects/index';\r\n\r\nexport default function DetalheNotaFiscal({ dadosModal }) {\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [detalheNotaFiscal, setDetalheNotaFiscal] = useState({});\r\n const [arrFinalidade] = useState([\"NF-E NORMAL\", \"NF-E COMPLEMENTAR\", \"NF-E DE AJUSTE\", \"DEVOLUÇÃO\"]);\r\n const [arrStatus] = useState([\"EM DIGITAÇÃO\", \"AUTORIZADA\", \"CANCELADA\", \"DENEGADA\", \"REJEITADA\", \"CONTINGÊNCIA\"]);\r\n const [arrAmbiente] = useState([\"PRODUÇÃO\", \"HOMOLOGAÇÃO\"]);\r\n const [verificadevolucao, setverificadevolucao] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!!dadosModal) {\r\n setDetalheNotaFiscal(dadosModal);\r\n setverificadevolucao(dadosModal.verificadevolucao);\r\n }\r\n }, [dadosModal]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {(!!detalheNotaFiscal.ntf_nomedest ? detalheNotaFiscal.ntf_nomedest : 'NÃO INFORMADO')}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(!!detalheNotaFiscal.ntf_cnpjcpfdest ? MaskFormat(detalheNotaFiscal.ntf_cnpjcpfdest, '', true) : (!!detalheNotaFiscal.ntf_cnpjcpfdest ? MaskFormat(detalheNotaFiscal.ntf_cnpjcpfdest, '', true) : 'NÃO INFORMADO'))}\r\n \r\n \r\n {arrStatus[detalheNotaFiscal.ntf_status]}\r\n \r\n \r\n {detalheNotaFiscal.ntf_numero}\r\n \r\n \r\n {(!!detalheNotaFiscal.ntf_iedest ? detalheNotaFiscal.ntf_iedest : 'NÃO INFORMADO')}\r\n \r\n \r\n {(!!detalheNotaFiscal.nomeVendedor ? detalheNotaFiscal.nomeVendedor : 'NÃO INFORMADO')}\r\n \r\n \r\n {!!detalheNotaFiscal.ntf_dataemissao ? moment(detalheNotaFiscal.ntf_dataemissao).format('DD/MM/YYYY') : null}\r\n \r\n \r\n {(!!detalheNotaFiscal.ntf_emaildest ? detalheNotaFiscal.ntf_emaildest : 'NÃO INFORMADO')}\r\n \r\n \r\n {arrFinalidade[detalheNotaFiscal.ntf_finalidade - 1]}\r\n \r\n \r\n {(!!detalheNotaFiscal.ntf_chavenfe ? detalheNotaFiscal.ntf_chavenfe : 'NÃO DISPONÍVEL')}\r\n \r\n \r\n {!!detalheNotaFiscal.ntf_telefonedest ? FormatFone(detalheNotaFiscal.ntf_telefonedest) : 'NÃO INFORMADO'}\r\n \r\n \r\n {arrAmbiente[detalheNotaFiscal.ntf_ambiente - 1]}\r\n \r\n \r\n {detalheNotaFiscal.ope_descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(!!detalheNotaFiscal.ntf_logradourodest ? detalheNotaFiscal.ntf_logradourodest : ' NÃO INFORMADO ')},\r\n {(!!detalheNotaFiscal.ntf_bairrodest ? detalheNotaFiscal.ntf_bairrodest : ' NÃO INFORMADO ')},\r\n {(!!detalheNotaFiscal.ntf_municipiodest ? detalheNotaFiscal.ntf_municipiodest : ' NÃO INFORMADO ')},\r\n {(!!detalheNotaFiscal.ntf_cepdest ? MaskFormat(detalheNotaFiscal.ntf_cepdest, '00000-000') : ' NÃO INFORMADO')}.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(detalheNotaFiscal.ntf_tiponota == 4 || detalheNotaFiscal.ntf_tiponota == 5) &&\r\n \r\n }\r\n \r\n
\r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Tag, Table, Button } from \"antd\";\r\n\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function TabDetalheItens({ itensNF }) {\r\n\r\n const [percentualDesc, setPercentualDesc] = useState(false);\r\n\r\n function retornarPercentual(perc_desconto, nfi_valordesconto) {\r\n if (percentualDesc) {\r\n return (\r\n
\r\n {perc_desconto}%\r\n
\r\n )\r\n } else {\r\n return (\r\n
\r\n {FormatNumber(nfi_valordesconto, true)}\r\n
\r\n )\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {pro_codigo}\r\n \r\n \r\n \r\n {pro_descricao}\r\n \r\n {!!descricaograde &&\r\n \r\n \r\n {descricaograde}\r\n \r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Qtde.',\r\n width: 50,\r\n align: 'right',\r\n render: ({ pdi_quantidade }) => (\r\n
\r\n \r\n
\r\n {pdi_quantidade}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Vlr Unt.(R$)',\r\n align: 'right',\r\n width: 80,\r\n render: ({ pdi_valorunitario }) => (\r\n
\r\n {FormatNumber(pdi_valorunitario, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: () => {\r\n return (\r\n
\r\n \r\n
\r\n Desc.\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n },\r\n width: 70,\r\n align: 'right',\r\n render: ({ perc_desconto, pdi_valordesconto }) => (\r\n retornarPercentual(perc_desconto, pdi_valordesconto)\r\n ),\r\n },\r\n {\r\n title: 'Vlr Total (R$)',\r\n align: 'right',\r\n width: 100,\r\n render: ({ pdi_valorunitario, pdi_quantidade, pdi_valordesconto }) => (\r\n
\r\n {FormatNumber((pdi_quantidade * pdi_valorunitario) - pdi_valordesconto, true)}\r\n
\r\n ),\r\n }\r\n ]\r\n } />\r\n \r\n );\r\n}","import React from 'react';\r\nimport { Row, Col, Table } from \"antd\";\r\n\r\nimport moment from 'moment';\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function TabDetalheIFormaPagamento({ formaPagamento }) {\r\n\r\n const expandedRowRender = record => {\r\n return
(\r\n
\r\n \r\n
\r\n Nº: {prc_numeroparcela}\r\n \r\n \r\n Vencimento: {!!prc_datavencimento ? moment(prc_datavencimento).format('DD/MM/YYYY') : null}\r\n \r\n \r\n Valor (R$): {FormatNumber(!!prc_valor ? prc_valor : 0, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } pagination={false} />\r\n };\r\n\r\n const rowExpandable = record => { return (record.fpg_tipopagamento === 5 || record.fpg_tipopagamento === 15 )};\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {fpg_descricao + (!!cpg_descricao ? '/ ' + cpg_descricao : '')}\r\n \r\n \r\n R$ {FormatNumber(!!pfp_valor ? pfp_valor : 0, true)}\r\n \r\n \r\n \r\n ),\r\n },\r\n ]\r\n } pagination={false} expandable={{ expandedRowRender, rowExpandable }} />\r\n\r\n \r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Descriptions, Tabs } from \"antd\";\r\n\r\nimport { TabDetalheItens, TabDetalheIFormaPagamento } from './tabPage';\r\nimport moment from 'moment';\r\nimport { FormatFone, MaskFormat } from '../../ValueObjects/index';\r\n\r\nexport default function DetalhePedido({ dadosModal }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [pedido, setPedido] = useState({});\r\n \r\n\r\n useEffect(() => {\r\n if (!!dadosModal) {\r\n setPedido(dadosModal);\r\n }\r\n }, [dadosModal]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {(!!pedido.pes_nome ? pedido.pes_nome : 'NÃO INFORMADO')}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(!!pedido.pef_cpf ? MaskFormat(pedido.pef_cpf, '', true) : (!!pedido.pej_cnpj ? MaskFormat(pedido.pej_cnpj, '', true) : 'NÃO INFORMADO'))}\r\n \r\n \r\n {pedido.ped_numero}\r\n \r\n \r\n {(!!pedido.ped_iedest ? pedido.ntf_iedest : 'NÃO INFORMADO')}\r\n \r\n \r\n {(!!pedido.ven_nome ? pedido.ven_nome : 'NÃO INFORMADO')}\r\n \r\n \r\n {!!pedido.ped_datainclusao ? moment(pedido.ped_datainclusao).format('DD/MM/YYYY') : null}\r\n \r\n \r\n {(!!pedido.pem_email ? pedido.pem_email : 'NÃO INFORMADO')}\r\n \r\n \r\n {!!pedido.pes_telefone ? FormatFone(pedido.pes_telefone) : 'NÃO INFORMADO'}\r\n \r\n \r\n {pedido.ope_descricao}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(!!pedido.pes_endereco ? pedido.pes_endereco : ' NÃO INFORMADO ')},\r\n {(!!pedido.pes_bairro ? pedido.pes_bairro : ' NÃO INFORMADO ')},\r\n {(!!pedido.pes_cidade ? pedido.pes_cidade : ' NÃO INFORMADO ')+'-'+(!!pedido.pes_uf ? pedido.pes_uf : ' NÃO INFORMADO ')},\r\n {(!!pedido.pes_cep ? MaskFormat(pedido.pes_cep, '00000-000') : ' NÃO INFORMADO')}.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!pedido.ped_observacao ? pedido.ped_observacao : ''}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Form } from \"antd\";\r\nimport { setTela } from \"../../services/auth\"\r\nimport { useStateValue } from '../../state';\r\n\r\nfunction FormGW({ initialValues, layout, form, name, onFinish, campoId, children }) {\r\n\r\n const [{ manutencao, ui }, dispatch] = useStateValue();\r\n const gravaLocalStorage = allValues => {\r\n //localStorage.setItem(name, JSON.stringify(allValues));\r\n let dados = {};\r\n let url = window.document.location.href;\r\n dados = form.getFieldValue();\r\n dados.formulario = url.substring(url.lastIndexOf('/'), url.length);\r\n dados.editar = false;\r\n setTela(JSON.stringify(dados));\r\n }\r\n const listaInputHidden = [];\r\n\r\n function autoTab(event) {\r\n if ((event.keyCode === 13 || event.keyCode === 9) || (!!event.which && (event.which === 13 || event.which === 9))) {\r\n if (!!event.target.form) {\r\n for (let key in event.target.form.elements) {\r\n if (!!event.target.form.elements[key].setAttribute && parseInt(key) >= 0) {\r\n event.target.form.elements[key].setAttribute('index', key);\r\n }\r\n }\r\n let index = parseInt(event.target.getAttribute('index'));\r\n if (!!event.target.form.elements[index + 1]) {\r\n if (event.target.form.elements[index + 1].disabled || event.target.form.elements[index + 1].hidden) {\r\n let posicao = validarCampoValido(event, index, 2);\r\n event.target.form.elements[index + posicao].focus();\r\n } else {\r\n event.target.form.elements[index + 1].focus();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n function validarCampoValido(event, index, aux) {\r\n if (!!event.target.form.elements[index + aux]) {\r\n if (event.target.form.elements[index + aux].disabled) {\r\n aux += 1;\r\n validarCampoValido(event, index, aux);\r\n } else {\r\n return aux;\r\n }\r\n } else {\r\n return aux - 1;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldsValue() && ui.showDrawer) {\r\n for (let campo in form.getFieldsValue()) {\r\n listaInputHidden.push({ campo: campo, hidden: false });\r\n }\r\n popularListaInputHidden();\r\n if (!verificarJaPossuiFocus()) {\r\n listaInputHidden.forEach((inputHidden, index, array) => {\r\n if (!inputHidden.hidden && !!inputHidden.campo) {\r\n let input = form.getFieldInstance(inputHidden.campo);\r\n if (!!input && !!input.props && !input.props.disabled) {\r\n setTimeout(() => {\r\n try {\r\n input.focus();\r\n } catch {\r\n return;\r\n }\r\n }, 500);\r\n array.length = index + 1;//break the loop\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }, [ui.showDrawer]);\r\n\r\n function popularListaInputHidden() {\r\n let formItemHidden = !!document.querySelector('.ant-drawer') ? document.querySelector('.ant-drawer').querySelectorAll('.ant-form-item-hidden') : null;\r\n if (!!formItemHidden) {\r\n listaInputHidden.forEach((inputHidden, index, array) => {\r\n formItemHidden.forEach(itemHidden => {\r\n if (!!itemHidden.querySelector('input') && itemHidden.querySelector('input').id.indexOf(inputHidden.campo) > -1) {\r\n listaInputHidden[index].hidden = true;\r\n }\r\n });\r\n });\r\n }\r\n };\r\n\r\n function verificarJaPossuiFocus() {\r\n let retorno = false;\r\n listaInputHidden.forEach((inputHidden, index, array) => {\r\n let elementos = document.querySelector('.ant-drawer').querySelectorAll('input');\r\n let input = Array.prototype.filter.call(elementos, (test) => { return test.id.indexOf(inputHidden.campo) > -1 })[0]\r\n if (input === document.activeElement) {\r\n retorno = true;\r\n }\r\n });\r\n return retorno;\r\n };\r\n\r\n /*let dadosForm = localStorage.getItem(name);\r\n if (dadosForm) {\r\n if (dadosForm.includes(campoId)) {\r\n dadosForm = JSON.parse(dadosForm)\r\n if (dadosForm[campoId] === form.getFieldValue(campoId) ) form.setFieldsValue(dadosForm);\r\n } else {\r\n form.setFieldsValue(JSON.parse(dadosForm));\r\n }\r\n }*/\r\n return (\r\n gravaLocalStorage(allValues)}>\r\n {/*children?children.props.children.map(child => child):''*/}\r\n {children}\r\n \r\n )\r\n\r\n}\r\nexport default FormGW;","import React, { useEffect, useState } from 'react';\r\nimport { Select} from 'antd';\r\nimport api from '../../../services/api';\r\nimport { isNotNullOrEmpty } from '../../../services/funcoes';\r\n\r\nexport default function SelectAll({ url, idValue, nameValue, nameLabel, onChangeFunction, onBlurFunction, onClearFunction, campoFiltro = \"filtro\", placeholder,\r\n form, atualizaComponente = false, mostrarCodigoLabel = false, multiple = false, allowClear = false, conteudo = null, filtroPesq = null, filtroExtra,\r\n disabled = false, returnObject = false, onSelectFunction }) {\r\n const [carregando, setCarregando] = useState(false);\r\n const [lista, setLista] = useState([]);\r\n const [filtro, setFiltro] = useState('');\r\n const [usouFiltro, setUsouFiltro] = useState(false);\r\n const [valor, setValor] = useState(null);\r\n const [campoDescricao, setCampoDescricao] = useState(null);\r\n const [filtroAnt, setFiltroAnt] = useState(\"\");\r\n const [multiplosFiltros, setMultiplosFiltros] = useState(false);\r\n const [listaFiltros, setListaFiltros] = useState([]);\r\n const _nameValue = idValue ? idValue : nameValue;\r\n\r\n useEffect(() => carregarDados(), [filtro, atualizaComponente]);\r\n\r\n useEffect(() => {\r\n setFiltro(filtroPesq);\r\n }, [filtroPesq, atualizaComponente]);\r\n\r\n useEffect(() => {\r\n if (!isNotNullOrEmpty(form.getFieldValue([_nameValue]))) {\r\n setFiltro('');\r\n }\r\n setValor(form.getFieldValue([_nameValue]));\r\n }, [form.getFieldValue([_nameValue])]);\r\n\r\n function carregarDados() {\r\n setCarregando(true);\r\n let parametrosUrl = '';\r\n if (atualizaComponente !== null) {\r\n if (!multiplosFiltros) {\r\n !!filtro ? parametrosUrl = `&${!!campoDescricao ? campoDescricao : campoFiltro}=${filtro}` : parametrosUrl = \"\";\r\n } else {\r\n !!listaFiltros && listaFiltros.length > 0 ? listaFiltros.forEach(lf => parametrosUrl += `&${!!lf.campoDescricao ? lf.campoDescricao : lf.campoFiltro}=${lf.filtro}`) : parametrosUrl = \"\";\r\n }\r\n if (!!campoDescricao) {\r\n setCampoDescricao(null);\r\n }\r\n if (mostrarCodigoLabel) {\r\n parametrosUrl += `&Order=%2B${nameValue}`;\r\n }\r\n else {\r\n parametrosUrl += (nameLabel.search('[/+/g]') > 0 ? `&Order=%2B${nameLabel.split('+')[0]}` : `&Order=%2B${nameLabel}`);\r\n }\r\n if (url.search(/[?]/g) === -1) {\r\n parametrosUrl = parametrosUrl.replace('&', '?');\r\n }\r\n !!filtroExtra ? parametrosUrl += filtroExtra : naoFazNada();\r\n api.get(url + parametrosUrl).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let dados = [];\r\n\r\n let indice = !!atualizaComponente ? 0 : lista.length > 0 ? lista[lista.length - 1].key + 1 : 0;\r\n res.data.map((item, idx) => {\r\n item.key = indice;\r\n dados.push(item);\r\n indice++;\r\n });\r\n\r\n if (!isNotNullOrEmpty(filtro)) {//filtro em branco\r\n if (usouFiltro === true || atualizaComponente !== false) {\r\n atualizaComponente = false\r\n setUsouFiltro(false);\r\n setLista(dados);\r\n } else {\r\n setLista([...lista, ...dados]);\r\n }\r\n } else {\r\n if (filtro === filtroAnt) {\r\n setLista(dados);\r\n } else {\r\n setUsouFiltro(true);\r\n setFiltroAnt(filtro);\r\n setLista(dados);\r\n }\r\n }\r\n }\r\n }\r\n ).finally(\r\n () => {\r\n setCarregando(false)\r\n }\r\n );\r\n }\r\n }\r\n\r\n function naoFazNada() { }\r\n\r\n return (\r\n {\r\n if (option.props.value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }}\r\n onSearch={(valor) => { setFiltro(valor); }}\r\n onChange={(valor) => {\r\n setValor(valor);\r\n form.setFieldsValue({ [_nameValue]: valor });\r\n !!onChangeFunction ? onChangeFunction(valor) : naoFazNada();\r\n }}\r\n onBlur={(valor) => {\r\n\r\n !!onBlurFunction ? onBlurFunction(valor) : naoFazNada();\r\n }}\r\n onClear={(valor) => {\r\n !!onClearFunction ? onClearFunction(valor) : naoFazNada();\r\n }}\r\n // onSelect={(valor) => {\r\n // setValor(valor);\r\n // form.setFieldsValue({ [_nameValue]: valor });\r\n // !!onSelectFunction ? onSelectFunction(valor) : naoFazNada();\r\n // console.log(valor);\r\n // }}\r\n >\r\n {lista.map(item =>\r\n !!conteudo ? conteudo(item) :\r\n {mostrarCodigoLabel ? item[nameValue] + \" - \" : \"\"} {(nameLabel.search(/[+]/g) > 0 ? (item[nameLabel.split('+')[0]] + \" - \" + item[nameLabel.split('+')[1]]) : item[nameLabel])} \r\n )}\r\n \r\n )\r\n}\r\n","import React from \"react\";\r\nimport { Row, Col, Select, Divider, Form, Button } from \"antd\";\r\n\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function SelectIncluir({\r\n dadosSelect = [],\r\n funcaoBotao = (() => { console.log('selectIncluir') }),\r\n campoDescricao = '',\r\n campoValue = '',\r\n placeHolder = '',\r\n campoKey = '',\r\n labelFormItem = '',\r\n nameFormItem = '',\r\n rulesFormItem = [],\r\n onChange = (() => { }),\r\n onBlur = (() => { }),\r\n onClear = (() => { }),\r\n onDeselect = (() => { }),\r\n onDropdownVisibleChange = (() => { }),\r\n onFocus = (() => { }),\r\n onInputKeyDown = (() => { }),\r\n onMouseEnter = (() => { }),\r\n onMouseLeave = (() => { }),\r\n onPopupScroll = (() => { }),\r\n onSearch = (() => { }),\r\n onSelect = (() => { }),\r\n}) {\r\n function retornarDadosArray(dado) {\r\n let retorno = '';\r\n campoDescricao.map((campo) => { retorno += dado[campo] + ','; });\r\n retorno = retorno.substring(0, retorno.lastIndexOf(','));\r\n return retorno;\r\n };\r\n\r\n return (\r\n\r\n \r\n (\r\n
\r\n \r\n
\r\n {menu}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n >\r\n {dadosSelect.map((dado) => (\r\n {(Array.isArray(campoDescricao) ? retornarDadosArray(dado) : dado[campoDescricao])}\r\n ))}\r\n \r\n \r\n\r\n );\r\n};","import React from \"react\";\r\nimport { Card, Descriptions, Tooltip, Button, Row, Col, Tag, Popconfirm } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined } from '@ant-design/icons';\r\n\r\nimport { TiposElementosFormulario } from './pages';\r\n\r\nexport default function ItemFormulario({ elemento, fnEditar = () => {}, fnExcluir = () => {}, status}) {\r\n function RetornaDescricaoElementoFormulario(tipo) {\r\n let retorno = TiposElementosFormulario.filter(el => el.value === tipo);\r\n return (retorno.length > 0 ? retorno[0].label : \"\");\r\n }\r\n\r\n //if (status !== 3 ){\r\n return (\r\n \r\n \r\n \r\n {elemento.rpj_linha}\r\n \r\n \r\n {elemento.rpj_coluna}\r\n \r\n \r\n {RetornaDescricaoElementoFormulario(elemento.rpj_tipoelemento)}\r\n \r\n \r\n {elemento.rpj_nomeelemento}\r\n \r\n \r\n \r\n {elemento.rpj_obrigatorio ? \"SIM\" : \"NÃO\"}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n fnExcluir()} okText=\"Sim\" cancelText=\"Não\">\r\n \r\n Estrutura do Formulário\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (e.target.tagName.toLowerCase() === \"path\" || e.target.tagName.toLowerCase() === \"svg\" || e.target.tagName.toLowerCase() === \"button\")}>\r\n {elementosFormulario.map((elemento, indice) =>\r\n \r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {elementosFormulario.length === 0 && }\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Adicionar Elementos ao Formulário\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return !!value.match(/[a-zA-Z0-9_.]/gm) ? value.match(/[a-zA-Z0-9_.]/gm).join('') : '';\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_tipoelemento') === 'select') ? (\r\n \r\n \r\n Informe o texto da opção e pressione [ENTER]\r\n \r\n \r\n Para retornar valor informe Valor \"-\" Descrição\r\n \r\n \r\n }>\r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_tipoelemento') === 'selectPaginacao' || getFieldValue('rpj_tipoelemento') === 'selectAll') ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_tipoelemento') === 'selectPaginacao' || getFieldValue('rpj_tipoelemento') === 'selectAll') ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_tipoelemento') === 'selectPaginacao' || getFieldValue('rpj_tipoelemento') === 'selectAll') ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_tipoelemento') === 'selectPaginacao' || getFieldValue('rpj_tipoelemento') === 'selectAll') ? (\r\n \r\n \r\n Para retornar 2 campos na Label informe campos Codigo\"+\"Descrição\r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_tipoelemento') === 'selectPaginacao' || getFieldValue('rpj_tipoelemento') === 'selectAll') ? (\r\n \r\n Mostrar Codigo na Label?\r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_tipoelemento') === 'selectPaginacao' || getFieldValue('rpj_tipoelemento') === 'selectAll') ? (\r\n \r\n Permitir Multi-seleção?\r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_tipoelemento') === 'dataPicker') ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_tipoelemento !== currentValues.rpj_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n let elemento = getFieldValue('rpj_tipoelemento');\r\n //if (elemento === 'input') return ;\r\n if (elemento === 'textarea') return ;\r\n if (elemento === 'inputNumber') return ;\r\n if (elemento === 'checkbox') return ;\r\n if (elemento === 'switch') return ;\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n prevValues.rpj_obrigatorio !== currentValues.rpj_obrigatorio} >\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('rpj_obrigatorio') === true) ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n \r\n Obrigatorio\r\n \r\n \r\n \r\n \r\n \r\n {elementoEdicao.indice !== null &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setOpenModalPersonalizacao(false)} elementosFormulario={elementosFormulario} setElementosFormulario={setElementosFormulario} />\r\n setOpenModalImportarElemento(false)} elementosFormulario={elementosFormulario} setElementosFormulario={setElementosFormulario} />\r\n \r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Card, Descriptions, Tooltip, Button, Row, Col, Tag, Popconfirm } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined } from '@ant-design/icons';\r\n\r\nimport { TiposElementosFormulario } from './pages';\r\nimport { render } from \"react-dom\";\r\n\r\nexport default function ItemFormulario({ elemento, fnEditar = () => { }, fnExcluir = () => { }, status }) {\r\n function RetornaDescricaoElementoFormulario(tipo) {\r\n let retorno = TiposElementosFormulario.filter(el => el.value === tipo);\r\n return (retorno.length > 0 ? retorno[0].label : \"\");\r\n }\r\n return (\r\n \r\n \r\n \r\n {elemento.cap_linha}\r\n \r\n \r\n {elemento.cap_coluna}\r\n \r\n \r\n {RetornaDescricaoElementoFormulario(elemento.cap_tipoelemento)}\r\n \r\n \r\n {elemento.cap_nomeelemento}\r\n \r\n \r\n \r\n {elemento.cap_obrigatorio ? \"SIM\" : \"NÃO\"}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n fnExcluir()} okText=\"Sim\" cancelText=\"Não\">\r\n \r\n \r\n \r\n Estrutura do Formulário\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (e.target.tagName.toLowerCase() === \"path\" || e.target.tagName.toLowerCase() === \"svg\" || e.target.tagName.toLowerCase() === \"button\")}>\r\n {!!elementosFormulario && elementosFormulario.map((elemento, indice) =>\r\n \r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {!!elementosFormulario && elementosFormulario.length === 0 && }\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Adicionar Elementos ao Formulário\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return !!value.match(/[a-zA-Z0-9_.]/gm) ? value.match(/[a-zA-Z0-9_.]/gm).join('') : '';\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.cap_tipoelemento !== currentValues.cap_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('cap_tipoelemento') === 'select') ? (\r\n \r\n \r\n Informe o texto da opção e pressione [ENTER]\r\n \r\n \r\n Para retornar valor informe Valor \"-\" Descrição\r\n \r\n \r\n }>\r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.cap_tipoelemento !== currentValues.cap_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('cap_tipoelemento') === 'selectPaginacao') ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.cap_tipoelemento !== currentValues.cap_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('cap_tipoelemento') === 'selectPaginacao') ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.cap_tipoelemento !== currentValues.cap_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('cap_tipoelemento') === 'selectPaginacao') ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.cap_tipoelemento !== currentValues.cap_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('cap_tipoelemento') === 'selectPaginacao') ? (\r\n \r\n Mostrar Codigo na Label?\r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.cap_tipoelemento !== currentValues.cap_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('cap_tipoelemento') === 'selectPaginacao') ? (\r\n \r\n Permitir Multi-seleção?\r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.cap_tipoelemento !== currentValues.cap_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('cap_tipoelemento') === 'dataPicker') ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n prevValues.cap_tipoelemento !== currentValues.cap_tipoelemento}>\r\n {({ getFieldValue }) => {\r\n let elemento = getFieldValue('cap_tipoelemento');\r\n //if (elemento === 'input') return ;\r\n if (elemento === 'textarea') return ;\r\n if (elemento === 'inputNumber') return ;\r\n if (elemento === 'checkbox') return ;\r\n if (elemento === 'switch') return ;\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n prevValues.cap_obrigatorio !== currentValues.cap_obrigatorio} >\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('cap_obrigatorio') === true) ? (\r\n \r\n \r\n \r\n ) : null;\r\n }}\r\n \r\n \r\n \r\n \r\n Obrigatório\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {elementoEdicao.indice !== null &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n setOpenModalPersonalizacao(false)} elementosFormulario={elementosFormulario} setElementosFormulario={setElementosFormulario} />\r\n setOpenModalImportarElemento(false)} elementosFormulario={elementosFormulario} setElementosFormulario={setElementosFormulario} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Checkbox, DatePicker, Input, Select } from \"antd\";\r\nimport InputNumber from \"rc-input-number\";\r\n\r\nimport { InputPreco, SelectPaginacao, SelectAll } from \"../../components\";\r\n\r\nexport default function FormularioDinamico({ formulario, parametrosFiltros, retornarLinhas = true }) {\r\n const [elementosDinamicos, setElementosDinamicos] = useState([]);\r\n\r\n const retornaElementos = (elementos) => {\r\n var elementoConvert = JSON.stringify(elementos).replaceAll('cap_', 'rpj_');\r\n setElementosDinamicos(JSON.parse(elementoConvert));\r\n console.log({ elementoConvert });\r\n }\r\n\r\n useEffect(() => { if (!!parametrosFiltros) retornaElementos(parametrosFiltros); }, [parametrosFiltros]);\r\n useEffect(() => { if (!!elementosDinamicos && elementosDinamicos.length > 0) camposDinamicos(); }, [elementosDinamicos]);\r\n\r\n const camposDinamicos = () => {\r\n let linhas = []\r\n if (elementosDinamicos) {\r\n elementosDinamicos.forEach((reg, idx, array) => {\r\n if (linhas.filter((lin) => (lin.linha === reg.rpj_linha)).length > 0) {\r\n let dados = linhas.find((lin) => (lin.linha === reg.rpj_linha));\r\n dados.dados.push(reg);\r\n } else {\r\n linhas.push({ linha: reg.rpj_linha, dados: [reg] });\r\n }\r\n });\r\n }\r\n return linhas.map((linhasFiltro) => {\r\n if (retornarLinhas === true) {\r\n return (\r\n \r\n {componente(linhasFiltro.dados)}\r\n \r\n );\r\n\r\n } else {\r\n return (\r\n componente(linhasFiltro.dados)\r\n );\r\n }\r\n });\r\n }\r\n\r\n const componente = (linhasFiltro) => {\r\n return linhasFiltro.map((itemFiltro) => {\r\n\r\n switch (itemFiltro.rpj_tipoelemento) {\r\n case \"input\":\r\n return input(itemFiltro);\r\n case \"inputNumber\":\r\n return inputNumber(itemFiltro);\r\n case \"inputPreco\":\r\n return inputPreco(itemFiltro);\r\n case \"dataPicker\":\r\n return dataPicker(itemFiltro);\r\n case \"select\":\r\n return select(itemFiltro);\r\n case \"selectPaginacao\":\r\n return selectPaginacao(itemFiltro);\r\n case \"selectAll\":\r\n return selectAll(itemFiltro);\r\n case \"checkbox\":\r\n return checkbox(itemFiltro);\r\n default: return ''\r\n }\r\n });\r\n }\r\n\r\n const input = (itemFiltro) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const dataPicker = (itemFiltro) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const select = (itemFiltro) => {\r\n return (\r\n \r\n \r\n \r\n {JSON.parse(itemFiltro.rpj_options).options.map((select, idx, array) => (\r\n {select}\r\n ))}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const selectPaginacao = (itemFiltro) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const selectAll = (itemFiltro) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n const inputNumber = (itemFiltro) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const inputPreco = (itemFiltro) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const checkbox = (itemFiltro) => {\r\n return (\r\n \r\n \r\n {itemFiltro.rpj_label} \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n camposDinamicos()\r\n );\r\n\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Col, Form, Row, Button, Input, InputNumber, Select, Card, notification, Tooltip, Modal } from \"antd\";\r\nimport { SearchOutlined, BarcodeOutlined, PlusOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { SelectProduto } from \"../../components\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { InputPreco } from \"..\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport { ModalGradeProduto, ModalSenhaLiberacao } from \"../modals\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\n\r\n\r\nexport default function FiltroProduto({ form, dadosTabela, btnEditando, itemEditando }) {\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [abrirModalGrade, setAbrirModalGrade] = useState(false);\r\n const [produtos, setProdutos] = useState([]);\r\n const [dadosGrade, setDadosGrade] = useState([]);\r\n const [desabilitarProd_id, setDesabilitarProd_id] = useState(false);\r\n const [consultaProduto, setConsultaProduto] = useState(null);\r\n const [{ manutencao, listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [listaSelectProd, setListaSelectProd] = useState([]);\r\n const codBarras = useRef();\r\n const togglePesquisa = () => {\r\n setConsultaProduto(!consultaProduto);\r\n };\r\n const [abreModalLiberacao, setAbreModalLiberacao] = useState(false);\r\n const [liberacaoSenha, setLiberacaoSenha] = useState(null);\r\n\r\n useEffect(() => {\r\n setarFocoProduto();\r\n }, [consultaProduto]);\r\n\r\n function alterarValorTotal() {\r\n let total = 0;\r\n total = form.getFieldValue().quantidade * form.getFieldValue().valorUnitario;\r\n form.setFieldsValue({ valorTotalItem: total.toFixed(2) });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!itemEditando) {\r\n let lista = [];\r\n if (!!itemEditando && itemEditando.pro_id) {\r\n if (!!itemEditando.prg_id) {\r\n lista.push({ name: \"pro_id\", campo: \"IdGrade\", value: itemEditando.prg_id });\r\n } else {\r\n lista.push({ name: \"pro_id\", campo: \"IdProduto\", value: itemEditando.pro_id });\r\n }\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n form.setFieldsValue(manutencao.dados);\r\n }\r\n }, [itemEditando]);\r\n\r\n // useEffect(() => {\r\n // if (!!manutencao.dados) {\r\n // if (!!manutencao.dados.dadosGrade) {\r\n // buscarDadosGradeModal();\r\n // }\r\n // form.setFieldsValue({ pro_id: manutencao.dados.pro_id });\r\n // }\r\n // }, [manutencao]);\r\n\r\n\r\n function onCloseModalGrade() {\r\n buscarDadosGradeModal();\r\n setAbrirModalGrade(false);\r\n };\r\n\r\n async function buscarProduto(pro_id) {\r\n let dadosSelect = [...listaSelectProd]\r\n let prod = dadosSelect.filter(pro => pro.key === pro_id)[0];\r\n setProdutos(prod);\r\n if (isObjetoDiffVazio(prod)) {\r\n if (!!prod.prg_id) {\r\n let grade = await api.get(`ProdutoGrade/ListarGradesProdutos?apenasAtivas=true&codigoProduto=${prod.pro_id}`);\r\n setAbrirModalGrade(true);\r\n setDadosGrade(grade.data);\r\n } else {\r\n popularProduto(prod);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (btnEditando.editando && isObjetoDiffVazio(itemEditando)) {\r\n editandoItem(itemEditando);\r\n setExibirDetalhes(true);\r\n }\r\n }, [btnEditando])\r\n\r\n\r\n function editandoItem(dadosEditando) {\r\n form.setFieldsValue({ pro_id: dadosEditando.pro_id });\r\n form.setFieldsValue({ quantidade: dadosEditando.vci_quantidade });\r\n form.setFieldsValue({ valorUnitario: dadosEditando.vci_valorun });\r\n }\r\n\r\n async function buscarDadosGradeModal() {\r\n let dadosTemp = [...dadosTabela.dadosItens]\r\n let lista = [...listaSelectProd];\r\n let produtosSelec = [...dadosTabela.dadosItens];\r\n let produtoGrade = dadosGrade.filter((produto) => { return produto.quantidade > 0; });\r\n for (let item of produtoGrade) {\r\n let dado = {}\r\n dado.pro_id = produtos.pro_id;\r\n dado.prg_id = item.prg_id;\r\n dado.pro_codigo = produtos.pro_codigo;\r\n dado.pro_descricao = produtos.pro_descricao;\r\n dado.vci_quantidade = item.quantidade;\r\n dado.prg_ean = item.ean;\r\n dado.pro_ean = item.ean;\r\n dado.vci_valorun = item.valorVenda;\r\n dado.valorTotal = item.valorTotal;\r\n dado.vci_devolvido = 0;\r\n dado.vci_sequencia = produtosSelec.length + 1;\r\n let i = 0;\r\n dado.descricaograde=\"\";\r\n item.atributos.map((grade) => {\r\n dado.descricaograde += grade.mgp_descricao;\r\n i++;\r\n if (i < item.atributos.length) {\r\n dado.descricaograde += \",\"\r\n }\r\n });\r\n await carregarParametrosLocal(dado, dadosTemp, lista);\r\n produtosSelec.push(dado);\r\n }\r\n dadosTabela.setDadosItens(produtosSelec);\r\n\r\n setarFocoProduto();\r\n setExibirDetalhes(false);\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n };\r\n\r\n function popularProduto(pro, prg_id = null, editar = false) {\r\n setExibirDetalhes(true);\r\n if (!editar) {\r\n form.setFieldsValue({ quantidade: 1 });\r\n form.setFieldsValue({ valorUnitario: (pro.lpi_valorvenda == null ? 0 : pro.lpi_valorvenda) });\r\n } else {\r\n let dados = manutencao.dados;\r\n form.setFieldsValue({ quantidade: dados.vci_quantidade });\r\n form.setFieldsValue({ valorUnitario: dados.vci_valorun });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n\r\n if (consultaProduto) {\r\n adicionarItem();\r\n }\r\n }\r\n\r\n async function carregarParametrosLocal(dados, dadosTemp, lista) {\r\n const codigo = dados.pro_id\r\n const codigoGrade = dados.prg_id\r\n const quantidade = dados.vci_quantidade\r\n\r\n let resParams = await api.get(`ParametroLocal/BuscarParametros`);\r\n let paramsEstoque = resParams.data.par_avisoestoqueinsuficiente;\r\n\r\n let dado = lista.filter(dados => dados.key === form.getFieldValue().pro_id || dados.pro_id === form.getFieldValue().pro_id)[0];\r\n let dadosIncluido = dadosTemp\r\n .filter((prod) => (prod.pro_id === dado.pro_id && (!!!dado.prg_id || dado.prg_id === prod.prg_id)))\r\n .reduce((total, prod) => total + prod.vci_quantidade, 0);\r\n \r\n if (paramsEstoque === null) {\r\n return;\r\n }\r\n\r\n let resEstoque = await api.get(`Estoque/BuscarEstoqueProduto?codigoProduto=${codigo}` + (codigoGrade ? `&codigoGrade=${codigoGrade}` : ''))\r\n let estoque = resEstoque.data.valorTotal;\r\n\r\n let valorEstoque = calcularValorEstoque(estoque, dadosIncluido, quantidade);\r\n\r\n return new Promise((resolve, reject) => {\r\n if (valorEstoque <= 0) {\r\n estoqueInsuficiente(paramsEstoque, valorEstoque, resolve, reject);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n function calcularValorEstoque(estoque, dadosIncluido, quantidade) {\r\n if (dadosIncluido !== 0) {\r\n var novosDadosIncluido = dadosIncluido + quantidade\r\n }\r\n if (novosDadosIncluido > estoque) {\r\n return estoque - novosDadosIncluido;\r\n } else if (quantidade > estoque) {\r\n return estoque - quantidade;\r\n } else {\r\n return estoque\r\n }\r\n }\r\n\r\n function estoqueInsuficiente(paramsEstoque, valorEstoque, resolve, reject) {\r\n if (paramsEstoque === 0) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Este produto está sem estoque disponível (Estoque: ${valorEstoque}). Deseja continuar?`,\r\n okText: 'Continuar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n resolve();\r\n },\r\n onCancel() {\r\n reject();\r\n }\r\n });\r\n } else if (paramsEstoque === 1) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Este produto está sem estoque disponível (Estoque: ${valorEstoque}). Deseja continuar? Será solicitado uma senha Gerencial!`,\r\n okText: 'Continuar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n setAbreModalLiberacao(true);\r\n setLiberacaoSenha({ resolve, reject });\r\n },\r\n onCancel() {\r\n reject();\r\n }\r\n });\r\n } else if (paramsEstoque === 2) {\r\n Modal.warning({\r\n title: 'Atenção Sistema de Controle de Estoque!',\r\n icon: ,\r\n content: `Produto com estoque ${valorEstoque}, sistema está configurado para bloquear vendas de produtos sem estoque!`,\r\n centered: true,\r\n onOk() {\r\n reject();\r\n }\r\n });\r\n }\r\n }\r\n\r\n const onCloseModalLiberacao = (aprovado) => {\r\n setAbreModalLiberacao(false);\r\n if (aprovado && liberacaoSenha) {\r\n liberacaoSenha.resolve();\r\n } else if (liberacaoSenha) {\r\n liberacaoSenha.reject();\r\n }\r\n setLiberacaoSenha(null);\r\n }; \r\n\r\n async function adicionarItem() {\r\n let dadosTemp = [...dadosTabela.dadosItens];\r\n let dados = {};\r\n let lista = [...listaSelectProd];\r\n if (form.getFieldValue().quantidade === 0 || parseFloat(form.getFieldValue().valorUnitario) === 0 || !!!form.getFieldValue().valorUnitario) {\r\n notification.warning({ message: 'Aviso!', description: `${!!form.getFieldValue().quantidade ? 'A Quantidade ' : 'O Valor '} do item não pode ser ZERO!` });\r\n return false;\r\n }\r\n if (!consultaProduto && dadosTemp.find(campo => campo.pro_id === form.getFieldValue().pro_id\r\n && ((!!form.getFieldValue().prg_id && form.getFieldValue().prg_id === campo.prg_id) || !form.getFieldValue().prg_id))) {\r\n adicionarItemCondicional(true, dadosTemp);\r\n } else {\r\n dados = adicionarItemCondicional(false, dadosTemp);\r\n }\r\n if (!btnEditando.editando) {\r\n try {\r\n await carregarParametrosLocal(dados, dadosTemp, lista);\r\n } catch (error) {\r\n return;\r\n }\r\n }\r\n dadosTemp.push(dados);\r\n dadosTemp.sort((a, b) => b.vci_sequencia - a.vci_sequencia);\r\n dadosTabela.setDadosItens(dadosTemp);\r\n\r\n if (btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n }\r\n setarFocoProduto();\r\n setExibirDetalhes(false);\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n };\r\n\r\n function setarFocoProduto() {\r\n if (consultaProduto && !!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n };\r\n\r\n function cancelar() {\r\n setExibirDetalhes(false);\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n if (btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n }\r\n };\r\n\r\n function limparCampos() {\r\n form.setFieldsValue({ pro_id: null, percdesc: 0, desconto: 0, percacresc: 0, acrescimo: 0, nfi_cfop: null, icm_id: null, pro_codigo: null, prg_id: null });\r\n };\r\n\r\n function adicionarItemCondicional(editar = false, dadosTemp) {\r\n let dados = {};\r\n let formulario = form.getFieldValue();\r\n if (editar) {\r\n dados = dadosTemp[itemEditando.indice];\r\n dados.vci_valorun = parseFloat(!!formulario.valorUnitario ? formulario.valorUnitario : 0);\r\n dados.vci_quantidade = formulario.quantidade;\r\n } else {\r\n // let produto;\r\n // if (!!formulario.prg_id) {\r\n // produto = produtos.filter((produto) => (produto.prg_id === formulario.prg_id))[0];\r\n // } else {\r\n // produto = produtos.filter((produto) => (produto.key === formulario.pro_id))[0];\r\n // }\r\n dados.pro_id = produtos.pro_id;\r\n dados.pro_codigo = produtos.pro_codigo;\r\n dados.vci_devolvido = 0;\r\n dados.pro_descricao = produtos.pro_descricao;\r\n dados.vci_quantidade = formulario.quantidade;\r\n dados.vci_sequencia = dadosTemp.length + 1;\r\n dados.pro_ean = !!produtos.pro_ean ? produtos.pro_ean : produtos.prg_ean;\r\n dados.prg_id = produtos.prg_id;\r\n dados.descricaograde = produtos.descricaograde;\r\n dados.vci_valorun = parseFloat(!!formulario.valorUnitario ? formulario.valorUnitario : 0);\r\n dados.valorTotal = parseFloat((dados.vci_valorun * dados.vci_quantidade).toFixed(2));\r\n }\r\n return dados;\r\n };\r\n\r\n async function buscarProdutoCodBarra(campo) {\r\n let dados = await api.get(`Produto/ListaProdutoCodigo?filtro=${campo.target.value.trim()}`);\r\n if (!!dados.data && dados.data.length > 0) {\r\n let produto = dados.data[0];\r\n form.setFieldsValue({ pro_id: produto.pro_id });\r\n if (!!dados.data[0].prg_id) {\r\n form.setFieldsValue({ prg_id: produto.prg_id });\r\n }\r\n let filtroGrade = dados.data[0].prg_id == null ? `` : `&codigoGrade=${produto.prg_id}`;\r\n let preco = await api.get(`ListaPrecoItem/BuscarPrecoPadraoItem?codigoProduto=${produto.pro_id}${filtroGrade}`);\r\n let dadosTemp = [...dadosTabela.dadosItens];\r\n let item = {};\r\n item.pro_id = produto.pro_id;\r\n item.pro_codigo = produto.pro_codigo;\r\n item.vci_devolvido = 0;\r\n item.pro_descricao = produto.pro_descricao;\r\n item.vci_quantidade = 1;\r\n item.vci_sequencia = dadosTemp.length + 1;\r\n item.pro_ean = !!produto.pro_ean ? produto.pro_ean : produto.prg_ean;\r\n item.prg_id = produto.prg_id;\r\n item.descricaograde = produto.descricaograde;\r\n item.vci_valorun = parseFloat(!!preco.data ? preco.data : 0);\r\n item.valorTotal = parseFloat((item.vci_valorun * item.vci_quantidade).toFixed(2));\r\n dadosTemp.push(item);\r\n dadosTabela.setDadosItens(dadosTemp);\r\n\r\n } else {\r\n Modal.error({\r\n title: \"Atenção!\",\r\n content: (\r\n
\r\n

Produto não localizado!

\r\n
\r\n ),\r\n onOk() {\r\n setarFocoProduto();\r\n }\r\n });\r\n }\r\n setarFocoProduto();\r\n limparCampos();\r\n };\r\n\r\n return (\r\n
\r\n \r\n {!!consultaProduto === false &&\r\n
\r\n \r\n { buscarProduto(dados) }} ordem={\"pro_descricao\"} setListaDados={setListaSelectProd} />\r\n {/* { buscarProduto(dados) }} placeholder=\"Selecione o Produto\" name=\"pro_id\" detalhes={true}/> */}\r\n\r\n \r\n \r\n }\r\n {!!consultaProduto &&\r\n \r\n \r\n {\r\n buscarProdutoCodBarra(value)\r\n }} placeholder=\"Informe o Produto/Mercadoria\" />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {exibirDetalhes &&\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n { alterarValorTotal() }} />\r\n \r\n \r\n \r\n { alterarValorTotal() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n { onCloseModalGrade() }} dados={dadosGrade} acrescimoDesconto={false} />\r\n \r\n \r\n );\r\n\r\n}","\r\nimport { manutencaoActions } from '../actions';\r\nimport { getNavegacao, getTela, setNavegacao } from '../services/auth';\r\n\r\nexport const gravarTela = (caminho, manutencao) => {\r\n let tela = JSON.parse(getNavegacao());\r\n if (!!tela.geral && !!tela.geral[caminho]) {\r\n let constante = {}\r\n constante = JSON.parse(getTela());\r\n if (!!constante.formulario && constante.formulario === caminho) {\r\n if (!!manutencao && !!manutencao.dados) {\r\n if (!!manutencao.dados.nomeTabela) {\r\n constante[manutencao.dados.nomeTabela] = manutencao.dados;\r\n }\r\n tela.geral[caminho].dados = JSON.stringify(constante);\r\n } else {\r\n tela.geral[caminho].dados = null;\r\n }\r\n }\r\n } else {\r\n incluirNovo(tela, caminho)\r\n }\r\n setNavegacao(tela);\r\n};\r\n\r\nexport const acrescDados = (caminho, name, dados, dispatch) => {\r\n buscarTela(caminho);\r\n let tela = JSON.parse(getNavegacao());\r\n let constante = {};\r\n if (!!tela.geral[caminho] && !!tela.geral[caminho].dados) {\r\n constante = JSON.parse(tela.geral[caminho].dados);\r\n constante[name] = dados;\r\n } else {\r\n incluirNovo(tela, caminho);\r\n if (!!tela.geral[caminho] && !!tela.geral[caminho].dados) {\r\n constante = JSON.parse(tela.geral[caminho].dados);\r\n constante[name] = dados;\r\n }\r\n }\r\n if (!!tela.geral[caminho]) {\r\n tela.geral[caminho].dados = JSON.stringify(constante);\r\n setNavegacao(tela);\r\n }\r\n dados.nomeTabela = name;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n};\r\n\r\nfunction incluirNovo(tela, caminho) {\r\n let dadosTela = getTela();\r\n if (!!dadosTela) {\r\n if (!!tela.geral) {\r\n tela.geral[caminho] = { 'Aberto': true };\r\n if (JSON.parse(dadosTela).formulario === caminho) {\r\n tela.geral[caminho].dados = dadosTela;\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const buscarTela = (caminho) => {\r\n var tela = JSON.parse(getNavegacao());\r\n if (!!tela.geral[caminho]) {\r\n return tela.geral[caminho].dados;\r\n } else {\r\n gravarTela(caminho);\r\n if (getTela()) {\r\n buscarTela(caminho);\r\n }\r\n }\r\n};\r\n\r\nexport const limparTela = (caminho, todos = false) => {\r\n var tela = JSON.parse(getNavegacao());\r\n if (todos) {\r\n setNavegacao({ geral: {} });\r\n } else {\r\n if (!!tela.geral[caminho]) {\r\n delete tela.geral[caminho].dados;\r\n setNavegacao(tela);\r\n\r\n }\r\n }\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport { Drawer } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport { gravarTela, limparTela } from \"../../services/navigation\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { MinusOutlined } from \"@ant-design/icons\";\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport { getNavegacao } from \"../../services/auth\";\r\nimport { isDate } from \"../../services/funcoes\";\r\n\r\nexport default function DrawerNav({ title, width = '70%', visible, className, form, limparAoEditar = false, fecharDrawer, fecharDrawerExtra, footer, afterVisibleChange, closeIcon, closable = true, destroyOnClose = false, children, extra }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n function minimizarDrawer() {\r\n let url = window.document.location.href;\r\n let nomeForm = url.substring(url.lastIndexOf('/'), url.length);\r\n /*setTimeout(() => {\r\n gravarTela(nomeForm, manutencao);\r\n }, 500);*/\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: false, showDrawerExtra: false } });\r\n };\r\n\r\n useEffect(() => {\r\n let jsonGeral = JSON.parse(getNavegacao()).geral;\r\n let dadosCaminho = {};\r\n let url = window.document.location.href;\r\n let nomeForm = url.substring(url.lastIndexOf('/'), url.length);\r\n if (!!jsonGeral) {\r\n dadosCaminho = jsonGeral[nomeForm];\r\n }\r\n if (!visible) {\r\n if (!!dadosCaminho && !!dadosCaminho.dados && (JSON.parse(dadosCaminho.dados).editar || !!!manutencao.dados)) {\r\n limparTela(nomeForm);\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n if (ui.showDrawerExtra) {\r\n if (!!fecharDrawerExtra) {\r\n fecharDrawerExtra();\r\n }\r\n } else {\r\n if (!!fecharDrawer) {\r\n fecharDrawer();\r\n\r\n }\r\n }\r\n } else if (visible && !!dadosCaminho && !!dadosCaminho.dados && !!!manutencao.dados) {\r\n let dados = JSON.parse(dadosCaminho.dados);\r\n for (let key in dados) {\r\n if (isDate(dados[key])) {\r\n dados[key] = moment(dados[key]);\r\n }\r\n }\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n }\r\n }, [visible]);\r\n\r\n return (\r\n }\r\n closable={closable}\r\n className={className}\r\n extra={extra}\r\n >\r\n {children}\r\n \r\n );\r\n};","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Form, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from '@ant-design/icons';\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nimport LancamentoTransferencia from '../../pages/lancamentoCaixa/lancamentoTransferencia';\r\nimport DrawerNav from '../drawerNav';\r\n\r\nexport default function DrawerLancamentoTransferencia({aoFechar = null}) {\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n const [formulario] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n function fecharDrawer() {\r\n if (!!aoFechar) {\r\n aoFechar();\r\n }\r\n formulario.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerTransferencia: false } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n );\r\n};","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Form, Modal } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from '@ant-design/icons';\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nimport ManutencaoCaixa from '../../pages/lancamentoCaixa/manutencao';\r\nimport DrawerNav from '../drawerNav';\r\n\r\nexport default function DrawerManutencaoCaixa({aoFechar = null}) {\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n const [formulario] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n function fecharDrawer() {\r\n if (!!aoFechar) {\r\n aoFechar();\r\n }\r\n formulario.resetFields();\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawerManutencaoCaixa: false } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n footer={\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n );\r\n};","import React, { useEffect } from 'react';\r\nimport { Row, Col, Drawer, Button, Divider } from \"antd\";\r\nimport { CloseOutlined } from '@ant-design/icons';\r\n\r\nimport LinkNav from \"../linkNav\";\r\nimport { getNavegacao } from '../../services/auth';\r\nimport { limparTela } from '../../services/navigation';\r\n\r\nexport default function DrawerPaginasAbertas({ exibirPagina, paginas, fecharPagina }) {\r\n\r\n const listaPag = [\r\n { patch: \"/\", label: \"Home\" },\r\n\r\n /*** Pessoas ***/\r\n { patch: \"/cliente\", label: \"Clientes\" },\r\n { patch: \"/fornecedor\", label: \"Fornecedores\" },\r\n { patch: \"/transportador\", label: \"Transportadores\" },\r\n { patch: \"/funcionario\", label: \"Funcionários\" },\r\n { patch: \"/vendedor\", label: \"Vendedores\" },\r\n\r\n /*** Tributações ***/\r\n { patch: \"/tributacaoIcms\", label: \"Tributação ICMS\" },\r\n { patch: \"/tributacaoPisCofins\", label: \"Tributação PIS/COFINS\" },\r\n { patch: \"/ncm\", label: \"NCM - Substituição Tributária\" },\r\n { patch: \"/aliquotaSimplesNacional\", label: \"Alíquota Simples Nacional\" },\r\n\r\n /*** Produto ***/\r\n { patch: \"/marca\", label: \"Marca\" },\r\n { patch: \"/grupoProduto\", label: \"Grupo de Produtos\" },\r\n { patch: \"/subGrupo\", label: \"Subgrupo de Produtos\" },\r\n { patch: \"/produto\", label: \"Cadastro de Produtos\" },\r\n { patch: \"/gradeProduto\", label: \"Modalidade Grade\" },\r\n { patch: \"/preco\", label: \"Preços\" },\r\n { patch: \"/etiqueta\", label: \"Gerar Etiquetas\" },\r\n { patch: \"/relacionamentoFornecedorProduto\", label: \"Relacionamento Produto x Fornecedor\" },\r\n\r\n /*** Cadastro Gerais ***/\r\n { patch: \"/contaCorrente\", label: \"Conta Corrente\" },\r\n { patch: \"/contaGerencial\", label: \"Conta Gerencial\" },\r\n { patch: \"/operacaoFiscal\", label: \"Operações Fiscais\" },\r\n { patch: \"/operacaoDebitoCredito\", label: \"Operação Débito e Crédito\" },\r\n { patch: \"/formaPagamento\", label: \"Forma de Pagamento\" },\r\n { patch: \"/condicaoPagamento\", label: \"Condição de Pagamento\" },\r\n { patch: \"/serieFiscal\", label: \"Série Fiscal\" },\r\n { patch: \"/historico\", label: \"Históricos\" },\r\n\r\n /*** Nota Fiscal ***/\r\n { patch: \"/notaFiscal\", label: \"Emissão de Nota Fiscal\" },\r\n { patch: \"/monitoramentoNfe\", label: \"Monitoramento NF-e\" },\r\n { patch: \"/notaFiscalTransferencia\", label: \"Notas Fiscais de Transferência\" },\r\n { patch: \"/cartaCorrecaoNotaFiscal\", label: \"Carta de Correção\" },\r\n { patch: \"/inutilizacaoNfe\", label: \"Inutilizar Nº de NF-e/NFC-e\" },\r\n { patch: \"/ordemCompra\", label: \"Ordem de Compra\" },\r\n\r\n /*** Orçamento ***/\r\n { patch: \"/orcamento\", label: \"Orçamento\" },\r\n\r\n /*** Pedidos Cliente ***/\r\n { patch: \"/pedidos\", label: \"Pedidos\" },\r\n { patch: \"/statusPedido\", label: \"Status Pedido\" },\r\n\r\n /*** Vendas ***/\r\n { patch: \"/condicional\", label: \"Condicional\" },\r\n { patch: \"/valePresente\", label: \"Vale Presente\" },\r\n { patch: \"/metas\", label: \"Metas de Vendas\" },\r\n { patch: \"/comissao\", label: \"Comissão\" },\r\n { patch: \"/consultaComissao\", label: \"Consulta Comissão\" },\r\n { patch: \"/antecipacao\", label: \"Antecipação Cliente/Fornecedor\" },\r\n\r\n /*** Financeiro ***/\r\n { patch: \"/contaReceber\", label: \"Contas a Receber\" },\r\n { patch: \"/recebimentoParcela\", label: \"Recebimento de Parcelas\" },\r\n { patch: \"/contaPagar\", label: \"Contas a Pagar\" },\r\n { patch: \"/pagamentoParcela\", label: \"Pagamento de Parcelas\" },\r\n { patch: \"/lancamentoCaixa\", label: \"Lançamentos de Caixa/Bancos\" },\r\n { patch: \"/fluxoCaixa\", label: \"Fluxo de Caixa\" },\r\n { patch: \"/conciliacaoCartoes\", label: \"Conciliação de Cartões\" },\r\n { patch: \"/cheque\", label: \"Controle de Cheques\" },\r\n\r\n /*** Boletos ***/\r\n { patch: \"/boleto\", label: \"Boleto\" },\r\n { patch: \"/remessa\", label: \"Gerar Remessa Bancária\" },\r\n { patch: \"/retornoBancario\", label: \"Processar Retorno Bancário\" },\r\n\r\n /*** Estoque ***/\r\n { patch: \"/armazemEstoque\", label: \"Armazém de Estoque\" },\r\n { patch: \"/estoque\", label: \"Consulta Estoque\" },\r\n { patch: \"/estoqueManutencao\", label: \"Manutenção de Estoque\" },\r\n { patch: \"/inventario\", label: \"Inventário\" },\r\n\r\n /*** Gerencial ***/\r\n { patch: \"/matrizFilial\", label: \"Matriz Filial\" },\r\n { patch: \"/configuracaoNfeNfce\", label: \"Configuração de NF-e/NFC-e\" },\r\n { patch: \"/gerenciarPdv\", label: \"Gerenciar PDVs\" },\r\n { patch: \"/limiteCreditoCliente\", label: \"Definição de Limite de Crédito\" },\r\n { patch: \"/contador\", label: \"Dados Contador\" },\r\n { patch: \"/plano\", label: \"Plano Contratado\" },\r\n { patch: \"/bandeiraCartaoEmpresa\", label: \"Cartão Crédito/Débito\" },\r\n { patch: \"/centroDistribuicao\", label: \"Centro de Distribuição\" },\r\n { patch: \"/acaoUsuario\", label: \"Ações Usuário\" },\r\n\r\n /*** Relatórios ***/\r\n { patch: \"/relatorios\", label: \"Relatórios\" },\r\n { patch: \"/analiseInadimplencia\", label: \"Análise de Inadimplência\" },\r\n\r\n /*** Personalização ***/\r\n { patch: \"/personalizacao\", label: \"Formulário\" },\r\n { patch: \"/camposPersonalizados\", label: \"Campos Personalizados\" },\r\n\r\n /*** Usuários e Grupos ***/\r\n { patch: \"/usuario\", label: \"Usuários\" },\r\n { patch: \"/grupoUsuario\", label: \"Grupo Usuários\" },\r\n\r\n /*** Arquivos Fiscais ***/\r\n { patch: \"/efdIcmsIpi\", label: \"EFDICMS/IPI\" }\r\n ]\r\n\r\n const onClosePaginaAbertas = () => {\r\n fecharPagina()\r\n };\r\n\r\n useEffect(() => {\r\n let dados = JSON.parse(getNavegacao());\r\n let paginasAbertas = [];\r\n if (!!dados && !!dados.geral) {\r\n let dadosGeral = dados.geral;\r\n for (let key in dadosGeral) {\r\n paginasAbertas.push(key);\r\n }\r\n paginas.setPaginasAbertas(listaPag.filter(pag => paginasAbertas.includes(pag.patch)))\r\n }\r\n }, [getNavegacao()])\r\n\r\n function limparTelas() {\r\n limparTela('', true);\r\n paginas.setPaginasAbertas([]);\r\n onClosePaginaAbertas();\r\n };\r\n\r\n function excluirPagina(pagSelec) {\r\n let pagAbertas = [...paginas.paginasAbertas];\r\n pagAbertas = pagAbertas.filter((pag) => (pag.patch !== pagSelec.patch));\r\n paginas.setPaginasAbertas(pagAbertas);\r\n }\r\n\r\n function AtzBreadcrumb(item) {\r\n localStorage.setItem('@GestorWeb-Breadcrumb', '|' + listaPag.filter(pag => pag.patch === item.currentTarget.getAttribute('href').replace('#', ''))[0].label);\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n paginas.paginasAbertas.map((pag) => (\r\n \r\n \r\n \r\n { AtzBreadcrumb(item); onClosePaginaAbertas(); }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n {paginas.paginasAbertas.length > 0 &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n\r\n )\r\n};","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Table, Row, Col, Divider } from 'antd';\r\nimport { ArrowUpOutlined, ArrowDownOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nimport { acrescDados } from '../../services/navigation';\r\nimport { useStateValue } from '../../state';\r\n\r\nfunction Tabela({ colunas, dados = [], paginacao = true, expandir, footerTabela, parametrosSelecionarItens, selecionarItem = false, nomeId = 'itens' }) {\r\n\r\n const [pagina, setPagina] = useState(1);\r\n const [registrosPorPagina, setRegistrosPorPagina] = useState(20);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const configPaginacao = paginacao ? {\r\n current: pagina,\r\n pageSize: registrosPorPagina,\r\n showSizeChanger: true,\r\n onChange: (pg) => setPagina(pg),\r\n onShowSizeChange: (atual, porPagina) => setRegistrosPorPagina(porPagina)\r\n } : null;\r\n\r\n const configSelecionarItem = selecionarItem ?\r\n setCondicaoSelecionarItem()\r\n : null;\r\n\r\n useEffect(() => {\r\n if (!!dados && dados.length > 0) {\r\n let url = window.document.location.href;\r\n acrescDados(url.substring(url.lastIndexOf('/'), url.length), nomeId, dados, dispatch);\r\n }\r\n }, [dados]);\r\n\r\n function setCondicaoSelecionarItem() {\r\n if (!!parametrosSelecionarItens && !!parametrosSelecionarItens.tipo) {\r\n if (parametrosSelecionarItens.tipo === \"change\") {\r\n return {\r\n onChange: (selectedRowKeys, selectedRows) => {\r\n parametrosSelecionarItens.funcao(selectedRowKeys, selectedRows);\r\n }\r\n }\r\n } else if (parametrosSelecionarItens.tipo === \"select\") {\r\n return {\r\n onSelect: (record, selected, selectedRows) => {\r\n parametrosSelecionarItens.funcao(record, selected, selectedRows);\r\n }\r\n }\r\n } else if (parametrosSelecionarItens.tipo === \"selectall\") {\r\n return {\r\n onSelectAll: (selected, selectedRows, changeRows) => {\r\n parametrosSelecionarItens.funcao(selected, selectedRows, changeRows);\r\n }\r\n }\r\n }\r\n }\r\n return \"\";\r\n\r\n };\r\n\r\n return (\r\n
{\r\n return expanded ? (\r\n onExpand(record, e)} />\r\n ) : (\r\n onExpand(record, e)} />\r\n );\r\n }}\r\n locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n )\r\n }}\r\n rowSelection={configSelecionarItem} scroll={{ x: 900 }} footer={footerTabela} columnWidth={15}\r\n />\r\n )\r\n}\r\n\r\nTabela.propTypes = {\r\n colunas: PropTypes.array.isRequired,\r\n paginacao: PropTypes.bool\r\n}\r\n\r\nexport default Tabela;","import React, { useEffect, useState } from \"react\";\r\nimport { Col, Form, Row, Button, Table, InputNumber, Select, notification, Tag, Modal, Descriptions, Input } from \"antd\";\r\nimport { CheckOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport Data from \"../data\";\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { getTela } from \"../../services/auth\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { manutencaoActions, selectPaginadoActions } from \"../../actions\";\r\nimport DrawerVendedores from \"../drawerVendedores\";\r\nimport { isObjetoDiffVazio, validarNumeros } from \"../../services/funcoes\";\r\nimport { ModalAntecipacaoClienteFornecedor, ModalBandeiraCartao, ModalContaCorrente, ModalParcelasPendentes, ModalSenhaLiberacao, ModalCheque } from \"../modals\";\r\nimport SelectPaginado from \"../selectPaginado\";\r\n\r\nexport default function FormasPagamento({ form, dadosOperacao, listaFormaPagamento, setListaFormaPagamento }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formaPagamento, setFormaPagamento] = useState([]);\r\n const [condicaoPagamento, setCondicaoPagamento] = useState([]);\r\n const [valorJaPago, setValorJaPago] = useState(false);\r\n const [pagamentoTotal, setPagamentoTotal] = useState(false);\r\n const [multiplasFormasPagamento, setMultiplasFormasPagamento] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [abrirDrawerVendedores, setAbrirDrawerVendedores] = useState(false);\r\n const [formVendedores] = Form.useForm();\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [semCondicao, setSemCondicao] = useState(false);\r\n const [ehCheque, setEhCheque] = useState(false);\r\n const [ehValePresente, setEhValePresente] = useState(false);\r\n const [dadosTela] = useState(getTela());\r\n const [isNota, setIsNota] = useState(false);\r\n const [openModalCartao, setOpenModalCartao] = useState(false);\r\n const [dadosParcelas, setDadosParcelas] = useState([]);\r\n const [abreModalLiberacao, setAbreModalLiberacao] = useState(false);\r\n const [abreModalParcPendentes, setAbreModalParcPendentes] = useState(false);\r\n const [parcelasPessoasAtraso, setParcelasPessoasAtraso] = useState([]);\r\n const [executarParcelas, setExecutarParcelas] = useState(false);\r\n const [formaPagamentoAntecipacao, setFormaPagamentoAntecipacao] = useState({});\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [exibirModalCheque, setExibirModalCheque] = useState(false);\r\n const [dadosCheque, setDadosCheque] = useState([]);\r\n const [abreModalContaCorrente, setAbreModalContaCorrente] = useState(false);\r\n const [contaCorrente, setContaCorrente] = useState({});\r\n const [tipoContaCorrente, setTipoContaCorrente] = useState(\"1\");\r\n const [abreModalAntecipacao, setAbreModalAntecipacao] = useState(false);\r\n const [dadosAntecipacao, setDadosAntecipacao] = useState([]);\r\n const [valorRestante, setValorRestante] = useState(0);\r\n const [desabilitaBtn, setDesabilitaBtn] = useState(false);\r\n const [editandoParcelas, setEditandoParcelas] = useState(false);\r\n const [semPagamento, setSemPagamento] = useState(false);\r\n const pagamentosCodigos = {\r\n dinheiro: 1,\r\n cheque: 2,\r\n cartaoCredito: 3,\r\n cartaoDebito: 4,\r\n crediarioLoja: 5,\r\n valeAlimentacao: 10,\r\n valeRefeicao: 11,\r\n valePresente: 12,\r\n valeCombustivel: 13,\r\n duplicataMercantil: 14,\r\n boleto: 15,\r\n depositoBancario: 16,\r\n pix: 17,\r\n transfBancaria: 18,\r\n programaFidelidade: 19,\r\n semPagamento: 90,\r\n outro: 99\r\n };\r\n\r\n const fecharModalOK = () => {\r\n setOpenModalCartao(false);\r\n };\r\n\r\n const fecharModalCartao = () => {\r\n let dados = [...listaFormaPagamento];\r\n let index = listaFormaPagamento.length - 1;\r\n removerFormaPagamento(dados[index]);\r\n setOpenModalCartao(false);\r\n };\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n if (validarNumeros(valorTotal) === 0) {\r\n setValorTotal(validarNumeros(form.getFieldValue().valorTotal));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (validarNumeros(valorTotal) !== 0) {\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n }, [valorTotal]);\r\n\r\n useEffect(() => {\r\n if (!!dadosTela) {\r\n let tela = JSON.parse(dadosTela).formulario.replaceAll('/', '');\r\n if (tela === `notaFiscal`) {\r\n setIsNota(true);\r\n }\r\n }\r\n }, [dadosTela]);\r\n\r\n useEffect(() => {\r\n if (isNota) {\r\n setMultiplasFormasPagamento(true);\r\n }\r\n }, [isNota]);\r\n\r\n useEffect(() => {\r\n let valor = 0;\r\n if (listaFormaPagamento.length > 0) {\r\n let dadosFpg = [...listaFormaPagamento]\r\n listaFormaPagamento.forEach((lista) => {\r\n valor += parseFloat(lista.pfp_valor);\r\n });\r\n if (!!form.getFieldValue().fpg_id) {\r\n listarCondicao(form.getFieldValue().fpg_id, true);\r\n }\r\n if (valor >= valorTotal && valor >= parseFloat(form.getFieldValue().valorTotal)) {\r\n setPagamentoTotal(true);\r\n } else {\r\n setPagamentoTotal(false);\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n setExecutarParcelas(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ faturamento: listaFormaPagamento } } } });\r\n if (dadosFpg.some(dado => dado.parcelas && dado.parcelas.length > 0)) {\r\n dadosFpg.forEach(dado => {\r\n if (dado.parcelas && dado.parcelas.length > 0) {\r\n dado.parcelas.forEach(parcela => {\r\n parcela.pcl_numeroparcela = parcela.prc_numeroparcela;\r\n parcela.dataVencimento = parcela.prc_datavencimento;\r\n parcela.valorParcela = parcela.prc_valor;\r\n });\r\n }\r\n });\r\n }\r\n } else {\r\n setPagamentoTotal(false);\r\n }\r\n if (!!listaFormaPagamento[listaFormaPagamento.length - 1] && !!!listaFormaPagamento[listaFormaPagamento.length - 1].ctc_id &&\r\n (listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === pagamentosCodigos.depositoBancario\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === pagamentosCodigos.transfBancaria\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === pagamentosCodigos.pix)) {\r\n setAbreModalContaCorrente(true);\r\n setTipoContaCorrente(\"2\")\r\n }\r\n if (!!listaFormaPagamento[listaFormaPagamento.length - 1] && !!!listaFormaPagamento[listaFormaPagamento.length - 1].ctc_id &&\r\n (listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === pagamentosCodigos.cheque\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === pagamentosCodigos.dinheiro)) {\r\n setTipoContaCorrente(\"1\");\r\n setAbreModalContaCorrente(true);\r\n }\r\n\r\n setEhValePresente(false);\r\n setValorJaPago(valor);\r\n }, [listaFormaPagamento]);\r\n\r\n useEffect(() => {\r\n if (parseFloat(form.getFieldValue().valorTotal) > 0 && !editando) {\r\n let valor = 0;\r\n if (listaFormaPagamento.length > 0) {\r\n listaFormaPagamento.forEach((lista) => {\r\n valor += parseFloat(lista.pfp_valor);\r\n });\r\n if (valor >= valorTotal && valor >= parseFloat(form.getFieldValue().valorTotal)) {\r\n setPagamentoTotal(true);\r\n } else {\r\n setPagamentoTotal(false);\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n }\r\n }\r\n\r\n }, [form.getFieldValue()]);\r\n\r\n useEffect(() => {\r\n if (parseFloat(valorRestante) > 0 && !!manutencao.dados && !!!manutencao.dados.antecipacao) {\r\n verificarAntecipacoes();\r\n }\r\n }, [valorRestante]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.faturamento && executarParcelas) {\r\n let dados = manutencao.dados.faturamento;\r\n let index = dados.length - 1;\r\n setExecutarParcelas(false);\r\n if (dados[index].fpg_tipopagamento === pagamentosCodigos.crediarioLoja) {\r\n validarJaPossuiCrediario(() => {\r\n popularParcelas();\r\n });\r\n } else if (dados[index].fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n validarJaPossuiBoleto(() => {\r\n popularParcelas();\r\n });\r\n } else if ((((dados[index].fpg_tipopagamento === pagamentosCodigos.cartaoCredito && dadosParcelas.length === 0)\r\n || dados[index].fpg_tipopagamento === pagamentosCodigos.cartaoDebito) && !!!manutencao.dados.credito) && !openModalCartao) {\r\n abrirModalCartao(dados[index]);\r\n } else if (dados[index].fpg_tipopagamento === pagamentosCodigos.cheque) {\r\n abrirModalCheque(dados[index]);\r\n }\r\n } else if (!!manutencao.dados && !!manutencao.dados.antecipacao) {\r\n retornaFormaPagamentoAntecipacao();\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n setValorTotal(validarNumeros(form.getFieldValue().valorTotal));\r\n let dadosFormaPagamento = formaPagamento.filter((forma) => { return forma.fpg_id === form.getFieldValue().fpg_id; })[0];\r\n if (multiplasFormasPagamento && (!!dadosFormaPagamento && dadosFormaPagamento.fpg_tipopagamento !== pagamentosCodigos.valePresente)) {\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n }, [multiplasFormasPagamento]);\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldValue().fpg_id) {\r\n let dadosFormaPagamento = formaPagamento.filter((forma) => { return forma.fpg_id === form.getFieldValue().fpg_id; })[0];\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ formaPagamento: dadosFormaPagamento } } } });\r\n }\r\n }, [form.getFieldValue().fpg_id]);\r\n\r\n useEffect(() => {\r\n if (isObjetoDiffVazio(formaPagamentoAntecipacao)) {\r\n adicionarFormaPagamento(false, true);\r\n\r\n }\r\n }, [formaPagamentoAntecipacao]);\r\n\r\n useEffect(() => {\r\n\r\n if (semCondicao && !!form.getFieldValue().fpg_id) {\r\n adicionarFormaPagamento();\r\n }\r\n }, [semCondicao]);\r\n\r\n useEffect(() => {\r\n if (semPagamento) {\r\n\r\n }\r\n }, [semPagamento]);\r\n\r\n const formaPgtoAntecipacao = {\r\n fpg_id: 10758,\r\n ctc_descricao: null,\r\n ctc_id: null,\r\n dbl_extensaoarquivoremessa: null,\r\n dbl_nomearquivoremessa: null,\r\n dbl_padraoarquivoremessa: null,\r\n fpg_ativo: true,\r\n fpg_descontopadrao: null,\r\n fpg_descricao: \"ANTECIPACAO\",\r\n fpg_emiteboleto: false,\r\n fpg_imprimecarne: false,\r\n fpg_padraosistema: true,\r\n fpg_principal: true,\r\n parcelas: [],\r\n cheques: [],\r\n antecipacoes: !!manutencao.dados && !!manutencao.dados.antecipacao ? manutencao.dados.antecipacao : [],\r\n fpg_tipopagamento: pagamentosCodigos.programaFidelidade,//A prazo\r\n };\r\n\r\n function onCloseModalLiberacao() {\r\n setAbreModalLiberacao(false);\r\n };\r\n\r\n function onCloseModalParcPendentes() {\r\n setAbreModalParcPendentes(false);\r\n };\r\n\r\n function onCloseModalParcPendentesOk() {\r\n setAbreModalParcPendentes(false);\r\n adicionarFormaPagamento(true);\r\n };\r\n\r\n function onCloseModalCheque() {\r\n setExibirModalCheque(false);\r\n };\r\n\r\n function carregarDados() {\r\n api.get('FormaPagamento/Listar?Ativo=true').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let dados = res.data.items;\r\n if (!!dadosOperacao && isObjetoDiffVazio(dadosOperacao)) {\r\n if (dadosOperacao.tip_id === 5) {\r\n setFormaPagamento(dados);\r\n } else {\r\n setFormaPagamento(dados.filter((fpg) => (fpg.fpg_tipopagamento !== 90)));\r\n }\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function valorRestantePgto(dadosTemp) {\r\n let restante = 0;\r\n let valorPago = 0;\r\n if (!editando) {\r\n dadosTemp.forEach((dados) => {\r\n valorPago += parseFloat(dados.pfp_valor);\r\n });\r\n restante = parseFloat(valorTotal) - valorPago;\r\n form.setFieldsValue({ pfp_valor: restante.toFixed(2) });\r\n setValorRestante(parseFloat(restante.toFixed(2)));\r\n } else {\r\n setEditando(false);\r\n }\r\n };\r\n\r\n function listarCondicao(fpg_id, dadosIniciais = false) {\r\n if (!dadosIniciais) {\r\n form.setFieldsValue({ cpg_id: null });\r\n }\r\n api.get(`CondicaoPagamento/Listar?Ativo=true&CodigoFormaPagamento=${fpg_id}&PageSize=500`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setCondicaoPagamento(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function retornaFormaPagamentoAntecipacao() {\r\n api.get(`FormaPagamento/RetornaFormaPagamentoAntecipacao?Ativo=true&FormasPagtoQuitaAntecipacao=true`).then(\r\n res => {\r\n setFormaPagamentoAntecipacao(res.data.items[0]);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function validarJaPossuiCrediario(callback) {\r\n let dados = [...listaFormaPagamento];\r\n if (!dados.find((formaPgto => (formaPgto.fpg_tipopagamento === pagamentosCodigos.crediarioLoja && !!formaPgto.parcelas && formaPgto.parcelas.length > 0)))) {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n };\r\n\r\n function validarJaPossuiBoleto(callback) {\r\n let dados = [...listaFormaPagamento];\r\n if (!dados.find((formaPgto => (formaPgto.fpg_tipopagamento === pagamentosCodigos.boleto && !!formaPgto.parcelas && formaPgto.parcelas.length > 0)))) {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n async function adicionarFormaPagamento(liberadoCredito = false, antecipacao = false) {\r\n let dadosTemp = [...listaFormaPagamento];\r\n let pagamentoCartao = false;\r\n\r\n if (parseFloat(form.getFieldValue().pfp_valor) === 0) {\r\n notification.warning({ message: 'Aviso!', description: 'Valor de Pagamento Inválido!' });\r\n return false;\r\n }\r\n\r\n if (ehValePresente && !!!form.getFieldValue().codigoValePresente) {\r\n notification.warning({ description: 'Favor informar um vale presente válido!', message: 'Aviso' });\r\n return;\r\n }\r\n\r\n //Utilizado para atualizar a constante de valor total da nota de acordo com o formulario que é o valor exibido em tela.\r\n setValorTotal(validarNumeros(form.getFieldValue().valorTotal));\r\n\r\n if (antecipacao) {\r\n if (!dadosTemp.find(formasPgto => formasPgto.fpg_tipopagamento === pagamentosCodigos.programaFidelidade && formasPgto.fpg_quitacaoantecipacao)) {\r\n dadosTemp.push({\r\n fpg_id: formaPagamentoAntecipacao.fpg_id,\r\n fpg_descricao: formaPagamentoAntecipacao.fpg_descricao,\r\n cpg_descricao: '',\r\n cpg_id: null,\r\n condicaoPagamento: {},\r\n formaPagamento: formaPgtoAntecipacao,\r\n pfp_valor: manutencao.dados.antecipacao[0].valorAntecipacao,\r\n parcelas: [],\r\n descontoPadrao: {},\r\n ctc_id: formaPagamentoAntecipacao.ctc_id,\r\n fpg_tipopagamento: pagamentosCodigos.programaFidelidade,\r\n fpg_quitacaoantecipacao: formaPagamentoAntecipacao.fpg_quitacaoantecipacao,\r\n });\r\n setListaFormaPagamento(dadosTemp);\r\n setFormaPagamentoAntecipacao({});\r\n valorRestantePgto(dadosTemp);\r\n }\r\n } else {\r\n if (!!form.getFieldValue().fpg_id && (semCondicao || (condicaoPagamento.length === 0 || !!form.getFieldValue().cpg_id))) {\r\n let dadosFormaPagamento = (await api.get(`FormaPagamento/Get?id=${form.getFieldValue().fpg_id}`)).data;\r\n if (listaFormaPagamento.find((formas) => (\r\n formas.fpg_id === form.getFieldValue().fpg_id && (!semCondicao ? formas.cpg_id === form.getFieldValue().cpg_id : true)\r\n ))) {\r\n let dados = listaFormaPagamento.find((formas) => (\r\n formas.fpg_id === form.getFieldValue().fpg_id && (!semCondicao ? formas.cpg_id === form.getFieldValue().cpg_id : true)\r\n ));\r\n dados.pfp_valor = parseFloat(form.getFieldValue().pfp_valor);\r\n validarContaCorrente(dadosTemp, () => {\r\n if (!pagamentoCartao) {\r\n valorRestantePgto(dadosTemp);\r\n }\r\n });\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n form.setFieldsValue({ fpg_tipopagamento: null });\r\n\r\n form.setFieldsValue({ ctc_id: null });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n form.setFieldsValue({ numeroCheques: null });\r\n } else {\r\n verificarRestricoesCredito(dadosFormaPagamento, liberadoCredito, () => {\r\n incluirNovaFormaPagamento(dadosTemp);\r\n });\r\n }\r\n\r\n }\r\n else if (form.getFieldValue().cpg_id === null) {\r\n notification.warning({ message: 'Aviso', description: 'Informe a condição de pagamento!' });\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Informe a forma e a condição de pagamento!' });\r\n }\r\n }\r\n };\r\n\r\n\r\n async function incluirNovaFormaPagamento(listaForma) {\r\n let dadosFormaPagamento = (await api.get(`FormaPagamento/Get?id=${form.getFieldValue().fpg_id}`)).data;\r\n\r\n if (semCondicao) {\r\n let valor = 0;\r\n if (!semPagamento) {\r\n valor = form.getFieldValue().pfp_valor;\r\n }\r\n listaForma.push({\r\n fpg_id: form.getFieldValue().fpg_id,\r\n fpg_descricao: dadosFormaPagamento.fpg_descricao,\r\n cpg_descricao: '',\r\n cpg_id: null,\r\n condicaoPagamento: {},\r\n formaPagamento: !!dadosFormaPagamento && JSON.stringify(dadosFormaPagamento) !== '{}' ? dadosFormaPagamento : {},\r\n pfp_valor: valor,\r\n nfp_codigovalepresente: form.getFieldValue().codigoValePresente,\r\n parcelas: [],\r\n numeroCheques: null,\r\n descontoPadrao: {},\r\n ctc_id: dadosFormaPagamento.ctc_id,\r\n fpg_tipopagamento: dadosFormaPagamento.fpg_tipopagamento,\r\n fpg_tipointegracao: dadosFormaPagamento.fpg_tipointegracao,\r\n });\r\n\r\n validarContaCorrente(listaForma, () => {\r\n if (!semPagamento) {\r\n valorRestantePgto(listaForma);\r\n } else {\r\n setValorRestante(0);\r\n }\r\n });\r\n\r\n\r\n } else {\r\n if (parseFloat(valorTotal) < parseFloat(parseFloat(form.getFieldValue().pfp_valor) + parseFloat(valorJaPago)).toFixed(2)) {\r\n notification.warning({ message: 'Aviso', description: 'Valor de pagamento maior que o total do pedido!' });\r\n } else {\r\n let dadosCondicoesPagamento = condicaoPagamento.filter((condicao) => { return condicao.cpg_id === form.getFieldValue().cpg_id; })[0];\r\n listaForma.push({\r\n fpg_id: form.getFieldValue().fpg_id,\r\n fpg_descricao: dadosFormaPagamento.fpg_descricao,\r\n cpg_descricao: !!dadosCondicoesPagamento && dadosCondicoesPagamento.cpg_descricao ? dadosCondicoesPagamento.cpg_descricao : '',\r\n cpg_id: !!form.getFieldValue().cpg_id ? form.getFieldValue().cpg_id : null,\r\n condicaoPagamento: !!dadosCondicoesPagamento && JSON.stringify(dadosCondicoesPagamento) !== '{}' ? dadosCondicoesPagamento : {},\r\n formaPagamento: !!dadosFormaPagamento && JSON.stringify(dadosFormaPagamento) !== '{}' ? dadosFormaPagamento : {},\r\n pfp_valor: form.getFieldValue().pfp_valor,\r\n nfp_codigovalepresente: form.getFieldValue().codigoValePresente,\r\n parcelas: [],\r\n numeroCheques: form.getFieldValue().numeroCheques,\r\n descontoPadrao: {},\r\n ctc_id: dadosFormaPagamento.ctc_id,\r\n fpg_tipopagamento: dadosFormaPagamento.fpg_tipopagamento,\r\n fpg_tipointegracao: dadosFormaPagamento.fpg_tipointegracao,\r\n });\r\n validarContaCorrente(listaForma, () => {\r\n valorRestantePgto(listaForma);\r\n });\r\n }\r\n }\r\n\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n form.setFieldsValue({ fpg_tipopagamento: null });\r\n\r\n form.setFieldsValue({ ctc_id: null });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n form.setFieldsValue({ numeroCheques: null });\r\n };\r\n\r\n function validarContaCorrente(dados, callback) {\r\n let ultimaForma = dados[dados.length - 1];\r\n if (!!!ultimaForma.ctc_id && (ultimaForma.fpg_tipopagamento === pagamentosCodigos.cheque || ultimaForma.fpg_tipopagamento === pagamentosCodigos.dinheiro\r\n || ultimaForma.fpg_tipopagamento === pagamentosCodigos.depositoBancario || ultimaForma.fpg_tipopagamento === pagamentosCodigos.pix\r\n || ultimaForma.fpg_tipopagamento === pagamentosCodigos.transfBancaria)) {\r\n setAbreModalContaCorrente(true);\r\n }\r\n\r\n setListaFormaPagamento(dados);\r\n if (!!callback) {\r\n callback();\r\n }\r\n };\r\n\r\n function onCloseModalContaCorrente() {\r\n let ultimaForma = listaFormaPagamento[listaFormaPagamento.length - 1];\r\n ultimaForma.ctc_id = contaCorrente.ctc_id;\r\n ultimaForma.ctc_descricao = contaCorrente.ctc_descricao;\r\n setListaFormaPagamento(listaFormaPagamento);\r\n setAbreModalContaCorrente(false);\r\n };\r\n\r\n function verificarRestricoesCredito(dadosFormaPagamento, liberado, callback) {\r\n let parcelasAtraso = [];\r\n let limiteCreditoDisp = {};\r\n if (liberado) {\r\n callback();\r\n } else if (parseInt(dadosFormaPagamento.fpg_tipopagamento) === pagamentosCodigos.crediarioLoja || parseInt(dadosFormaPagamento.fpg_tipopagamento) === pagamentosCodigos.boleto) {\r\n api.get(`Parcela/ListarParcelasClientesEmAtrazo?IdPessoa=${form.getFieldValue().pes_id}&PageSize=500`).then(\r\n parcelasPessoa => {\r\n let dados = [...parcelasPessoa.data.items];\r\n api.get(`Cliente/LimiteCreditoDisponivel/${form.getFieldValue().pes_id}`).then(\r\n limiteCredito => {\r\n parcelasAtraso = parcelasPessoa.data.items;\r\n limiteCreditoDisp = limiteCredito.data;\r\n dados.forEach((parcelas) => { parcelas.limiteCredito = limiteCreditoDisp.valorTotal });\r\n setParcelasPessoasAtraso(dados);\r\n if (!!!parcelasAtraso) {\r\n notification.warning({ description: 'Não foi possível verificar as parcelas em atraso deste cliente. É recomendável que você fale com seu supervisor/gerente antes de prosseguir com a venda!', message: 'Aviso' });\r\n } else if (parcelasAtraso.length > 0) {\r\n setAbreModalParcPendentes(true);\r\n } else if (!!!limiteCreditoDisp) {\r\n notification.warning({ description: 'Não foi possível verificar o limite de crédito disponível para realizar a venda no crediário. É recomendável que você fale com seu supervisor/gerente antes de prosseguir com a venda!', message: 'Aviso' });\r\n } else if (limiteCreditoDisp.valorTotal !== 0 && limiteCreditoDisp.valorTotal < parseFloat(valorJaPago)) {\r\n Modal.confirm({\r\n title: `Aviso`,\r\n icon: ,\r\n content: `O limite de crédito ainda disponível para compras à prazo deste cliente é: ${parseFloat(limiteCreditoDisp.valorTotal).toFixed(2).toString()}. ${} Para continuar com a venda à prazo você deve solicitar autorização da operação com seu supervisor/gerente.`,\r\n okText: 'Solicitar Autorização',\r\n cancelText: 'OK',\r\n onOk() {\r\n setAbreModalLiberacao(true);\r\n }\r\n });\r\n } else {\r\n callback();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n function abrirModalCartao(dados) {\r\n if (!!!dados.parcelas || dados.parcelas <= 0) {\r\n if (dados.fpg_tipopagamento === pagamentosCodigos.cartaoCredito) {\r\n popularParcelas(() => {\r\n if (dados.fpg_tipointegracao == null) {\r\n setOpenModalCartao(true);\r\n }\r\n });\r\n } else if (dados.fpg_tipopagamento === pagamentosCodigos.cartaoDebito) {\r\n popularParcelasDebito(() => {\r\n if (dados.fpg_tipointegracao == null) {\r\n setOpenModalCartao(true);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n function abrirModalCheque(dados) {\r\n setDadosCheque(dados);\r\n setExibirModalCheque(!exibirModalCheque);\r\n };\r\n\r\n function popularParcelas(callback) {\r\n let dados = [...listaFormaPagamento];\r\n let index = manutencao.dados.faturamento.length - 1;\r\n api.get(`CondicaoPagamento/ListarParcelamento?codigoCondicaoPagamento=${manutencao.dados.faturamento[index].cpg_id}`).then(\r\n res => {\r\n if (!!res.data && res.data.length > 0) {\r\n let resto = 0;\r\n let somaParcelas = 0;\r\n let listaParcelas = [];\r\n let indexPosicao = manutencao.dados.faturamento.length - 1;\r\n res.data.forEach((parcela) => {\r\n let dataAtual = new Date();\r\n let parc = {};\r\n let dataVencimento = new Date(dataAtual.setDate(dataAtual.getDate() + parcela.pcl_numerodias));\r\n parc.fpg_id = manutencao.dados.faturamento[indexPosicao].fpg_id;\r\n parc.fpg_descricao = manutencao.dados.faturamento[indexPosicao].fpg_descricao;\r\n parc.fpg_tipopagamento = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento;\r\n parc.cpg_id = manutencao.dados.faturamento[indexPosicao].cpg_id;\r\n parc.pcl_numerodias = parcela.pcl_numerodias;\r\n parc.pcl_percparcela = parcela.pcl_percparcela;\r\n parc.pcl_numeroparcela = parcela.pcl_numeroparcela;\r\n parc.prc_numeroparcela = parcela.pcl_numeroparcela;\r\n parc.dataPagamento = dataVencimento;\r\n parc.prc_datavencimento = moment(dataVencimento);\r\n parc.dataVencimento = moment(dataVencimento);\r\n let valorParcela = ((parcela.pcl_percparcela / 100) * parseFloat(manutencao.dados.faturamento[index].pfp_valor)).toFixed(2);\r\n parc.valorParcela = parseFloat(valorParcela);\r\n parc.prc_valor = parseFloat(valorParcela);\r\n somaParcelas += parc.valorParcela;\r\n listaParcelas.push(parc);\r\n });\r\n somaParcelas = somaParcelas.toFixed(2);\r\n somaParcelas = parseFloat(somaParcelas);\r\n resto = parseFloat(manutencao.dados.faturamento[index].pfp_valor) - somaParcelas;\r\n if (resto != 0) {\r\n let numeroUltimaParcela = res.data.length - 1;\r\n let valParcela = listaParcelas[numeroUltimaParcela].valorParcela;\r\n let totalParcela = (valParcela + resto).toFixed(2);\r\n totalParcela = parseFloat(totalParcela);\r\n listaParcelas[numeroUltimaParcela].prc_valor = totalParcela;\r\n listaParcelas[numeroUltimaParcela].valorParcela = totalParcela;\r\n }\r\n dados[index].parcelas = listaParcelas;\r\n manutencao.dados.faturamento[indexPosicao].editando = false;\r\n if (manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento !== pagamentosCodigos.crediarioLoja && manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento !== pagamentosCodigos.boleto) {\r\n let creditoDebito = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento === pagamentosCodigos.cartaoCredito;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ... { credito: creditoDebito } } } });\r\n }\r\n setListaFormaPagamento(dados);\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function popularParcelasDebito(callback) {\r\n let dados = [...listaFormaPagamento];\r\n let index = manutencao.dados.faturamento.length - 1;\r\n let listaParcelas = [];\r\n let indexPosicao = manutencao.dados.faturamento.length - 1;\r\n let parc = {};\r\n parc.fpg_id = manutencao.dados.faturamento[indexPosicao].fpg_id;\r\n parc.fpg_descricao = manutencao.dados.faturamento[indexPosicao].fpg_descricao;\r\n parc.fpg_tipopagamento = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento;\r\n parc.cpg_id = manutencao.dados.faturamento[indexPosicao].cpg_id;\r\n parc.pcl_percparcela = 100;\r\n parc.pcl_numeroparcela = 1;\r\n parc.prc_numeroparcela = 1;\r\n let valorParcela = ((parc.pcl_percparcela / 100) * parseFloat(manutencao.dados.faturamento[index].pfp_valor)).toFixed(2);\r\n parc.valorParcela = parseFloat(valorParcela);\r\n parc.prc_valor = parseFloat(valorParcela);\r\n listaParcelas.push(parc);\r\n dados[index].parcelas = listaParcelas;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ... { credito: false } } } });\r\n setListaFormaPagamento(dados);\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n\r\n function pagamentoCartao(dados, dadosCartao) {\r\n let dataAtual = new Date();\r\n let listaFormasPagamento = [...manutencao.dados.faturamento];\r\n let indexPosicao = listaFormasPagamento.length - 1;\r\n let recebimentoCartao = [];\r\n let retorno = {};\r\n if (dadosCartao.tipoParcelamento === 0) {//Estabelecimento\r\n let numeroDias = !!dados.credito ? dadosCartao.bandeira.bce_nrodiasrecebimentocredito : dadosCartao.bandeira.bce_nrodiasrecebimentodebito;\r\n listaFormasPagamento[indexPosicao].parcelas.forEach((parcela) => {\r\n retorno.tipoParcelamento = dadosCartao.tipoParcelamento;\r\n retorno.bce_id = dadosCartao.bandeira.bce_id;\r\n retorno.rcc_parcelarecebimento = parcela.pcl_numeroparcela;\r\n retorno.rcc_valor = parcela.prc_valor;\r\n retorno.rcc_nsu = dadosCartao.nsu;\r\n retorno.rcc_previsaorecebimento = new Date(dataAtual.setDate(dataAtual.getDate() + numeroDias));\r\n recebimentoCartao.push(retorno);\r\n });\r\n } else {\r\n retorno.tipoParcelamento = dadosCartao.tipoParcelamento;\r\n retorno.bce_id = dadosCartao.bandeira.bce_id;\r\n retorno.rcc_parcelarecebimento = 1;\r\n retorno.rcc_valor = listaFormasPagamento[indexPosicao].valorPago;\r\n retorno.rcc_nsu = dadosCartao.nsu;\r\n retorno.rcc_previsaorecebimento = new Date(dataAtual.setDate(dataAtual.getDate() + parseInt(dadosCartao.bandeira.bce_nrodiasrecebimentocredito)));\r\n recebimentoCartao.push(retorno);\r\n }\r\n if (listaFormasPagamento[indexPosicao].fpg_tipopagamento === pagamentosCodigos.cartaoDebito) {\r\n let formaPagamento = listaFormaPagamento[indexPosicao];\r\n formaPagamento.parcelas.forEach(parcela => {\r\n parcela.pcl_numerodias = dadosCartao.bandeira.bce_nrodiasrecebimentodebito;\r\n let dataVencimento = new Date(dataAtual.setDate(dataAtual.getDate() + parseInt(parcela.pcl_numerodias)));\r\n parcela.dataPagamento = dataVencimento;\r\n parcela.prc_datavencimento = moment(dataVencimento);\r\n parcela.dataVencimento = moment(dataVencimento);\r\n });\r\n setListaFormaPagamento(listaFormaPagamento);\r\n }\r\n\r\n listaFormaPagamento[indexPosicao].recebimentoCartao = recebimentoCartao;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ recebimentoCartao: recebimentoCartao } } } });\r\n };\r\n\r\n function cancelarAlteracoesFormaPagamento(record) {\r\n let formasPgto = [...listaFormaPagamento];\r\n let formaPgto = formasPgto.find((forma) => (forma.fpg_id === record.fpg_id));\r\n formaPgto.editando = false;\r\n setEditandoParcelas(false);\r\n setEditando(false);\r\n };\r\n\r\n function salvarFormaPagamento(record) {\r\n let formasPgto = [...listaFormaPagamento];\r\n let formaPgto = formasPgto.find((forma) => (forma.fpg_id === record.fpg_id));\r\n formaPgto.parcelas.forEach((item, i) => {\r\n i++;\r\n item.prc_datavencimento = form.getFieldValue(`dataVencimento${i}`);\r\n item.dataVencimento = form.getFieldValue(`dataVencimento${i}`);\r\n item.valorParcela = parseFloat(form.getFieldValue(`valorParcela${i}`));\r\n item.prc_valor = parseFloat(form.getFieldValue(`valorParcela${i}`));\r\n });\r\n formaPgto.editando = false;\r\n setListaFormaPagamento(formasPgto);\r\n setEditandoParcelas(false);\r\n };\r\n\r\n function editarFormasPagamento(forma) {\r\n let dados = forma;\r\n setPagamentoTotal(false);\r\n setMultiplasFormasPagamento(true);\r\n setEditando(true);\r\n let lista = [];\r\n lista.push({ name: \"fpg_id\", campo: \"Filtro\", value: forma.fpg_id });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n form.setFieldsValue({ fpg_id: forma.fpg_id });\r\n if (dados.fpg_tipopagamento === pagamentosCodigos.dinheiro || dados.fpg_tipopagamento === pagamentosCodigos.cheque || dados.fpg_tipopagamento === pagamentosCodigos.valePresente ||\r\n dados.fpg_tipopagamento === pagamentosCodigos.crediarioLoja || dados.fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n setSemCondicao(true);\r\n if (dados.fpg_tipopagamento === pagamentosCodigos.cheque) {\r\n setEhCheque(true);\r\n } else if (dados.fpg_tipopagamento === pagamentosCodigos.valePresente) {\r\n setEhValePresente(true);\r\n } else if (dados.fpg_tipopagamento === pagamentosCodigos.crediarioLoja || dados.fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n forma.editando = true;\r\n setEditandoParcelas(true);\r\n }\r\n } else {\r\n form.setFieldsValue({ cpg_id: forma.cpg_id });\r\n }\r\n form.setFieldsValue({ pfp_valor: forma.pfp_valor });\r\n };\r\n\r\n function removerFormaPagamento(forma) {\r\n let dadosTemp = [...listaFormaPagamento];\r\n if (forma.fpg_tipopagamento === pagamentosCodigos.programaFidelidade) {\r\n dispatch({\r\n type: manutencaoActions.CHANGE, data: {\r\n dados: {\r\n ...manutencao.dados, ...{\r\n faturamento: manutencao.dados.faturamento.filter((dadosFat) =>\r\n dadosFat.fpg_tipopagamento !== forma.fpg_tipopagamento), antecipacao: null\r\n }\r\n }\r\n }\r\n });\r\n setDadosAntecipacao({});\r\n } else if (forma.fpg_tipopagamento === pagamentosCodigos.cartaoCredito || forma.fpg_tipopagamento === pagamentosCodigos.cartaoDebito) {\r\n dispatch({\r\n type: manutencaoActions.CHANGE, data: {\r\n dados: {\r\n ...manutencao.dados, ...{\r\n faturamento: manutencao.dados.faturamento.filter((dadosFat) =>\r\n dadosFat.fpg_tipopagamento !== forma.fpg_tipopagamento), credito: null\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n setDadosParcelas([]);\r\n dispatch({\r\n type: manutencaoActions.CHANGE, data: {\r\n dados: {\r\n ...manutencao.dados, ...{\r\n faturamento: manutencao.dados.faturamento.filter((dadosFat) =>\r\n dadosFat.fpg_tipopagamento !== forma.fpg_tipopagamento),\r\n }\r\n }\r\n }\r\n });\r\n }\r\n dadosTemp = dadosTemp.filter((dados) => dados !== forma);\r\n valorRestantePgto(dadosTemp);\r\n setListaFormaPagamento(dadosTemp);\r\n };\r\n\r\n function fecharDrawerVendedores() {\r\n setAbrirDrawerVendedores(false);\r\n };\r\n\r\n async function validacaoFormasPagamento(registro) {\r\n let dados = (await api.get(`FormaPagamento/Get?id=${registro}`)).data;\r\n setSemCondicao(false);\r\n setEhCheque(false);\r\n setEhValePresente(false);\r\n setSemPagamento(false);\r\n switch (dados.fpg_tipopagamento) {\r\n case pagamentosCodigos.dinheiro:\r\n setSemCondicao(true);\r\n break;\r\n case pagamentosCodigos.cheque:\r\n setEhCheque(true)\r\n setSemCondicao(true);\r\n break;\r\n case pagamentosCodigos.valePresente:\r\n setEhValePresente(true);\r\n setSemCondicao(true);\r\n break;\r\n case pagamentosCodigos.boleto:\r\n case pagamentosCodigos.crediarioLoja:\r\n let cliente = !!manutencao.dados && manutencao.dados.destinatario ? manutencao.dados.destinatario : null;\r\n if (!!cliente && cliente.cli_vendasomenteavista) {\r\n form.setFieldsValue({ fpg_id: null });\r\n notification.warn({ description: 'Venda a prazo não autorizada!', message: 'Aviso' });\r\n }\r\n break;\r\n case pagamentosCodigos.semPagamento:\r\n setSemCondicao(true);\r\n setSemPagamento(true);\r\n break;\r\n }\r\n };\r\n\r\n function buscarValePresente(codVale) {\r\n setDesabilitaBtn(true);\r\n api.get(`AntecipacaoClienteFornecedor/BuscarValePresente?codigoVale=${codVale.currentTarget.value}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let saldoVale = res.data;\r\n let valorTotal = parseFloat(form.getFieldValue().valorTotal);\r\n setMultiplasFormasPagamento(true);\r\n if (saldoVale === 0) {\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n setMultiplasFormasPagamento(false);\r\n notification.warning(\"Não existe saldo para o vale presente informado!\");\r\n } else {\r\n if (valorTotal > saldoVale) {\r\n form.setFieldsValue({ pfp_valor: saldoVale });\r\n } else {\r\n form.setFieldsValue({ pfp_valor: valorTotal });\r\n }\r\n }\r\n setDesabilitaBtn(false);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.warning({ message: \"Aviso\", description: \"Vale presente não encontrado!\" });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n setDesabilitaBtn(false);\r\n }\r\n );\r\n };\r\n\r\n async function verificarAntecipacoes() {\r\n let retorno = await api.get(`AntecipacaoClienteFornecedor/ListaAntecipacaoCliente?pessoaId=${form.getFieldValue().pes_id}`);\r\n if (retorno.status === 200) {\r\n if (!!retorno.data && retorno.data.length > 0 && !!dadosAntecipacao && dadosAntecipacao.length === 0) {\r\n let seq = 0;\r\n retorno.data.forEach((ant) => {\r\n ant.key = seq;\r\n seq++;\r\n });\r\n\r\n setDadosAntecipacao(retorno.data);\r\n Modal.confirm({\r\n title: 'O Cliente possui créditos/antecipações',\r\n icon: ,\r\n content: `Este cliente possui créditos/antecipações, deseja utilizar elas para esta venda?`,\r\n okText: 'Utilizar Crédito/antecipação',\r\n cancelText: 'Não utilizar',\r\n onOk() {\r\n setAbreModalAntecipacao(true);\r\n }, onCancel() {\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n form.setFieldsValue({ fpg_tipopagamento: null });\r\n\r\n form.setFieldsValue({ ctc_id: null });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n form.setFieldsValue({ numeroCheques: null });\r\n\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n function onCloseModalAntecipacao() {\r\n setDadosAntecipacao([]);\r\n setAbreModalAntecipacao(false);\r\n };\r\n\r\n function cancelaContaCorrente() {\r\n setAbreModalContaCorrente(false);\r\n let listaTemp = [...listaFormaPagamento];\r\n listaTemp.splice((listaFormaPagamento.length - 1), 1);\r\n valorRestantePgto(listaTemp);\r\n setListaFormaPagamento(listaTemp);\r\n }\r\n\r\n function onChangeValorParc(numeroParc, qtdTotParcelas) {\r\n let valorJaUtilizado = 0;\r\n let valorRestante = 0;\r\n let valorRestanteTot = 0;\r\n let valorParcelas = 0;\r\n let valorTotal = parseFloat(form.getFieldValue().pfp_valor);\r\n let dados = form.getFieldValue();\r\n if (numeroParc === qtdTotParcelas) {\r\n return;\r\n }\r\n for (let i = 1; i <= numeroParc; i++) {\r\n valorJaUtilizado += parseFloat(dados[`valorParcela${i}`]);\r\n }\r\n valorRestante = valorTotal - valorJaUtilizado;\r\n valorParcelas = parseFloat((valorRestante / (qtdTotParcelas - numeroParc)).toFixed(2));\r\n for (let i = qtdTotParcelas; i > numeroParc; i--) {\r\n valorRestanteTot += valorParcelas;\r\n form.setFieldsValue({ [`valorParcela${i}`]: valorParcelas });\r\n }\r\n let valorSobra = valorTotal - (valorJaUtilizado + valorRestanteTot);\r\n form.setFieldsValue({ [`valorParcela${qtdTotParcelas}`]: parseFloat((valorParcelas + valorSobra).toFixed(2)) });\r\n };\r\n\r\n function ajustarDataParcelas(numeroParc, qtdTotParcelas) {\r\n let dataAtual = new Date(form.getFieldValue([`dataVencimento${numeroParc}`]).toDate());\r\n for (let i = numeroParc + 1; i <= qtdTotParcelas; i++) {\r\n let dataVenc = new Date(dataAtual.setDate(new Date(dataAtual).getDate() + 30));\r\n form.setFieldsValue({ [`dataVencimento${i}`]: moment(dataVenc) });\r\n }\r\n }\r\n\r\n const expandedRowRender = record => {\r\n return
(\r\n {pcl_numeroparcela}\r\n ),\r\n }, {\r\n title: 'Data Pagamento',\r\n render: ({ dataVencimento, pcl_numeroparcela }) => (\r\n
\r\n {editandoParcelas ? { ajustarDataParcelas(pcl_numeroparcela, record.parcelas.length) }} /> : {moment(dataVencimento).format('DD/MM/YYYY')}\r\n }\r\n
\r\n ),\r\n }, {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ valorParcela, pcl_numeroparcela }) => (\r\n
\r\n {editandoParcelas ? { onChangeValorParc(pcl_numeroparcela, record.parcelas.length) }} /> : {FormatNumber(valorParcela, true)}}\r\n
\r\n ),\r\n }\r\n ]} dataSource={record.parcelas} pagination={false} />\r\n };\r\n\r\n const rowExpandable = record => { return (record.fpg_tipopagamento === pagamentosCodigos.cartaoDebito || record.fpg_tipopagamento === pagamentosCodigos.cartaoCredito || record.fpg_tipopagamento === pagamentosCodigos.crediarioLoja || record.fpg_tipopagamento === pagamentosCodigos.boleto) && !record.fpg_quitacaoantecipacao };\r\n\r\n return (\r\n
\r\n {!pagamentoTotal && \r\n
\r\n \r\n { listarCondicao(registro); validacaoFormasPagamento(registro) }} conteudo={\r\n fp => ({fp.fpg_descricao})\r\n } />\r\n \r\n \r\n {!semCondicao && \r\n \r\n \r\n \r\n }\r\n {ehCheque && \r\n \r\n \r\n \r\n }\r\n {ehValePresente && \r\n \r\n { buscarValePresente(codVale) }}\r\n />\r\n \r\n }\r\n \r\n {!pagamentoTotal && multiplasFormasPagamento &&\r\n //multiplasFormasPagamento &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n }\r\n {!!manutencao.dados && !!manutencao.dados.antecipacao && \r\n \r\n \r\n \r\n Valor antecipação utilizada (R$): {FormatNumber(manutencao.dados.antecipacao[0].valorAntecipacao)}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n
\r\n {listaFormaPagamento.length > 0 &&
(\r\n
\r\n \r\n {!!cpg_descricao ? fpg_descricao + ' / ' + cpg_descricao : fpg_descricao}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ pfp_valor }) => (\r\n
\r\n {FormatNumber(pfp_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n {record.fpg_tipopagamento !== pagamentosCodigos.programaFidelidade && !record.fpg_quitacaoantecipacao &&
\r\n {!editandoParcelas &&\r\n \r\n {!editandoParcelas &&\r\n \r\n \r\n \r\n Total dos Pagamentos (R$): \r\n \r\n \r\n \r\n {FormatNumber(totalPagamento, true)}\r\n \r\n \r\n \r\n \r\n )\r\n }} dataSource={listaFormaPagamento}\r\n />}\r\n \r\n \r\n \r\n \r\n \r\n \r\n { onCloseModalContaCorrente() }} fecharModalContaCorrente={() => { cancelaContaCorrente(); }} contaCorrente={{ contaCorrente, setContaCorrente }} listaContaCorrente={{ listaContaCorrente, setListaContaCorrente }} tipoConta={tipoContaCorrente} />\r\n \r\n \r\n \r\n \r\n );\r\n};","import React, { useEffect, useState } from \"react\";\r\nimport { Col, Form, Row, Button, Table, Select, notification, Tag, Input } from \"antd\";\r\nimport { CheckOutlined, DeleteOutlined, EditOutlined, PlusOutlined, ExclamationCircleOutlined, CloseOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport Data from \"../data\";\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { getTela } from \"../../services/auth\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport DrawerVendedores from \"../drawerVendedores\";\r\nimport { isObjetoDiffVazio, validarNumeros } from \"../../services/funcoes\";\r\nimport { ModalContaCorrente, ModalSenhaLiberacao } from \"../modals\";\r\nimport SelectPaginado from \"../selectPaginado\";\r\n\r\nexport default function FormasPagamentoRecebimento({ form, dadosOperacao }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState(!!manutencao.dados && !!manutencao.dados.faturamento && manutencao.dados.faturamento.length > 0 ? manutencao.dados.faturamento : [])\r\n const [formaPagamento, setFormaPagamento] = useState([]);\r\n const [condicaoPagamento, setCondicaoPagamento] = useState([]);\r\n const [valorJaPago, setValorJaPago] = useState(false);\r\n const [pagamentoTotal, setPagamentoTotal] = useState(false);\r\n const [multiplasFormasPagamento, setMultiplasFormasPagamento] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [abrirDrawerVendedores, setAbrirDrawerVendedores] = useState(false);\r\n const [formVendedores] = Form.useForm();\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [semCondicao, setSemCondicao] = useState(false);\r\n const [ehValePresente, setEhValePresente] = useState(false);\r\n const [dadosTela] = useState(getTela());\r\n const [isNota, setIsNota] = useState(false);\r\n const [dadosParcelas, setDadosParcelas] = useState([]);\r\n const [abreModalLiberacao, setAbreModalLiberacao] = useState(false);\r\n const [executarParcelas, setExecutarParcelas] = useState(false);\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [abreModalContaCorrente, setAbreModalContaCorrente] = useState(false);\r\n const [contaCorrente, setContaCorrente] = useState({});\r\n const [valorRestante, setValorRestante] = useState(0);\r\n const [desabilitaBtn, setDesabilitaBtn] = useState(false);\r\n const [editandoParcelas, setEditandoParcelas] = useState(false);\r\n const [semPagamento, setSemPagamento] = useState(false);\r\n const [tipoContaCorrente, setTipoContaCorrente] = useState(\"1\");\r\n const pagamentosCodigos = {\r\n dinheiro: 1,\r\n cheque: 2,\r\n cartaoCredito: 3,\r\n cartaoDebito: 4,\r\n crediarioLoja: 5,\r\n valeAlimentacao: 10,\r\n valeRefeicao: 11,\r\n valePresente: 12,\r\n valeCombustivel: 13,\r\n duplicataMercantil: 14,\r\n boleto: 15,\r\n depositoBancario: 16,\r\n pix: 17,\r\n transfBancaria: 18,\r\n programaFidelidade: 19,\r\n semPagamento: 90,\r\n outro: 99\r\n };\r\n const rowExpandable = record => { return (record.fpg_tipopagamento === pagamentosCodigos.crediarioLoja || record.fpg_tipopagamento === pagamentosCodigos.boleto) };\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n if (validarNumeros(valorTotal) === 0) {\r\n setValorTotal(validarNumeros(form.getFieldValue().valorTotal));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (validarNumeros(valorTotal) !== 0) {\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n }, [valorTotal]);\r\n\r\n useEffect(() => {\r\n if (!!dadosTela) {\r\n let tela = JSON.parse(dadosTela).formulario.replaceAll('/', '');\r\n if (tela === `ordemCompra`) {\r\n setIsNota(true);\r\n }\r\n }\r\n }, [dadosTela]);\r\n\r\n useEffect(() => {\r\n if (isNota) {\r\n setMultiplasFormasPagamento(true);\r\n }\r\n }, [isNota]);\r\n\r\n useEffect(() => {\r\n let valor = 0;\r\n if (listaFormaPagamento.length > 0) {\r\n listaFormaPagamento.forEach((lista) => {\r\n valor += parseFloat(lista.pfp_valor);\r\n });\r\n if (!!form.getFieldValue().fpg_id) {\r\n listarCondicao(form.getFieldValue().fpg_id, true);\r\n }\r\n if (valor >= valorTotal && valor >= parseFloat(form.getFieldValue().valorTotal)) {\r\n setPagamentoTotal(true);\r\n } else {\r\n setPagamentoTotal(false);\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n setExecutarParcelas(true);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ faturamento: listaFormaPagamento } } } });\r\n } else {\r\n setPagamentoTotal(false);\r\n }\r\n // if (!!listaFormaPagamento[listaFormaPagamento.length - 1] && !!listaFormaPagamento[listaFormaPagamento.length - 1].parcelas &&\r\n // !!listaFormaPagamento[listaFormaPagamento.length - 1].parcelas[0] && listaFormaPagamento[listaFormaPagamento.length - 1].parcelas[0].pcl_numerodias === 0) {\r\n // setAbreModalContaCorrente(true);\r\n // }\r\n if (!!listaFormaPagamento[listaFormaPagamento.length - 1] &&\r\n (listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === pagamentosCodigos.dinheiro\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === pagamentosCodigos.cheque\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === pagamentosCodigos.pix)) {\r\n setAbreModalContaCorrente(true);\r\n }\r\n setEhValePresente(false);\r\n setValorJaPago(valor);\r\n }, [listaFormaPagamento]);\r\n\r\n useEffect(() => {\r\n if (parseFloat(form.getFieldValue().valorTotal) > 0 && !editando) {\r\n let valor = 0;\r\n if (listaFormaPagamento.length > 0) {\r\n listaFormaPagamento.forEach((lista) => {\r\n valor += parseFloat(lista.pfp_valor);\r\n });\r\n if (valor >= valorTotal && valor >= parseFloat(form.getFieldValue().valorTotal)) {\r\n setPagamentoTotal(true);\r\n } else {\r\n setPagamentoTotal(false);\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n }\r\n }\r\n }, [form.getFieldValue()]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.faturamento && executarParcelas) {\r\n let dados = manutencao.dados.faturamento;\r\n let index = dados.length - 1;\r\n setExecutarParcelas(false);\r\n if (dados[index].fpg_tipopagamento === pagamentosCodigos.crediarioLoja) {\r\n validarJaPossuiCrediario(() => {\r\n popularParcelas();\r\n });\r\n } else if (dados[index].fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n validarJaPossuiBoleto(() => {\r\n popularParcelas();\r\n });\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n setValorTotal(validarNumeros(form.getFieldValue().valorTotal));\r\n let dadosFormaPagamento = formaPagamento.filter((forma) => { return forma.fpg_id === form.getFieldValue().fpg_id; })[0];\r\n if (multiplasFormasPagamento && (!!dadosFormaPagamento && dadosFormaPagamento.fpg_tipopagamento !== pagamentosCodigos.valePresente)) {\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n }, [multiplasFormasPagamento]);\r\n\r\n useEffect(() => {\r\n if (!!form.getFieldValue().fpg_id) {\r\n let dadosFormaPagamento = formaPagamento.filter((forma) => { return forma.fpg_id === form.getFieldValue().fpg_id; })[0];\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ formaPagamento: dadosFormaPagamento } } } });\r\n }\r\n }, [form.getFieldValue().fpg_id]);\r\n\r\n useEffect(() => {\r\n if (semCondicao && !!form.getFieldValue().fpg_id) {\r\n adicionarFormaPagamento();\r\n }\r\n }, [semCondicao]);\r\n\r\n useEffect(() => {\r\n if (semPagamento) {\r\n }\r\n }, [semPagamento]);\r\n\r\n function onCloseModalLiberacao() {\r\n setAbreModalLiberacao(false);\r\n };\r\n\r\n function carregarDados() {\r\n api.get('FormaPagamento/Listar?Ativo=true').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let dados = res.data.items;\r\n if (!!dadosOperacao && isObjetoDiffVazio(dadosOperacao)) {\r\n if (dadosOperacao.tip_id === 5) {\r\n setFormaPagamento(dados);\r\n } else {\r\n setFormaPagamento(dados.filter((fpg) => (fpg.fpg_tipopagamento !== 90)));\r\n }\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function valorRestantePgto(dadosTemp) {\r\n let restante = 0;\r\n let valorPago = 0;\r\n if (!editando) {\r\n dadosTemp.forEach((dados) => {\r\n valorPago += parseFloat(dados.pfp_valor);\r\n });\r\n restante = parseFloat(valorTotal) - valorPago;\r\n form.setFieldsValue({ pfp_valor: restante.toFixed(2) });\r\n setValorRestante(parseFloat(restante.toFixed(2)));\r\n } else {\r\n setEditando(false);\r\n }\r\n };\r\n\r\n function listarCondicao(fpg_id, dadosIniciais = false) {\r\n if (!dadosIniciais) {\r\n form.setFieldsValue({ cpg_id: null });\r\n }\r\n api.get(`CondicaoPagamento/Listar?Ativo=true&CodigoFormaPagamento=${fpg_id}&PageSize=500`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setCondicaoPagamento(res.data.items);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function validarJaPossuiCrediario(callback) {\r\n let dados = [...listaFormaPagamento];\r\n if (!dados.find((formaPgto => (formaPgto.fpg_tipopagamento === pagamentosCodigos.crediarioLoja && !!formaPgto.parcelas && formaPgto.parcelas.length > 0)))) {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n };\r\n\r\n function validarJaPossuiBoleto(callback) {\r\n let dados = [...listaFormaPagamento];\r\n if (!dados.find((formaPgto => (formaPgto.fpg_tipopagamento === pagamentosCodigos.boleto && !!formaPgto.parcelas && formaPgto.parcelas.length > 0)))) {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n async function adicionarFormaPagamento(liberadoCredito = false) {\r\n let dadosTemp = [...listaFormaPagamento];\r\n let pagamentoCartao = false;\r\n if (parseFloat(form.getFieldValue().pfp_valor) === 0) {\r\n notification.warning({ message: 'Aviso!', description: 'Valor de Pagamento Inválido!' });\r\n return false;\r\n }\r\n if (ehValePresente && !!!form.getFieldValue().codigoValePresente) {\r\n notification.warning({ description: 'Favor informar um vale presente válido!', message: 'Aviso' });\r\n return;\r\n }\r\n\r\n //Utilizado para atualizar a constante de valor total da nota de acordo com o formulario que é o valor exibido em tela.\r\n setValorTotal(validarNumeros(form.getFieldValue().valorTotal));\r\n if (!!form.getFieldValue().fpg_id && (semCondicao || (condicaoPagamento.length === 0 || !!form.getFieldValue().cpg_id))) {\r\n let dadosFormaPagamento = (await api.get(`FormaPagamento/Get?id=${form.getFieldValue().fpg_id}`)).data;\r\n if (listaFormaPagamento.find((formas) => (\r\n formas.fpg_id === form.getFieldValue().fpg_id && (!semCondicao ? formas.cpg_id === form.getFieldValue().cpg_id : true)\r\n ))) {\r\n let dados = listaFormaPagamento.find((formas) => (\r\n formas.fpg_id === form.getFieldValue().fpg_id && (!semCondicao ? formas.cpg_id === form.getFieldValue().cpg_id : true)\r\n ));\r\n //dados.pfp_valor = parseFloat(form.getFieldValue().pfp_valor);\r\n dados.pfp_valor = parseFloat(form.getFieldValue().valorTotal);\r\n validarContaCorrente(dadosTemp, () => {\r\n if (!pagamentoCartao) {\r\n valorRestantePgto(dadosTemp);\r\n }\r\n });\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n form.setFieldsValue({ fpg_tipopagamento: null });\r\n form.setFieldsValue({ ctc_id: null });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n } else {\r\n incluirNovaFormaPagamento(dadosTemp);\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Informe a forma e a condicao de pagamento!' });\r\n }\r\n };\r\n\r\n async function incluirNovaFormaPagamento(listaForma) {\r\n let dadosFormaPagamento = (await api.get(`FormaPagamento/Get?id=${form.getFieldValue().fpg_id}`)).data;\r\n\r\n if (semCondicao) {\r\n let valor = 0;\r\n if (!semPagamento) {\r\n valor = form.getFieldValue().pfp_valor;\r\n }\r\n listaForma.push({\r\n fpg_id: form.getFieldValue().fpg_id,\r\n fpg_descricao: dadosFormaPagamento.fpg_descricao,\r\n cpg_descricao: '',\r\n cpg_id: null,\r\n condicaoPagamento: {},\r\n formaPagamento: !!dadosFormaPagamento && JSON.stringify(dadosFormaPagamento) !== '{}' ? dadosFormaPagamento : {},\r\n pfp_valor: valor,\r\n nfp_codigovalepresente: form.getFieldValue().codigoValePresente,\r\n parcelas: [],\r\n descontoPadrao: {},\r\n ctc_id: dadosFormaPagamento.ctc_id,\r\n fpg_tipopagamento: dadosFormaPagamento.fpg_tipopagamento\r\n });\r\n validarContaCorrente(listaForma, () => {\r\n if (!semPagamento) {\r\n valorRestantePgto(listaForma);\r\n } else {\r\n setValorRestante(0);\r\n }\r\n });\r\n\r\n\r\n } else {\r\n let dadosCondicoesPagamento = condicaoPagamento.filter((condicao) => { return condicao.cpg_id === form.getFieldValue().cpg_id; })[0];\r\n listaForma.push({\r\n fpg_id: form.getFieldValue().fpg_id,\r\n fpg_descricao: dadosFormaPagamento.fpg_descricao,\r\n cpg_descricao: !!dadosCondicoesPagamento && dadosCondicoesPagamento.cpg_descricao ? dadosCondicoesPagamento.cpg_descricao : '',\r\n cpg_id: !!form.getFieldValue().cpg_id ? form.getFieldValue().cpg_id : null,\r\n condicaoPagamento: !!dadosCondicoesPagamento && JSON.stringify(dadosCondicoesPagamento) !== '{}' ? dadosCondicoesPagamento : {},\r\n formaPagamento: !!dadosFormaPagamento && JSON.stringify(dadosFormaPagamento) !== '{}' ? dadosFormaPagamento : {},\r\n pfp_valor: form.getFieldValue().pfp_valor,\r\n nfp_codigovalepresente: form.getFieldValue().codigoValePresente,\r\n parcelas: [],\r\n descontoPadrao: {},\r\n ctc_id: dadosFormaPagamento.ctc_id,\r\n fpg_tipopagamento: dadosFormaPagamento.fpg_tipopagamento\r\n });\r\n validarContaCorrente(listaForma, () => {\r\n valorRestantePgto(listaForma);\r\n });\r\n }\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n form.setFieldsValue({ fpg_tipopagamento: null });\r\n form.setFieldsValue({ ctc_id: null });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n };\r\n\r\n function validarContaCorrente(dados, callback) {\r\n let ultimaForma = dados[dados.length - 1];\r\n if (!!!ultimaForma.ctc_id)\r\n if (ultimaForma.fpg_tipopagamento === pagamentosCodigos.dinheiro || ultimaForma.fpg_tipopagamento === pagamentosCodigos.cheque) {\r\n setTipoContaCorrente(\"1\")\r\n setAbreModalContaCorrente(true);\r\n }\r\n if (ultimaForma.fpg_tipopagamento === pagamentosCodigos.depositoBancario || ultimaForma.fpg_tipopagamento === pagamentosCodigos.pix\r\n || ultimaForma.fpg_tipopagamento === pagamentosCodigos.transfBancaria) {\r\n setTipoContaCorrente(\"2\")\r\n setAbreModalContaCorrente(true);\r\n }\r\n setListaFormaPagamento(dados);\r\n if (!!callback) {\r\n callback();\r\n }\r\n };\r\n\r\n function onCloseModalContaCorrente() {\r\n let ultimaForma = listaFormaPagamento[listaFormaPagamento.length - 1];\r\n ultimaForma.ctc_id = contaCorrente.ctc_id;\r\n ultimaForma.ctc_descricao = contaCorrente.ctc_descricao;\r\n setListaFormaPagamento(listaFormaPagamento);\r\n setAbreModalContaCorrente(false);\r\n };\r\n\r\n function popularParcelas(callback) {\r\n let dados = [...listaFormaPagamento];\r\n let index = manutencao.dados.faturamento.length - 1;\r\n api.get(`CondicaoPagamento/ListarParcelamento?codigoCondicaoPagamento=${manutencao.dados.faturamento[index].cpg_id}`).then(\r\n res => {\r\n if (!!res.data && res.data.length > 0) {\r\n let resto = 0;\r\n let somaParcelas = 0;\r\n let listaParcelas = [];\r\n let indexPosicao = manutencao.dados.faturamento.length - 1;\r\n res.data.forEach((parcela) => {\r\n let dataAtual = new Date();\r\n let parc = {};\r\n let dataVencimento = new Date(dataAtual.setDate(dataAtual.getDate() + parcela.pcl_numerodias));\r\n parc.fpg_id = manutencao.dados.faturamento[indexPosicao].fpg_id;\r\n parc.fpg_descricao = manutencao.dados.faturamento[indexPosicao].fpg_descricao;\r\n parc.fpg_tipopagamento = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento;\r\n parc.cpg_id = manutencao.dados.faturamento[indexPosicao].cpg_id;\r\n parc.pcl_numerodias = parcela.pcl_numerodias;\r\n parc.pcl_percparcela = parcela.pcl_percparcela;\r\n parc.pcl_numeroparcela = parcela.pcl_numeroparcela;\r\n parc.prc_numeroparcela = parcela.pcl_numeroparcela;\r\n parc.dataPagamento = dataVencimento;\r\n parc.prc_datavencimento = moment(dataVencimento);\r\n parc.dataVencimento = moment(dataVencimento);\r\n let valorParcela = ((parcela.pcl_percparcela / 100) * parseFloat(manutencao.dados.faturamento[index].pfp_valor)).toFixed(2);\r\n parc.valorParcela = parseFloat(valorParcela);\r\n parc.prc_valor = parseFloat(valorParcela);\r\n somaParcelas += parc.valorParcela;\r\n listaParcelas.push(parc);\r\n });\r\n somaParcelas = somaParcelas.toFixed(2);\r\n somaParcelas = parseFloat(somaParcelas);\r\n resto = parseFloat(manutencao.dados.faturamento[index].pfp_valor) - somaParcelas;\r\n if (resto != 0) {\r\n let numeroUltimaParcela = res.data.length - 1;\r\n let valParcela = listaParcelas[numeroUltimaParcela].valorParcela;\r\n let totalParcela = (valParcela + resto).toFixed(2);\r\n totalParcela = parseFloat(totalParcela);\r\n listaParcelas[numeroUltimaParcela].prc_valor = totalParcela;\r\n listaParcelas[numeroUltimaParcela].valorParcela = totalParcela;\r\n }\r\n dados[index].parcelas = listaParcelas;\r\n manutencao.dados.faturamento[indexPosicao].editando = false;\r\n if (manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento !== pagamentosCodigos.crediarioLoja && manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento !== pagamentosCodigos.boleto) {\r\n let creditoDebito = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento === pagamentosCodigos.cartaoCredito;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ... { credito: creditoDebito } } } });\r\n }\r\n setListaFormaPagamento(dados);\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function cancelarAlteracoesFormaPagamento(record) {\r\n let formasPgto = [...listaFormaPagamento];\r\n let formaPgto = formasPgto.find((forma) => (forma.fpg_id === record.fpg_id));\r\n formaPgto.editando = false;\r\n setEditandoParcelas(false);\r\n };\r\n\r\n function salvarFormaPagamento(record) {\r\n let formasPgto = [...listaFormaPagamento];\r\n let formaPgto = formasPgto.find((forma) => (forma.fpg_id === record.fpg_id));\r\n formaPgto.parcelas.forEach((item, i) => {\r\n i++;\r\n item.prc_datavencimento = form.getFieldValue(`dataVencimento${i}`);\r\n item.dataVencimento = form.getFieldValue(`dataVencimento${i}`);\r\n item.valorParcela = parseFloat(form.getFieldValue(`valorParcela${i}`));\r\n item.prc_valor = parseFloat(form.getFieldValue(`valorParcela${i}`));\r\n });\r\n formaPgto.editando = false;\r\n setListaFormaPagamento(formasPgto);\r\n setEditandoParcelas(false);\r\n };\r\n\r\n function editarFormasPagamento(forma) {\r\n let dados = forma.formaPagamento;\r\n setPagamentoTotal(false);\r\n setMultiplasFormasPagamento(true);\r\n setEditando(true);\r\n form.setFieldsValue({ fpg_id: forma.fpg_id });\r\n if (dados.fpg_tipopagamento === pagamentosCodigos.dinheiro || dados.fpg_tipopagamento === pagamentosCodigos.valePresente || dados.fpg_tipopagamento === pagamentosCodigos.crediarioLoja) {\r\n setSemCondicao(true);\r\n // if (dados.fpg_tipopagamento === pagamentosCodigos.cheque) {\r\n // setEhCheque(true);\r\n // }\r\n if (dados.fpg_tipopagamento === pagamentosCodigos.valePresente) {\r\n setEhValePresente(true);\r\n } else if (dados.fpg_tipopagamento === pagamentosCodigos.crediarioLoja || dados.fpg_tipopagamento === pagamentosCodigos.boleto) {\r\n forma.editando = true;\r\n setEditandoParcelas(true);\r\n }\r\n } else {\r\n form.setFieldsValue({ cpg_id: forma.cpg_id });\r\n }\r\n form.setFieldsValue({ pfp_valor: forma.pfp_valor });\r\n };\r\n\r\n function removerFormaPagamento(forma) {\r\n let dadosTemp = [...listaFormaPagamento];\r\n if (dadosParcelas.length > 0 && forma.fpg_tipopagamento === dadosParcelas[0].fpg_tipopagamento) {\r\n setDadosParcelas([]);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n dadosTemp = dadosTemp.filter((dados) => dados !== forma);\r\n valorRestantePgto(dadosTemp);\r\n setListaFormaPagamento(dadosTemp);\r\n };\r\n\r\n function fecharDrawerVendedores() {\r\n setAbrirDrawerVendedores(false);\r\n };\r\n\r\n async function validacaoFormasPagamento(registro) {\r\n let dados = (await api.get(`FormaPagamento/Get?id=${registro}`)).data;\r\n setSemCondicao(false);\r\n setEhValePresente(false);\r\n setSemPagamento(false);\r\n switch (dados.fpg_tipopagamento) {\r\n case pagamentosCodigos.dinheiro:\r\n setSemCondicao(true);\r\n break;\r\n case pagamentosCodigos.pix:\r\n setSemCondicao(true);\r\n break;\r\n case pagamentosCodigos.valePresente:\r\n setEhValePresente(true);\r\n setSemCondicao(true);\r\n break;\r\n case pagamentosCodigos.boleto:\r\n case pagamentosCodigos.crediarioLoja:\r\n let cliente = !!manutencao.dados && manutencao.dados.destinatario ? manutencao.dados.destinatario : null;\r\n if (!!cliente && cliente.cli_vendasomenteavista) {\r\n form.setFieldsValue({ fpg_id: null });\r\n notification.warn({ description: 'Venda a prazo não autorizada!', message: 'Aviso' });\r\n }\r\n break;\r\n case pagamentosCodigos.semPagamento:\r\n setSemCondicao(true);\r\n setSemPagamento(true);\r\n break;\r\n }\r\n };\r\n\r\n function buscarValePresente(codVale) {\r\n setDesabilitaBtn(true);\r\n api.get(`AntecipacaoClienteFornecedor/BuscarValePresente?codigoVale=${codVale.currentTarget.value}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let saldoVale = res.data;\r\n let valorTotal = parseFloat(form.getFieldValue().valorTotal);\r\n setMultiplasFormasPagamento(true);\r\n if (saldoVale === 0) {\r\n form.setFieldsValue({ fpg_id: null });\r\n form.setFieldsValue({ cpg_id: null });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n setMultiplasFormasPagamento(false);\r\n notification.warning(\"Não existe saldo para o vale presente informado!\");\r\n } else {\r\n if (valorTotal > saldoVale) {\r\n form.setFieldsValue({ pfp_valor: saldoVale });\r\n } else {\r\n form.setFieldsValue({ pfp_valor: valorTotal });\r\n }\r\n }\r\n setDesabilitaBtn(false);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n notification.warning({ message: \"Aviso\", description: \"Vale presente não encontrado!\" });\r\n form.setFieldsValue({ codigoValePresente: null });\r\n setDesabilitaBtn(false);\r\n }\r\n );\r\n };\r\n\r\n function cancelaContaCorrente() {\r\n setAbreModalContaCorrente(false);\r\n let listaTemp = [...listaFormaPagamento];\r\n listaTemp.splice((listaFormaPagamento.length - 1), 1);\r\n valorRestantePgto(listaTemp);\r\n setListaFormaPagamento(listaTemp);\r\n }\r\n\r\n function onChangeValorParc(numeroParc, qtdTotParcelas) {\r\n let valorJaUtilizado = 0;\r\n let valorRestante = 0;\r\n let valorRestanteTot = 0;\r\n let valorParcelas = 0;\r\n let valorTotal = parseFloat(form.getFieldValue().valorTotal);\r\n let dados = form.getFieldValue();\r\n if (numeroParc === qtdTotParcelas) {\r\n return;\r\n }\r\n for (let i = 1; i <= numeroParc; i++) {\r\n valorJaUtilizado += parseFloat(dados[`valorParcela${i}`]);\r\n }\r\n valorRestante = valorTotal - valorJaUtilizado;\r\n valorParcelas = parseFloat((valorRestante / (qtdTotParcelas - numeroParc)).toFixed(2));\r\n for (let i = qtdTotParcelas; i > numeroParc; i--) {\r\n valorRestanteTot += valorParcelas;\r\n form.setFieldsValue({ [`valorParcela${i}`]: valorParcelas });\r\n }\r\n let valorSobra = valorTotal - (valorJaUtilizado + valorRestanteTot);\r\n form.setFieldsValue({ [`valorParcela${qtdTotParcelas}`]: parseFloat((valorParcelas + valorSobra).toFixed(2)) });\r\n };\r\n\r\n function ajustarDataParcelas(numeroParc, qtdTotParcelas) {\r\n let dataAtual = new Date(form.getFieldValue([`dataVencimento${numeroParc}`]).toDate());\r\n for (let i = numeroParc + 1; i <= qtdTotParcelas; i++) {\r\n let dataVenc = new Date(dataAtual.setDate(new Date(dataAtual).getDate() + 30));\r\n form.setFieldsValue({ [`dataVencimento${i}`]: moment(dataVenc) });\r\n }\r\n }\r\n\r\n const expandedRowRender = record => {\r\n return
(\r\n {pcl_numeroparcela}\r\n ),\r\n }, {\r\n title: 'Data Pagamento',\r\n render: ({ dataVencimento, pcl_numeroparcela }) => (\r\n
\r\n {editandoParcelas ? { ajustarDataParcelas(pcl_numeroparcela, record.parcelas.length) }} /> : {moment(dataVencimento).format('DD/MM/YYYY')}\r\n }\r\n
\r\n\r\n ),\r\n }, {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ valorParcela, pcl_numeroparcela }) => (\r\n
\r\n {editandoParcelas ? { onChangeValorParc(pcl_numeroparcela, record.parcelas.length) }} /> : {FormatNumber(valorParcela, true)}\r\n }\r\n
\r\n ),\r\n }\r\n ]} dataSource={record.parcelas} pagination={false} />\r\n };\r\n\r\n return (\r\n
\r\n {!pagamentoTotal && \r\n
\r\n \r\n { listarCondicao(registro); validacaoFormasPagamento(registro) }} conteudo={\r\n fp => ({fp.fpg_descricao})\r\n } />\r\n \r\n \r\n {!semCondicao && \r\n \r\n \r\n \r\n }\r\n {ehValePresente && \r\n \r\n { buscarValePresente(codVale) }}\r\n />\r\n \r\n }\r\n \r\n {!pagamentoTotal && multiplasFormasPagamento &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n }\r\n \r\n \r\n
\r\n {listaFormaPagamento.length > 0 &&
(\r\n
\r\n \r\n {!!cpg_descricao ? fpg_descricao + ' / ' + cpg_descricao : fpg_descricao}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n render: ({ pfp_valor }) => (\r\n
\r\n {FormatNumber(pfp_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n {!editandoParcelas &&\r\n \r\n {!editandoParcelas &&\r\n \r\n \r\n \r\n Total dos Pagamentos (R$): \r\n \r\n \r\n \r\n {FormatNumber(totalPagamento, true)}\r\n \r\n \r\n \r\n \r\n )\r\n }} dataSource={listaFormaPagamento}\r\n />}\r\n \r\n \r\n \r\n { onCloseModalContaCorrente() }} fecharModalContaCorrente={() => { cancelaContaCorrente(); }} contaCorrente={{ contaCorrente, setContaCorrente }} listaContaCorrente={{ listaContaCorrente, setListaContaCorrente }} tipoConta={tipoContaCorrente} />\r\n \r\n \r\n \r\n );\r\n};","import React from \"react\";\r\nimport { Row, Col, Descriptions } from \"antd\";\r\nimport moment from 'moment';\r\n\r\nimport { FormatNumber } from \"../../ValueObjects/\";\r\n\r\nexport default function InfoNotaNFe({ dadosNota }) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {dadosNota.ntf_chavenfe} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosNota.pes_nome} \r\n \r\n \r\n {dadosNota.ntf_cnpjcpfdest} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosNota.ntf_numero} \r\n \r\n \r\n {dadosNota.ser_serie} \r\n \r\n \r\n {dadosNota.nfd_modelodocumento} \r\n \r\n \r\n {moment(dadosNota.ntf_dataemissao).format('DD/MM/YYYY HH:mm:ss')} \r\n \r\n \r\n {dadosNota.tip_descricao} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormatNumber(dadosNota.valor_total, true)} \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Descriptions } from \"antd\";\r\n\r\nexport default function InfoProdutoGrade() {\r\n return (\r\n \r\n \r\n \r\n \r\n pro_codigo - pro_descricao\r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Form, Tag, Button, Table, InputNumber, Switch } from \"antd\";\r\nimport { EditOutlined, } from \"@ant-design/icons\";\r\nimport CurrencyInput from 'react-currency-input';\r\n\r\nexport default function PageGrade({ grades, setGrades }) {\r\n\r\n const [form] = Form.useForm();\r\n\r\n const onAlterAllLList = (values) => {\r\n if (values) {\r\n const { lpi_perccomissao, lpi_valorvenda, lpi_naocalculacomissao } = values;\r\n let array = [...grades];\r\n array = array.map((x) => ({ ...x, lpi_perccomissao: parseFloat(lpi_perccomissao ? lpi_perccomissao : x.lpi_perccomissao), lpi_valorvenda: parseFloat(lpi_valorvenda ? lpi_valorvenda : x.lpi_valorvenda), lpi_naocalculacomissao: lpi_naocalculacomissao }));\r\n setGrades(array);\r\n form.resetFields();\r\n }\r\n }\r\n\r\n const updateValue = (ean, property, value) => {\r\n const array = [...grades];\r\n const index = array.findIndex(x => x.prg_ean == ean);\r\n if (index !== -1) {\r\n array[index][property] = value;\r\n setGrades(array);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (\r\n \r\n {prg_ean}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ descricaoGrade }) => (\r\n
\r\n {descricaoGrade}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Percentual Desconto',\r\n align: 'right',\r\n width: '25%',\r\n render: ({ lpi_naocalculacomissao, prg_ean }) => (\r\n updateValue(prg_ean, 'lpi_naocalculacomissao', checked)} />\r\n )\r\n },\r\n {\r\n title: 'Comissão',\r\n align: 'right',\r\n width: '25%',\r\n render: ({ prg_ean, lpi_perccomissao }) => (\r\n updateValue(prg_ean, 'lpi_perccomissao', value)}\r\n formatter={value => `${value}%`}\r\n parser={value => value.replace('%', '')} />\r\n )\r\n },\r\n {\r\n title: 'Valor Item',\r\n width: '25%',\r\n align: 'right',\r\n render: ({ prg_ean, lpi_valorvenda }) => ( \r\n updateValue(prg_ean, 'lpi_valorvenda', value)}\r\n inputType=\"text\"\r\n className=\"CurrencyInput\"\r\n decimalSeparator=\",\" thousandSeparator=\".\"\r\n />\r\n )\r\n },\r\n ]} scroll={{ x: 900 }}/>\r\n
\r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Modal, Table, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../../services/api';\r\nimport { useStateValue } from '../../../state';\r\nimport { FormatFone, MaskFormat } from \"../../../ValueObjects\";\r\nimport { listagemActions, manutencaoActions } from \"../../../actions\";\r\n\r\nexport default function TabTodas({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } }), []);\r\n\r\n function excluirRegistro(cliente) {\r\n api.post(`cliente/excluir?codigoCliente=${cliente.cli_id}`).then((res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, (erro) => {\r\n console.error(erro);\r\n modalInativarRegistro(cliente);\r\n })\r\n };\r\n\r\n function inativarRegistro(cliente) {\r\n api.post(`cliente/InativarCliente?clienteId=${cliente.cli_id}`).then(\r\n (res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n }\r\n )\r\n };\r\n\r\n const modalExcluirRegistro = (cliente) => {\r\n console.log('cliente', cliente);\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o cliente ${cliente.cli_codigo}-${cliente.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(cliente);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarRegistro = (cliente) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o cliente!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o cliente ${cliente.cli_codigo}-${cliente.pes_nome} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(cliente);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n {!!pej_inscricaoestadual && \r\n IE: {pej_inscricaoestadual || 'Não Informado'}\r\n }\r\n {!!pef_rg && \r\n RG: {pef_rg || 'Não Informado'}\r\n }\r\n \r\n \r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n Endereço: {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 130,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Modal, Table, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../../services/api';\r\nimport { useStateValue } from '../../../state';\r\nimport { FormatFone, MaskFormat } from \"../../../ValueObjects\";\r\nimport { listagemActions, manutencaoActions } from \"../../../actions\";\r\n\r\nexport default function TabCliente({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } }), []);\r\n\r\n function excluirRegistro(cliente) {\r\n api.post(`cliente/excluir?codigoCliente=${cliente.cli_id}`).then((res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, (erro) => {\r\n console.error(erro);\r\n modalInativarRegistro(cliente);\r\n })\r\n };\r\n\r\n function inativarRegistro(cliente) {\r\n api.post(`cliente/InativarCliente?clienteId=${cliente.cli_id}`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n })\r\n };\r\n\r\n const modalExcluirRegistro = (cliente) => {\r\n console.log('cliente', cliente);\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o cliente ${cliente.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(cliente);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarRegistro = (cliente) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o cliente!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o cliente ${cliente.pes_nome} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(cliente);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n {!!pej_inscricaoestadual && \r\n IE: {pej_inscricaoestadual || 'Não Informado'}\r\n }\r\n {!!pef_rg && \r\n RG: {pef_rg || 'Não Informado'}\r\n }\r\n \r\n \r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n Endereço: {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 130,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Modal, Table, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../../services/api';\r\nimport { useStateValue } from '../../../state';\r\nimport { FormatFone, MaskFormat } from \"../../../ValueObjects\";\r\nimport { listagemActions, manutencaoActions } from \"../../../actions\";\r\n\r\nexport default function TabVendedor({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } }), []);\r\n\r\n function excluirRegistro(vendedor) {\r\n api.post(`vendedor/excluir?codigoVendedor=${vendedor.ven_id}`).then((res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, (erro) => {\r\n console.error(erro);\r\n modalInativarRegistro(vendedor);\r\n })\r\n };\r\n\r\n function inativarRegistro(vendedor) {\r\n api.post(`vendedor/InativarVendedor?vendedorId=${vendedor.ven_id}`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n })\r\n };\r\n\r\n const modalExcluirRegistro = (vendedor) => {\r\n console.log('vendedor', vendedor);\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o vendedor ${vendedor.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(vendedor);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarRegistro = (vendedor) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o vendedor!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o vendedor ${vendedor.pes_nome} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(vendedor);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n {!!pej_inscricaoestadual && \r\n IE: {pej_inscricaoestadual || 'Não Informado'}\r\n }\r\n {!!pef_rg && \r\n RG: {pef_rg || 'Não Informado'}\r\n }\r\n \r\n \r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n Endereço: {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 130,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Modal, Table, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../../services/api';\r\nimport { useStateValue } from '../../../state';\r\nimport { FormatFone, MaskFormat } from \"../../../ValueObjects\";\r\nimport { listagemActions, manutencaoActions } from \"../../../actions\";\r\n\r\nexport default function TabFornecedor({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } }), []);\r\n\r\n function excluirRegistro(fornecedor) {\r\n api.post(`fornecedor/excluir?codigoFornecedor=${fornecedor.for_id}`).then((res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, (erro) => {\r\n console.error(erro);\r\n modalInativarRegistro(fornecedor);\r\n })\r\n };\r\n\r\n function inativarRegistro(fornecedor) {\r\n api.post(`fornecedor/InativarFornecedor?fornecedorId=${fornecedor.for_id}`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n })\r\n };\r\n\r\n const modalExcluirRegistro = (fornecedor) => {\r\n console.log('fornecedor', fornecedor);\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o fornecedor ${fornecedor.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(fornecedor);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarRegistro = (fornecedor) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o fornecedor!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o fornecedor ${fornecedor.pes_nome} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(fornecedor);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n {!!pej_inscricaoestadual && \r\n IE: {pej_inscricaoestadual || 'Não Informado'}\r\n }\r\n {!!pef_rg && \r\n RG: {pef_rg || 'Não Informado'}\r\n }\r\n \r\n \r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n Endereço: {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 130,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Modal, Table, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../../services/api';\r\nimport { useStateValue } from '../../../state';\r\nimport { FormatFone, MaskFormat } from \"../../../ValueObjects\";\r\nimport { listagemActions, manutencaoActions } from \"../../../actions\";\r\n\r\nexport default function TabFuncionario({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } }), []);\r\n\r\n function excluirRegistro(funcionario) {\r\n api.post(`funcionario/excluir?codigoFuncionario=${funcionario.for_id}`).then((res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, (erro) => {\r\n console.error(erro);\r\n modalInativarRegistro(funcionario);\r\n })\r\n };\r\n\r\n function inativarRegistro(funcionario) {\r\n api.post(`funcionario/InativarFunionario?funcionarioId=${funcionario.for_id}`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n })\r\n };\r\n\r\n const modalExcluirRegistro = (funcionario) => {\r\n console.log('funcionario', funcionario);\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o funcionario ${funcionario.pes_nome} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(funcionario);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarRegistro = (funcionario) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o funcionario!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o funcionario ${funcionario.pes_nome} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarRegistro(funcionario);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n {!!pej_inscricaoestadual && \r\n IE: {pej_inscricaoestadual || 'Não Informado'}\r\n }\r\n {!!pef_rg && \r\n RG: {pef_rg || 'Não Informado'}\r\n }\r\n \r\n \r\n \r\n E-mail: {pem_email || 'Não Informado'}\r\n \r\n \r\n Endereço: {log_logradouro || 'Não Informado'}{(!!pee_numero) ? (', ' + pee_numero) : ''}{!!(bai_nome) ? (', ' + bai_nome) : ''} {!!(cep_cep) ? ('- ' + cep_cep) : ''} {!!(cid_descricao) ? ('- ' + cid_descricao) : ''} {!!(est_sigla) ? ('- ' + est_sigla) : ''}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'CPF/CNPJ',\r\n width: 130,\r\n render: ({ pef_cpf, pej_cnpj }) => (\r\n
\r\n {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Telefone',\r\n width: 120,\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero) || 'Não Informado'}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect } from \"react\";\r\nimport { Row, Col, Button, Modal, Table, Divider } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\n\r\nexport default function Produto({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pro_descricao' } });\r\n }, [])\r\n\r\n function excluirRegistro(produto) {\r\n api.post(`produto/excluir?idProduto=${produto.pro_id}`).then((res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, (erro) => {\r\n console.error(erro);\r\n modalInativarProduto(produto);\r\n })\r\n };\r\n\r\n function inativarProduto(produto) {\r\n api.post(`produto/inativarProduto?idProduto=${produto.pro_id}`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pro_descricao' } });\r\n });\r\n };\r\n\r\n const modalExcluirProduto = (produto) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o produto ${produto.pro_descricao} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(produto);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarProduto = (produto) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o produto!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o produto ${produto.pro_descricao} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarProduto(produto);\r\n }\r\n });\r\n };\r\n\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {pro_descricao}\r\n \r\n \r\n \r\n {gru_nome !== null &&\r\n \r\n Grupo: {gru_nome || 'Não Informado'}\r\n \r\n }\r\n {sgp_nome !== null &&\r\n \r\n Subgrupo: {sgp_nome || 'Não Informado'}\r\n \r\n }\r\n \r\n CST Origem: {orm_id} - {orm_descricao}\r\n \r\n \r\n NCM: {ncm_codigo}\r\n \r\n \r\n FCI: {pro_fci || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n Unidade de Medida: {ump_descricao}\r\n \r\n \r\n Tipo de Produto para SPED: {tpi_descricao}\r\n \r\n {pis_descricao !== null &&\r\n \r\n Tributação Pis/Cofins: {pis_descricao}\r\n \r\n }\r\n {nat_descricao !== null &&\r\n \r\n Natureza da Receita Pis/Cofins: {nat_descricao}\r\n \r\n }\r\n {mar_nome !== null &&\r\n \r\n Marca: {mar_nome}\r\n \r\n }\r\n \r\n {pro_observacao !== null &&\r\n \r\n \r\n Observações: {{ pro_observacao }}\r\n \r\n \r\n }\r\n \r\n ),\r\n }/*,\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (produto) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Popover, Modal, Menu, Dropdown, notification, Table, Divider } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, PrinterOutlined, FileTextOutlined, UndoOutlined, MoreOutlined, EyeOutlined, CloudUploadOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport moment from 'moment';\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { novaAbaNavegador } from \"../../services/funcoes\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { ModalImprimirEtiquetas, ModalDevolucao, ModalAjudaRejeicaoNfe, ModalCancelamentoNfe, ModalCartaCorrecaoNotaFiscal, ModalEstornoNfe } from \"../../components/modals/\";\r\n\r\nexport default function NotaFiscal({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaStatusNota, setListaStatusNota] = useState([]);\r\n const [openModalCartaCorrecao, setOpenModalCartaCorrecao] = useState(false);\r\n const [openModalExcluir, setOpenModalExcluir] = useState(false);\r\n const [openModalDevolucao, setOpenModalDevolucao] = useState(false);\r\n const [openModalAjudaRejeicaoNfe, setOpenModalAjudaRejeicaoNfe] = useState(false);\r\n const [openModalCancelarEstornar, setOpenModalCancelarEstornar] = useState(false);\r\n const [openModalImprimirEtiquetas, setOpenModalImprimirEtiquetas] = useState(false);\r\n const [dadosNota, setDadosNota] = useState({});\r\n const [openModalEstorno, setOpenModalEstorno] = useState(false);\r\n\r\n function retornaDescricaoStatus(ntf_status) {\r\n let status = listaStatusNota.filter((statusNota) => (statusNota.key === ntf_status))[0];\r\n return !!status ? status.value : \"\";\r\n };\r\n\r\n useEffect(() => {\r\n retornaStatusNF();\r\n }, []);\r\n\r\n function retornaStatusNF() {\r\n api.get('Enum/Listar?nome=StatusNFe').then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setListaStatusNota(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function abrirCartaCorrecao(record) {\r\n setDadosNota(record);\r\n setOpenModalCartaCorrecao(true);\r\n\r\n };\r\n\r\n function abrirCancelarNota(record) {\r\n\r\n api.get(`NotaFiscal/VerificarTempoEmissao?codigoNotaFiscal=${record.ntf_id}`).then(\r\n res => {\r\n if (record.ntf_docfiscal) {\r\n if (!!res.data.terminouPrazoCancelamento) {\r\n record.horas = res.data.horas;\r\n record.dias = res.data.dias;\r\n setDadosNota(record);\r\n setOpenModalEstorno(true);\r\n } else {\r\n setDadosNota(record);\r\n setOpenModalCancelarEstornar(true);\r\n }\r\n } else {\r\n setDadosNota(record);\r\n setOpenModalCancelarEstornar(true);\r\n }\r\n }\r\n )\r\n };\r\n\r\n function abrirExcluirNota(record) {\r\n setDadosNota(record);\r\n setOpenModalExcluir(true);\r\n };\r\n\r\n function recarregarLista() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_numero' } });\r\n }\r\n\r\n function imprimirDanfe(dados) {\r\n if (dados.ntf_status == 1 && !!dados.ntf_chavenfe && !!dados.ntf_docfiscal) {\r\n if (dados.mdf_id == \"55\") {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${dados.ntf_chavenfe}`)\r\n } else if (dados.mdf_id == \"65\") {\r\n notification.warning({ description: `Para reimprimir um cupom eletrônico acesso o módulo de PDV, va até a listagem de vendas e solicite a reimpressão do mesmo`, message: `\"Não é possível gerar um DANFe a partir de uma NFC-e (Cupom Fiscal Eletrônico)` })\r\n } else if (dados.ntf_status == 1 && !!dados.ntf_chavenfe && !(!!dados.ntf_docfiscal)) {\r\n //n implementado\r\n /*\r\n RelatorioService.exibirRelatorioPDF(idRelatorioNf69, [\r\n {\r\n 'nome': 'ntf_numero',\r\n 'valor': notaFiscal.ntf_numero\r\n },\r\n {\r\n 'nome': 'ntf_dataemissao',\r\n 'valor': new Date(notaFiscal.ntf_dataemissao)\r\n }\r\n ], [\r\n {\r\n 'nome': 'dataemissaoFinal',\r\n 'valor': new Date(notaFiscal.ntf_dataemissao)\r\n }\r\n ]);\r\n */\r\n }\r\n }\r\n };\r\n\r\n function abrirExcluirNota(record) {\r\n setDadosNota(record);\r\n setOpenModalExcluir(true);\r\n };\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n {((record.ntf_status == 0 || record.ntf_status == 4) && record.ntf_finalidade != 4 && record.ntf_nroinutilizadosefaz == false) && \r\n \r\n }\r\n {record.ntf_status == 0 && \r\n \r\n }\r\n {(record.ntf_status == 1 && (record.ser_emitentedocumento == 0 || !!!record.ntf_docfiscal)) && \r\n \r\n }\r\n {record.ntf_status == 1 && record.ntf_modelo == '55' && record.ntf_tiponota == 1 && \r\n \r\n }\r\n {(record.ntf_status == 1 && (record.ser_emitentedocumento == 0 || record.ser_serie != null)) && \r\n \r\n }\r\n {(record.ntf_status == 1 && record.ntf_finalidade != 4 && record.ntf_modelo == '55' && record.dfr_id == null) && \r\n \r\n }\r\n \r\n )\r\n };\r\n\r\n function excluirNota(record) {\r\n api.post(`NotaFiscal/Excluir?notaFiscalId=${record.ntf_id}`).then(\r\n res => {\r\n notification.success({ message: 'Nota Fiscal Excluida Com Sucesso!' });\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_numero' } });\r\n }\r\n )\r\n };\r\n\r\n function menuTableOutros(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function removerNotaDigitacao(record) {\r\n Modal.confirm({\r\n title: 'Aviso',\r\n icon: ,\r\n content: `Excluir a Nota Fiscal ${record.ntf_numero}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n onOk() {\r\n excluirNota(record);\r\n },\r\n onCancel() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '-ntf_numero' } });\r\n },\r\n })\r\n };\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n \r\n {retornaDescricaoStatus(ntf_status)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {ntf_numero}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n render: ({ tip_descricao, ntf_nomedest, ntf_serie, ntf_docfiscal, ntf_dataemissao, mdf_id, ntf_finalidade, vendedor, ntf_chavenfe, ntf_cstat, ntf_xmotivo, formasPgto }) => (\r\n
\r\n \r\n {!!tip_descricao &&
\r\n \r\n {tip_descricao}\r\n \r\n }\r\n \r\n {ntf_nomedest}\r\n \r\n {!!ntf_nomedest === false && \r\n Consumidor Final\r\n }\r\n \r\n \r\n \r\n Série: {(!!ntf_serie > 0 ? ntf_serie : '')}\r\n \r\n \r\n {!ntf_docfiscal && DAV-LS}\r\n {!mdf_id == '65' && CUPOM ELETRÔNICO}\r\n \r\n {!!ntf_chavenfe === false && \r\n NF-e não gerada\r\n }\r\n {!!ntf_chavenfe && \r\n \r\n NF-e: {ntf_chavenfe}\r\n \r\n }\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Emissão',\r\n width: 85,\r\n render: ({ ntf_dataemissao }) => (\r\n
\r\n {moment(ntf_dataemissao).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Finalidade',\r\n width: 75,\r\n render: ({ ntf_finalidade }) => (\r\n
\r\n {ntf_finalidade}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n width: 200,\r\n render: ({ valor_total }) => (\r\n
\r\n {FormatNumber(valor_total, true)}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n fixed: 'right',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n {/* { setOpenModalImprimirEtiquetas(false); recarregarLista(); }} />\r\n { setOpenModalAjudaRejeicaoNfe(false); recarregarLista(); }} />\r\n { setOpenModalCartaCorrecao(false); recarregarLista() }} />\r\n\r\n { setOpenModalDevolucao(false); recarregarLista(); }} />\r\n { setOpenModalEstorno(false); recarregarLista(); }} />\r\n { setOpenModalExcluir(false); recarregarLista(); }} />\r\n { setOpenModalCancelarEstornar(false); recarregarLista() }} />\r\n */}\r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Button, Tag, Dropdown, Menu, notification, Table, Divider } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CloseOutlined, PrinterOutlined, MoreOutlined, EyeOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport DrawerPedidos from '../../pages/pedidos/drawer';\r\nimport { ModalDetalhePedido } from \"../../components/modals/\";\r\nimport { getIdUsuario, setIdUsuario } from \"../../services/auth\";\r\nimport { FormatNumber, MaskFormat, FormatDate } from \"../../ValueObjects\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\n\r\nexport default function PesquisaPedidos({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [clientes, setClientes] = useState([]);\r\n const [openModalDetalhePedido, setOpenModalDetalhePedido] = useState(false);\r\n const [dataPesquisa, setDataPesquisa] = useState(new Date().toLocaleDateString());\r\n const [formPedidos] = Form.useForm();\r\n const [idPedido, setIdPedido] = useState(0);\r\n\r\n useEffect(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ped_datainclusao' } })\r\n dispatch({\r\n type: listagemActions.CHANGE, data: {\r\n outrosFiltros:\r\n `&ativoPedido=1&dataFinal=${moment(new Date).format('YYYY-MM-DD')}&dataInicial=${FormatDate(dataPesquisa)}&filtro=&status=60,61,62`\r\n }\r\n })\r\n formPedidos.setFieldsValue({ status: [\"60\", \"61\", \"62\"] });\r\n formPedidos.setFieldsValue({ ativoPedido: [\"1\"] });\r\n carregarClientes()\r\n }, []);\r\n\r\n useEffect(() => {\r\n let filtro = '';\r\n filtro += (!!formPedidos.getFieldValue().status ? `&status=${formPedidos.getFieldValue().status}` : '');\r\n filtro += (!!formPedidos.getFieldValue().ativoPedido ? `&ativoPedido=${formPedidos.getFieldValue().ativoPedido}` : '');\r\n\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&dataFinal=${moment(new Date).format('YYYY-MM-DD')}&dataInicial=${FormatDate(dataPesquisa)}&filtro=&status=${formPedidos.getFieldValue().status}` + filtro } })\r\n }, [dataPesquisa]);\r\n\r\n function carregarClientes() {\r\n api.get(`Cliente/Listar?filtro=`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setClientes(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function editarPedido(record) {\r\n record.ped_datainclusao = moment(record.ped_datainclusao);\r\n record.ped_dataprevisaoentrega = moment(record.ped_dataprevisaoentrega);\r\n record.ped_datavalidade = moment(record.ped_datavalidade);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function cancelarPedido(record) {\r\n record.usu_id = parseInt(getIdUsuario());\r\n record.ped_ativo = false;\r\n api.post(`Pedido/CancelarPedido?`, record).then(\r\n res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Pedido cancelado com sucesso!\" });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ped_datainclusao' } });\r\n }\r\n );\r\n };\r\n\r\n function emitirNf(record) {\r\n };\r\n\r\n function visualizarPedido(record) {\r\n setIdPedido(record.ped_id);\r\n setOpenModalDetalhePedido(true)\r\n };\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n {record.ped_ativo !== false && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function duplicarPedido(dados) {\r\n dados.ped_datainclusao = moment(dados.ped_datainclusao);\r\n dados.ped_dataprevisaoentrega = moment(dados.ped_dataprevisaoentrega);\r\n dados.ped_datavalidade = moment(dados.ped_datavalidade);\r\n dados.ped_id_duplicar = dados.ped_id;\r\n dados.ped_id = null;\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dados } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {stp_descricao}\r\n \r\n \r\n \r\n {ped_numero}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Pedidos\",\r\n render: ({ pes_nome, pef_cpf, pej_cnpj, pes_telefone, pes_endereco, pes_nroestabelecimento, pes_bairro, pes_cep, pes_cidade, pes_uf, ped_datainclusao, ped_dataprevisaoentrega, pdi_qtditem, ped_ativo }) => (\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n \r\n CPF/CNPJ: {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n \r\n \r\n Telefone: {pes_telefone || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n Endereço: {pes_endereco}, {pes_nroestabelecimento}, {pes_bairro}, {pes_cep}, {pes_cidade}-{pes_uf}\r\n \r\n \r\n \r\n {!ped_ativo && \r\n Cancelado\r\n }\r\n \r\n Emissão: {moment(ped_datainclusao).format('DD/MM/YYYY')}\r\n \r\n \r\n Entrega: {moment(ped_dataprevisaoentrega).format('DD/MM/YYYY')}\r\n \r\n \r\n Quantidade de Itens: {pdi_qtditem}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Total do Pedido (R$)\",\r\n align: 'right',\r\n render: ({ ped_valortotal }) => (\r\n
\r\n {FormatNumber(ped_valortotal, true)}\r\n
\r\n )\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n setOpenModalDetalhePedido(false)} ped_id={idPedido} />\r\n \r\n );\r\n\r\n}","import React, { useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Dropdown, Menu, Table, Divider } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, CloseOutlined, PrinterOutlined, MoreOutlined, EyeOutlined, CopyOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from \"../../actions\";\r\nimport { FormatFone, FormatNumber, MaskFormat } from \"../../ValueObjects\";\r\nimport { ModalDetalheOrcamento } from \"../../components/modals/\";\r\nimport DrawerOrcamento from '../../pages/orcamento/drawer';\r\n\r\nexport default function PesquisaOrcamento({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [openModalDetalheOrcamento, setOpenModalDetalheOrcamento] = useState(false);\r\n\r\n function menuTable(record) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n function editar(record) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n };\r\n\r\n function cancelar(record) {\r\n\r\n };\r\n\r\n function duplicar(record) {\r\n\r\n };\r\n\r\n function emitirNf(record) {\r\n\r\n };\r\n\r\n function visualizar(record) {\r\n setOpenModalDetalheOrcamento(true);\r\n };\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {orc_numero}\r\n \r\n \r\n \r\n {pes_nome}\r\n \r\n \r\n CPF/CNPJ: {!!pef_cpf ? MaskFormat(pef_cpf, 'Não Informado', true) : MaskFormat(pej_cnpj, 'Não Informado', true)}\r\n \r\n \r\n Telefone: {FormatFone(pes_telefone) || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n Emissão: {moment(orc_datainclusao).format('DD/MM/YYYY')}\r\n \r\n \r\n Entrega: {moment(orc_datavalidade).format('DD/MM/YYYY')}\r\n \r\n \r\n Quant.: {oit_qtditem}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Total do Orçamento (R$)\",\r\n align: 'right',\r\n render: ({ orc_valortotal }) => (\r\n
\r\n {FormatNumber(orc_valortotal, true)}\r\n
\r\n )\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n setOpenModalDetalheOrcamento(false)} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Menu, Modal, Table, Divider } from \"antd\";\r\nimport { DeleteOutlined, PhoneOutlined, PrinterOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from '../../state';\r\nimport { FormatFone, FormatNumber } from \"../../ValueObjects\";\r\nimport DrawerCondicional from '../../pages/condicional/drawer';\r\nimport DrawerDevolucao from '../../pages/condicional/drawerDevolucao';\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { ModalProdutoCondicional, ModalContatoCliente } from \"../../components/modals/\";\r\n\r\nexport default function PesquisaCondicional({ dados, dataPesquisa }) {\r\n\r\n const [carregando, setCarregando] = useState(false);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [registroDevolucao, setRegistroDevolucao] = useState({});\r\n const [openRegistroDevolucao, setOpenRegistroDevolucao] = useState(false);\r\n const [situacaoVenda, setSituacaoVenda] = useState([]);\r\n const [openModalContatoCliente, setOpenModalContatoCliente] = useState(false);\r\n const [openModalProdutoCondicional, setOpenModalProdutoCondicional] = useState(false);\r\n\r\n function menuTable(registro) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n\r\n\r\n function descricaoSituacao(codigo) {\r\n if (codigo >= 0 && !!situacaoVenda && !!situacaoVenda[codigo]) {\r\n return situacaoVenda[codigo].value;\r\n }\r\n return '';\r\n };\r\n\r\n function deletarCondicional(registro) {\r\n api.post(`VendaCondicional/Excluir`, JSON.stringify(registro.vnc_id), { headers: { 'Content-Type': 'application/json;charset=utf-8' } }).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('erro ao excluir condicional!');\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vnc_datalancamento' } });\r\n });\r\n };\r\n\r\n async function editarCondicional(registro) {\r\n registro.vnc_datalancamento = moment(registro.vnc_datalancamento);\r\n registro.vnc_prazoretorno = moment(registro.vnc_prazoretorno);\r\n registro.vnc_entregaagendada = moment(registro.vnc_entregaagendada);\r\n let dadosTemp = await api.get(`VendaCondicional/ListarItens?listarTodos=true&vendaCondicionalId=${registro.vnc_id}`);\r\n if (dadosTemp.status === 200) {\r\n registro.itens = dadosTemp.data;\r\n }\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: registro } });\r\n }\r\n\r\n const modalExcluirCondicional = (condicional) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir a condicional do cliente ${condicional.cli_nome} contendo ${condicional.vnc_totalitens} itens com valor total de R$ ${!!condicional.vnc_valortotal ? condicional.vnc_valortotal : '0,00'} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n deletarCondicional(condicional);\r\n }\r\n });\r\n };\r\n\r\n function retornaCorSituacao(codigo) {\r\n let cor = \"\";\r\n switch (codigo) {\r\n case 0:\r\n cor = \"processing\";\r\n break;\r\n case 1:\r\n cor = \"green\";\r\n break;\r\n case 2:\r\n cor = \"#87d068\";\r\n break;\r\n case 3:\r\n cor = \"orange\";\r\n break;\r\n case 4:\r\n cor = \"red\";\r\n break;\r\n default:\r\n cor = \"processing\";\r\n break;\r\n }\r\n return cor;\r\n };\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, []);\r\n\r\n function carregarDados() {\r\n api.get(`Enum/Listar?nome=SituacaoVendaCondicional`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setSituacaoVenda(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function alterarCondicionalEntregue(dados, valor) {\r\n let situacao = dados.vnc_situacao;\r\n if (valor === true) {\r\n situacao = 1;\r\n } else {\r\n situacao = 0;\r\n }\r\n api.post('VendaCondicional/EditarSituacaoCondicional',\r\n JSON.stringify({ vnc_id: dados.vnc_id, vnc_situacao: situacao }),\r\n { headers: { 'Content-Type': 'application/json;charset=utf-8' } }\r\n ).then(\r\n (res) => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('erro ao alterar status da condicional!');\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+vnc_datalancamento' } });\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {(descricaoSituacao(vnc_situacao))}\r\n \r\n \r\n \r\n {vnc_numero}\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ cli_nome, vnc_telefonecliente }) => (\r\n
\r\n \r\n
\r\n {cli_nome}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n align: 'center',\r\n children: [\r\n {\r\n title: 'Lançamento',\r\n width: 140,\r\n render: ({ vnc_datalancamento }) => (\r\n
\r\n {moment(vnc_datalancamento).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Retorno',\r\n align: 'right',\r\n width: 140,\r\n render: ({ vnc_prazoretorno }) => (\r\n
\r\n {moment(vnc_prazoretorno).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: 'Itens',\r\n align: 'center',\r\n width: 100,\r\n render: ({ vnc_totalitens }) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 150,\r\n render: ({ vnc_valortotal }) => (\r\n
\r\n {FormatNumber(vnc_valortotal, true)}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n {/* setOpenRegistroDevolucao(false)} dataPesquisa={dataPesquisa} />\r\n \r\n setOpenModalProdutoCondicional(false)} />\r\n setOpenModalContatoCliente(false)} />\r\n */}\r\n \r\n\r\n );\r\n\r\n}","import React from \"react\";\r\nimport { Row, Col, Button, Tag, Dropdown, Menu, Table, Divider } from \"antd\";\r\nimport { DeleteOutlined, MoreOutlined, DollarOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function PesquisaContaReceber({ dados }) {\r\n\r\n function menuTable(dados) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {!!saldo ? 'Recebido' : 'Em Aberto'}\r\n \r\n \r\n \r\n \r\n \r\n {prc_numeroparcela}/{cpr_numeroparcelas}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Contas a Receber\",\r\n render: ({ pes_nome, ctg_descricao, mcc_datahora, prc_datavencimento }) => (\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n \r\n \r\n \r\n Conta Gerencial: {ctg_descricao}\r\n \r\n \r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n Recebido em:{moment(mcc_datahora).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n Atrasado:{moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n A Receber:{moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n Receber Hoje:{moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Número\",\r\n width: 100,\r\n render: ({ cpr_numerodocumento }) => (\r\n
\r\n {cpr_numerodocumento || 'Não Informado'}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Valor da Parcela (R$)',\r\n align: 'right',\r\n width: 180,\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Saldo Devedor (R$)',\r\n align: 'right',\r\n width: 180,\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Row, Col, Button, Tag, Dropdown, Menu, Table, Divider } from \"antd\";\r\nimport { DeleteOutlined, MoreOutlined, DollarOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function PesquisaContaPagar({ dados }) {\r\n\r\n function menuTable(dados) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n \r\n {!!saldo ? 'Quitada' : 'Em Aberto'}\r\n \r\n \r\n \r\n \r\n \r\n {prc_numeroparcela}/{cpr_numeroparcelas}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: \"Contas a Receber\",\r\n render: ({ pes_nome, cpr_numerodocumento, ctg_descricao, mcc_datahora, prc_datavencimento }) => (\r\n
\r\n \r\n
\r\n {pes_nome}\r\n \r\n \r\n \r\n \r\n Número: {cpr_numerodocumento}\r\n \r\n \r\n Conta Gerencial: {ctg_descricao}\r\n \r\n \r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n Quitada em:{moment(mcc_datahora).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n Atrasado:{moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n A Pagar:{moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n $\r\n \r\n \r\n \r\n Pagar Hoje:{moment(prc_datavencimento).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'Valor da Parcela (R$)',\r\n align: 'right',\r\n width: 180,\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Saldo Devedor (R$)',\r\n align: 'right',\r\n width: 180,\r\n fixed: 'right',\r\n render: ({ prc_valor }) => (\r\n
\r\n {FormatNumber(prc_valor, true)}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }}/>\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Tag, Popover, notification, Modal, Table, Divider } from \"antd\";\r\nimport { CloseCircleOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { useStateValue } from '../../../state';\r\nimport { listagemActions } from \"../../../actions\";\r\nimport DrawerTributacaoIcms from '../../../pages/tributacaoIcms/drawer';\r\n\r\nexport default function PesquisaTributacaoIcms({ dados }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+icm_descricao' } }), []);\r\n\r\n function excluirRegistro(item) {\r\n setCarregando(true);\r\n api.delete(`tributacaoIcms/Excluir?icm_id=${item.icm_id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Os dados do ICMS foram excluídos com sucesso!\" });\r\n dispatch({ type: listagemActions.CHANGE, data: { label: \"Nome Z - A\", ordem: '+icm_descricao' } })\r\n }, err => {\r\n modalInativarConta(item);\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+icm_descricao' } });\r\n });\r\n }\r\n\r\n const modalExcluir = (record) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(record);\r\n }\r\n });\r\n };\r\n\r\n const modalInativarConta = (record) => {\r\n Modal.confirm({\r\n title: `Não foi possível excluir a Tributação ICMS ${record.icm_descricao}!`,\r\n icon: ,\r\n content: `Deve conter referências com outros registros!`,\r\n okText: 'Inativar Registro',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n record.inativar = 1;\r\n record.icm_ativo = false;\r\n api.post(`tributacaoIcms/editar`, record).then((res) => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Operação concluída', description: \"Tributação inativada com sucesso!\" });\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { label: \"Nome Z - A\", ordem: '+icm_descricao' } })\r\n }, err => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(err.response) });\r\n }).finally(() => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+icm_descricao' } });\r\n });\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
(\r\n \r\n \r\n {icm_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Tributações do ICMS',\r\n render: ({ icm_descricao }) => (\r\n
\r\n {icm_descricao}\r\n
\r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n align: 'center',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }} />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Tag, Popover, Divider, Modal, notification } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../../services/api\";\r\nimport { useStateValue } from '../../../state';\r\nimport { TabelaDados } from \"../../../components\";\r\nimport { listagemActions, manutencaoActions } from \"../../../actions\";\r\nimport DrawerTributacaoPisCofins from '../../../pages/tributacaoPisCofins/drawer';\r\n\r\nexport default function PesquisaTributacaoPisCofins() {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pis_descricao' } }), []);\r\n\r\n function excluirRegistro(id) {\r\n setCarregando(true);\r\n api.post(`TributacaoPisCofins/Excluir?codigoPisCofins=${id}`).then((res) => {\r\n if (res.status === 200) notification.success({ message: 'Operação concluída', description: \"Registro excluído com sucesso!\" });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }, erro => {\r\n notification.error({ message: 'Erro ao processar a requisição.', description: JSON.stringify(erro.response) });\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+pis_descricao' } });\r\n });\r\n }\r\n\r\n const modalExcluir = (dados) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir este registro?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(dados);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n (\r\n \r\n \r\n {pis_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Tributação do PIS e COFINS',\r\n render: ({ pis_descricao, nat_descricao }) => (\r\n
\r\n \r\n
\r\n {pis_descricao}\r\n \r\n \r\n \r\n \r\n {nat_descricao}\r\n \r\n \r\n \r\n ),\r\n },/*\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n key: 'x',\r\n fixed: 'right',\r\n align: 'center',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Tributação PIS\r\n \r\n \r\n \r\n \r\n CST Saída: {record.cpc_saidacstpis || 'Não Informado'} \r\n \r\n \r\n Perc.Redução BC: {record.pis_saidapercredbcpis || 'Não Informado'}\r\n \r\n \r\n Alíquota: {record.pis_saidapercpis || 'Não Informado'}\r\n \r\n \r\n \r\n CST Entrada Pessoa Física: {record.cpc_entradacstpispf || 'Não Informado'}\r\n \r\n \r\n Perc.Redução BC: {record.pis_entradapercredbcpispf || 'Não Informado'} \r\n \r\n \r\n Alíquota: {record.pis_entradapercpispf || 'Não Informado'}\r\n \r\n \r\n \r\n CST Entrada Pessoa Jurídica: {record.cpc_entradacstpispj || 'Não Informado'}\r\n \r\n \r\n Perc.Redução BC: {record.pis_entradapercredbcpispj || 'Não Informado'}\r\n \r\n \r\n Alíquota: {record.pis_entradapercpispj || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tributação COFINS\r\n \r\n \r\n \r\n \r\n CST Saída: {record.cpc_saidacstcofins || 'Não Informado'}\r\n \r\n \r\n Perc.Redução BC: {record.pis_saidapercredbccofins || 'Não Informado'}\r\n \r\n \r\n Alíquota: {record.pis_saidaperccofins || 'Não Informado'}\r\n \r\n \r\n \r\n CST Entrada Pessoa Física: {record.cpc_entradacstcofinspf || 'Não Informado'}\r\n \r\n \r\n Perc.Redução BC: {record.pis_entradapercredbccofinspf || 'Não Informado'} \r\n \r\n \r\n Alíquota: {record.pis_entradaperccofinspf || 'Não Informado'} \r\n \r\n \r\n \r\n CST Entrada Pessoa Jurídica: {record.cpc_entradacstcofinspj || 'Não Informado'} \r\n \r\n \r\n Perc.Redução BC: {record.pis_entradapercredbccofinspj || 'Não Informado'} \r\n \r\n \r\n Alíquota: {record.pis_entradaperccofinspj || 'Não Informado'} \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }} locale={{\r\n emptyText: (\r\n \r\n \r\n \r\n Nenhum Registro Encontrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 900 }} columnWidth={30} />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n \r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Form, Input, Tabs, Row, Col, Badge, Card } from 'antd';\r\nimport { Icon } from '@ant-design/compatible';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.less';\r\nimport 'slick-carousel/slick/slick-theme.less';\r\n\r\nimport './index.less';\r\nimport {\r\n TabTodas, TabCliente, TabFuncionario, TabFornecedor, TabVendedor, PesquisaProduto, PesquisaNotaFiscal, PesquisaPedidos,\r\n PesquisaOrcamento, PesquisaCondicional, PesquisaContaReceber, PesquisaContaPagar, TabTributacaoIcms, TabTributacaoPisCofins\r\n}\r\n from './pages';\r\nimport api from '../../services/api';\r\nimport { isObjetoDiffVazio } from '../../services/funcoes';\r\n\r\nexport default function PesquisaGlobal({ dadosBusca, openPesquisaGlobal }) {\r\n const [form] = Form.useForm();\r\n const pesquisaTipo = {\r\n pessoas: 1,\r\n produtos: 2,\r\n notasFiscais: 3,\r\n pedidos: 4,\r\n orcamentos: 5,\r\n condicional: 6,\r\n tributacao: 7,\r\n contasPagar: 8,\r\n contasReceber: 9,\r\n }\r\n const [conteudoExibir, setConteudoExibir] = useState(pesquisaTipo.pessoas);\r\n const settings = {\r\n speed: 500,\r\n dots: false,\r\n slidesToShow: 5,\r\n slidesToScroll: 1\r\n };\r\n const [listaPessoas, setListaPessoas] = useState([]);\r\n const [listaNota, setListaNota] = useState([]);\r\n const [listaProdutos, setListaProdutos] = useState([]);\r\n const [listaPedido, setListaPedido] = useState([]);\r\n const [listaOrcamento, setListaOrcamento] = useState([]);\r\n const [listaCondicional, setListaCondicional] = useState([]);\r\n const [listaTributacaoIcms, setListaTributacaoIcms] = useState([]);\r\n const [listaContasPagar, setListaContasPagar] = useState([]);\r\n const [listaContasReceber, setListaContasReceber] = useState([]);\r\n const [listaTributacaoPisCofins, setListaTributacaoPisCofins] = useState([]);\r\n const [totalRegistros, setTotalRegistros] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!!dadosBusca && isObjetoDiffVazio(dadosBusca)) {\r\n montarTelas(dadosBusca);\r\n }\r\n }, [dadosBusca]);\r\n\r\n useEffect(() => {\r\n if (openPesquisaGlobal) {\r\n form.setFieldsValue({ busca: localStorage.getItem('@GestorWeb-PesquisaGlobal') })\r\n }\r\n }, [openPesquisaGlobal]);\r\n\r\n function efetuarBusca(value) {\r\n api.get(`BuscaGlobal/buscar?pesquisa=${value}&rota=`).then(\r\n res => {\r\n montarTelas(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function montarTelas(dados) {\r\n telaPessoas(dados.pessoas);\r\n telaNota(dados.notafiscal);\r\n telaPedidos(dados.pedidos);\r\n telaCondicional(dados.vendacondicional);\r\n telaContasReceber(dados.contasareceber);\r\n telaContasPagar(dados.contasapagar);\r\n telaOrcamentos(dados.orcamentos);\r\n telaProdutos(dados.produtos);\r\n telaTributacaoIcms(dados.tributacaoicms);\r\n telaTributacaoPisCofins(dados.tributacaopiscofins)\r\n setTotalRegistros(dados.pessoas.length + dados.notafiscal.length + dados.pedidos.length + dados.vendacondicional.length + dados.contasareceber.length +\r\n dados.contasapagar.length + dados.orcamentos.length + dados.produtos.length + dados.tributacaoicms.length + dados.tributacaopiscofins.length)\r\n };\r\n\r\n function telaPessoas(dados) {\r\n setListaPessoas(!!dados ? dados : []);\r\n };\r\n\r\n function telaNota(dados) {\r\n setListaNota(!!dados ? dados : []);\r\n };\r\n\r\n function telaPedidos(dados) {\r\n setListaPedido(!!dados ? dados : []);\r\n };\r\n\r\n function telaCondicional(dados) {\r\n setListaCondicional(!!dados ? dados : []);\r\n };\r\n\r\n function telaContasReceber(dados) {\r\n setListaContasReceber(!!dados ? dados : []);\r\n };\r\n\r\n function telaContasPagar(dados) {\r\n setListaContasPagar(!!dados ? dados : []);\r\n };\r\n\r\n function telaOrcamentos(dados) {\r\n setListaOrcamento(!!dados ? dados : []);\r\n };\r\n\r\n function telaProdutos(dados) {\r\n setListaProdutos(!!dados ? dados : []);\r\n };\r\n\r\n function telaTributacaoIcms(dados) {\r\n setListaTributacaoIcms(!!dados ? dados : []);\r\n };\r\n\r\n function telaTributacaoPisCofins(dados) {\r\n setListaTributacaoPisCofins(!!dados ? dados : []);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Resultado da Busca: {totalRegistros} Itens \r\n \r\n \r\n \r\n { efetuarBusca(value) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
setConteudoExibir(pesquisaTipo.pessoas)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Pessoas\r\n \r\n \r\n \r\n \r\n
setConteudoExibir(pesquisaTipo.produtos)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Produtos\r\n \r\n \r\n \r\n \r\n
setConteudoExibir(pesquisaTipo.notasFiscais)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Notas Fiscais\r\n \r\n \r\n \r\n \r\n
setConteudoExibir(pesquisaTipo.pedidos)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Pedidos\r\n \r\n \r\n \r\n \r\n
setConteudoExibir(pesquisaTipo.orcamentos)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Orçamentos\r\n \r\n \r\n \r\n \r\n
setConteudoExibir(pesquisaTipo.condicional)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Condicional\r\n \r\n \r\n \r\n \r\n
setConteudoExibir(pesquisaTipo.tributacao)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Tributação\r\n \r\n \r\n \r\n \r\n
setConteudoExibir(pesquisaTipo.contasPagar)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Contas a Pagar\r\n \r\n \r\n \r\n \r\n
setConteudoExibir(pesquisaTipo.contasReceber)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Contas a Receber\r\n \r\n \r\n \r\n \r\n \r\n \r\n {conteudoExibir === pesquisaTipo.pessoas &&\r\n \r\n \r\n \r\n Todas\r\n \r\n } key=\"1\">\r\n \r\n \r\n !!cli.cli_id).length} className=\"text-uppercase\">\r\n Cliente\r\n \r\n } key=\"2\">\r\n !!cli.cli_id)} />\r\n \r\n !!cli.ven_id).length} className=\"text-uppercase\">\r\n Vendedor\r\n \r\n } key=\"3\">\r\n !!cli.ven_id)} />\r\n \r\n !!cli.for_id).length} className=\"text-uppercase\">\r\n Fornecedor\r\n \r\n } key=\"4\">\r\n !!cli.for_id)} />\r\n \r\n !!cli.fun_id).length} className=\"text-uppercase\">\r\n Funcionário\r\n \r\n } key=\"5\">\r\n !!cli.fun_id)} />\r\n \r\n \r\n \r\n }\r\n {conteudoExibir === pesquisaTipo.tributacao &&\r\n \r\n \r\n \r\n Tributação ICMS\r\n \r\n } key=\"1\">\r\n \r\n \r\n \r\n Tributação Pis/Cofins\r\n \r\n } key=\"2\">\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n {conteudoExibir === pesquisaTipo.produtos &&\r\n
\r\n \r\n \r\n }\r\n {conteudoExibir === pesquisaTipo.notasFiscais &&\r\n \r\n \r\n \r\n }\r\n {conteudoExibir === pesquisaTipo.pedidos &&\r\n \r\n \r\n \r\n }\r\n {conteudoExibir === pesquisaTipo.orcamentos &&\r\n \r\n \r\n \r\n }\r\n {conteudoExibir === pesquisaTipo.condicional &&\r\n \r\n \r\n \r\n }\r\n {conteudoExibir === pesquisaTipo.contasReceber &&\r\n \r\n \r\n \r\n }\r\n {conteudoExibir === pesquisaTipo.contasPagar &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Col, Form, Row, Button, Input, InputNumber, Select, Card, notification, Tooltip, Modal } from \"antd\";\r\nimport { SearchOutlined, BarcodeOutlined, PlusOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { ModalManutencaoNota, ModalSelectLote, ModalSenhaLiberacao } from \"../modals\";\r\nimport { HasValue, isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { InputPreco, SelectProduto, SelectPaginacao } from \"../../components\";\r\nimport SelectPaginado from \"../selectPaginado\";\r\nimport { selectPaginadoActions } from \"../../actions\";\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\nimport { ArrowForwardIosTwoTone } from \"@material-ui/icons\";\r\n\r\nexport default function FiltroProdutoNfi({ form, dadosTabela, dadosEndereco = {}, dadosOperacao = {}, dadosVendedor = {}, btnEditando, itemEditando, carregarPagina }) {\r\n\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [dadosDetalhes, setDadosDetalhes] = useState({});\r\n const [desabilitarProd_id, setDesabilitarProd_id] = useState(false);\r\n const [buscarProdutosCodBarra, setBuscarProdutosCodBarra] = useState(null);\r\n const [dadosCfop, setDadosCfop] = useState([]);\r\n const [abrirModalManutencaoNota, setAbrirModalManutencaoNota] = useState(false);\r\n const [dadosProdutoImpostos, setDadosProdutoImpostos] = useState({});\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosContribuinte, setDadosContribuinte] = useState({});\r\n const [dadosNcm, setDadosNcm] = useState([]);\r\n const [listaPreco, setListaPreco] = useState([]);\r\n const [ocultaListaPreco, setOcultaListaPreco] = useState(false);\r\n const [listaSelectProd, setListaSelectProd] = useState([]);\r\n const codBarras = useRef();\r\n const [abreModalLiberacao, setAbreModalLiberacao] = useState(false);\r\n const [liberacaoSenha, setLiberacaoSenha] = useState(null);\r\n const [controleLote, setControleLote] = useState(false);\r\n const [abrirModalLote, setAbrirModalLote] = useState(false);\r\n const [dadosLote, setDadosLote] = useState([]);\r\n const [dadosItem, setDadosItem] = useState([]);\r\n\r\n useEffect(() => {\r\n if (btnEditando.editando && isObjetoDiffVazio(itemEditando)) {\r\n editandoItem(itemEditando);\r\n setExibirDetalhes(true);\r\n buscarDadosProdImpostos(itemEditando.pro_id, itemEditando.ltp_id);\r\n }\r\n }, [btnEditando])\r\n\r\n useEffect(() => {\r\n popularDadosContribuintes();\r\n carregaDados();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (buscarProdutosCodBarra && !!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n }, [buscarProdutosCodBarra]);\r\n\r\n useEffect(() => {\r\n if (isObjetoDiffVazio(dadosContribuinte)) {\r\n if (!!manutencao.dados && (!!form.getFieldsValue().vnc_id || !!form.getFieldsValue().ped_id)) {\r\n incluirItemPedidoCondicional();\r\n }\r\n }\r\n }, [dadosContribuinte]);\r\n\r\n //#region dados impostos produtos \r\n\r\n async function buscarDadosProdImpostos(produto, listapreco) {\r\n let destinoOperacao = (!!dadosEndereco.est_sigla && !!dadosContribuinte.est_sigla && (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) ? '1' : '2');\r\n let codigoProd = !!produto ? produto : form.getFieldValue().pro_id;\r\n let ufDest = !!dadosEndereco.est_sigla ? dadosEndereco.est_sigla : dadosContribuinte.est_sigla;\r\n let indicadorPresenca = !!form.getFieldsValue().ntf_indicadorpresenca ? `&indicadorPresenca=${form.getFieldsValue().ntf_indicadorpresenca}` : '';\r\n let listaPreco = !!listapreco ? `&ListaPreco=${listapreco}` : '';\r\n let inscEstadual = !!form.getFieldValue().pej_inscricaoestadual ? `&inscEstadual=${form.getFieldValue().pej_inscricaoestadual}` : '';\r\n let listaPrecoPar = !!listapreco ? `&ListaPreco=${listapreco}` : '';\r\n let objProd = (await api.get(`Produto/BuscarDadosProduto?IdProduto=${codigoProd}&ufDestino=${ufDest}`\r\n + `&operacaoCodigo=${dadosOperacao.ope_id}&ufOrigem=${dadosContribuinte.est_sigla}&tipoContribuinte=${dadosContribuinte.loc_tipocontribuinte}`\r\n + `&empresaEnquadramento=${dadosContribuinte.emp_regimetributario}&destinoOperacao=${destinoOperacao}${indicadorPresenca}${inscEstadual}${listaPrecoPar}`\r\n )).data[0];\r\n setDadosProdutoImpostos(objProd);\r\n form.setFieldsValue({\r\n pis_id: objProd.pis_id,\r\n cbf_id: !!dadosOperacao.cbf_id ? dadosOperacao.cbf_id : objProd.cbf_id, // se tem fixo na operação \r\n ncm_id: objProd.ncm_id,\r\n icm_id: objProd.icm_id,\r\n nfi_cfop: objProd.cfo_cfop,\r\n informacaoAdicional: !!form.getFieldValue().informacaoAdicional ? form.getFieldValue().informacaoAdicional : objProd.pro_observacao\r\n });\r\n return objProd;\r\n };\r\n\r\n useEffect(() => {\r\n if (!!dadosProdutoImpostos && JSON.stringify(dadosProdutoImpostos) !== '{}') {\r\n abrirModalManutencaoProd();\r\n }\r\n }, [dadosProdutoImpostos]);\r\n\r\n\r\n function abrirModalManutencaoProd() {\r\n if (dadosContribuinte.emp_regimetributario === 3 && (!!!dadosProdutoImpostos.icm_id || !!!dadosProdutoImpostos.ncm_id || !!!dadosProdutoImpostos.ump_id ||\r\n !!!dadosProdutoImpostos.pro_descricao || !!!dadosProdutoImpostos.pis_id || !!!dadosProdutoImpostos.iod_ufdestino)) {\r\n setAbrirModalManutencaoNota(true);\r\n } else if (dadosContribuinte.emp_regimetributario !== 3 && (!!!dadosProdutoImpostos.icm_id || !!!dadosProdutoImpostos.ncm_id || !!!dadosProdutoImpostos.ump_id)) {\r\n setAbrirModalManutencaoNota(true);\r\n } else if (!!dadosProdutoImpostos.cst_id && !!!dadosProdutoImpostos.mva_ufdestino && (dadosProdutoImpostos.cst_id === '10' || dadosProdutoImpostos.cst_id === '30' || dadosProdutoImpostos.cst_id === '70')) {\r\n setAbrirModalManutencaoNota(true);\r\n }\r\n };\r\n\r\n async function carregarNcm(id) {\r\n api.get(`Ncm/Buscar/${id}`).then(res => {\r\n setDadosNcm(res.data);\r\n dadosProdutoImpostos.ncm_ativo = res.data.ncm_ativo;\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n\r\n function carregarSelectPaginados() {\r\n let lista = [];\r\n if (!!form.getFieldValue().ltp_id)\r\n lista.push({ name: \"ltp_id\", campo: \"idLista\", value: form.getFieldValue().ltp_id });\r\n\r\n if (!!form.getFieldsValue().icm_id)\r\n lista.push({ name: \"icm_id\", campo: \"Codigo\", value: form.getFieldsValue().icm_id })\r\n\r\n if (!!form.getFieldsValue().pis_id)\r\n lista.push({ name: \"pis_id\", campo: \"Id\", value: form.getFieldsValue().pis_id })\r\n\r\n if (!!form.getFieldValue().ncm_id)\r\n lista.push({ name: \"ncm_id\", campo: \"IdNcm\", value: form.getFieldValue().ncm_id });\r\n\r\n if (dadosContribuinte.emp_regimetributario === 3 && (!!form.getFieldValue().cbf_id || !!dadosOperacao.cbf_id))\r\n lista.push({ name: \"cbf_id\", campo: \"Id\", value: !!dadosOperacao.cbf_id ? dadosOperacao.cbf_id : form.getFieldValue().cbf_id });\r\n\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Buscar dados banco \r\n\r\n function carregaDados() {\r\n buscarDadosCfop();\r\n };\r\n\r\n async function popularDadosContribuintes(callback) {\r\n await api.get(`dadosContribuinte/Buscar`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDadosContribuinte(res.data);\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function buscarDadosCfop() {\r\n api.get(`Cfop/ListarCfopTipo?tipoCfopFim=8000&tipoCfopIni=1000`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDadosCfop(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n //#endregion\r\n\r\n //#region Funções de campos do formulario \r\n\r\n async function onChangeProID(pro_id) {\r\n let listaItens = [...listaSelectProd]\r\n let produto = listaItens.filter(pro => pro.key === pro_id)[0];\r\n let filtros = !!produto.pro_id ? `idProduto=${produto.pro_id}` : '';\r\n filtros += !!produto.prg_id ? `&idProdutoGrade=${produto.prg_id}` : '';\r\n filtros += !!dadosOperacao.ope_id ? `&idOperacaoFiscal=${dadosOperacao.ope_id}` : '';\r\n filtros += !!form.getFieldValue().cli_id ? `&idCliente=${form.getFieldValue().cli_id}` : '';\r\n let listaPrecoTemp = (await api.get(`ListaPreco/ListaPrecoPadraoProduto?${filtros}`)).data;\r\n let listaPrecoCliente = (await api.get(`ListaPrecoCliente/ListarListaPrecoCliente?${filtros}`)).data;\r\n let listapreco = (!!!listaPrecoCliente || listaPrecoCliente.length > 0) ? listaPrecoCliente[0].ltp_id : listaPrecoTemp[0].ltp_id;\r\n setControleLote(produto.pro_controlelote)\r\n if (!!listaPrecoCliente && listaPrecoCliente.length > 0) {\r\n form.setFieldsValue({ ltp_id: listaPrecoCliente[0].ltp_id });\r\n produto.lpi_valorvenda = listaPrecoCliente[0].ltp_id;\r\n if (dadosOperacao?.ope_tipoprecoutilizar === 2 || dadosOperacao?.ope_tipoprecoutilizar === 3) {\r\n setOcultaListaPreco(true);\r\n } else {\r\n setOcultaListaPreco(false);\r\n }\r\n setListaPreco(listaPrecoCliente);\r\n } else {\r\n form.setFieldsValue({ ltp_id: listaPrecoTemp[0].ltp_id });\r\n produto.lpi_valorvenda = listaPrecoTemp[0].lpi_valorvenda;\r\n if (dadosOperacao?.ope_tipoprecoutilizar === 2 || dadosOperacao?.ope_tipoprecoutilizar === 3) {\r\n setOcultaListaPreco(true);\r\n } else {\r\n setOcultaListaPreco(false);\r\n }\r\n setListaPreco(listaPrecoTemp);\r\n }\r\n\r\n let produtoImposto = await buscarDadosProdImpostos(produto.pro_id, listapreco);\r\n produtoImposto.prg_id = produto.prg_id;\r\n produtoImposto.prg_ean = produto.prg_ean;\r\n produtoImposto.descricaograde = produto.descricaograde;\r\n await popularFormProduto(produtoImposto);\r\n carregarSelectPaginados();\r\n };\r\n\r\n async function onPressEnterProCodigo(campo) {\r\n let codigoEan = campo.target.value.trim();\r\n let dadosRequisicao = await api.get(`Produto/ListaProdutoFiltro?filtro=${codigoEan}`);\r\n if (!!dadosRequisicao.data && dadosRequisicao.data.items.length > 0) {\r\n let dadosProduto = dadosRequisicao.data.items[0];\r\n let produtoImposto = await buscarDadosProdImpostos(dadosProduto.pro_id, form.getFieldValue().ltp_id);\r\n produtoImposto.prg_id = dadosProduto.prg_id;\r\n produtoImposto.descricaograde = dadosProduto.descricaograde;\r\n await popularFormProduto(produtoImposto);\r\n adicionarItem(produtoImposto);\r\n if (!!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n }\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setBuscarProdutosCodBarra(!buscarProdutosCodBarra);\r\n };\r\n\r\n function onChangeQuantidade() {\r\n recalcularValorTotal();\r\n };\r\n\r\n function onChangeValorUnitario() {\r\n recalcularValorTotal();\r\n };\r\n\r\n function onChangePercDesc() {\r\n calculaDesconto('PERC');\r\n };\r\n\r\n function onChangeDesconto() {\r\n calculaDesconto('VALOR');\r\n };\r\n\r\n function onChangePercAcresc() {\r\n calculaAcrescimo('PERC');\r\n };\r\n\r\n function onChangeAcrescimo() {\r\n calculaAcrescimo('VALOR');\r\n };\r\n\r\n function onClickBtnCancelar() {\r\n cancelar();\r\n };\r\n\r\n function onClickBtnAdicionar() {\r\n adicionarItem();\r\n }\r\n\r\n //#endregion\r\n\r\n //#region calculos do item \r\n\r\n function recalcularValorTotal() {\r\n let total = 0;\r\n total = parseFloat(parseFloat(form.getFieldValue().quantidade) * parseFloat(form.getFieldValue().valorUnitario));\r\n form.setFieldsValue({ valorTotalItem: total.toFixed(2) });\r\n calculaDesconto('ATT');\r\n calculaAcrescimo('ATT');\r\n };\r\n\r\n function calculaDesconto(campo) {\r\n let valor = parseFloat((!!form.getFieldValue().desconto ? form.getFieldValue().desconto : 0));\r\n let perc = parseFloat((!!form.getFieldValue().percdesc ? form.getFieldValue().percdesc : 0));\r\n let tot = parseFloat(form.getFieldValue().valorTotalItem);\r\n let result = 0;\r\n if (validarDescontoMaximoVendedor(perc)) {\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ desconto: result.toFixed(2) });\r\n } else if (campo === 'ATT') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ desconto: result.toFixed(2) });\r\n valor = (!!form.getFieldValue().desconto ? parseFloat(form.getFieldValue().desconto) : 0);\r\n result = (!!tot > 0 ? (valor * 100) / tot : 0);\r\n form.setFieldsValue({ percdesc: result.toFixed(2) });\r\n } else {\r\n if (valor > tot) {\r\n notification.warning({ message: 'Aviso!', description: 'Valor de desconto maior do que valor total do item!' });\r\n form.setFieldsValue({ desconto: tot });\r\n }\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percdesc: result.toFixed(2) });\r\n }\r\n calculaTotalItemDescAcr();\r\n }\r\n } else {\r\n form.setFieldsValue({ desconto: 0 });\r\n form.setFieldsValue({ percdesc: 0 });\r\n calculaTotalItemDescAcr();\r\n }\r\n };\r\n\r\n function calculaAcrescimo(campo) {\r\n let valor = (!!form.getFieldValue().acrescimo ? form.getFieldValue().acrescimo : 0);\r\n let perc = (!!form.getFieldValue().percacresc ? form.getFieldValue().percacresc : 0);\r\n let tot = (!!form.getFieldValue().valorTotalItem ? parseFloat(form.getFieldValue().valorTotalItem) : 0);\r\n let result = 0;\r\n\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ acrescimo: result.toFixed(2) });\r\n } else if (campo === 'ATT') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ acrescimo: result.toFixed(2) });\r\n valor = !!form.getFieldValue().acrescimo ? parseFloat(form.getFieldValue().acrescimo) : 0;\r\n result = (tot > 0 ? (valor * 100) / tot : 0);\r\n form.setFieldsValue({ percacresc: result.toFixed(2) });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percacresc: result.toFixed(2) });\r\n }\r\n calculaTotalItemDescAcr();\r\n }\r\n };\r\n\r\n function calculaTotalItemDescAcr() {\r\n let valorTot = 0;\r\n let valorItens = !!form.getFieldValue().valorTotalItem ? form.getFieldValue().valorTotalItem : 0;\r\n let valorAcrescimo = !!form.getFieldValue().acrescimo ? form.getFieldValue().acrescimo : 0;\r\n let valorDesc = !!form.getFieldValue().desconto ? form.getFieldValue().desconto : 0;\r\n\r\n valorTot = parseFloat(valorItens) + parseFloat(valorAcrescimo) - parseFloat(valorDesc);\r\n form.setFieldsValue({ valorItemDesconto: valorTot.toFixed(2) });\r\n };\r\n\r\n //#endregion\r\n\r\n //#region processos itens \r\n\r\n function cancelar() {\r\n setExibirDetalhes(false);\r\n setDadosDetalhes({});\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n if (btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n }\r\n };\r\n\r\n async function popularFormProduto(produto, dadosImposto, callback) {\r\n let valorVenda = (!!produto.lpi_valorvenda ? produto.lpi_valorvenda : 0);\r\n setExibirDetalhes(true);\r\n form.setFieldsValue({\r\n quantidade: 1,\r\n valorUnitario: valorVenda,\r\n valorTotalItem: valorVenda,\r\n valorItemDesconto: valorVenda\r\n });\r\n setDadosDetalhes(produto);\r\n return produto;\r\n };\r\n\r\n async function carregarParametrosLocal(item, listaItens, lista) {\r\n const codigo = item.pro_id\r\n const codigoGrade = item.prg_id\r\n const quantidade = item.quantidade\r\n\r\n let resParams = await api.get(`ParametroLocal/BuscarParametros`);\r\n let paramsEstoque = resParams.data.par_avisoestoqueinsuficiente;\r\n\r\n let dados = lista.filter(item => item.key === form.getFieldValue().pro_id || item.pro_id === form.getFieldValue().pro_id)[0];\r\n var dadosIncluido = listaItens\r\n .filter((prod) => (prod.pro_id === dados.pro_id && (!!!dados.prg_id || dados.prg_id === prod.prg_id)))\r\n .reduce((total, prod) => total + prod.nfi_qtde, 0);\r\n\r\n if (paramsEstoque === null) {\r\n return;\r\n }\r\n\r\n let resEstoque = await api.get(`Estoque/BuscarEstoqueProduto?codigoProduto=${codigo}` + (codigoGrade ? `&codigoGrade=${codigoGrade}` : ''))\r\n let estoque = resEstoque.data.valorTotal;\r\n\r\n let valorEstoque = calcularValorEstoque(estoque, dadosIncluido, quantidade);\r\n\r\n return new Promise((resolve, reject) => {\r\n if (valorEstoque <= 0) {\r\n estoqueInsuficiente(paramsEstoque, valorEstoque, resolve, reject);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n function calcularValorEstoque(estoque, dadosIncluido, quantidade) {\r\n if (dadosIncluido !== 0) {\r\n var novosDadosIncluido = dadosIncluido + quantidade\r\n }\r\n if (novosDadosIncluido > estoque) {\r\n return estoque - novosDadosIncluido;\r\n } else if (quantidade > estoque) {\r\n return estoque - quantidade;\r\n } else {\r\n return estoque\r\n }\r\n }\r\n\r\n function estoqueInsuficiente(paramsEstoque, valorEstoque, resolve, reject) {\r\n if (paramsEstoque === 0) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Este produto está sem estoque disponível (Estoque: ${valorEstoque}). Deseja continuar?`,\r\n okText: 'Continuar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n resolve();\r\n },\r\n onCancel() {\r\n reject();\r\n }\r\n });\r\n } else if (paramsEstoque === 1) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Este produto está sem estoque disponível (Estoque: ${valorEstoque}). Deseja continuar? Será solicitado uma senha Gerencial`,\r\n okText: 'Continuar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n setAbreModalLiberacao(true);\r\n setLiberacaoSenha({ resolve, reject });\r\n },\r\n onCancel() {\r\n reject();\r\n }\r\n });\r\n } else if (paramsEstoque === 2) {\r\n Modal.warning({\r\n title: 'Atenção Sistema de Controle de Estoque!',\r\n icon: ,\r\n content: `Produto com estoque ${valorEstoque}, sistema está configurado para bloquear vendas de produtos sem estoque!`,\r\n centered: true,\r\n onOk() {\r\n reject();\r\n }\r\n });\r\n }\r\n }\r\n\r\n const onCloseModalLiberacao = (aprovado) => {\r\n setAbreModalLiberacao(false);\r\n if (aprovado && liberacaoSenha) {\r\n liberacaoSenha.resolve();\r\n } else if (liberacaoSenha) {\r\n liberacaoSenha.reject();\r\n }\r\n setLiberacaoSenha(null);\r\n }\r\n\r\n async function adicionarItem(item = {}) {\r\n let possuiIe = !!form.getFieldValue().pej_inscricaoestadual ? true : false;\r\n let fisicaJuridica = form.getFieldValue().ntf_cpfcnpj.length === 14 ? 2 : form.getFieldValue().ntf_cpfcnpj.length == 11 ? 1 : 3;\r\n let p = dadosProdutoImpostos;\r\n if (p.ncm_ativo == false) {\r\n notification.warning({ message: 'Aviso!', description: 'NCM do produto está invativo na base de dados do SEFAZ, altere o NCM no cadastro do produto para seguir com operação!' });\r\n return;\r\n }\r\n if (!!!p.iod_ufdestino) {\r\n notification.warning({ message: 'Aviso!', description: 'Não encontrado Dados de Origem e Destino no cadastro de tributação para o UF destino, Verifique no cadastro de tributação do produto!' });\r\n return\r\n }\r\n let impostos = await CalcularImpostoItem(p.orm_id, p.cst_id, p.cso_id, p.iod_uforigem, p.iod_ufdestino, form.getFieldValue().quantidade, form.getFieldValue().valorUnitario,\r\n form.getFieldValue().nfi_valorfrete, form.getFieldValue().acrescimo, form.getFieldValue().desconto, p.iod_percicms, p.iod_percdiferimentoicms, p.iod_percicmsreducaobc,\r\n p.mva_percaliquotaicms, p.mva_percmva, p.mva_percaliquotaicmsreducao, p.mva_ajustado, p.ncm_percentual, fisicaJuridica, form.getFieldValue().ntf_consumidorfinal, possuiIe,\r\n form.getFieldValue().ntf_indicadorpresenca);\r\n\r\n let listaItens = [...dadosTabela.dadosItens];\r\n let lista = [...listaSelectProd]\r\n let dadosFormulario = form.getFieldValue();\r\n if (!buscarProdutosCodBarra) {\r\n if (btnEditando.editando) {\r\n item = listaItens.filter((prod) => (prod.nfi_numeroitem === dadosFormulario.nfi_numeroitem))[0];\r\n } else {\r\n item = { ...item, ...dadosFormulario, ...dadosDetalhes };\r\n }\r\n }\r\n if (\r\n dadosOperacao.tipooperacao.tip_entradasaida === 1 &&\r\n !btnEditando.editando) {\r\n try {\r\n await carregarParametrosLocal(item, listaItens, lista);\r\n } catch (error) {\r\n return;\r\n }\r\n }\r\n let dados = {};\r\n if (!!validarItem(dadosFormulario)) {\r\n let dadosEditando = listaItens.filter((prod) => (prod.pro_id === item.pro_id && (!!!item.prg_id || item.prg_id === prod.prg_id)))[0];\r\n if (!!dadosEditando) {\r\n dadosEditando.impostos = impostos;\r\n dados = popularItemNota(true, item, dadosEditando);\r\n if (!!btnEditando && btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n alterarItem(dados, listaItens, dadosEditando)\r\n } else {\r\n if (buscarProdutosCodBarra) {\r\n dados.nfi_numeroitem = listaItens.length + 1;\r\n incluirItem(dados, listaItens);\r\n } else {\r\n Modal.confirm({\r\n title: 'Atualizar?',\r\n icon: ,\r\n content: 'Item já cadastrado na nota, deseja atualiazar suas informações?',\r\n okText: 'Atualizar',\r\n cancelText: 'Incluir',\r\n centered: true,\r\n onOk() {\r\n alterarItem(dados, listaItens, dadosEditando)\r\n },\r\n onCancel() {\r\n dados.nfi_numeroitem = listaItens.length + 1;\r\n if (!!controleLote) {\r\n verificarItemLote(dados, listaItens)\r\n } else {\r\n incluirItem(dados, listaItens)\r\n }\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n item.impostos = impostos;\r\n dados = popularItemNota(false, item);\r\n dados.nfi_numeroitem = listaItens.length + 1;\r\n if (!!controleLote) {\r\n verificarItemLote(dados, listaItens)\r\n } else {\r\n incluirItem(dados, listaItens)\r\n }\r\n }\r\n setExibirDetalhes(false);\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n }\r\n };\r\n\r\n function validarItem(dados) {\r\n if (dados.quantidade === 0 || !!!dados.quantidade) {\r\n notification.warning({ message: 'Aviso!', description: 'Quantidade do Item Inválida!' });\r\n return false;\r\n }\r\n if (parseFloat(dados.valorItemDesconto) === 0 || parseFloat(dados.valorUnitario) === 0) {\r\n notification.warning({ message: 'Aviso!', description: 'Valor do Item Inválido!' });\r\n return false\r\n }\r\n if (!!!dados.nfi_cfop) {\r\n notification.warning({ message: 'Aviso', description: 'Campo CFOP é obrigatório!' });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n async function verificarItemLote(dados, listaItens) {\r\n let listaLote = (await api.get(`ProdutoLote/ListarLotesSaldo?IdProduto=${dados.pro_id}&ComSaldo=true`));\r\n if (listaLote.data.length > 0) {\r\n let seq = 0;\r\n listaLote.data.forEach((lote) => {\r\n lote.key = seq;\r\n seq++;\r\n });\r\n setDadosLote(listaLote.data);\r\n setDadosItem(dados);\r\n setAbrirModalLote(true);\r\n } else {\r\n //incluirItem(dados, listaItens)\r\n notification.warning({ message: 'Aviso', description: 'Nenhum lote encontrado para o produto selecionado!' });\r\n return false;\r\n }\r\n }\r\n\r\n function salvarLotes(itemCLote, listaTemp) {\r\n setAbrirModalLote(false);\r\n if (itemCLote !== undefined && listaTemp !== undefined) {\r\n let dados = itemCLote;\r\n let listaItens = [...dadosTabela.dadosItens];\r\n if (listaTemp.length > 0) {\r\n dados.nfitemlotes = listaTemp;\r\n incluirItem(dados, listaItens)\r\n }\r\n }\r\n }\r\n\r\n function incluirItem(dados, listaItens) {\r\n listaItens.push(dados);\r\n dadosTabela.setDadosItens(listaItens);\r\n notification.success({ message: 'Aviso', description: 'Item incluído com sucesso!' });\r\n }\r\n\r\n function alterarItem(dados, listaItens, dadosEditando) {\r\n let indice = listaItens.findIndex((item) => (item === dadosEditando));\r\n listaItens.splice(indice, 1, { ...dados });\r\n dadosTabela.setDadosItens(listaItens);\r\n notification.success({ message: 'Aviso', description: 'Item editado com sucesso!' });\r\n }\r\n\r\n function popularItemNota(editando, item, dadosEditando) {\r\n let itemNota = {};\r\n let formulario = form.getFieldValue();\r\n let valorIpi = 0;\r\n let valorSt = 0;\r\n\r\n if (editando) {\r\n if (isObjetoDiffVazio(dadosEditando.impostos)) {\r\n valorSt = dadosEditando.impostos.retornoICMSST.ret_valorIcmsSt;\r\n valorIpi = dadosEditando.impostos.retornoIPI.ret_valorIpi;\r\n }\r\n itemNota = {\r\n ...dadosEditando,\r\n impostos: dadosEditando.impostos,\r\n iod_uforigem: dadosEditando.iod_uforigem,\r\n iod_ufdestino: dadosEditando.iod_ufdestino,\r\n orm_id: dadosEditando.orm_id,\r\n ltp_id: dadosEditando.ltp_id,\r\n nfi_qtde: formulario.quantidade,\r\n nfi_valorunitario: parseFloat(formulario.valorUnitario),\r\n percdesc: parseFloat(formulario.percdesc),\r\n nfi_valorfrete: dadosEditando.nfi_valorfrete,\r\n nfi_valoroutros: parseFloat(formulario.acrescimo),\r\n nfi_valordesconto: parseFloat(formulario.desconto),\r\n percacresc: parseFloat(formulario.percacresc),\r\n nfi_valoricmsst: parseFloat(valorSt),\r\n nfi_valoripi: parseFloat(valorIpi),\r\n nfi_informacaoadicional: formulario.informacaoAdicional,\r\n nfi_cfop: formulario.nfi_cfop,\r\n total: parseFloat(parseFloat(formulario.valorItemDesconto) + parseFloat(valorSt)),\r\n };\r\n } else {\r\n let cfop = dadosCfop.filter((cfop) => (cfop.cfo_cfop === formulario.nfi_cfop))[0];\r\n if (isObjetoDiffVazio(item.impostos)) {\r\n valorSt = item.impostos.retornoICMSST.ret_valorIcmsSt;\r\n valorIpi = item.impostos.retornoIPI.ret_valorIpi;\r\n }\r\n itemNota = {\r\n impostos: item.impostos,\r\n iod_uforigem: item.iod_uforigem,\r\n iod_ufdestino: item.iod_ufdestino,\r\n orm_id: item.orm_id,\r\n ltp_id: item.ltp_id,\r\n pro_id: item.pro_id,\r\n prg_id: item.prg_id,\r\n nfi_cfop: cfop.cfo_cfop,\r\n nfi_qtde: formulario.quantidade,\r\n nfi_numeroitem: !!dadosTabela.dadosItens && dadosTabela.dadosItens.length > 0 ? dadosTabela.dadosItens.length + 1 : 1,\r\n nfi_valorunitario: parseFloat(formulario.valorUnitario ?? 0),\r\n total: parseFloat(parseFloat(formulario.valorItemDesconto) + parseFloat(valorSt)),\r\n percdesc: parseFloat(formulario.percdesc ?? 0),\r\n nfi_valordesconto: parseFloat(formulario.desconto ?? 0),\r\n percacresc: parseFloat(formulario.percacresc ?? 0),\r\n nfi_valoroutros: parseFloat(formulario.acrescimo ?? 0),\r\n nfi_valoricmsst: parseFloat(valorSt),\r\n nfi_valoripi: parseFloat(valorIpi),\r\n nfi_valorfrete: 0,\r\n nfi_informacaoadicional: formulario.informacaoAdicional,\r\n cfo_cfop: cfop.cfo_cfop,\r\n cfo_descricao: cfop.cfo_descricao,\r\n cfo_id: cfop.cfo_id,\r\n nfi_ean: HasValue(item.prg_ean) ? item.prg_ean : item.pro_ean,\r\n nfi_unidademedida: item.ump_id,\r\n pro_codigo: item.pro_codigo,\r\n pro_descricao: item.pro_descricao,\r\n pro_ean: item.pro_ean,\r\n ump_id: item.ump_id,\r\n nfi_numeropedidocompra: null,\r\n grade: item.descricaograde,\r\n nfi_ncm: item.ncm_codigo ?? dadosProdutoImpostos.ncm_codigo,\r\n cbf_id: formulario.cbf_id,\r\n icm_id: item.icm_id ?? dadosProdutoImpostos.icm_id,\r\n ncm_id: item.ncm_id ?? dadosProdutoImpostos.ncm_id,\r\n pis_id: item.pis_id ?? dadosProdutoImpostos.pis_id,\r\n cso_id: item.cso_id ?? dadosProdutoImpostos.cso_id,\r\n cst_id: item.cst_id ?? dadosProdutoImpostos.cst_id,\r\n };\r\n }\r\n return itemNota;\r\n };\r\n\r\n async function incluirItemPedidoCondicional() {\r\n let listaItens = [];\r\n let indice = 0;\r\n carregarPagina(true);\r\n for (let [idx, itens] of dadosTabela.dadosItens.entries()) {\r\n let prodNota = await buscarDadosProdImpostos(itens.pro_id)\r\n let obj = { ...prodNota, ...itens };\r\n obj.nfi_cfop = obj.cfo_cfop;\r\n obj.grade = obj.descricaograde;\r\n obj.nfi_ncm = obj.ncm_codigo.toString();\r\n listaItens.push(obj)\r\n if (indice === dadosTabela.dadosItens.length - 1) {\r\n dadosTabela.setDadosItens(listaItens);\r\n carregarPagina(false);\r\n }\r\n indice = indice + 1;;\r\n };\r\n };\r\n\r\n async function buscaPrecoListaPrecoSelecionada() {\r\n let dadosPreco = await api.get(`ListaPrecoItem/BuscaPrecoItem?CodigoListaPreco=${form.getFieldValue().ltp_id}&CodigoProduto=${dadosDetalhes.pro_id}&CodigoGrade=${!!dadosDetalhes.prg_id ? dadosDetalhes.prg_id : \"\"}`);\r\n if (dadosPreco.data) {\r\n form.setFieldsValue({\r\n valorUnitario: dadosPreco.data.lpi_valorvenda,\r\n valorTotalItem: form.getFieldValue().quantidade * dadosPreco.data.lpi_valorvenda,\r\n });\r\n onChangeValorUnitario();\r\n } else (console.log(\"Item não encontrado na lista de preço selecionada\"))\r\n }\r\n\r\n function validarDescontoMaximoVendedor(perDesconto) {\r\n let retorno = true;\r\n if (!!dadosVendedor && !!dadosVendedor.ven_maximodesconto) {\r\n if (perDesconto > (dadosVendedor.ven_maximodesconto * 100)) {\r\n notification.warning({ description: \"O desconto máximo para este vendedor não pode exceder \" + dadosVendedor.ven_maximodesconto * 100 + \"% !\", message: \"Aviso\" });\r\n form.setFieldsValue({\r\n desconto: null,\r\n percdesc: null\r\n });\r\n retorno = false;\r\n }\r\n }\r\n return retorno;\r\n };\r\n\r\n function limparCampos() {\r\n form.setFieldsValue({ pro_id: null, pro_codigo: null, percdesc: 0, desconto: 0, percacresc: 0, acrescimo: 0, nfi_cfop: null, icm_id: null, informacaoAdicional: '' });\r\n };\r\n\r\n function editandoItem(dadosEditando) {\r\n let dadosTemp = {};\r\n let dados = dadosEditando;\r\n form.setFieldsValue({\r\n pro_id: dados.pro_id,\r\n prg_id: dados.prg_id,\r\n quantidade: dados.nfi_qtde,\r\n valorUnitario: dados.nfi_valorunitario,\r\n nfi_numeroitem: dados.nfi_numeroitem,\r\n valorTotalItem: dados.nfi_qtde * dados.nfi_valorunitario,\r\n valorItemDesconto: (dados.nfi_qtde * dados.nfi_valorunitario) - dados.nfi_valordesconto + dados.nfi_valoroutros,\r\n desconto: dados.nfi_valordesconto,\r\n nfi_valorfrete: dados.nfi_valorfrete,\r\n percacresc: dados.percacresc,\r\n percdesc: dados.percdesc,\r\n nfi_cfop: dados.nfi_cfop,\r\n acrescimo: dados.nfi_valoroutros,\r\n informacaoAdicional: dados.nfi_informacaoadicional,\r\n icm_id: (!!dados.icm_id ? dados.icm_id : null), ncm_id: (!!dados.ncm_id ? dados.ncm_id : null), pis_id: (!!dados.pis_id ? dados.pis_id : null)\r\n });\r\n dadosTemp = {\r\n prg_id: dadosEditando.prg_id,\r\n pro_descricao: dadosEditando.pro_descricao,\r\n pro_codigo: dadosEditando.pro_codigo,\r\n pro_ean: dadosEditando.pro_ean,\r\n ncm_codigo: dadosEditando.ncm_codigo,\r\n ncm_id: dadosEditando.ncm_id,\r\n ncm_porcentagem: dadosEditando.ncm_porcentagem,\r\n ump_id: dadosEditando.ump_id,\r\n informacaoAdicional: dadosEditando.nfi_informacaoadicional,\r\n };\r\n setDadosDetalhes(dadosTemp);\r\n }\r\n //#endregion\r\n\r\n return (\r\n
\r\n \r\n {!!!buscarProdutosCodBarra &&\r\n
\r\n \r\n { onChangeProID(dados) }}\r\n setListaDados={setListaSelectProd} />\r\n \r\n \r\n }\r\n {!!buscarProdutosCodBarra &&\r\n \r\n \r\n {\r\n onPressEnterProCodigo(value)\r\n }} placeholder=\"Informe o Produto/Mercadoria\" />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {exibirDetalhes &&\r\n
\r\n \r\n
\r\n Produto: {dadosDetalhes.pro_descricao} {!!dadosDetalhes.descricaograde ? dadosDetalhes.descricaograde : ''}\r\n \r\n \r\n Código Interno: {dadosDetalhes.pro_codigo}\r\n \r\n \r\n Código de Barras: {!!dadosDetalhes.prg_ean ? dadosDetalhes.prg_ean : dadosDetalhes.pro_ean}\r\n \r\n \r\n NCM: {dadosDetalhes.ncm_codigo}\r\n \r\n \r\n }>\r\n \r\n \r\n \r\n {!ocultaListaPreco && \r\n \r\n buscaPrecoListaPrecoSelecionada(valor)} conteudo={\r\n lp => ({lp.ltp_id} - {lp.ltp_nome})\r\n } />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({icm.icm_id} - {icm.icm_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n carregarNcm(valor)} conteudo={\r\n ncm => ({ncm.ncm_codigo.codigoNcm} - {ncm.ncm_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n { onChangeQuantidade() }} />\r\n \r\n \r\n \r\n onChangeValorUnitario()} />\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n (onChangePercDesc())}\r\n precision={2}\r\n min={0}\r\n max={100}\r\n formatter={value => `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n onChangeDesconto()} />\r\n \r\n \r\n \r\n { onChangePercAcresc() }}\r\n precision={2}\r\n min={0}\r\n max={100}\r\n formatter={value => `${value}%`}\r\n parser={value => value.replace('%', '')}\r\n />\r\n \r\n \r\n \r\n { onChangeAcrescimo() }} />\r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n ({pis.pis_id} - {pis.pis_descricao})\r\n } />\r\n \r\n */}\r\n {dadosContribuinte.emp_regimetributario === 3 && \r\n \r\n ({v.cbf_codigo} - {v.cbf_descricao} )\r\n } />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n { setAbrirModalManutencaoNota(false); }} dadosContribuinte={dadosContribuinte} dadosOperacao={dadosOperacao} dadosEndereco={dadosEndereco} dadosProduto={dadosProdutoImpostos} aoSalvar={(value) => buscarDadosProdImpostos(value)} />\r\n \r\n salvarLotes(itemCLote, listaTemp)} dadosLote={dadosLote} setDadosLote={setDadosLote} formulario={form} dadosItem={dadosItem} />\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Col, Form, Row, Button, Input, InputNumber, Descriptions, Card, notification, Tooltip, Select, Modal } from \"antd\";\r\nimport { SearchOutlined, BarcodeOutlined, PlusOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { InputPreco, InputPercentual, SelectProduto, SelectPaginacao } from \"../../components\";\r\nimport { ModalListaProduto, ModalManutencaoNota, ModalSenhaLiberacao } from \"../modals\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\n\r\nexport default function FiltroProdutoPdi({ form, dadosTabela, dadosEndereco = {}, custo = {}, dadosOperacao = {}, btnEditando, itemEditando }) {\r\n\r\n const [dadosDetalhes, setDadosDetalhes] = useState({});\r\n const [consultaProduto, setConsultaProduto] = useState(null);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosContribuinte, setDadosContribuinte] = useState({});\r\n const [aux, setAux] = useState(false);\r\n const [dadosProduto, setDadosProduto] = useState({});\r\n const [abrirModalListaProd, setAbrirModalListaProd] = useState(false);\r\n const [listaDadosProdModal, setListaDadosProdModal] = useState([]);\r\n const [abrirModalManutencaoNota, setAbrirModalManutencaoNota] = useState(false);\r\n const [liberadoParaIncluir, setLiberadoParaIncluir] = useState(false);\r\n const [produtoBuscaEan, setProdutoBuscaEan] = useState({});\r\n const [listaSelectProd, setListaSelectProd] = useState([]);\r\n const [desabilitarProd_id, setDesabilitarProd_id] = useState(false);\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [buscarProdutosCodBarra, setBuscarProdutosCodBarra] = useState(null);\r\n const togglePesquisa = () => {\r\n setConsultaProduto(!consultaProduto);\r\n };\r\n const [abreModalLiberacao, setAbreModalLiberacao] = useState(false);\r\n const [liberacaoSenha, setLiberacaoSenha] = useState(null);\r\n const [dadosProdutoImpostos, setDadosProdutoImpostos] = useState({});\r\n\r\n useEffect(() => {\r\n if (btnEditando.editando && isObjetoDiffVazio(itemEditando)) {\r\n editandoItem(itemEditando);\r\n setDadosDetalhes(itemEditando);\r\n setExibirDetalhes(true);\r\n }\r\n }, [btnEditando])\r\n\r\n useEffect(() => {\r\n if (!!dadosProduto && isObjetoDiffVazio(dadosProduto)) {\r\n abrirModalManutencaoProd();\r\n }\r\n }, [dadosProduto]);\r\n\r\n useEffect(() => {\r\n popularDadosContribuintes();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!dadosDetalhes && !!liberadoParaIncluir && !!form.getFieldValue().pro_codigo) {\r\n adicionarItemCodBarras();\r\n setLiberadoParaIncluir(false);\r\n form.setFieldsValue({ pro_codigo: null });\r\n }\r\n }, [dadosDetalhes, liberadoParaIncluir]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n popularDadosContribuintes();\r\n setAux(true);//criado para carregar os dadosContribuintes antes de entrar no popularProduto\r\n }\r\n }, [manutencao.dados]);\r\n\r\n useEffect(() => {\r\n if (!!listaSelectProd && manutencao.dados?.editando) {\r\n let dados = { ...manutencao.dados };\r\n popularProduto(dados.pro_id, true, dados.prg_id);\r\n dados.pro_id = form.getFieldValue().pro_id;\r\n form.setFieldsValue(dados);\r\n }\r\n }, [listaSelectProd]);\r\n\r\n useEffect(() => {\r\n if (!!dadosContribuinte && dadosContribuinte.length > 0 && aux && !!manutencao.dados && !!manutencao.dados.pro_id) {\r\n popularProduto(manutencao.dados.pro_id, true, manutencao.dados.prg_id);\r\n }\r\n }, [dadosContribuinte]);\r\n\r\n function abrirModalManutencaoProd() {\r\n if (isObjetoDiffVazio(custo)) {//validacao da nota de transferencia\r\n if (!!!dadosProduto.icm_id || !!!dadosProduto.ncm_id || !!!dadosProduto.ump_id || !!!dadosProduto.pro_descricao) {\r\n setAbrirModalManutencaoNota(true);\r\n } else if (!!!dadosProduto.iod_ufdestino) {\r\n setAbrirModalManutencaoNota(true);\r\n }\r\n } else {\r\n if (dadosContribuinte.emp_regimetributario === 3 && (!!!dadosProduto.icm_id || !!!dadosProduto.ncm_id || !!!dadosProduto.ump_id ||\r\n !!!dadosProduto.pro_descricao || !!!dadosProduto.pis_id || !!!dadosProduto.iod_ufdestino)) {\r\n setAbrirModalManutencaoNota(true);\r\n } else if (dadosContribuinte.emp_regimetributario !== 3 && (!!!dadosProduto.icm_id || !!!dadosProduto.ncm_id || !!!dadosProduto.ump_id)) {\r\n setAbrirModalManutencaoNota(true);\r\n } else if (!!dadosProduto.cst_id && !!!dadosProduto.mva_ufdestino && (dadosProduto.cst_id === '10' || dadosProduto.cst_id === '30' || dadosProduto.cst_id === '70')) {\r\n setAbrirModalManutencaoNota(true);\r\n }\r\n }\r\n };\r\n\r\n function popularDadosContribuintes(callback) {\r\n api.get(`dadosContribuinte/Buscar`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDadosContribuinte(res.data);\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function alterarValorTotal() {\r\n let total = 0;\r\n total = form.getFieldValue().pdi_quantidade * form.getFieldValue().pdi_valorunitario;\r\n form.setFieldsValue({ pdi_valortotal: total.toFixed(2) });\r\n calculaDesconto('ATT');\r\n };\r\n\r\n function calculaTotalItemDescAcr() {\r\n let valorTot = 0;\r\n let valorItens = !!form.getFieldValue().pdi_valortotal ? form.getFieldValue().pdi_valortotal : 0;\r\n let valorAcrescimo = !!form.getFieldValue().acrescimo ? form.getFieldValue().acrescimo : 0;\r\n let valorDesc = !!form.getFieldValue().desconto ? form.getFieldValue().desconto : 0;\r\n valorTot = parseFloat(valorItens) + parseFloat(valorAcrescimo) - parseFloat(valorDesc);\r\n form.setFieldsValue({ valorItemDesconto: valorTot.toFixed(2) });\r\n };\r\n\r\n function calculaDesconto(campo) {\r\n let valor = (!!form.getFieldValue().desconto ? form.getFieldValue().desconto : 0);\r\n let perc = (!!form.getFieldValue().percdesc ? form.getFieldValue().percdesc : 0);\r\n let tot = parseFloat(form.getFieldValue().pdi_valortotal);\r\n let result = 0;\r\n if (!!campo) {\r\n if (campo === 'PERC') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ desconto: result.toFixed(2) });\r\n } else if (campo === 'ATT') {\r\n result = (tot * perc) / 100;\r\n form.setFieldsValue({ desconto: result.toFixed(2) });\r\n valor = (!!form.getFieldValue().desconto ? parseFloat(form.getFieldValue().desconto) : 0)\r\n result = (!!tot > 0 ? (valor * 100) / tot : 0);\r\n form.setFieldsValue({ percdesc: result.toFixed(2) });\r\n } else {\r\n if (valor > tot) {\r\n form.setFieldsValue({ desconto: tot });\r\n form.setFieldsValue({ percdesc: 100 });\r\n } else {\r\n result = (valor * 100) / tot;\r\n form.setFieldsValue({ percdesc: result.toFixed(2) });\r\n }\r\n }\r\n calculaTotalItemDescAcr();\r\n }\r\n };\r\n\r\n async function buscarProduto(produto) {\r\n let listaItens = [...listaSelectProd];\r\n let prod = listaItens.filter((item) => item.key === produto)[0];\r\n let buscaOK = await popularProduto(prod.pro_id, false, prod.prg_id ? prod.prg_id : null);\r\n if (buscaOK) {\r\n await buscarDadosProdutoPedido(prod.pro_id);\r\n } else {\r\n cancelar();\r\n }\r\n };\r\n\r\n async function buscarDadosProdutoPedido(produto) {\r\n let prod = !!produto ? produto : form.getFieldValue().pro_id;\r\n let destinoOperacao = (!!dadosEndereco.est_sigla && !!dadosContribuinte.est_sigla && (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) ? '1' : '2');\r\n let res = await api.get(`Produto/BuscarDadosProduto?IdProduto=${prod}&ufDestino=${!!dadosEndereco ? dadosEndereco.est_sigla : dadosContribuinte.est_sigla}`\r\n + `&operacaoCodigo=${form.getFieldValue().ope_id}&ufOrigem=${dadosContribuinte.est_sigla}&tipoContribuinte=${dadosContribuinte.loc_tipocontribuinte}`\r\n + `&empresaEnquadramento=${dadosContribuinte.emp_regimetributario}&destinoOperacao=${destinoOperacao}&indicadorPresenca=0`\r\n );\r\n if (res.status == 200) {\r\n let dados = res.data[0];\r\n setDadosProdutoImpostos(dados);\r\n setDadosDetalhes(dados);\r\n dados.pro_id = prod;\r\n let filtros = !!produto ? `idProduto=${produto}` : '';\r\n filtros += !!dados.prg_id ? `&idProdutoGrade=${dados.prg_id}` : '';\r\n filtros += !!form.getFieldValue().cli_id ? `&idCliente=${form.getFieldValue().cli_id}` : '';\r\n let listaPrecoTemp = (await api.get(`ListaPreco/ListaPrecoPadraoProduto?${filtros}`)).data;\r\n dados.ltp_id = listaPrecoTemp[0].ltp_id;\r\n let listaPrecoCliente = (await api.get(`ListaPrecoCliente/ListarListaPrecoCliente?${filtros}`)).data;\r\n if (!!listaPrecoCliente && listaPrecoCliente.length > 0) {\r\n let grade = !!dados.prg_id ? `&CodigoGrade=${dados.prg_id}` : \"\";\r\n let dadosPreco = await api.get(`ListaPrecoItem/BuscaPrecoItem?CodigoListaPreco=${listaPrecoCliente[0].ltp_id}&CodigoProduto=${produto}${grade}`);\r\n if (dadosPreco.data) {\r\n form.setFieldsValue({\r\n ltp_id: !!dadosPreco.ltp_id ? dados.ltp_id : listaPrecoCliente[0].ltp_id,\r\n lpi_valorvenda: dadosPreco.data.lpi_valorvenda,\r\n pdi_valorunitario: dadosPreco.data.lpi_valorvenda,\r\n pdi_valortotal: form.getFieldValue().pdi_quantidade * dadosPreco.data.lpi_valorvenda,\r\n });\r\n }\r\n } else {\r\n form.setFieldsValue({ ltp_id: (!!listaPrecoTemp[0].ltp_id ? listaPrecoTemp[0].ltp_id : '') });\r\n }\r\n setDadosProduto(dados);\r\n buscaPrecoListaPrecoSelecionada(dados);\r\n }\r\n };\r\n\r\n async function popularProduto(prod_id, editar = false, prg_id = null) {\r\n setExibirDetalhes(true);\r\n let dadosTemp = {};\r\n let listaprecoItem = null;\r\n let total = 0;\r\n let dados = manutencao.dados;\r\n let custoProd = isObjetoDiffVazio(custo) && !!custo.key ? \"&custoTransferencia=\" + custo.key : \"\";\r\n let produtoGrade = !!prg_id ? `&IdGrade=${prg_id}` : (\"\");\r\n let produto = !!prod_id ? prod_id : (\"\");\r\n let grade = !!prg_id ? `&CodigoGrade=${prg_id}` : (\"\");\r\n let filtros = `idProduto=${produto}`;\r\n if (form.getFieldValue().cli_id !== null && form.getFieldValue().cli_id !== undefined && form.getFieldValue().cli_id !== '') {\r\n filtros += `&idCliente=${form.getFieldValue().cli_id}`;\r\n } if (dados !== null && (dados.cli_id !== null && dados.cli_id !== undefined && dados.cli_id !== '')) {\r\n filtros += dados.cli_id;\r\n }\r\n let lpc = (await api.get(`ListaPrecoCliente/ListarListaPrecoCliente?${filtros}`)).data;\r\n if (lpc != null && lpc != 0) {\r\n listaprecoItem = (await api.get(`ListaPrecoItem/BuscaPrecoItem?CodigoListaPreco=${lpc[0].ltp_id}&CodigoProduto=${produto}${grade}`)).data;\r\n }\r\n let res = await api.get(`Produto/BuscaProdutoPedido?IdProduto=${(!!prod_id ? prod_id : (!!dados.pro_id ? dados.pro_id : \"\"))}\r\n &ufDestino=${(!!dadosEndereco ? dadosEndereco.est_sigla : dadosContribuinte.est_sigla)}&ufOrigem=${dadosContribuinte.est_sigla}${custoProd}${produtoGrade}`);\r\n if (lpc != null && listaprecoItem != null) {\r\n form.setFieldsValue({ ltp_id: lpc[0].ltp_id, ltp_nome: lpc[0].ltp_nome });\r\n res.data[0].dpr_precovenda = listaprecoItem.lpi_valorvenda;\r\n res.data[0].lpi_valorvenda = listaprecoItem.lpi_valorvenda;\r\n }\r\n if (res.status === 200) {\r\n let valorUnitario = 0;\r\n if (isObjetoDiffVazio(custo)) {\r\n valorUnitario = res.data[0].dpr_precovenda;\r\n } else {\r\n valorUnitario = res.data[0].lpi_valorvenda > 0 ? res.data[0].lpi_valorvenda : res.data[0].dpr_precovenda;\r\n }\r\n if (!editar) {\r\n form.setFieldsValue({ pdi_quantidade: 1 });\r\n form.setFieldsValue({ pdi_valorunitario: valorUnitario });\r\n form.setFieldsValue({ pdi_valortotal: valorUnitario });\r\n form.setFieldsValue({ valorItemDesconto: valorUnitario });\r\n form.setFieldsValue({ pro_descricao: res.pro_descricao });\r\n } else {\r\n valorUnitario = dados.pdi_valorunitario;\r\n total = valorUnitario * dados.pdi_quantidade;\r\n form.setFieldsValue({ pdi_quantidade: dados.pdi_quantidade });\r\n form.setFieldsValue({ pdi_valorunitario: valorUnitario });\r\n form.setFieldsValue({ pdi_valortotal: total });\r\n form.setFieldsValue({ valorItemDesconto: total - dados.pdi_valordesconto });\r\n form.setFieldsValue({ pdi_valorfrete: dados.pdi_valorfrete });\r\n form.setFieldsValue({ pdi_valoracrescimo: dados.pdi_valoracrescimo });\r\n form.setFieldsValue({ desconto: dados.pdi_valordesconto });\r\n form.setFieldsValue({ percdesc: dados.percdesc });\r\n form.setFieldsValue({ pro_descricao: res.pro_descricao });\r\n }\r\n form.setFieldsValue({ prg_id: prg_id });\r\n dadosTemp.prg_id = prg_id;\r\n dadosTemp.pro_descricao = res.data[0].pro_descricao;\r\n dadosTemp.pro_codigo = res.data[0].pro_codigo;\r\n if (res.data[0].pro_ean) {\r\n dadosTemp.pro_ean = res.data[0].pro_ean;\r\n } else {\r\n dadosTemp.pro_ean = res.data[0].prg_ean;\r\n }\r\n dadosTemp.ncm_codigo = res.data[0].ncm_codigo;\r\n dadosTemp.ump_id = res.data[0].ump_id;\r\n dadosTemp.pro_id = res.data[0].pro_id;\r\n dadosTemp.pdi_valorunitario = valorUnitario;\r\n setDadosDetalhes(dadosTemp);\r\n return true;\r\n }\r\n else {\r\n console.log(res.data);\r\n }\r\n };\r\n\r\n async function carregarParametrosLocal(item, listaItens, lista) {\r\n const codigo = item.pro_id\r\n const codigoGrade = item.prg_id\r\n const quantidade = item.pdi_quantidade\r\n let resParams = await api.get(`ParametroLocal/BuscarParametros`);\r\n let paramsEstoque = resParams.data.par_avisoestoqueinsuficiente;\r\n let dados = lista.filter(item => item.key === form.getFieldValue().pro_id || item.pro_id === form.getFieldValue().pro_id)[0];\r\n var dadosIncluido = listaItens\r\n .filter((prod) => (prod.pro_id === dados.pro_id && (!!!dados.prg_id || dados.prg_id === prod.prg_id)))\r\n .reduce((total, prod) => total + prod.pdi_quantidade, 0);\r\n\r\n if (paramsEstoque === null) {\r\n return;\r\n }\r\n\r\n let resEstoque = await api.get(`Estoque/BuscarEstoqueProduto?codigoProduto=${codigo}` + (codigoGrade ? `&codigoGrade=${codigoGrade}` : ''))\r\n let estoque = resEstoque.data.valorTotal;\r\n\r\n let valorEstoque = calcularValorEstoque(estoque, dadosIncluido, quantidade);\r\n\r\n return new Promise((resolve, reject) => {\r\n if (valorEstoque <= 0) {\r\n estoqueInsuficiente(paramsEstoque, valorEstoque, resolve, reject);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n function calcularValorEstoque(estoque, dadosIncluido, quantidade) {\r\n if (dadosIncluido !== 0) {\r\n var novosDadosIncluido = dadosIncluido + quantidade\r\n }\r\n if (novosDadosIncluido > estoque) {\r\n return estoque - novosDadosIncluido;\r\n } else if (quantidade > estoque) {\r\n return estoque - quantidade;\r\n } else {\r\n return estoque\r\n }\r\n }\r\n\r\n function estoqueInsuficiente(paramsEstoque, valorEstoque, resolve, reject) {\r\n if (paramsEstoque === 0) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Este produto está sem estoque disponível (Estoque: ${valorEstoque}). Deseja continuar?`,\r\n okText: 'Continuar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n resolve();\r\n },\r\n onCancel() {\r\n reject();\r\n }\r\n });\r\n } else if (paramsEstoque === 1) {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: `Este produto está sem estoque disponível (Estoque: ${valorEstoque}). Deseja continuar? Será solicitado uma senha Gerencial!`,\r\n okText: 'Continuar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n setAbreModalLiberacao(true);\r\n setLiberacaoSenha({ resolve, reject });\r\n },\r\n onCancel() {\r\n reject();\r\n }\r\n });\r\n } else if (paramsEstoque === 2) {\r\n Modal.warning({\r\n title: 'Atenção Sistema de Controle de Estoque!',\r\n icon: ,\r\n content: `Produto com estoque ${valorEstoque}, sistema está configurado para bloquear vendas de produtos sem estoque!`,\r\n centered: true,\r\n onOk() {\r\n reject();\r\n }\r\n });\r\n }\r\n }\r\n\r\n const onCloseModalLiberacao = (aprovado) => {\r\n setAbreModalLiberacao(false);\r\n if (aprovado && liberacaoSenha) {\r\n liberacaoSenha.resolve();\r\n } else if (liberacaoSenha) {\r\n liberacaoSenha.reject();\r\n }\r\n setLiberacaoSenha(null);\r\n };\r\n\r\n async function adicionarItem(item = {}) {\r\n let dadosFormulario = form.getFieldValue();\r\n let possuiIe = dadosFormulario.pej_inscricaoestadual ? true : false;\r\n let cnpj = dadosFormulario?.cnpj || '';\r\n let cpf = dadosFormulario?.cpf || '';\r\n let fisicaJuridica = cnpj.length === 14 ? 2 : cpf.length === 11 ? 1 : 3;\r\n let p = dadosProdutoImpostos;\r\n\r\n if (p.ncm_ativo == false) {\r\n notification.warning({ message: 'Aviso!', description: 'NCM do produto está inativo na base de dados do SEFAZ, altere o NCM no cadastro do produto para seguir com a operação!' });\r\n return;\r\n }\r\n if (!!!p.iod_ufdestino) {\r\n notification.warning({ message: 'Aviso!', description: 'Não encontrado Dados de Origem e Destino no cadastro de tributação para o UF destino, verifique no cadastro de tributação do produto' });\r\n return;\r\n }\r\n let impostos = await CalcularImpostoItem(p.orm_id, p.cst_id, p.cso_id, p.iod_uforigem, p.iod_ufdestino, form.getFieldValue().pdi_quantidade, form.getFieldValue().pdi_valorunitario, 0, 0,\r\n 0, p.iod_percicms, p.iod_percdiferimentoicms, p.iod_percicmsreducaobc, p.mva_percaliquotaicms, p.mva_percmva, p.mva_percaliquotaicmsreducao, p.mva_ajustado, p.ncm_percentual, fisicaJuridica,\r\n 0, possuiIe)\r\n let dadosItens = [...dadosTabela.dadosItens];\r\n let lista = [...listaSelectProd];\r\n if (!buscarProdutosCodBarra) {\r\n if (btnEditando.editando) {\r\n item = dadosItens.filter((prod) => (prod.pdi_numeroitem === dadosFormulario.pdi_numeroitem))[0];\r\n } else {\r\n item = { ...item, ...dadosFormulario, ...dadosDetalhes };\r\n }\r\n }\r\n if (!btnEditando.editando) {\r\n try {\r\n await carregarParametrosLocal(item, dadosItens, lista);\r\n } catch (error) {\r\n return;\r\n }\r\n }\r\n if (!!validarItem(dadosFormulario)) {\r\n let dados = lista.filter(item => item.key === form.getFieldValue().pro_id || item.pro_id === form.getFieldValue().pro_id)[0];\r\n if (dadosFormulario.pdi_numeroitem !== undefined && btnEditando.editando) {\r\n var dadosEditando = dadosItens.filter((prod) => (prod.pdi_numeroitem === dadosFormulario.pdi_numeroitem))[0];\r\n } else {\r\n var dadosEditando = dadosItens.filter((prod) => (prod.pro_id === dados.pro_id && (!!!dados.prg_id || dados.prg_id === prod.prg_id)))[0];\r\n }\r\n if (!!dadosEditando) {\r\n dadosEditando.impostos = impostos;\r\n dados = adicionarItemPedido(false, item, dadosEditando);\r\n if (!!btnEditando && btnEditando.editando) {\r\n dados = adicionarItemPedido(true, item, dadosEditando);\r\n btnEditando.setEditando(false);\r\n if (dados.pdi_numeroitem === undefined) {\r\n dados.pdi_numeroitem = dadosItens.length;\r\n }\r\n alterarItem(dados, dadosItens, dadosEditando)\r\n } else {\r\n if (buscarProdutosCodBarra) {\r\n dados.pdi_numeroitem = dadosItens.length + 1;\r\n incluirItem(dados, dadosItens);\r\n } else {\r\n Modal.confirm({\r\n title: 'Atualizar?',\r\n icon: ,\r\n content: 'Item já cadastrado na nota, deseja atualizar suas informações?',\r\n okText: 'Atualizar',\r\n cancelText: 'Incluir',\r\n centered: true,\r\n onOk() {\r\n dados = adicionarItemPedido(true, item, dadosEditando);\r\n alterarItem(dados, dadosItens, dadosEditando);\r\n },\r\n onCancel() {\r\n dados.pdi_numeroitem = dadosItens.length + 1;\r\n incluirItem(dados, dadosItens)\r\n }\r\n })\r\n };\r\n }\r\n } else {\r\n item.impostos = impostos;\r\n dados = adicionarItemPedido(false, item, dados);\r\n dados.pdi_numeroitem = dadosItens.length + 1;\r\n incluirItem(dados, dadosItens)\r\n }\r\n setDesabilitarProd_id(false);\r\n setDadosDetalhes({});\r\n setExibirDetalhes(false);\r\n limparCampos();\r\n btnEditando.setEditando(false);\r\n }\r\n };\r\n\r\n\r\n function validarItem(dados) {\r\n if (parseFloat(form.getFieldValue().pdi_quantidade) === 0) {\r\n notification.warning({ description: 'Quantidade de itens deve ser maior que zero!', message: 'Aviso' });\r\n return false;\r\n }\r\n if (parseFloat(dados.valorItemDesconto) === 0 || parseFloat(dados.valorUnitario) === 0) {\r\n notification.warning({ description: 'Valor do item deve ser maior que zero!', message: 'Aviso' });\r\n return false\r\n }\r\n return true;\r\n };\r\n\r\n function incluirItem(dados, dadosItens) {\r\n dadosItens.push(dados);\r\n dadosItens.sort((a, b) => b.pdi_numeroitem - a.pdi_numeroitem)\r\n dadosTabela.setDadosItens(dadosItens);\r\n notification.success({ message: 'Aviso', description: 'Item incluído com sucesso!' });\r\n }\r\n\r\n function alterarItem(dados, dadosItens, dadosEditando) {\r\n let indice = dadosItens.findIndex((item) => (item === dadosEditando));\r\n dadosItens.splice(indice, 1, { ...dados });\r\n dadosTabela.setDadosItens(dadosItens);\r\n notification.success({ message: 'Aviso', description: 'Item editado com sucesso!' });\r\n };\r\n\r\n function adicionarItemCodBarras() {\r\n let listaItens = [...dadosTabela.dadosItens];\r\n let codigoProduto = form.getFieldValue().pro_codigo;\r\n let dados = listaItens.find((item) => item.pro_ean == codigoProduto);\r\n if (!!dados) {\r\n dados.pdi_quantidade += 1;\r\n let valorTotal = dados.pdi_quantidade * dados.pdi_valorunitario;\r\n let valorDesc = valorTotal * (dados.percdesc / 100);\r\n dados.valorItemDesconto = valorTotal - valorDesc;\r\n } else {\r\n dados = produtoBuscaEan;\r\n adicionarItemPedido(false, dados);\r\n dados.descricaograde = produtoBuscaEan.descricaograde\r\n listaItens.push(dados);\r\n dadosTabela.setDadosItens(listaItens)\r\n }\r\n cancelar();\r\n };\r\n\r\n function cancelar() {\r\n setExibirDetalhes(false);\r\n setDadosDetalhes({});\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n if (btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n }\r\n };\r\n\r\n function limparCampos() {\r\n form.setFieldsValue({ pro_id: null, pro_codigo: null, percdesc: 0, desconto: 0, percacresc: 0, acrescimo: 0, icm_id: null });\r\n };\r\n\r\n function adicionarItemPedido(editando = false, item, dadosEditando) {\r\n let itemPedido = {};\r\n let formulario = form.getFieldValue();\r\n let valorSt = 0;\r\n if (editando) {\r\n if (isObjetoDiffVazio(dadosEditando.impostos)) {\r\n valorSt = dadosEditando.impostos.retornoICMSST.ret_valorIcmsSt;\r\n }\r\n itemPedido = {\r\n ...dadosEditando,\r\n impostos: dadosEditando.impostos,\r\n iod_uforigem: dadosEditando.iod_uforigem,\r\n iod_ufdestino: dadosEditando.iod_ufdestino,\r\n orm_id: dadosEditando.orm_id,\r\n ltp_id: dadosEditando.ltp_id,\r\n pdi_quantidade: parseFloat(!!formulario.pdi_quantidade ? formulario.pdi_quantidade : item.pdi_quantidade),\r\n pdi_valorunitario: parseFloat(formulario.pdi_valorunitario),\r\n percdesc: parseFloat(!!formulario.percdesc ? formulario.percdesc : 0),\r\n pdi_valordesconto: parseFloat(!!formulario.desconto ? formulario.desconto : 0),\r\n pdi_valoracrescimo: parseFloat(!!formulario.acrescimo ? formulario.acrescimo : 0),\r\n valorItemDesconto: parseFloat(parseFloat(formulario.valorItemDesconto) + parseFloat(valorSt)),\r\n pdi_valortotal: parseFloat(formulario.pdi_valortotal),\r\n pdi_valorfrete: parseFloat(formulario.pdi_valorfrete ?? 0),\r\n pro_codigo: item.pro_codigo,\r\n pro_id: item.pro_id,\r\n pro_descricao: item.pro_descricao,\r\n pro_ean: item.pro_ean,\r\n prg_id: item.prg_id,\r\n pdi_basecalculoicms: 0,\r\n pdi_basecalculoicmsst: 0,\r\n pdi_basecalculoipi: 0,\r\n pdi_percentualicms: 0,\r\n pdi_percentualicmsst: 0,\r\n pdi_percentualipi: 0,\r\n descricaograde: dadosEditando.descricaograde\r\n }\r\n } else {\r\n if (isObjetoDiffVazio(item.impostos)) {\r\n valorSt = item.impostos.retornoICMSST.ret_valorIcmsSt;\r\n }\r\n itemPedido = {\r\n impostos: item.impostos,\r\n iod_ufdestino: item.iod_ufdestino,\r\n iod_uforigem: item.iod_uforigem,\r\n orm_id: item.orm_id,\r\n ltp_id: item.ltp_id,\r\n pdi_quantidade: parseFloat(!!formulario.pdi_quantidade ? formulario.pdi_quantidade : item.pdi_quantidade),\r\n pdi_valorunitario: parseFloat(formulario.pdi_valorunitario),\r\n percdesc: parseFloat(!!formulario.percdesc ? formulario.percdesc : 0),\r\n pdi_valordesconto: parseFloat(formulario.desconto),\r\n valorItemDesconto: parseFloat(parseFloat(formulario.valorItemDesconto) + parseFloat(valorSt) ?? 0),\r\n pdi_valorfrete: parseFloat(formulario.pdi_valorfrete ?? 0),\r\n pdi_valoracrescimo: parseFloat(formulario.acrescimo ?? 0),\r\n pdi_valortotal: parseFloat(formulario.pdi_valortotal),\r\n pro_codigo: !!item.pro_codigo ? item.pro_codigo : item.pro_codigo,\r\n pro_id: !!item.pro_id ? item.pro_id : dadosProduto.pro_id,\r\n pro_descricao: item.pro_descricao,\r\n pro_ean: item.pro_ean,\r\n prg_id: item.prg_id,\r\n pdi_basecalculoicms: 0,\r\n pdi_basecalculoicmsst: 0,\r\n pdi_basecalculoipi: 0,\r\n pdi_percentualicms: 0,\r\n pdi_percentualicmsst: 0,\r\n pdi_percentualipi: 0,\r\n pdi_numeroitem: !!dadosTabela.dadosItens && dadosTabela.dadosItens.length > 0 ? dadosTabela.dadosItens.length + 1 : 1,\r\n descricaograde: item.descricaograde,\r\n ncm_percentual: item.ncm_percentual,\r\n cso_id: item.cso_id ?? dadosProdutoImpostos.cso_id,\r\n cst_id: item.cst_id ?? dadosProdutoImpostos.cst_id,\r\n }\r\n }\r\n return itemPedido;\r\n };\r\n\r\n async function buscarProdutoCodBarra(campo) {\r\n let dados = await api.get(`Produto/ListaProdutoCodigo?filtro=${campo.target.value.trim()}`);\r\n if (dados.data?.length > 1) {\r\n setListaDadosProdModal(dados.data);\r\n setAbrirModalListaProd(true);\r\n } else {\r\n buscarDadosProdutoPedido(dados.data[0].pro_id);\r\n form.setFieldsValue({ pro_id: dados.data[0].pro_id });\r\n let retOk = await popularProduto(dados.data[0].pro_id, false, dados.data[0].prg_id);\r\n if (retOk) {\r\n setProdutoBuscaEan(dados.data[0]);\r\n setLiberadoParaIncluir(true);\r\n } else {\r\n cancelar();\r\n }\r\n }\r\n };\r\n\r\n async function buscaPrecoListaPrecoSelecionada(dados) {\r\n let proId = null\r\n let prg = null;\r\n if (dados === undefined || dados.pro_id == null || isNaN(dados.pro_id)) {\r\n proId = dadosProduto.pro_id;\r\n prg = dadosProduto.prg_id;\r\n } else {\r\n proId = dados.pro_id;\r\n prg = dados.prg_id;\r\n }\r\n let filtros = `&CodigoProduto=${proId}`;\r\n filtros += !!prg ? `&CodigoGrade=${prg}` : \"\";\r\n let listaPreco = !!form.getFieldValue().ltp_id ? form.getFieldValue().ltp_id : (dados.ltp_id ? dados.ltp_id : \"\");\r\n let dadosPreco = await api.get(`ListaPrecoItem/BuscaPrecoItem?CodigoListaPreco=${listaPreco}${filtros}`);\r\n if (dadosPreco.data) {\r\n form.setFieldsValue({\r\n pdi_valorunitario: dadosPreco.data.lpi_valorvenda,\r\n pdi_valortotal: form.getFieldValue().pdi_quantidade * dadosPreco.data.lpi_valorvenda,\r\n });\r\n alterarValorTotal();\r\n } else {\r\n notification.warning({ description: 'Item não encontrado na lista de preço selecionada!', message: 'Aviso' });\r\n }\r\n }\r\n\r\n async function buscarDadosProdImpostos(produto) {\r\n let prod = !!produto.pro_id ? produto.pro_id : form.getFieldValue().pro_id;\r\n let ope = form.getFieldValue().ope_id;\r\n let destinoOperacao = (!!dadosEndereco.est_sigla && !!dadosContribuinte.est_sigla && (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) ? '1' : '2');\r\n let res = await api.get(`Produto/BuscarDadosProduto?IdProduto=${prod}&ufDestino=${!!dadosEndereco ? dadosEndereco.est_sigla : dadosContribuinte.est_sigla}`\r\n + `&operacaoCodigo=${ope}&ufOrigem=${dadosContribuinte.est_sigla}&tipoContribuinte=${dadosContribuinte.loc_tipocontribuinte}`\r\n + `&empresaEnquadramento=${dadosContribuinte.emp_regimetributario}&destinoOperacao=${destinoOperacao}&indicadorPresenca=0`\r\n );\r\n if (res.status == 200) {\r\n let dados = res.data[0];\r\n setDadosProdutoImpostos(dados);\r\n setDadosDetalhes(dados);\r\n\r\n let filtros = !!prod ? `idProduto=${prod}` : '';\r\n filtros += !!produto.prg_id ? `&idProdutoGrade=${produto.prg_id}` : '';\r\n filtros += !!form.getFieldValue().cli_id ? `&idCliente=${form.getFieldValue().cli_id}` : '';\r\n let listaPrecoTemp = (await api.get(`ListaPreco/ListaPrecoPadraoProduto?${filtros}`)).data;\r\n form.setFieldsValue({ ltp_id: listaPrecoTemp[0]?.ltp_id });\r\n }\r\n };\r\n\r\n function editandoItem(dadosEditando) {\r\n let dadosTemp = {};\r\n let dados = dadosEditando;\r\n buscarDadosProdImpostos(dados);\r\n\r\n form.setFieldsValue({\r\n pro_id: dados.pro_id,\r\n prg_id: dados.prg_id,\r\n descricaograde: dados.descricaograde,\r\n key: dados.key,\r\n lpi_id: dados.lpi_id,\r\n lpi_valorvenda: dados.lpi_valorvenda,\r\n pdi_numeroitem: dados.pdi_numeroitem,\r\n pdi_quantidade: dados.pdi_quantidade,\r\n pdi_valordesconto: dados.pdi_valordesconto,\r\n pdi_valorfrete: dados.pdi_valorfrete,\r\n pdi_valoracrescimo: dados.pdi_valoracrescimo,\r\n pdi_valortotal: dados.pdi_valortotal,\r\n pdi_valorunitario: dados.pdi_valorunitario,\r\n percdesc: dados.percdesc,\r\n prg_codigoetiqueta: dados.prg_codigoetiqueta,\r\n prg_ean: dados.prg_ean,\r\n pro_codigo: dados.pro_codigo,\r\n pro_codigoetiqueta: dados.pro_codigoetiqueta,\r\n pro_descricao: dados.pro_descricao,\r\n pro_ean: dados.pro_ean,\r\n pro_kitcomposicao: dados.pro_kitcomposicao,\r\n pro_referencia: dados.pro_referencia,\r\n pro_usabalanca: dados.pro_usabalanca,\r\n pro_usagrade: dados.pro_usagrade,\r\n ump_casasdecimais: dados.ump_casasdecimais,\r\n ump_id: dados.ump_id,\r\n valorItemDesconto: dados.valorItemDesconto\r\n });\r\n dadosTemp = { dados };\r\n setDadosDetalhes(dadosTemp);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n {!!consultaProduto === false &&\r\n
\r\n \r\n { buscarProduto(dados) }}\r\n ordem={\"pro_descricao\"}\r\n setListaDados={setListaSelectProd} />\r\n \r\n \r\n }\r\n {!!consultaProduto &&\r\n \r\n \r\n {\r\n buscarProdutoCodBarra(value)\r\n }} placeholder=\"Informe o Produto/Mercadoria\" />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {exibirDetalhes &&\r\n
\r\n \r\n
\r\n Produto: {dadosDetalhes.pro_descricao} {!!dadosDetalhes.descricaograde ? dadosDetalhes.descricaograde : ''}\r\n \r\n \r\n Código Interno: {dadosDetalhes.pro_codigo}\r\n \r\n \r\n Código de Barras: {!!dadosDetalhes.prg_ean ? dadosDetalhes.prg_ean : dadosDetalhes.pro_ean}\r\n \r\n \r\n NCM: {dadosDetalhes.ncm_codigo}\r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n buscaPrecoListaPrecoSelecionada(valor.ltp_id)} conteudo={\r\n lp => ({lp.ltp_id} - {lp.ltp_nome})\r\n } allowClear />\r\n \r\n \r\n \r\n \r\n { alterarValorTotal() }} />\r\n \r\n \r\n \r\n { alterarValorTotal() }} />\r\n \r\n \r\n \r\n \r\n {!isObjetoDiffVazio(custo) && \r\n (calculaDesconto('PERC'))}\r\n />\r\n }\r\n {!isObjetoDiffVazio(custo) && \r\n (calculaDesconto('VALOR'))} />\r\n }\r\n {!isObjetoDiffVazio(custo) && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n { cancelar(); setAbrirModalManutencaoNota(false); }} dadosContribuinte={dadosContribuinte} dadosOperacao={dadosOperacao} dadosEndereco={dadosEndereco} dadosProduto={dadosProduto} />\r\n { setAbrirModalListaProd(false); }} dadosItens={listaDadosProdModal} />\r\n \r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Col, Form, Row, Button, Input, InputNumber, Select, Card, notification, Tooltip, Modal } from \"antd\";\r\nimport { SearchOutlined, BarcodeOutlined, PlusOutlined, CloseOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { InputPreco } from \"../../components\";\r\nimport { ModalGradeProduto, ModalManutencaoNota } from \"../modals\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { info, isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport SelectProduto from \"../selects/selectProduto\";\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\n\r\nexport default function FiltroProdutoNtf({ form, dadosTabela, dadosEndereco = {}, dadosOperacao = {}, dadosNfeTransferencia, validarTransporte }) {\r\n\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [abrirModalGrade, setAbrirModalGrade] = useState(false);\r\n const [dadosDetalhes, setDadosDetalhes] = useState({});\r\n const [dadosGrade, setDadosGrade] = useState([]);\r\n const [desabilitarProd_id, setDesabilitarProd_id] = useState(false);\r\n const [consultaProduto, setConsultaProduto] = useState(null);\r\n const [dadosCfop, setDadosCfop] = useState([]);\r\n const [abrirModalManutencaoNota, setAbrirModalManutencaoNota] = useState(false);\r\n const [dadosProduto, setDadosProduto] = useState({});\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [dadosContribuinte, setDadosContribuinte] = useState({});\r\n const [tributacaoIcms, setTributacaoIcms] = useState([]);\r\n const [listaItens, setListaItens] = useState([]);\r\n const codBarras = useRef();\r\n const togglePesquisa = () => {\r\n setConsultaProduto(!consultaProduto);\r\n };\r\n\r\n useEffect(() => {\r\n popularDadosContribuintes();\r\n buscarDadosCfop();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!dadosContribuinte && isObjetoDiffVazio(dadosContribuinte)) {\r\n if (!!manutencao.dados && !!manutencao.dados.ped_id) {\r\n incluirProdutoExterno();\r\n }\r\n }\r\n }, [dadosContribuinte]);\r\n\r\n useEffect(() => {\r\n if (consultaProduto && !!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n }, [consultaProduto]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!dadosContribuinte && isObjetoDiffVazio(dadosContribuinte) && !!manutencao.dados.pro_id) {\r\n let prod = listaItens.find(p => p.pro_id == manutencao.dados.pro_id && (manutencao.dados.prg_id == null || manutencao.dados.prg_id == p.prg_id));\r\n form.setFieldsValue({ pro_id: prod.key });\r\n abrirEditarItem(prod);\r\n }\r\n }, [manutencao]);\r\n\r\n async function incluirProdutoExterno() {\r\n let listaItens = [];\r\n let custo = !!dadosNfeTransferencia.dadosNfeTransferencia && !!dadosNfeTransferencia.dadosNfeTransferencia.custo ? dadosNfeTransferencia.dadosNfeTransferencia.custo.key : 1;\r\n let destinoOperacao = (!!dadosEndereco.est_sigla && !!dadosContribuinte.est_sigla && (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) ? '1' : '2');\r\n for (let [idx, itens] of dadosTabela.dadosItens.entries()) {\r\n let dadosItem = await api.get(`Produto/BuscarDadosProdutoTransferencia?codigoProduto=${itens.pro_id}&destinoOperacao=${destinoOperacao}®imeTributarioEmpresa=${dadosContribuinte.emp_regimetributario}`\r\n + `&tipoContribuinte=${dadosContribuinte.loc_tipocontribuinte}&tipoCusto=${custo}&ufDestino=${dadosEndereco.est_sigla}&codigoProdutoGrade=${itens.prg_id}`\r\n + `&ufOrigem=${dadosContribuinte.est_sigla}`);\r\n let icm_id = null;\r\n let tributacaoIcms = await api.get(`TributacaoIcms/ListarTributacaoIcmsOrigemDestinoProduto?codigoProduto=${itens.pro_id}&ufDestino=${dadosEndereco.est_sigla}&ufOrigem=${dadosContribuinte.est_sigla}`);\r\n if (tributacaoIcms.status === 200) {\r\n tributacaoIcms.data.forEach((icm) => {\r\n if (!!icm.classeProduto) {\r\n icm_id = icm;\r\n }\r\n });\r\n }\r\n if (dadosItem.status === 200) {\r\n dadosItem = dadosItem.data;\r\n let prodNota = {};\r\n if (!!icm_id && JSON.stringify(icm_id) !== '{}' && !!icm_id.icm_id) {\r\n prodNota.icm_id = icm_id;\r\n prodNota.cso_id = icm_id.cso_id;\r\n prodNota.cst_id = icm_id.cst_id;\r\n prodNota.icm_descricao = icm_id.icm_descricao;\r\n prodNota.iod_id = icm_id.iod_id;\r\n prodNota.iod_percdiferimentoicms = icm_id.iod_percdiferimentoicms;\r\n prodNota.iod_percicms = icm_id.iod_percicms;\r\n prodNota.iod_percicmsreducaobc = icm_id.iod_percicmsreducaobc;\r\n prodNota.iod_ufdestino = icm_id.iod_ufdestino;\r\n prodNota.iod_uforigem = icm_id.iod_uforigem;\r\n }\r\n prodNota.pro_id = itens.pro_id;\r\n prodNota.prg_id = !!itens.prg_id ? itens.prg_id : null;\r\n prodNota.nfi_cfop = dadosItem.cfo_cfop;\r\n prodNota.nfi_qtde = itens.nfi_qtde;\r\n prodNota.nfi_numeroitem = dadosTabela.dadosItens.length + 1;\r\n prodNota.nfi_valorunitario = parseFloat(itens.nfi_valorunitario);\r\n prodNota.total = parseFloat(itens.nfi_valorunitario) * parseFloat(itens.nfi_qtde);\r\n prodNota.percdesc = parseFloat(!!itens.percdesc ? itens.percdesc : 0);\r\n prodNota.nfi_valordesconto = parseFloat(!!itens.nfi_valordesconto ? itens.nfi_valordesconto : 0);\r\n prodNota.percacresc = parseFloat(!!itens.percacresc ? itens.percacresc : 0);\r\n prodNota.nfi_valoroutros = parseFloat(!!itens.nfi_valoroutros ? itens.nfi_valoroutros : 0);\r\n prodNota.nfi_informacaoadicional = '';\r\n prodNota.cfo_cfop = dadosItem.cfo_cfop;\r\n prodNota.cfo_descricao = dadosItem.cfo_descricao;\r\n prodNota.cfo_id = dadosItem.cfo_id;\r\n prodNota.nfi_ean = itens.nfi_ean;\r\n prodNota.nfi_unidademedida = dadosItem.ump_id;\r\n prodNota.pro_codigo = itens.pro_codigo;\r\n prodNota.pro_descricao = itens.pro_descricao;\r\n prodNota.pro_ean = dadosItem.pro_ean;\r\n prodNota.ump_id = dadosItem.ump_id;\r\n prodNota.nfi_numeropedidocompra = !!itens.nfi_numeropedidocompra ? itens.nfi_numeropedidocompra : null;\r\n prodNota.nfi_ncm = dadosItem.ncm_codigo;\r\n prodNota.ncm_id = dadosItem.ncm_id;\r\n listaItens.push(prodNota)\r\n if (idx === dadosTabela.dadosItens.length - 1) {\r\n dadosTabela.setDadosItens(listaItens);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function buscarDadosCfop() {\r\n api.get(`Cfop/ListarCfopTipo?tipoCfopFim=8000&tipoCfopIni=1000`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDadosCfop(res.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n async function buscarDadosProdutoNotaTransf(incluir = false, possuiGrade = false) {\r\n let listaProdutos = [...listaItens];\r\n let produto = listaProdutos.filter(pro => pro.key === form.getFieldValue().pro_id)[0];\r\n let custo = !!dadosNfeTransferencia.dadosNfeTransferencia && !!dadosNfeTransferencia.dadosNfeTransferencia.custo ? dadosNfeTransferencia.dadosNfeTransferencia.custo.key : 1;\r\n let destinoOperacao = (!!dadosEndereco.est_sigla && !!dadosContribuinte.est_sigla && (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) ? '1' : '2');\r\n let parametros = `IdProduto=${produto.pro_id}&destinoOperacao=${destinoOperacao}&empresaEnquadramento=${dadosContribuinte.emp_regimetributario}`;\r\n parametros += `&tipoContribuinte=${dadosContribuinte.loc_tipocontribuinte}&tipoCusto=${custo}&ufDestino=${dadosEndereco.est_sigla}&ufOrigem=${dadosContribuinte.est_sigla}`;\r\n parametros += !!produto.prg_id ? `&codigoProdutoGrade=${produto.prg_id}` : '';\r\n api.get(`Produto/BuscarDadosProdutoTransferencia?${parametros}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n let dadosProduto = res.data;\r\n let icm_id = null;\r\n api.get(`TributacaoIcms/ListarTributacaoIcmsOrigemDestinoProduto?codigoProduto=${dadosProduto.pro_id}&ufDestino=${dadosEndereco.est_sigla}&ufOrigem=${dadosContribuinte.est_sigla}`).then(\r\n tributacaoIcms => {\r\n if (tributacaoIcms.status === 200) {\r\n tributacaoIcms.data.forEach((icm) => {\r\n if (!!icm.icm_id) {\r\n icm_id = icm;\r\n }\r\n });\r\n setTributacaoIcms(tributacaoIcms.data);\r\n }\r\n form.setFieldsValue({ nfi_cfop: dadosProduto.cfo_cfop });\r\n if (!!icm_id && JSON.stringify(icm_id) !== '{}' && !!icm_id.icm_id) {\r\n dadosProduto.icm_id = icm_id.icm_id;\r\n dadosProduto.cso_id = icm_id.cso_id;\r\n dadosProduto.cst_id = icm_id.cst_id;\r\n dadosProduto.icm_descricao = icm_id.icm_descricao;\r\n dadosProduto.iod_id = icm_id.iod_id;\r\n dadosProduto.iod_percdiferimentoicms = icm_id.iod_percdiferimentoicms;\r\n dadosProduto.iod_percicms = icm_id.iod_percicms;\r\n dadosProduto.iod_percicmsreducaobc = icm_id.iod_percicmsreducaobc;\r\n dadosProduto.iod_ufdestino = icm_id.iod_ufdestino;\r\n dadosProduto.iod_uforigem = icm_id.iod_uforigem;\r\n\r\n form.setFieldsValue({ icm_id: icm_id.icm_id });\r\n }\r\n\r\n setDadosProduto(dadosProduto);\r\n\r\n if ((!!dadosProduto.icm_id === false) || (!!dadosProduto.ncm_id === false) || (!!dadosProduto.ump_id === false) || (!!dadosProduto.pro_descricao === false)) {\r\n setAbrirModalManutencaoNota(true);\r\n } else if ((!!dadosProduto.iod_ufdestino) === false) {\r\n setAbrirModalManutencaoNota(true);\r\n } else {\r\n setarCfopCorrespondenteTributacaoICMS(dadosProduto);\r\n }\r\n\r\n if (dadosProduto.pre_custoultimacompra === 0 && !possuiGrade) { //validação é feita na grade quando possuir\r\n info(\"Não foi possivel localizar o \" + dadosNfeTransferencia.dadosNfeTransferencia.custo.value + \" do item \" + dadosProduto.pro_descricao + \", selecione OUTRO CUSTO e informe o produto novamente!\");\r\n return;\r\n }\r\n\r\n form.setFieldsValue({ quantidade: 1, valorUnitario: dadosProduto.pre_custoultimacompra, valorTotalItem: dadosProduto.pre_custoultimacompra });\r\n\r\n if (incluir) {\r\n let dadosTemp = [...dadosTabela.dadosItens];\r\n adicionarItemNotaTransferencia(false, dadosProduto, null, dadosProduto.prg_id, () => {\r\n dadosTemp.push(dadosProduto);\r\n dadosTabela.setDadosItens(dadosTemp);\r\n limparCampos();\r\n if (consultaProduto && !!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n });\r\n } else {\r\n setExibirDetalhes(true);\r\n let dadosTemp = {};\r\n dadosTemp.prg_id = dadosProduto.prg_id;\r\n dadosTemp.pro_descricao = dadosProduto.pro_descricao;\r\n dadosTemp.pro_codigo = dadosProduto.pro_codigo;\r\n dadosTemp.pro_ean = dadosProduto.pro_ean;\r\n dadosTemp.prg_ean = dadosProduto.prg_ean;\r\n dadosTemp.ncm_codigo = dadosProduto.ncm_codigo;\r\n dadosTemp.ump_id = dadosProduto.ump_id;\r\n dadosTemp.descricaograde = dadosProduto.descricaograde;\r\n setDadosDetalhes(dadosTemp);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n ).catch(error => console.log(error));\r\n };\r\n\r\n function setarCfopCorrespondenteTributacaoICMS(dadosProduto) {\r\n var cfoCfop = \"\";\r\n if (dadosContribuinte.emp_regimetributario === 3) {\r\n if (dadosProduto.cst_id === \"00\" || dadosProduto.cst_id === \"20\" || dadosProduto.cst_id === \"40\" || dadosProduto.cst_id === \"41\" || dadosProduto.cst_id === \"50\" || dadosProduto.cst_id === \"51\" || dadosProduto.cst_id === \"90\") {\r\n if (dadosContribuinte.loc_tipocontribuinte === 1 || dadosContribuinte.loc_tipocontribuinte === 4) {\r\n if (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) {\r\n cfoCfop = \"5152\";\r\n } else {\r\n cfoCfop = \"6152\";\r\n }\r\n } else {\r\n if (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) {\r\n cfoCfop = \"5151\";\r\n }\r\n else {\r\n cfoCfop = \"6151\";\r\n }\r\n }\r\n } else if (dadosProduto.cst_id === \"10\" || dadosProduto.cst_id === \"30\" || dadosProduto.cst_id === \"60\" || dadosProduto.cst_id === \"70\") {\r\n if (dadosContribuinte.loc_tipocontribuinte === 1 || dadosContribuinte.loc_tipocontribuinte === 4) {\r\n if (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) {\r\n cfoCfop = \"5409\";\r\n } else {\r\n cfoCfop = \"6409\";\r\n }\r\n } else {\r\n if (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) {\r\n cfoCfop = \"5408\";\r\n }\r\n else {\r\n cfoCfop = \"6408\";\r\n }\r\n }\r\n }\r\n } else {\r\n if (dadosProduto.cso_id === \"101\" || dadosProduto.cso_id === \"102\" || dadosProduto.cso_id === \"103\" || dadosProduto.cso_id === \"300\" || dadosProduto.cso_id === \"400\" || dadosProduto.cso_id === \"900\") {\r\n if (dadosContribuinte.loc_tipocontribuinte === 1 || dadosContribuinte.loc_tipocontribuinte === 4) {\r\n if (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) {\r\n cfoCfop = \"5152\";\r\n }\r\n else {\r\n cfoCfop = \"6152\";\r\n }\r\n }\r\n else {\r\n if (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) {\r\n cfoCfop = \"5151\";\r\n }\r\n else {\r\n cfoCfop = \"6151\";\r\n }\r\n }\r\n } else if (dadosProduto.cso_id === \"201\" || dadosProduto.cso_id === \"202\" || dadosProduto.cso_id === \"203\" || dadosProduto.cso_id === \"500\") {\r\n if (dadosContribuinte.loc_tipocontribuinte === 1 || dadosContribuinte.loc_tipocontribuinte === 4) {\r\n if (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) {\r\n cfoCfop = \"5409\";\r\n }\r\n else {\r\n cfoCfop = \"6409\";\r\n }\r\n }\r\n else {\r\n if (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) {\r\n cfoCfop = \"5408\";\r\n }\r\n else {\r\n cfoCfop = \"6408\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n dadosCfop.map((cfop) => {\r\n if (cfoCfop === cfop.cfo_cfop) {\r\n form.setFieldsValue({ nfi_cfop: cfop.cfo_cfop });\r\n }\r\n });\r\n };\r\n\r\n function popularDadosContribuintes(callback) {\r\n api.get(`dadosContribuinte/Buscar`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n setDadosContribuinte(res.data);\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function alterarValorTotal() {\r\n let total = 0;\r\n total = form.getFieldValue().quantidade * form.getFieldValue().valorUnitario;\r\n form.setFieldsValue({ valorTotalItem: total.toFixed(2) });\r\n };\r\n\r\n async function buscarProduto(key) {\r\n let produtos = [...listaItens];\r\n let produto = produtos.filter((produto) => (produto.key === key))[0];\r\n let custo = !!dadosNfeTransferencia.dadosNfeTransferencia && !!dadosNfeTransferencia.dadosNfeTransferencia.custo ? dadosNfeTransferencia.dadosNfeTransferencia.custo.key : 1;\r\n let params = `&apenasAtivas=true&tipoCusto=${custo}`;\r\n let grade = await api.get(`ProdutoGrade/ListarGradesProdutos?codigoProduto=${produto.pro_id}${params}`);\r\n buscarDadosProdutoNotaTransf(false);\r\n\r\n };\r\n\r\n function salvarDadosGradeModal() {\r\n let produtosSelec = [...dadosTabela.dadosItens];\r\n let produtoGrade = dadosGrade.filter((produto) => { return produto.quantidade > 0; });\r\n produtoGrade.map((item) => {\r\n let dados = { ...dadosProduto };\r\n adicionarItemNotaTransferencia(false, dados, item, null, () => { produtosSelec.push(dados) });\r\n });\r\n dadosTabela.setDadosItens(produtosSelec);\r\n cancelar();\r\n };\r\n\r\n function abrirEditarItem(prodSelecionado) {\r\n setExibirDetalhes(true);\r\n let itemDaLista = [...dadosTabela.dadosItens].find(p => p.pro_id == prodSelecionado.pro_id && (prodSelecionado.prg_id == null || prodSelecionado.prg_id == p.prg_id))\r\n form.setFieldsValue({ quantidade: itemDaLista.nfi_qtde });\r\n form.setFieldsValue({ valorUnitario: itemDaLista.nfi_valorunitario });\r\n form.setFieldsValue({ valorTotalItem: itemDaLista.total });\r\n form.setFieldsValue({ nfi_cfop: itemDaLista.nfi_cfop });\r\n form.setFieldsValue({ icm_id: itemDaLista.icm_id });\r\n form.setFieldsValue({ prg_id: itemDaLista.prg_id });\r\n form.setFieldsValue({ informacaoAdicional: itemDaLista.nfi_informacaoadicional });\r\n api.get(`TributacaoIcms/ListarTributacaoIcmsOrigemDestinoProduto?codigoProduto=${prodSelecionado.pro_id}&ufDestino=${dadosEndereco.est_sigla}&ufOrigem=${dadosContribuinte.est_sigla}`).then(\r\n (tributacaoIcms) => {\r\n if (tributacaoIcms.status === 200) {\r\n setTributacaoIcms(tributacaoIcms.data);\r\n }\r\n }\r\n ).catch(\r\n (erro) => {\r\n console.log(erro);\r\n }\r\n );\r\n let dadosTemp = {};\r\n dadosTemp.prg_id = prodSelecionado.prg_id;\r\n dadosTemp.pro_descricao = prodSelecionado.pro_descricao;\r\n dadosTemp.pro_codigo = prodSelecionado.pro_codigo;\r\n dadosTemp.pro_ean = prodSelecionado.pro_ean;\r\n dadosTemp.prg_ean = prodSelecionado.prg_ean;\r\n dadosTemp.ncm_codigo = prodSelecionado.ncm_codigo;\r\n dadosTemp.prg_ean = prodSelecionado.prg_ean;\r\n dadosTemp.descricaograde = prodSelecionado.descricaograde;\r\n dadosTemp.ump_id = prodSelecionado.ump_id;\r\n setDadosDetalhes(dadosTemp);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n return;\r\n };\r\n\r\n function adicionarItem() {\r\n let dadosTemp = [...dadosTabela.dadosItens];\r\n let dados = {};\r\n if (dadosTemp.find(campo => (campo.pro_id === form.getFieldValue().pro_id || campo.pro_codigo === form.getFieldValue().pro_codigo)\r\n && ((!!form.getFieldValue().prg_id && form.getFieldValue().prg_id === campo.prg_id) || !form.getFieldValue().prg_id))) {\r\n if (!!form.getFieldValue().nfi_cfop && !!form.getFieldValue().icm_id) {\r\n if (!!form.getFieldValue().prg_id) {\r\n dados = dadosTemp.find(campo => campo.prg_id === form.getFieldValue().prg_id);\r\n } else {\r\n dados = dadosTemp.find(campo => campo.pro_id === form.getFieldValue().pro_id || campo.pro_codigo === form.getFieldValue().pro_codigo);\r\n }\r\n adicionarItemNotaTransferencia(true, dados);\r\n if (!dadosTemp[0].nfi_valorfrete || !dadosTemp[0].nfi_valoroutros) {\r\n validarTransporte(dadosTemp);\r\n dadosTabela.setDadosItens(dadosTemp);\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Campo CFOP e Tributação ICMS são obrigatórios!' });\r\n return;\r\n }\r\n } else {\r\n if (!!form.getFieldValue().nfi_cfop && !!form.getFieldValue().icm_id) {\r\n dados = { ...dadosProduto };\r\n adicionarItemNotaTransferencia(false, dados, null, dados.prg_id, () => {\r\n dadosTemp.push(dados);\r\n if (!dadosTemp[0].nfi_valorfrete || !dadosTemp[0].nfi_valoroutros) {\r\n validarTransporte(dadosTemp);\r\n dadosTabela.setDadosItens(dadosTemp);\r\n }\r\n });\r\n } else {\r\n notification.warning({ message: 'Aviso', description: 'Campo CFOP e Tributação ICMS são obrigatórios!' });\r\n return;\r\n }\r\n }\r\n setExibirDetalhes(false);\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n };\r\n\r\n function cancelar() {\r\n setExibirDetalhes(false);\r\n setDadosDetalhes({});\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n };\r\n\r\n function limparCampos() {\r\n form.setFieldsValue({ pro_codigo: null, pro_id: null, percdesc: 0, desconto: 0, percacresc: 0, acrescimo: 0, nfi_cfop: null, icm_id: null });\r\n };\r\n\r\n async function adicionarItemNotaTransferencia(editar = false, prodNota, dadosGrade, prg_id, callback) {\r\n let formulario = form.getFieldValue();\r\n if (!editar) {\r\n let produtos = [...listaItens];\r\n let produto = produtos.filter((produto) => (produto.key === formulario.pro_id))[0];\r\n prodNota.nfi_ean = !!produto.prg_ean ? produto.prg_ean : produto.pro_ean;\r\n prodNota.nfi_unidademedida = produto.ump_id;\r\n prodNota.pro_codigo = produto.pro_codigo;\r\n prodNota.pro_descricao = produto.pro_descricao;\r\n prodNota.pro_ean = produto.pro_ean;\r\n prodNota.grade = produto.descricaograde;\r\n prodNota.ump_id = produto.ump_id;\r\n prodNota.ump_casasdecimais = produto.ump_casasdecimais;\r\n prodNota.prg_id = produto.prg_id;\r\n }\r\n if (!(!!prodNota.icm_id) || prodNota.icm_id !== formulario.icm_id) {\r\n let icms = tributacaoIcms.filter((icms) => (icms.icm_id === formulario.icm_id))[0];\r\n prodNota.icm_id = icms.icm_id;\r\n prodNota.icm_descricao = icms.icm_descricao;\r\n prodNota.cst_id = icms.cst_id;\r\n prodNota.cso_id = icms.cso_id;\r\n }\r\n if (!(!!prodNota.cfo_cfop) || prodNota.nfi_cfop !== formulario.nfi_cfop) {\r\n let cfop = dadosCfop.filter((cfop) => (cfop.cfo_cfop === formulario.nfi_cfop))[0];\r\n prodNota.nfi_cfop = cfop.cfo_cfop;\r\n prodNota.cfo_cfop = cfop.cfo_cfop;\r\n prodNota.cfo_descricao = cfop.cfo_descricao;\r\n prodNota.cfo_id = cfop.cfo_id;\r\n }\r\n prodNota.nfi_qtde = formulario.quantidade;\r\n prodNota.nfi_valorunitario = parseFloat(!!formulario.valorUnitario ? formulario.valorUnitario : 0);\r\n prodNota.quantidade = formulario.quantidade;\r\n prodNota.vlr_valorunitario = parseFloat(!!formulario.valorUnitario ? formulario.valorUnitario : 0);\r\n prodNota.total = parseFloat(prodNota.nfi_qtde * prodNota.nfi_valorunitario).toFixed(2);\r\n prodNota.percdesc = parseFloat(!!formulario.percdesc ? formulario.percdesc : 0);\r\n prodNota.nfi_valordesconto = parseFloat(!!formulario.desconto ? formulario.desconto : 0);\r\n prodNota.percacresc = parseFloat(!!formulario.percacresc ? formulario.percacresc : 0);\r\n prodNota.nfi_valoroutros = parseFloat(!!formulario.acrescimo ? formulario.acrescimo : 0);\r\n prodNota.nfi_numeroitem = !!prodNota.nfi_numeroitem ? prodNota.nfi_numeroitem : dadosTabela.dadosItens.length + 1;\r\n prodNota.nfi_valorfrete = 0;\r\n prodNota.nfi_valorseguro = 0;\r\n let valorCalculadoIPI = 0;\r\n let valorCalculadoIMS = 0;\r\n let ipi = null;\r\n let icms = null;\r\n let diferimento = null;\r\n let icmst = null;\r\n let possuiIe = !!formulario.pej_inscricaoestadual ? true : false;\r\n let impostos = await CalcularImpostoItem(\r\n prodNota.orm_id, prodNota.cst_id, prodNota.cso_id, prodNota.iod_uforigem, prodNota.iod_ufdestino,\r\n prodNota.quantidade, prodNota.vlr_valorunitario, prodNota.nfi_valorfrete, prodNota.nfi_valoroutros, prodNota.nfi_valordesconto, prodNota.iod_percicms,\r\n prodNota.iod_percdiferimentoicms, prodNota.iod_percicmsreducaobc, prodNota.mva_percaliquotaicms, prodNota.mva_percmva, prodNota.mva_percaliquotaicmsreducao,\r\n prodNota.mva_ajustado, prodNota.ncm_percentual,\r\n 2, //pessoa juridica transferencia\r\n 0, // não é consumidor final\r\n possuiIe,\r\n prodNota.ope_indicadorpresenca\r\n );\r\n\r\n ipi = impostos.retornoIPI;\r\n icms = impostos.retornoICMS;\r\n diferimento = impostos.retornoDiferimento;\r\n icmst = impostos.retornoICMSST;\r\n prodNota.npi_valorbcipi = !!ipi ? ipi.baseIPI : 0;\r\n //prodNota.npi_percaliquotaipi = prodNota.ncm_percentual * 100;\r\n prodNota.npi_percaliquotaipi = prodNota.ncm_percentual;\r\n prodNota.npi_valoripi = !!ipi ? ipi.valorIPI : 0;\r\n prodNota.nig_valorbc = !!icms ? icms.baseICMS : 0;\r\n\r\n prodNota.nig_valorIcms = !!icms ? icms.ret_valorIcms : 0;\r\n\r\n prodNota.nig_percicms = prodNota.iod_percicms;\r\n prodNota.nig_percreducaobc = prodNota.iod_percicmsreducaobc;\r\n prodNota.nig_percmvast = prodNota.mva_percmva;\r\n prodNota.nig_percreducaobcst = prodNota.mva_percaliquotaicmsreducao;\r\n prodNota.nig_valorbcst = !!icmst ? icmst.baseICMSST : 0;\r\n prodNota.nig_percicmsst = prodNota.mva_percaliquotaicms;\r\n prodNota.nig_valoricmsst = !!icmst ? icmst.ICMSST : 0;\r\n prodNota.nig_valoricmsoperacao = !!icms ? icms.ICMS : 0;\r\n prodNota.nig_percicmsdiferimento = prodNota.iod_percdiferimentoicms;\r\n prodNota.nig_valoricmsdiferimento = !!diferimento ? diferimento.valorICMSDiferido : 0;\r\n if (editar) {\r\n prodNota.nfi_informacaoadicional = prodNota.informacaoAdicional;\r\n } else {\r\n prodNota.nfi_informacaoadicional = !!prodNota.grade ? prodNota.grade : \"\" + \" \" + (!!prodNota.nfi_informacaoadicional ? prodNota.nfi_informacaoadicional : \"\");\r\n }\r\n if (!!callback) {\r\n callback();\r\n }\r\n };\r\n\r\n function error(mensagem, title = 'Atenção!') {\r\n Modal.error({\r\n title: title,\r\n content: (\r\n
\r\n

{mensagem}

\r\n
\r\n )\r\n });\r\n }\r\n\r\n async function buscarProdutoCodBarra(campo) {\r\n let codigoEan = campo.target.value.trim();\r\n let dados = await api.get(`Produto/ListaProdutoFiltro?filtro=${codigoEan}`);\r\n if (!!dados.data && dados.data.items.length > 0) {\r\n form.setFieldsValue({ pro_id: dados.data.items[0].pro_id });\r\n adicionarItemLeitorCodBarras(dados.data.items[0]);\r\n }\r\n if (!!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n };\r\n\r\n async function adicionarItemLeitorCodBarras(dadosProduto) {\r\n let formulario = form.getFieldValue();\r\n let dados = {};\r\n let dadosGrade = {};\r\n let dadosTemp = [...dadosTabela.dadosItens];\r\n let custo = !!dadosNfeTransferencia.dadosNfeTransferencia && !!dadosNfeTransferencia.dadosNfeTransferencia.custo ? dadosNfeTransferencia.dadosNfeTransferencia.custo.key : 1;\r\n let destinoOperacao = (!!dadosEndereco.est_sigla && !!dadosContribuinte.est_sigla && (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) ? '1' : '2');\r\n let parametros = `IdProduto=${dadosProduto.pro_id}&destinoOperacao=${destinoOperacao}&empresaEnquadramento=${dadosContribuinte.emp_regimetributario}`;\r\n parametros += `&tipoContribuinte=${dadosContribuinte.loc_tipocontribuinte}&tipoCusto=${custo}&ufDestino=${dadosEndereco.est_sigla}&ufOrigem=${dadosContribuinte.est_sigla}`;\r\n parametros += !!dadosProduto.prg_id ? `&codigoProdutoGrade=${dadosProduto.prg_id}` : '';\r\n await api.get(`Produto/BuscarDadosProdutoTransferencia?${parametros}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n let dadostributacao = res.data;\r\n if ((!!dadostributacao.icm_id === false) || (!!dadostributacao.ncm_id === false) || (!!dadostributacao.ump_id === false) || (!!dadosProduto.pro_descricao === false)) {\r\n setAbrirModalManutencaoNota(true);\r\n } else if ((!!dadostributacao.iod_ufdestino) === false) {\r\n setAbrirModalManutencaoNota(true);\r\n } else {\r\n setarCfopCorrespondenteTributacaoICMS(dadostributacao);\r\n }\r\n if (!!dadosProduto.prg_id) {\r\n api.get(`ProdutoGrade/ListarGradesProdutos?apenasAtivas=true&codigoProduto=${dadosProduto.pro_id}&produtoGradeId=${dadosProduto.prg_id}&tipoCusto=${custo}`).then(\r\n resGrade => {\r\n if (resGrade.status === 200) {\r\n dadosGrade = resGrade.data;\r\n }\r\n }\r\n ).catch(error => console.log(error));\r\n }\r\n\r\n dados = dadosProduto;\r\n dados.orm_id = dadostributacao.orm_id;\r\n dados.iod_uforigem = dadosContribuinte.est_sigla;\r\n dados.iod_ufdestino = dadosEndereco.est_sigla;\r\n dados.icm_id = dadostributacao.icm_id;\r\n dados.icm_descricao = dadostributacao.icm_descricao;\r\n dados.cst_id = dadostributacao.cst_id;\r\n dados.ncm_id = dadostributacao.ncm_id;\r\n dados.ncm_codigo = dadostributacao.ncm_codigo;\r\n dados.cso_id = dadostributacao.cso_id;\r\n dados.nfi_cfop = dadostributacao.cfo_cfop;\r\n dados.cfo_cfop = dadostributacao.cfo_cfop;\r\n dados.cfo_descricao = dadostributacao.cfo_descricao;\r\n dados.cfo_id = dadostributacao.cfo_id;\r\n dados.nfi_ean = dadosProduto.pro_ean == null ? dadosProduto.prg_ean : dadosProduto.pro_ean;\r\n dados.pro_ean = dadosProduto.pro_ean == null ? \"\" : dadosProduto.pro_ean;\r\n dados.nfi_unidademedida = dadosProduto.ump_id;\r\n dados.nfi_qtde = 1;\r\n dados.nfi_valorunitario = dadostributacao.pre_custoultimacompra;\r\n\r\n dados.total = parseFloat(dados.nfi_qtde * dados.nfi_valorunitario).toFixed(2);\r\n dados.percdesc = parseFloat(!!formulario.percdesc ? formulario.percdesc : 0);\r\n dados.nfi_valordesconto = parseFloat(!!formulario.desconto ? formulario.desconto : 0);\r\n dados.percacresc = parseFloat(!!formulario.percacresc ? formulario.percacresc : 0);\r\n dados.nfi_valoroutros = parseFloat(!!formulario.acrescimo ? formulario.acrescimo : 0);\r\n dados.nfi_numeroitem = !!dadosTemp.nfi_numeroitem ? dadosTemp.nfi_numeroitem : dadosTemp.length + 1;\r\n dados.nfi_valorfrete = 0;\r\n dados.nfi_valorseguro = 0;\r\n dados.nfi_informacaoadicional = dadosProduto.descricaograde == null ? \"\" : dadosProduto.descricaograde;\r\n dados.grade = dadosProduto.descricaograde;\r\n dadosTemp.push(dados);\r\n\r\n setExibirDetalhes(false);\r\n dadosTabela.setDadosItens(dadosTemp);\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n }\r\n }\r\n ).catch(error => console.log(error));\r\n }\r\n\r\n function aoSalvarModalManutencaoNota() {\r\n buscarDadosProdutoNotaTransf(false);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n {!!consultaProduto === false &&\r\n
\r\n \r\n { buscarProduto(dados) }}\r\n ordem={\"pro_descricao\"} setListaDados={setListaItens} />\r\n \r\n \r\n }\r\n {!!consultaProduto &&\r\n \r\n \r\n {\r\n buscarProdutoCodBarra(value)\r\n }} placeholder=\"Informe o Produto/Mercadoria\" />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {exibirDetalhes &&\r\n
\r\n \r\n
\r\n Produto: {dadosDetalhes.pro_descricao} {!!dadosDetalhes.descricaograde ? ' - ' + dadosDetalhes.descricaograde : ''}\r\n \r\n \r\n Código Interno: {dadosDetalhes.pro_codigo}\r\n \r\n \r\n Código de Barras: {!!dadosDetalhes.prg_ean ? dadosDetalhes.prg_ean : dadosDetalhes.pro_ean}\r\n \r\n \r\n NCM: {dadosDetalhes.ncm_codigo}\r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { alterarValorTotal() }} />\r\n \r\n \r\n \r\n { alterarValorTotal() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n { setAbrirModalGrade(false); salvarDadosGradeModal() }} dados={dadosGrade} dadosValidacao={dadosNfeTransferencia} />\r\n setAbrirModalManutencaoNota(false)} dadosContribuinte={dadosContribuinte} dadosOperacao={dadosOperacao} dadosEndereco={dadosEndereco} dadosProduto={dadosProduto} aoSalvar={aoSalvarModalManutencaoNota} />\r\n \r\n );\r\n\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Col, Form, Row, Button, Input, InputNumber, Card, notification, Tooltip, Modal } from \"antd\";\r\nimport { SearchOutlined, BarcodeOutlined, PlusOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { ModalManutencaoNota } from \"../modals\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { InputPreco, SelectProduto } from \"../../components\";\r\nimport { selectPaginadoActions } from \"../../actions\";\r\n\r\nexport default function FiltroProdutoOrcamento({ form, dadosTabela, dadosEndereco = {}, dadosOperacao = {}, btnEditando, itemEditando }) {\r\n\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [dadosDetalhes, setDadosDetalhes] = useState({});\r\n const [desabilitarProd_id, setDesabilitarProd_id] = useState(false);\r\n const [buscarProdutosCodBarra, setBuscarProdutosCodBarra] = useState(null);\r\n const [abrirModalManutencaoNota, setAbrirModalManutencaoNota] = useState(false);\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [listaSelectProd, setListaSelectProd] = useState([]);\r\n const codBarras = useRef();\r\n\r\n useEffect(() => {\r\n if (btnEditando.editando && isObjetoDiffVazio(itemEditando)) {\r\n editandoItem(itemEditando);\r\n setExibirDetalhes(true);\r\n }\r\n }, [btnEditando]);\r\n\r\n useEffect(() => {\r\n if (buscarProdutosCodBarra && !!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n }, [buscarProdutosCodBarra]);\r\n\r\n function carregarSelectPaginados() {\r\n let lista = [];\r\n if (!!form.getFieldValue().ltp_id)\r\n lista.push({ name: \"ltp_id\", campo: \"idLista\", value: form.getFieldValue().ltp_id });\r\n\r\n if (!!form.getFieldsValue().icm_id)\r\n lista.push({ name: \"icm_id\", campo: \"Codigo\", value: form.getFieldsValue().icm_id })\r\n\r\n if (!!form.getFieldsValue().pis_id)\r\n lista.push({ name: \"pis_id\", campo: \"Id\", value: form.getFieldsValue().pis_id })\r\n\r\n if (!!form.getFieldValue().ncm_id)\r\n lista.push({ name: \"ncm_id\", campo: \"IdNcm\", value: form.getFieldValue().ncm_id });\r\n\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: lista });\r\n }\r\n\r\n async function onChangeProID(pro_id) {\r\n let listaItens = [...listaSelectProd]\r\n let produto = listaItens.filter(pro => pro.key === pro_id)[0];\r\n let filtros = !!produto.pro_id ? `idProduto=${produto.pro_id}` : '';\r\n filtros += !!produto.prg_id ? `&idProdutoGrade=${produto.prg_id}` : '';\r\n let listaPrecoTemp = (await api.get(`ListaPreco/ListaPrecoPadraoProduto?${filtros}`)).data;\r\n form.setFieldsValue({ ltp_id: listaPrecoTemp[0].ltp_id });\r\n produto.lpi_valorvenda = listaPrecoTemp[0].lpi_valorvenda;\r\n await popularFormProduto(produto);\r\n carregarSelectPaginados();\r\n };\r\n\r\n async function onPressEnterProCodigo(campo) {\r\n let codigoEan = campo.target.value.trim();\r\n let dadosRequisicao = await api.get(`Produto/ListaProdutoFiltro?filtro=${codigoEan}`);\r\n if (!!dadosRequisicao.data && dadosRequisicao.data.items.length > 0) {\r\n let dadosProduto = dadosRequisicao.data.items[0];\r\n await popularFormProduto(dadosProduto);\r\n adicionarItem(dadosProduto);\r\n if (!!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n }\r\n };\r\n\r\n const togglePesquisa = () => {\r\n setBuscarProdutosCodBarra(!buscarProdutosCodBarra);\r\n };\r\n\r\n function onChangeQuantidade() {\r\n recalcularValorTotal();\r\n };\r\n\r\n function onChangeValorUnitario() {\r\n recalcularValorTotal();\r\n };\r\n\r\n function onClickBtnCancelar() {\r\n cancelar();\r\n };\r\n\r\n function onClickBtnAdicionar() {\r\n adicionarItem();\r\n }\r\n\r\n function recalcularValorTotal() {\r\n let total = 0;\r\n total = parseFloat(parseFloat(form.getFieldValue().oit_qtde) * parseFloat(form.getFieldValue().oit_valorunitario));\r\n form.setFieldsValue({ valorTotalItem: total.toFixed(2) });\r\n };\r\n\r\n function cancelar() {\r\n setExibirDetalhes(false);\r\n setDadosDetalhes({});\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n if (btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n }\r\n };\r\n\r\n async function popularFormProduto(produto) {\r\n let valorVenda = (!!produto.lpi_valorvenda ? produto.lpi_valorvenda : 0);\r\n setExibirDetalhes(true);\r\n form.setFieldsValue({\r\n oit_qtde: 1,\r\n oit_valorunitario: valorVenda,\r\n valorTotalItem: valorVenda\r\n });\r\n setDadosDetalhes(produto);\r\n return produto;\r\n };\r\n\r\n function adicionarItem(item = {}) {\r\n let listaItens = [...dadosTabela.listaProduto];\r\n let dadosFormulario = form.getFieldValue();\r\n if (!buscarProdutosCodBarra) {\r\n if (btnEditando.editando) {\r\n item = listaItens.filter((prod) => (prod.numeroitem === dadosFormulario.numeroitem))[0];\r\n } else {\r\n item = { ...item, ...dadosFormulario, ...dadosDetalhes };\r\n }\r\n }\r\n let dados = {};\r\n if (!!validarItem(dadosFormulario)) {\r\n if (dadosFormulario.numeroitem !== undefined) {\r\n var dadosEditando = listaItens.filter((prod) => (prod.numeroitem === dadosFormulario.numeroitem))[0];\r\n } else {\r\n var dadosEditando = listaItens.filter((prod) => (prod.pro_id === item.pro_id && (!!!item.prg_id || item.prg_id === prod.prg_id)))[0];\r\n }\r\n if (!!dadosEditando) {\r\n dados = popularItemNota(false, item, dadosEditando, dados);\r\n if (!!btnEditando && btnEditando.editando) {\r\n dados = popularItemNota(true, item, dadosEditando, dados);\r\n btnEditando.setEditando(false);\r\n alterarItem(dados, listaItens, dadosEditando)\r\n } else {\r\n if (buscarProdutosCodBarra) {\r\n dados.numeroitem = listaItens.length + 1;\r\n incluirItem(dados, listaItens);\r\n } else {\r\n Modal.confirm({\r\n title: 'Atualizar?',\r\n icon: ,\r\n content: 'Item já cadastrado na nota, deseja atualizar suas informações?',\r\n okText: 'Atualizar',\r\n cancelText: 'Incluir',\r\n centered: true,\r\n onOk() {\r\n dados = popularItemNota(true, item, dadosEditando, dados);\r\n alterarItem(dados, listaItens, dadosEditando)\r\n },\r\n onCancel() {\r\n dados.numeroitem = listaItens.length + 1;\r\n incluirItem(dados, listaItens)\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n dados = popularItemNota(false, item, dados);\r\n dados.numeroitem = listaItens.length + 1;\r\n incluirItem(dados, listaItens)\r\n }\r\n setExibirDetalhes(false);\r\n setDesabilitarProd_id(false);\r\n limparCampos();\r\n btnEditando.setEditando(false);\r\n }\r\n };\r\n\r\n function validarItem(dados) {\r\n if (dados.quantidade === 0 || !!!dados.oit_qtde) {\r\n notification.warning({ message: 'Aviso!', description: 'Quantidade do Item Inválida!' });\r\n return false;\r\n }\r\n if (parseFloat(dados.oit_valorunitario) === 0 || dados.oit_valorunitario === null) {\r\n notification.warning({ message: 'Aviso!', description: 'Valor do Item Inválido!' });\r\n return false\r\n }\r\n return true;\r\n }\r\n\r\n function incluirItem(dados, listaItens) {\r\n listaItens.push(dados);\r\n dadosTabela.setListaProduto(listaItens);\r\n notification.success({ message: 'Aviso', description: 'Item incluído com sucesso!' });\r\n }\r\n\r\n function alterarItem(dados, listaItens, dadosEditando) {\r\n let indice = listaItens.findIndex((item) => (item === dadosEditando));\r\n listaItens.splice(indice, 1, { ...dados });\r\n dadosTabela.setListaProduto(listaItens);\r\n notification.success({ message: 'Aviso', description: 'Item editado com sucesso!' });\r\n }\r\n\r\n function popularItemNota(editando = false, item, dadosEditando) {\r\n let itemNota = {};\r\n let formulario = form.getFieldValue();\r\n if (editando) {\r\n itemNota = {\r\n ...dadosEditando,\r\n oit_qtde: parseFloat(!!formulario.oit_qtde ? formulario.oit_qtde : item.oit_qtde),\r\n oit_valorunitario: parseFloat(formulario.oit_valorunitario),\r\n };\r\n } else {\r\n itemNota = {\r\n pro_id: item.pro_id,\r\n prg_id: item.prg_id,\r\n oit_qtde: formulario.oit_qtde,\r\n numeroitem: !!dadosTabela.dadosItens && dadosTabela.dadosItens.length > 0 ? dadosTabela.dadosItens.length + 1 : 1,\r\n oit_valorunitario: parseFloat(formulario.oit_valorunitario ?? 0),\r\n prg_ean: item.prg_ean,\r\n pro_ean: item.pro_ean,\r\n ump_id: item.ump_id,\r\n pro_codigo: item.pro_codigo,\r\n pro_descricao: item.pro_descricao,\r\n pro_ean: item.pro_ean,\r\n ump_id: item.ump_id,\r\n grade: item.descricaograde,\r\n };\r\n }\r\n return itemNota;\r\n };\r\n\r\n function limparCampos() {\r\n form.setFieldsValue({ pro_id: null, pro_codigo: null, percdesc: 0, desconto: 0, percacresc: 0, acrescimo: 0, oit_qtde: 0 });\r\n };\r\n\r\n function editandoItem(dadosEditando) {\r\n let dadosTemp = {};\r\n let dados = dadosEditando;\r\n form.setFieldsValue({\r\n pro_id: dados.pro_id,\r\n prg_id: dados.prg_id,\r\n oit_qtde: dados.oit_qtde,\r\n oit_valorunitario: dados.oit_valorunitario,\r\n numeroitem: dados.numeroitem,\r\n valorTotalItem: dados.oit_qtde * dados.oit_valorunitario\r\n });\r\n dadosTemp = {\r\n prg_id: dadosEditando.prg_id,\r\n pro_descricao: dadosEditando.pro_descricao,\r\n pro_codigo: dadosEditando.pro_codigo,\r\n pro_ean: dadosEditando.pro_ean,\r\n prg_ean: dadosEditando.prg_ean,\r\n ump_id: dados.ump_id\r\n };\r\n setDadosDetalhes(dadosTemp);\r\n }\r\n\r\n return (\r\n
\r\n \r\n {!!!buscarProdutosCodBarra &&\r\n
\r\n \r\n { onChangeProID(dados) }} ordem={\"pro_descricao\"} setListaDados={setListaSelectProd} />\r\n \r\n \r\n }\r\n {!!buscarProdutosCodBarra &&\r\n \r\n \r\n {\r\n onPressEnterProCodigo(value)\r\n }} placeholder=\"Informe o Produto/Mercadoria\" />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {exibirDetalhes &&\r\n
\r\n \r\n
\r\n Produto: {dadosDetalhes.pro_descricao} {!!dadosDetalhes.descricaograde ? dadosDetalhes.descricaograde : ''}\r\n \r\n \r\n Código Interno: {dadosDetalhes.pro_codigo}\r\n \r\n \r\n Código de Barras: {!!dadosDetalhes.prg_ean ? dadosDetalhes.prg_ean : dadosDetalhes.pro_ean}\r\n \r\n {/* \r\n NCM: {dadosDetalhes.ncm_codigo}\r\n */}\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n { onChangeQuantidade() }} />\r\n \r\n \r\n \r\n onChangeValorUnitario()} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n { setAbrirModalManutencaoNota(false); }}dadosOperacao={dadosOperacao} dadosEndereco={dadosEndereco}\r\n />\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Button } from \"antd\";\r\nimport { EditOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions } from \"../../actions\";\r\nimport { setTela } from \"../../services/auth\";\r\nimport { gravarTela } from \"../../services/navigation\";\r\n\r\nexport default function EditarTabela(props) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n\r\n function editarRegistroTab() {\r\n props.onClick();\r\n setTimeout(() => {\r\n let dados = {};\r\n let url = window.document.location.href;\r\n let nomeForm = url.substring(url.lastIndexOf('/'), url.length);\r\n dados = props.registro;\r\n dados.formulario = nomeForm;\r\n dados.editar = true;\r\n setTela(JSON.stringify(dados));\r\n setTimeout(() => {\r\n gravarTela(nomeForm, manutencao);\r\n }, 300);\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }, 200);\r\n };\r\n\r\n return (\r\n \r\n \r\n { setEmissor(event.target.value) }} />\r\n \r\n \r\n {emissor === 0 &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n {cliente.pes_id == null &&\r\n \r\n { popularCheque() }} />\r\n \r\n }\r\n \r\n \r\n { popularCheque() }} />\r\n \r\n {emissor === 1 &&\r\n prevValues.radioemissocheque !== currentValues.radioemissocheque}>\r\n \r\n \r\n { buscaDadosEmissorCheque(e.target.value) }}\r\n onChange={(event, type) => {\r\n atualizaDetalhes();\r\n setCpfCnpj(event.target.value);\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { atualizaDetalhes() }} label=\"Conta Desde\" name=\"emissorclientedesde\" />\r\n \r\n \r\n }\r\n {cliente.pes_id == null &&\r\n \r\n \r\n ({cta.ctc_id} - {cta.ctc_descricao})\r\n }\r\n />\r\n \r\n \r\n }\r\n \r\n {listaCheques.map(cheque => (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Cheque {cheque.sequencia} de {listaCheques.length}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n buscarBanco(valor)} id={`ban_id${cheque.sequencia}`} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n validarDigito(valor)} id={`chq_c1${cheque.sequencia}`} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n validarDigito(valor)} id={`chq_c2${cheque.sequencia}`} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n validarDigito(valor)} id={`chq_c3${cheque.sequencia}`} />\r\n \r\n \r\n \r\n { valorPorExtenso(`chq_valor${cheque.sequencia}`, `valorExtenso${cheque.sequencia}`) }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!form.getFieldValue().ban_id &&\r\n
\r\n Gestor Web\r\n
\r\n }\r\n {!!form.getFieldValue().ban_id &&\r\n
\r\n \r\n {JSON.stringify(infoBanco) !== '{}' && !!infoBanco.ban_descricao ? infoBanco.ban_descricao : 'Banco Desconhecido'}\r\n
\r\n }\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!detalhesCheque.nomeemissor &&\r\n \r\n {detalhesCheque.nomeemissor}\r\n \r\n }\r\n {!!detalhesCheque.emissorclientedesde &&\r\n \r\n Cliente desde: {moment(detalhesCheque.emissorclientedesde).format('MM/YYYY')}\r\n \r\n }\r\n \r\n \r\n {!!detalhesCheque.cpfcnpjemissor &&\r\n \r\n CPF/CNPJ: {detalhesCheque.cpfcnpjemissor}\r\n \r\n }\r\n {!!detalhesCheque.rgieemissor &&\r\n \r\n RG/IE: {detalhesCheque.rgieemissor}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}","import React from 'react';\r\nimport { Row, Col, Typography, Carousel } from 'antd';\r\nimport { EnvironmentOutlined, PhoneOutlined, DesktopOutlined } from '@ant-design/icons';\r\n\r\nimport \"./index.less\";\r\n\r\nexport default function SlideLogin() {\r\n\r\n return (\r\n
\r\n {/*
\r\n \r\n
\r\n \r\n \r\n \r\n www.gestorweb.com.br | (55) 3535-4900\r\n \r\n \r\n | Três de Maio - RS - 98910-000\r\n \r\n \r\n \r\n \r\n \r\n \r\n Copyright © Gestor Web 2022 - Todos os direitos reservados.\r\n \r\n \r\n \r\n \r\n */}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Card, Row, Col, Form, Input, Button, message, notification } from \"antd\";\r\nimport { DesktopOutlined, SendOutlined, CloudUploadOutlined, CloseOutlined } from '@ant-design/icons';\r\nimport Dragger from 'antd/lib/upload/Dragger';\r\nimport html2canvas from 'html2canvas';\r\n\r\nimport api from \"../../services/api\";\r\n\r\nexport default function AberturaChamado({ activeOpen, setActiveOpen }) {\r\n const [file, setFile] = useState([]);\r\n const [activeIndex, setActiveIndex] = useState(true);\r\n const [form] = Form.useForm();\r\n\r\n const props = {\r\n name: \"file\",\r\n multiple: true,\r\n onchange(info) {\r\n let { status } = info.file;\r\n if (status !== 'uploading') {\r\n console.log(info.file, info.fileList);\r\n }\r\n if (status === 'done') {\r\n message.success(`${info.file.name} file uploaded successfully.`);\r\n } else if (status === 'error') {\r\n message.error(`${info.file.name} file upload failed.`);\r\n }\r\n },\r\n beforeUpload(arquivo) {\r\n let arquivos = [...file];\r\n let reader = new FileReader();\r\n reader.readAsDataURL(arquivo);\r\n reader.onload = function () {\r\n let dados = {\r\n uid: file.length,\r\n status: 'done',\r\n data: reader.result,\r\n name: `Anexo${file.length}.jpeg`\r\n }\r\n arquivos.push(dados);\r\n setFile(arquivos);\r\n }\r\n }, before(e) {\r\n console.log('Dropped files', e.dataTransfer.files)\r\n }, onRemove(arquivo) {\r\n let listaArq = [...file];\r\n setFile(listaArq.filter((arq) => arq !== arquivo));\r\n\r\n }\r\n };\r\n\r\n const handleOnClickMinus = () => {\r\n setActiveIndex(!activeIndex);\r\n };\r\n\r\n const handleOnClickClose = () => {\r\n setActiveOpen(false);\r\n setActiveIndex(true);\r\n setFile([]);\r\n form.resetFields();\r\n };\r\n\r\n const abrirChamado = (value) => {\r\n let helpDesk = {};\r\n let dadosTicket = {};\r\n helpDesk.etapaChamado = 2;\r\n dadosTicket.origem_ticket = \"Gestor Web\";\r\n dadosTicket.ambiente = `Resolução da Tela: ${window.screen.availWidth} x ${window.screen.availHeight} \\n Sistema Operacional: ${getOS()}\\n Navegador: ${browser()}`;\r\n dadosTicket.url = '';\r\n dadosTicket.dados_console = console.error;\r\n dadosTicket.descricao = value.descricao;\r\n dadosTicket.anexos = popularAnexos();\r\n api.post(`HelpDesk/AbrirChamadoSoftDesk`, dadosTicket).then(\r\n res => {\r\n let dados = res.data;\r\n if (!!dados.chamadoAberto) {\r\n notification.success({ description: `Chamado aberto com sucesso, protocolo: ${dados.numeroProtocolo}`, message: 'Aviso' });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n if (!!erro.response && !!erro.response.data && !!erro.response.data.message) {\r\n notification({ description: erro.response.data.message, message: 'Aviso' });\r\n }\r\n }\r\n ).finally(\r\n () => {\r\n handleOnClickClose();\r\n }\r\n )\r\n };\r\n\r\n function snapshoot() {\r\n setActiveIndex(false);\r\n setTimeout(() => {\r\n html2canvas(document.body).then((canvas) => {\r\n let arquivo = canvas.toDataURL('image/jpeg', 70 / 100);\r\n let anexos = [...file];\r\n anexos.push({ uid: file.length, status: 'done', data: arquivo, name: `Anexo${file.length}.jpeg` });\r\n setFile(anexos);\r\n setActiveIndex(true);\r\n });\r\n }, 500);\r\n };\r\n\r\n\r\n function getOS() {\r\n var userAgent = window.navigator.userAgent,\r\n platform = window.navigator.platform,\r\n macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],\r\n windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],\r\n iosPlatforms = ['iPhone', 'iPad', 'iPod'],\r\n os = null;\r\n\r\n if (macosPlatforms.indexOf(platform) !== -1) {\r\n os = 'Mac OS';\r\n } else if (iosPlatforms.indexOf(platform) !== -1) {\r\n os = 'iOS';\r\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\r\n os = 'Windows';\r\n } else if (/Android/.test(userAgent)) {\r\n os = 'Android';\r\n } else if (!os && /Linux/.test(platform)) {\r\n os = 'Linux';\r\n }\r\n\r\n return os;\r\n };\r\n\r\n const browser = () => {\r\n\r\n let isOpera = (navigator.userAgent.indexOf(\"Opera\") != -1 || navigator.userAgent.indexOf('OPR') != -1);\r\n\r\n let isFirefox = navigator.userAgent.indexOf(\"Firefox\") != -1;\r\n\r\n let isSafari = navigator.userAgent.indexOf(\"Safari\") != -1;\r\n\r\n let isIE = (navigator.userAgent.indexOf(\"MSIE\") != -1) || (!!document.documentMode == true);\r\n\r\n let isEdge = !isIE && !!window.StyleMedia;\r\n\r\n let isChrome = navigator.userAgent.indexOf(\"Chrome\") != -1;\r\n\r\n return isOpera ? 'Opera' :\r\n isChrome ? 'Chrome' :\r\n isSafari ? 'Safari' :\r\n isFirefox ? 'Firefox' :\r\n isIE ? 'IE' :\r\n isEdge ? 'Edge' :\r\n \"Desconhecido\";\r\n };\r\n\r\n function popularAnexos() {\r\n let arquivos = [...file];\r\n let anexos = [];\r\n arquivos.forEach(arq => {\r\n let obj = {\r\n base64: arq.data,\r\n tipoArquivo: arq.data.split('data:')[1].split(';')[0],\r\n nome: arq.name\r\n }\r\n anexos.push(obj);\r\n });\r\n return anexos;\r\n };\r\n\r\n\r\n return (\r\n \r\n
\r\n \"Abrir ABERTURA DE CHAMADO\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n

\r\n \r\n

\r\n

\r\n Arraste seu Arquivo aqui...\r\n

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function Editar(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(1));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function Excluir(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(2));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function Duplicar(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(5));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function Adicionar(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(21));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function Imprimir(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(3));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function Explorar(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(4));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function Inutilizar(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(12));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function ImportarXML(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(6));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function NotaFiscalButton(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(9));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function EmitirNotaFiscal(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(10));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function CancelarEstorno(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(7));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function EmitirNotaFiscalTransferencia(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(11));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function LancamentoEntrada(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(13));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function LancamentoSaida(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(14));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function LancamentoSaida(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(15));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function Download(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(19));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function GerarEfdIcmsIpi(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(17));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Card, Button, Form, Input, notification, Alert } from \"antd\";\r\nimport { ArrowLeftOutlined, CheckOutlined, EyeOutlined, ShoppingOutlined, CloudUploadOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { getEmailUsuario, getStatusPlano, setStatusPlano } from \"../../services/auth\";\r\nimport { ModalPlano } from \"../../components/modals/\";\r\n\r\nexport default function Planos() {\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n const [recursosPlano, setRecursosPlano] = useState([]);\r\n const [alterarPlano, setAlterarPlano] = useState(false);\r\n const [listaPlanos, setListaPlanos] = useState([]);\r\n const [planoAtual, setPlanoAtual] = useState({});\r\n const [planoSelecionado, setPlanoSelecionado] = useState({});\r\n const [formAlterarPlano] = Form.useForm();\r\n const [status, setStatus] = useState(0);\r\n const enumStatus = {\r\n 'vencido': 0,\r\n 'semStatus': 1\r\n }\r\n\r\n useEffect(() => {\r\n listarPlanos();\r\n buscarStatus();\r\n }, []);\r\n\r\n function listarPlanos() {\r\n let lista = [];\r\n api.get(`LocalPlano/VerificarStatusPlano`).then(\r\n planoUsuario => {\r\n setPlanoAtual({ pla_nome: planoUsuario.data.plano.pla_nome, pla_valor: planoUsuario.data.plano.pla_valor, pla_id: planoUsuario.data.plano.pla_id, loc_id: planoUsuario.data.loc_id, lcp_id: planoUsuario.data.lcp_id });\r\n api.get(`Plano/ListarPlanosAtivos`).then(\r\n retornoPlanos => {\r\n retornoPlanos.data.items.forEach((listaPlano) => {\r\n let plano = listaPlano;\r\n plano.planoUsuario = false;\r\n if (plano.pla_id === planoUsuario.data.plano.pla_id) {\r\n plano.planoUsuario = true;\r\n };\r\n if (plano.pla_nivel >= planoUsuario.data.plano.pla_nivel) {\r\n lista.push(plano);\r\n }\r\n });\r\n lista.forEach((item) => {\r\n item.diferenciais = JSON.parse(item.pla_diferenciais);\r\n });\r\n lista = lista.reverse();\r\n setListaPlanos(lista);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n listarPlanoLocal();\r\n }\r\n );\r\n };\r\n\r\n function listarPlanoLocal() {\r\n let lista = [];\r\n api.get(`LocalPlano/RetornaPlanoLocal`).then(\r\n planoUsuario => {\r\n setPlanoAtual({ pla_nome: planoUsuario.data.plano.pla_nome, pla_valor: planoUsuario.data.plano.pla_valor, pla_id: planoUsuario.data.plano.pla_id, loc_id: planoUsuario.data.loc_id, lcp_id: planoUsuario.data.lcp_id });\r\n\r\n api.get(`Plano/ListarPlanosAtivos`).then(\r\n retornoPlanos => {\r\n retornoPlanos.data.items.forEach((listaPlano) => {\r\n let plano = listaPlano;\r\n plano.planoUsuario = false;\r\n if (plano.pla_id === planoUsuario.data.plano.pla_id) {\r\n plano.planoUsuario = true;\r\n };\r\n if (plano.pla_nivel >= planoUsuario.data.plano.pla_nivel) {\r\n lista.push(plano);\r\n }\r\n });\r\n lista.forEach((item) => {\r\n item.diferenciais = JSON.parse(item.pla_diferenciais);\r\n });\r\n lista = lista.reverse();\r\n setListaPlanos(lista);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n };\r\n\r\n function buscarStatus() {\r\n let status = getStatusPlano();\r\n if (status === 'VENCIDO') {\r\n setStatusPlano(enumStatus.vencido);\r\n }\r\n }\r\n\r\n function confirmarMudancaPlano(values) {\r\n api.get(`Usuario/validaSenhaAtual?email=${getEmailUsuario()}&senhaAtual=${btoa(values.senhaUsuario)}`).then(senhaValida => {\r\n if (senhaValida.data) {\r\n api.post(`LocalPlano/mudarLocalPlanoUsuario?codigoLocalPlano=${planoAtual.lcp_id}&novoPlano=${planoSelecionado.pla_id}`).then(\r\n retornoMudancaPlano => {\r\n notification.success({ message: 'Seu plano foi alterado com sucesso', description: `Bem-vindo ao plano ${planoSelecionado.pla_nome}` });\r\n setAlterarPlano(false);\r\n listarPlanos();\r\n formAlterarPlano.resetFields();\r\n }\r\n ).catch(\r\n erro => {\r\n notification.warning({ message: 'Não foi possível mudar o plano', description: 'Tente mais tarde. Se o problema persistir contate o suporte do Gestor Web.' });\r\n }\r\n )\r\n } else {\r\n notification.error({ message: 'Senha inválida!', description: 'Verifique a senha informada.' });\r\n }\r\n }).catch(erro => {\r\n notification.error({ message: 'Senha inválida!', description: 'Verifique a senha informada.' });\r\n });\r\n };\r\n\r\n function realizarUpgrade(record) {\r\n api.put(`LocalPlano/MudarLocalPlanoUsuario?codigoLocalPlano=${planoAtual.lcp_id}&novoPlano=${record.pla_id}`).then(\r\n res => {\r\n notification.success({ description: 'Plano alterado com sucesso!', message: 'Aviso' });\r\n voltarHome();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function renovarPlano() {\r\n let plano = { ...planoAtual };\r\n api.put(`Plano/AlteraDataValidadePlano?codigoLocal=${plano.loc_id}`).then(\r\n res => {\r\n notification.success({ description: 'Plano renovado com sucesso!', message: 'Aviso' });\r\n voltarHome();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n function voltarHome() {\r\n window.location = '/Home#';\r\n };\r\n\r\n return (\r\n\r\n
\r\n {!!!alterarPlano &&\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Você possui o Plano:\r\n \r\n \r\n \r\n
\r\n \r\n {planoAtual.pla_nome}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n R$\r\n \r\n \r\n \r\n \r\n {FormatNumber(planoAtual.pla_valor, true, false)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {listaPlanos.map((plano) => (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {plano.pla_nome}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n R$\r\n \r\n \r\n \r\n \r\n {FormatNumber(plano.pla_valor, true, false)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Por CNPJ\r\n \r\n \r\n {status === enumStatus.vencido && planoAtual.pla_id !== plano.pla_id && \r\n \r\n }\r\n {planoAtual.pla_id === plano.pla_id && }\r\n {status === enumStatus.semStatus && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n setOpenModal(false)} recursosPlano={recursosPlano} />\r\n \r\n }\r\n {!!alterarPlano &&\r\n
\r\n
\r\n \r\n
\r\n \r\n Para confirmar a mudança de plano é necessário informar sua senha.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n\r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Button, Tooltip } from \"antd\";\r\n\r\nimport { AberturaChamado } from \"../../components\";\r\n\r\nexport default function BotaoAbrirChamado() {\r\n\r\n const [activeOpen, setActiveOpen] = useState(false);\r\n\r\n const handleOnClickOpen = () => {\r\n setActiveOpen(true);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Form, Modal, Drawer } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, MinusOutlined, SaveOutlined } from '@ant-design/icons';\r\n\r\nimport ManutencaoClientes from '../../pages/clientes/manutencao';\r\n\r\nexport default function DrawerCliente({ openDrawer, setOpenDrawer, setCodigoCliente, dadosOrcamento }) {\r\n\r\n const [formulario] = Form.useForm();\r\n const nameForm = \"manutencaoCliente\"\r\n const [carregando, setCarregando] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n\r\n formulario.setFieldsValue({ cli_ativo: true });\r\n\r\n function fecharDrawer(idRetorno) {\r\n if (!!idRetorno) {\r\n setCodigoCliente(idRetorno);\r\n }\r\n formulario.resetFields();\r\n setOpenDrawer(false);\r\n };\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação e ignorar o que foi realizado até o momento?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n fecharDrawer();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n )\r\n};","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Select, Input } from \"antd\";\r\nimport { FormularioDinamico } from \"../../components\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function PesquisaCamposPersonalizados({formPesquisaAvancada, campoPerSelecionado, setCampoPerSelecionado, tipoFiltroPersonalizado, setTipoFiltroPersonalizado, tipoEntidade}) {\r\n const [condicao, setCondicao] = useState([]);\r\n const [camposPer, setCamposPer] = useState([]);\r\n\r\n function carregaCamposPersonalizados() {\r\n api.get(`CamposPersonalizados/ListarTodos?entidade=${tipoEntidade}&pagina=1&nroRegistros=1000&ordem=+cap_ordem`).then(res => {\r\n if (res.status === 200) {\r\n let key=0;\r\n res.data.dados.forEach((item) => (\r\n item.key = key++\r\n ))\r\n setCamposPer(res.data.dados);\r\n }\r\n }).catch(\r\n (erro) => {\r\n console.log(erro);\r\n alert('Erro ao carregar Campos personalizados!');\r\n }\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n api.get(`Enum/Listar?filtro=&nome=CondicaoFiltroCampoAdicional`).then(\r\n res => {\r\n setCondicao(res.data);\r\n }\r\n );\r\n carregaCamposPersonalizados();\r\n }, []);\r\n return (\r\n \r\n \r\n \r\n {\r\n return { label: `${item.cap_id} - ${item.cap_label}`, value: item.cap_id }\r\n })\r\n }\r\n onChange = {(valor) => {\r\n let campoPer = camposPer.filter(campo => campo.cap_id === valor)[0]\r\n if (!!campoPer){\r\n if (campoPer.cap_tipoelemento === 'select' || campoPer.cap_tipoelemento === 'dataPicker' || campoPer.cap_tipoelemento === 'checkbox'){\r\n setTipoFiltroPersonalizado(2);\r\n } else {\r\n setTipoFiltroPersonalizado(1); \r\n };\r\n setCampoPerSelecionado([campoPer]); \r\n } else\r\n setTipoFiltroPersonalizado(0);\r\n }}\r\n filterOption={(input, option) => option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0} />\r\n \r\n \r\n \r\n \r\n {\r\n return { label: `${item.value}`, value: item.key }\r\n })\r\n }\r\n filterOption={(input, option) => option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0} />\r\n \r\n \r\n { tipoFiltroPersonalizado==1 && \r\n \r\n \r\n \r\n \r\n \r\n }\r\n { tipoFiltroPersonalizado==2 && \r\n \r\n }\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Button, Col, Form, Input, notification, Row, Select, Table } from \"antd\";\r\nimport { CloseOutlined, DeleteOutlined, PlusOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { Data } from \"../../components\";\r\nimport { isNotNullOrEmpty } from \"../../services/funcoes\";\r\nimport apiWeb from \"../../services/apiWeb\";\r\n\r\n/**\r\n * Função de pesquisa avançada\r\n *\r\n * @param {Form} form Formulario onde serao setados \r\n * @param {function} funcaoRetorno Função onde será devolvida a expressao para enviar\r\n * @param {function} funcaoLimpar Função que sera executada ao limpar os filtros\r\n * @param {integer} telaFiltro Informe a tela a qual pertence a pesquisa (1-Cliente, 2-Produto, 3-Fornecedores, 4-Funcionarios, 5-Transportadores, 6-Vendedores, 7-Notas, 8-Condicionais, 9-Pedidos, 10-Peças Catalogo)\r\n * @param {boolean} retornarSempre Retorna sempre pelo funcaoRetorno mesmo não tendo expressão\r\n*/\r\n\r\nexport default function PesquisaAvancada({ form, funcaoRetorno, funcaoLimpar, telaFiltro, retornarSempre = false }) {\r\n const [listaCondicao, setListaCondicao] = useState([]);\r\n const [listaCondicaoReq, setListaCondicaoReq] = useState([]);\r\n const [listaCampos, setListaCampos] = useState([]);\r\n const [listaFiltros, setListaFiltros] = useState([]);\r\n const [ehBooleano, setEhBooleano] = useState(false);\r\n const [ehData, setEhData] = useState(false);\r\n\r\n //#region definições das contantes das listas de campos \r\n\r\n const listaCamposBooleano = [\r\n { key: 0 },\r\n { key: 5 },\r\n ];\r\n const listaCamposString = [\r\n { key: 0 },\r\n { key: 5 },\r\n { key: 6 },\r\n { key: 7 },\r\n { key: 8 }\r\n ];\r\n const listaCamposData = [\r\n { key: 0 },\r\n { key: 1 },\r\n { key: 2 },\r\n { key: 3 },\r\n { key: 4 },\r\n { key: 5 },\r\n { key: 8 }\r\n ]\r\n\r\n\r\n //#endregion\r\n\r\n useEffect(() => {\r\n popularListaCondicao();\r\n popularListaCampos();\r\n }, []);\r\n\r\n //#region funções para popular as constantes \r\n\r\n function popularListaCondicao() {\r\n apiWeb.get(`Enum/Listar?filtro=&nome=CondicaoFiltroCampoAdicional`).then(\r\n res => {\r\n setListaCondicaoReq(res.data);\r\n }\r\n );\r\n };\r\n\r\n function popularListaCampos() {\r\n apiWeb.get(`Enum/ListarFiltros?type=${telaFiltro}`).then(\r\n (res) => {\r\n let key = 0;\r\n res.data.forEach((campo) => {\r\n campo.key = key;\r\n key++;\r\n });\r\n setListaCampos(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n };\r\n\r\n //#endregion\r\n\r\n function adicionarFiltro() {\r\n let lista = [...listaFiltros];\r\n let dados = form.getFieldValue();\r\n if (validarFiltrosPreenchidos()) {\r\n let tipo = listaCampos.filter((campo) => campo.name === dados.campo)[0].type;\r\n let filtro = dados.filtro;\r\n if (tipo === 'DateTime') {\r\n filtro = moment(dados.filtro).format('YYYY-MM-DD');\r\n }\r\n \r\n let expressao = {\r\n key: lista.length,\r\n labelCampo: listaCampos.filter((campo) => campo.name === dados.campo)[0].label,\r\n campo: dados.campo,\r\n labelCondicao: listaCondicao.filter((condicao) => condicao.key === dados.condicao)[0].value,\r\n tipo: tipo,\r\n condicao: dados.condicao,\r\n filtro: filtro\r\n };\r\n lista.push(expressao);\r\n setListaFiltros(lista);\r\n limparCampos();\r\n }\r\n };\r\n\r\n function validarFiltrosPreenchidos() {\r\n let dados = form.getFieldValue();\r\n let retorno = false;\r\n if (!!dados.campo && isNotNullOrEmpty(dados.condicao) && !!dados.filtro) {\r\n retorno = true;\r\n } else {\r\n notification.warn({ description: \"Favor informe os dados para o filtro\", message: \"Aviso\" });\r\n }\r\n return retorno;\r\n };\r\n\r\n function aplicarFiltros() {\r\n let expressao = \"\";\r\n if (validarFiltrar()) {\r\n if (listaFiltros.length > 0) {\r\n expressao = JSON.stringify({ filtros: listaFiltros });\r\n } else {\r\n let dados = form.getFieldValue();\r\n expressao = JSON.stringify({ filtros: [{ campo: dados.campo, condicao: dados.condicao, filtro: dados.filtro, tipo: listaCampos.filter((campo) => campo.name === dados.campo)[0].type }] })\r\n }\r\n funcaoRetorno(expressao);\r\n } else {\r\n if (retornarSempre) {\r\n funcaoRetorno(null);\r\n } else {\r\n notification.warn({ description: 'Favor informar o filtro da pesquisa!', message: 'Aviso' });\r\n funcaoLimpar();\r\n }\r\n }\r\n };\r\n\r\n function validarFiltrar() {\r\n let dados = form.getFieldValue();\r\n let retorno = false;\r\n if (listaFiltros.length > 0 || !!dados.campo && !!dados.condicao && !!dados.filtro) {\r\n retorno = true;\r\n }\r\n return retorno;\r\n }\r\n\r\n function limparCampos() {\r\n form.setFieldsValue({ campo: null, condicao: null, filtro: null });\r\n };\r\n\r\n function removerFiltros() {\r\n setListaFiltros([]);\r\n funcaoLimpar();\r\n //dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+pes_nome' } });\r\n };\r\n\r\n function removerFiltroLista(record) {\r\n let lista = [...listaFiltros];\r\n let retorno = lista.filter((dados) => dados.key !== record.key);\r\n setListaFiltros(retorno);\r\n };\r\n\r\n function buscarCondicao(dados) {\r\n let lista = [...listaCondicaoReq];\r\n let campo = listaCampos.filter((campo) => campo.name == dados)[0];\r\n let booleano = false;\r\n let data = false;\r\n if (campo.type === \"Boolean\") {\r\n lista = lista.filter((condicao) => listaCamposBooleano.find(camposKey => camposKey.key === condicao.key));\r\n booleano = true;\r\n setListaCondicao(lista);\r\n } else if (campo.type === \"String\") {\r\n lista = lista.filter((condicao) => listaCamposString.find(camposKey => camposKey.key === condicao.key));\r\n setListaCondicao(lista);\r\n } else if (campo.type === \"DateTime\") {\r\n lista = lista.filter((condicao) => listaCamposData.find(camposKey => camposKey.key === condicao.key));\r\n data = true;\r\n setListaCondicao(lista);\r\n } else {\r\n setListaCondicao(listaCondicaoReq);\r\n }\r\n setEhData(data);\r\n setEhBooleano(booleano);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n { buscarCondicao(dados) }}\r\n >\r\n {listaCampos.map(\r\n (campo) => (\r\n {campo.label}\r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaCondicao.map(\r\n (condicao) => (\r\n {condicao.value}\r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n {ehData ?\r\n :\r\n \r\n {ehBooleano ?\r\n :\r\n \r\n }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaFiltros.length > 0 &&\r\n \r\n
\r\n
(\r\n
{labelCampo}
\r\n ),\r\n }, {\r\n title: \"Condição\",\r\n render: ({ labelCondicao }) => (\r\n
{labelCondicao}
\r\n ),\r\n }, {\r\n title: \"Filtro\",\r\n render: ({ filtro, tipo }) => (\r\n
{tipo === \"DateTime\" ? moment(filtro).format(\"DD/MM/YYYY\") : filtro}
\r\n ),\r\n }, {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n \r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Form, Input } from 'antd';\r\nimport { MaskedInput } from 'antd-mask-input';\r\n\r\nexport default function InputCep(props) {\r\n\r\n const mask = '00000-000';\r\n\r\n class NovoValor extends React.Component {\r\n\r\n onChange = (e, a) => {\r\n const { value } = e.target;\r\n let data = value;\r\n\r\n this.props.onChange(data.replace(/\\D/g, \"\"));\r\n };\r\n\r\n onBlur = (e) => {\r\n if (!!props.onBlur) {\r\n props.onBlur(e);\r\n }\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!!props.onKeyUp) {\r\n props.onKeyUp(e);\r\n }\r\n }\r\n\r\n onPressEnter = (e) => {\r\n if (!!props.onPressEnter) {\r\n props.onPressEnter(e);\r\n }\r\n };\r\n\r\n onFocus = (e) => {\r\n if (!!props.onFocus) {\r\n props.onFocus(e);\r\n }\r\n };\r\n\r\n onKeyPress = (e) => {\r\n if (!!props.onKeyPress) {\r\n props.onKeyPress(e);\r\n }\r\n };\r\n\r\n render() {\r\n const { value } = this.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n class InputCep extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { value: '' };\r\n }\r\n\r\n onChange = value => {\r\n this.setState({ value });\r\n if (!!props.onChange) {\r\n props.onChange();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n };\r\n\r\n return (\r\n \r\n );\r\n};","import React, { useState } from \"react\";\r\nimport { Input, Form } from \"antd\";\r\n\r\n/*\r\n Ao utilizar o componente não setar valor para constantes como por exemplo setValorPedido(valor), pois isso fará com que o focus saia do input\r\n*/\r\n\r\nexport default function InputPercentual(props) {\r\n\r\n /* props.percent ou props.cifrao removido, pois ao tentar utilizar o backspace não funciona */\r\n function formatNumber(value) {\r\n let precisao = !!props.precision ? props.precision : props.precision == 0 ? 0 : 2;\r\n if (!(!!value) || isNaN(value)) {\r\n value = !!props.initialValue ? props.initialValue : '0.00';\r\n }\r\n value = parseFloat(value).toFixed(precisao);\r\n value += '';\r\n const list = value.split('.');\r\n const prefix = list[0].charAt(0) === '-' ? '-' : '';\r\n let num = prefix ? list[0].slice(1) : list[0];\r\n let result = '';\r\n while (num.length > 3) {\r\n result = `.${num.slice(-3)}${result}`;\r\n num = num.slice(0, num.length - 3);\r\n }\r\n if (num) {\r\n result = num + result;\r\n }\r\n return `${prefix}${result}${list[1] ? `,${list[1]}` : ',00'}`;\r\n }\r\n\r\n class InputPercentual extends React.Component {\r\n onChange = e => {\r\n const { value } = e.target;\r\n let precisao = !!props.precision ? props.precision : props.precision == 0 ? 0 : 2;\r\n let valorTemp = value;\r\n valorTemp = valorTemp.replace('%', '');\r\n valorTemp = valorTemp.replaceAll(',', '').replaceAll('.', '');\r\n if (parseFloat(valorTemp).toString().length <= precisao) {\r\n let zeros = '0'.repeat(precisao);\r\n let valDivisao = 1 + zeros;\r\n valorTemp = parseFloat(valorTemp / valDivisao).toFixed(precisao);\r\n } else {\r\n valorTemp = valorTemp.slice(0, valorTemp.length - precisao) + '.' + valorTemp.slice(valorTemp.length - precisao);\r\n }\r\n if (valorTemp > props.max) {\r\n valorTemp = parseFloat(props.max);\r\n }\r\n if (valorTemp < props.min) {\r\n valorTemp = parseFloat(props.min);\r\n }\r\n valorTemp = valorTemp.toString();\r\n const reg = /^-?\\d*(\\.\\d*)?$/;\r\n if ((!isNaN(valorTemp) && reg.test(valorTemp)) || valorTemp === '' || valorTemp === '-') {\r\n this.props.onChange(valorTemp);\r\n }\r\n\r\n };\r\n\r\n onBlur = () => {\r\n const { value, onBlur, onChange } = this.props;\r\n if (!!value) {\r\n let valueTemp = value.toString();\r\n valueTemp = valueTemp.replace('%', '');\r\n\r\n if (valueTemp.charAt(valueTemp.length - 1) === '.' || valueTemp === '-') {\r\n valueTemp = valueTemp.slice(0, -1);\r\n }\r\n if (valueTemp > props.max) {\r\n valueTemp = parseFloat(props.max);\r\n }\r\n if (valueTemp < props.min) {\r\n valueTemp = parseFloat(props.min);\r\n }\r\n onChange(valueTemp.replace(/0*(\\d+)/, '$1'));\r\n if (onBlur) {\r\n onBlur();\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n const { value } = this.props;\r\n\r\n let valor = value;\r\n if (props.somenteValorPositivo !== null && props.somenteValorPositivo !== undefined) {\r\n valor = parseFloat(value);\r\n if (!!props.somenteValorPositivo) {\r\n if (valor < 0) {\r\n valor = valor * -1;\r\n }\r\n }\r\n valor = valor.toString();\r\n if (valor.indexOf('.') > -1 && valor.split('.')[1].length < 2) {\r\n valor += '0';\r\n }\r\n }\r\n\r\n return (\r\n (this.myInputRef = c)}\r\n {...this.props}\r\n value={formatNumber(valor)}\r\n disabled={!!props.disabled}\r\n onChange={this.onChange}\r\n onBlur={this.onBlur}\r\n style={!!props.style ? props.style : {}}\r\n onFocus={this.onFocus}\r\n precision={!!props.precision ? props.precision : 2}\r\n placeholder={!!props.placeholder ? props.placeholder : ''}\r\n maxLength={18}\r\n className='text-right'\r\n />\r\n );\r\n }\r\n };\r\n\r\n class NumericInputDemo extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { value: 0 };\r\n }\r\n\r\n onChange = value => {\r\n this.setState({ value });\r\n if (!!props.onChange) {\r\n props.onChange();\r\n }\r\n };\r\n\r\n onBlur = () => {\r\n if (!!props.onBlur) {\r\n props.onBlur();\r\n }\r\n };\r\n\r\n onPressEnter = () => {\r\n if (!!props.onPressEnter) {\r\n props.onPressEnter();\r\n }\r\n };\r\n\r\n onFocus = () => {\r\n if (!!props.onFocus) {\r\n props.onFocus();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\n\r\nexport default function NotaFiscalEntradaButton(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(9));\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};","import { Button, Col, Progress, Row, Spin, notification } from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport api from \"../../services/api\";\r\nimport { Paper, Table, TableBody, TableCell, TableHead, TableRow } from \"@material-ui/core\";\r\nimport { CheckOutlined, CloseOutlined, LoadingOutlined } from \"@ant-design/icons\";\r\n\r\n\r\nexport default function SincronizarCatalogo() {\r\n const [progresso, setProgresso] = useState(0);\r\n const [exibeProg, setExibeProg] = useState(false);\r\n const [clienteOk, setClienteOk] = useState(false);\r\n const [produtoOk, setProdutoOk] = useState(false);\r\n const [deuErro, setDeuErro] = useState(false);\r\n const [listaErros, setListaErros] = useState([]);\r\n\r\n async function iniciarSincronização() {\r\n let lista = [];\r\n try {\r\n setExibeProg(true);\r\n setProgresso(0);\r\n let resCli = await api.post(\"Siger/SincClientes\");\r\n if (resCli.status == 200) {\r\n if (resCli.data.length > 0) {\r\n lista = resCli.data;\r\n }\r\n setClienteOk(true);\r\n setProgresso(50);\r\n }\r\n let resProd = await api.post(\"Siger/SincProdutos\");\r\n if (resProd.status == 200) {\r\n if (resProd.data.length > 0) {\r\n lista = resProd.data;\r\n }\r\n setProgresso(100);\r\n setProdutoOk(true);\r\n }\r\n } catch (ex) {\r\n setDeuErro(true);\r\n setListaErros(lista);\r\n }\r\n }\r\n\r\n return (
\r\n \r\n {!exibeProg &&
\r\n \r\n }\r\n {exibeProg && <>\r\n {!deuErro && }\r\n {deuErro && }\r\n
\r\n \r\n \r\n Modulo\r\n Status\r\n \r\n \r\n \r\n \r\n Clientes\r\n {(!clienteOk && deuErro) && }{!clienteOk && !deuErro && } />}{clienteOk && }\r\n \r\n \r\n Produtos\r\n {(!produtoOk && deuErro) && }{(!produtoOk && !deuErro) && } />} {produtoOk && }\r\n \r\n \r\n
\r\n {deuErro &&

Não foi possível sincronizar os dados do catalogo! Favor tente novamente mais tarde, ou entre em contato com nossa central de suporte!

}\r\n {(progresso == 100 && listaErros.length > 0) &&

Clientes/Produtos não importados!

\r\n \r\n \r\n {listaErros.map((err, idx) => (\r\n \r\n {err.mensagem}\r\n \r\n ))}\r\n \r\n
}\r\n }\r\n \r\n
);\r\n}","import { Table } from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport formatNumber from \"../../ValueObjects/formatNumber\";\r\n\r\nexport default function ItensPedidoCat({ formulario, dados }) {\r\n\r\n\r\n return (\r\n
\r\n (\r\n
\r\n {codProduto}\r\n
\r\n ),\r\n }, {\r\n title: 'Descrição',\r\n render: ({ descricao }) => (\r\n
\r\n {descricao}\r\n
\r\n )\r\n }, {\r\n title: 'Quantidade',\r\n render: ({ quantidade }) => (\r\n
\r\n {quantidade}\r\n
\r\n )\r\n }, {\r\n title: 'Valor Unitário',\r\n render: ({ valorUnitario }) => (\r\n
\r\n {formatNumber(valorUnitario, true, true, 3)}\r\n
\r\n )\r\n }, {\r\n title: 'Valor Total',\r\n render: ({ quantidade, valorUnitario }) => (\r\n
\r\n {formatNumber(valorUnitario * quantidade, true, true, 3)}\r\n
\r\n )\r\n }\r\n ]} />\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Tabs, Typography, Row, Col, Form, Divider, Input, Select, Button, Radio, Checkbox, Switch, Tooltip, Modal, notification, Spin, Descriptions, Steps } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormGW, InputPreco, FormularioDinamico, Data, SelectPaginacao } from \"../../components\";\r\nimport { getClienteCat, getEmailUsuario } from \"../../services/auth\";\r\nimport ItensPedidoCat from \"./itensPedidoCat\";\r\nimport FaturamentoPedidoCat from \"./faturamentoPedido\";\r\nimport { loadShoppingCartItems } from \"../../services/CarrinhoDB\";\r\nimport { GerarChavePedido } from \"../../services/funcoesGestor\";\r\n\r\nexport default function FecharPedidoCatalogo({ carregando, pages, aoSalvar, editando, formulario }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosPedidos, setDadosPedidos] = useState({});\r\n const [carregarPagina, setCarregarPagina] = useState(false);\r\n const [itensCarrinho, setItensCarrinho] = useState([]);\r\n\r\n useEffect(() => {\r\n buscarDados();\r\n }, []);\r\n\r\n async function buscarDados() {\r\n let dataAtual = new Date();\r\n let codCliente = getClienteCat();\r\n let dadosCliente = await buscarDadosCliente(codCliente);\r\n let obj = {\r\n codigoLocal: 1,\r\n chave: \"\",\r\n emailUsuario: getEmailUsuario(),\r\n nome: dadosCliente.nome,\r\n cliCpfCnpj: dadosCliente.cpfCnpj,\r\n endereco: dadosCliente.endereco,\r\n cidade: dadosCliente.nomeCidade,\r\n cep: dadosCliente.cep,\r\n estado: dadosCliente.codUF,\r\n observacao: \"\",\r\n itens: [],\r\n };\r\n loadShoppingCartItems(setItensCarrinho, (itens) => {\r\n itens.forEach(item => {\r\n let dado = {\r\n codProduto: item.codigo,\r\n descricao: item.descricao,\r\n quantidade: item.Qtd,\r\n valorUnitario: item.valor,\r\n }\r\n obj.itens.push(dado);\r\n });\r\n setDadosPedidos(obj);\r\n });\r\n }\r\n\r\n async function buscarDadosCliente(codigo) {\r\n let retorno =\r\n await api.get(`Ges040/BuscarClienteCodigo?codigo=${codigo}`);\r\n if (!!retorno.data) {\r\n return retorno.data;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n function salvarDados() {\r\n let dadosForm = formulario.getFieldValue();\r\n /*if (dadosForm.cpg_id == null) {\r\n notification.warn({ description: \"Favor preencher os dados de faturamento!\", message: \"Aviso\" });\r\n if (pages.pages != 1) {\r\n pages.setPages(1);\r\n }\r\n return;\r\n }*/\r\n let pedido = { ...dadosPedidos };\r\n let codCliente = getClienteCat();\r\n /* pedido.tipoCobranca = dadosForm.Codigo;\r\n pedido.condPagamento = dadosForm.cpg_id;\r\n */\r\n pedido.chave = GerarChavePedido(codCliente);\r\n carregando(true);\r\n api.post(\"Pedido/SalvarOrcamentoCat\", pedido).then(\r\n res => {\r\n notification.success({ message: \"Sucesso\", description: \"Pedido Incluído com Sucesso!\" });\r\n let dados = res.data;\r\n aoSalvar();\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n ).finally(\r\n () => {\r\n carregando(false);\r\n }\r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {dadosPedidos?.nome}\r\n \r\n \r\n {dadosPedidos?.cliCpfCnpj}\r\n \r\n \r\n {dadosPedidos?.endereco}\r\n \r\n \r\n {dadosPedidos?.cidade}\r\n \r\n \r\n {dadosPedidos?.cep}\r\n \r\n \r\n {dadosPedidos?.estado}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n {\r\n pages.setPages(e);\r\n }} current={pages.pages}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.pages === 0 &&\r\n }\r\n {pages.pages === 1 &&\r\n }\r\n \r\n */}\r\n \r\n \r\n \r\n );\r\n}","\r\nexport function GerarChavePedido(codCliente) {\r\n let data = new Date().getTime();\r\n let valor = data.toString().substring(4, data.length);\r\n let aleatorio = (Math.random() * 10).toString();\r\n let aux = aleatorio.replace(\".\", \"\").substring(0, 11);\r\n let chave = codCliente + valor + aux;\r\n chave = chave.substring(0, 13);\r\n return chave;\r\n}","import React, { useState } from 'react';\r\nimport { Row, Col, Button, Form, Modal, Drawer } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, MinusOutlined, SaveOutlined } from '@ant-design/icons';\r\n\r\nimport FecharPedidoCatalogo from '../../pages/fecharPedidoCatalogo';\r\n\r\n\r\nexport default function DrawerPedidoCat({ openDrawer, setOpenDrawer }) {\r\n const [proximaPag, setProximaPag] = useState(0);\r\n const [formulario] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n const [pages, setPages] = useState(0);\r\n\r\n function onClose() {\r\n setOpenDrawer(false);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n );\r\n}\r\n","import { CloseOutlined, ExclamationCircleOutlined, SaveOutlined } from '@ant-design/icons';\r\nimport { Button, Col, Drawer, Form, Row, Modal } from 'antd';\r\nimport React, { useState } from 'react';\r\nimport GrupoCatalogo from '../../pages/grupoCatalogo';\r\n\r\n\r\nexport default function DrawerGrupoCat({ openDrawer, setOpenDrawer, formCatalogo, listaGrupos, editandoGrp, sequenciaGrp, aoSalvarGrupos }) {\r\n const [formulario] = Form.useForm();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const onClose = () => {\r\n Modal.confirm({\r\n title: 'Cancelar?',\r\n icon: ,\r\n content: 'Deseja cancelar a operação?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n onCloseDrawer();\r\n }\r\n })\r\n }\r\n\r\n const onCloseDrawer = () => {\r\n aoSalvarGrupos();\r\n formulario.resetFields();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n \r\n );\r\n}","import { Button, Col, Form, Row, notification } from \"antd\";\r\nimport SelectProduto from \"../selects/selectProduto\";\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { useState } from \"react\";\r\nimport api from \"../../services/api\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport InputNumber from \"rc-input-number\";\r\nimport InputPreco from \"../inputPreco\";\r\n\r\nexport default function FiltroProdutoKit({ formulario, setListaItems, listaItems }) {\r\n\r\n const [{ listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [dadosProduto, setDadosProduto] = useState({});\r\n\r\n function adicionarItem() {\r\n let valores = formulario.getFieldsValue();\r\n let itemJaAdd = false;\r\n if (valores.produto_id !== undefined && valores.produto_id !== null) {\r\n\r\n if (valores?.valor_unitario == 0) {\r\n notification.warning({ description: 'Aviso!', description: 'Não é possivel adicionar item com valor 0' });\r\n return;\r\n }\r\n let produtoTemp = { ...dadosProduto };\r\n if (listaItems.length > 0) {\r\n if (produtoTemp.prg_id) {\r\n itemJaAdd = listaItems.find(i => i.prg_id == produtoTemp.prg_id)\r\n } else {\r\n itemJaAdd = listaItems.find(i => i.pro_id == produtoTemp.pro_id)\r\n }\r\n if (itemJaAdd) {\r\n notification.warning({ description: 'Aviso!', description: 'Item já Adicionado' });\r\n return;\r\n }\r\n }\r\n\r\n let listaTemp = [...listaItems];\r\n produtoTemp.qtde_item = valores.qtde_item;\r\n produtoTemp.pkc_valorunitario = valores.valor_unitario;\r\n produtoTemp.pkc_ativo = true;\r\n listaTemp.push(produtoTemp);\r\n setListaItems(listaTemp);\r\n setDadosProduto({});\r\n formulario.setFieldsValue({\r\n produto_id: null,\r\n qtde_item: null,\r\n valor_unitario: null,\r\n })\r\n } else {\r\n notification.warning({ description: 'Aviso!', description: 'Selecione um produto!' });\r\n return;\r\n }\r\n }\r\n\r\n async function buscarProduto(key) {\r\n let listaItensTemp = [...listaSelectPaginacao.itens];\r\n let produtoTemp = listaItensTemp.find(pro => pro.key == key);\r\n if (isObjetoDiffVazio(produtoTemp)) {\r\n produtoTemp.pkc_valorunitario = produtoTemp.lpi_valorvenda;\r\n setDadosProduto(produtoTemp);\r\n setExibirDetalhes(true);\r\n formulario.setFieldsValue({ qtde_item: 1, valor_unitario: produtoTemp.lpi_valorvenda ?? 0 });\r\n }\r\n }\r\n return (\r\n
\r\n \r\n
\r\n \r\n { buscarProduto(dados) }} ordem={\"pro_descricao\"} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAAArCAYAAAB4iWowAAAACXBIWXMAAC37AAAt+wH8h0rnAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAADvVJREFUeNrsnHeUFUUWxn/EgSEsgoqkkSSCoIA5sIiyBlBwXcwJdNeACgaURVwDunoMu+oaUVARAwbMAUUxgQIKSBREQBHBhKAgOdz9432tZVHdr9+bwYMO95w+73Xlrr5V9d3UZcyMHKkiUBZYzVb6vdDJwB7ATODhkn53ZVIwUTWgA9AaqA/UAsoBPwILgdnAaOCzre9qi6QHgNOd+5eBY4FVvwUTNQH6AScAVVO09SHwEHDX1ve2xdB0oCVwGzAZ2As4D/gWKALWbE4mOjdPZhgGnLQFTmZb4N9AGWAGcGkpYKBngf2AnYDlTnotHWufAtcCPwFjSpqJbgd65dHWWmA7YNkWOKEvAF30f4FW4e+dmgBHApWAacArTl43YLjgxhJgV293KgQaO2lDge5AC6AdUAWYAryVDxOdDQyMKfuaBjodWC+GaQu0B/4MvAh03QInuwywTjgO4G3goN85Aw0C/gF8oUW7Vi/+Y6Ch3ssUYAWwFJgjDFQRaATsC9Tx2nwV+AhoAFQGdhCM6QwsShpMeed/jRgG+gE4Dng9kPe0ftsDi1M8fHXgAGBHrYafgHkC5mnO5wbAnnrAQmAl8A0wVRMVovMcBkITU0/MFV3LNdkhqqFjoUgvaoWEiHeyjLmrnhMJIUOdvB2BHpqLQuBK4M2UDHSHGGhv4VCAM4H7gJ01JwAXJ7S5p1M3osO1wPo7aUOAiUBdIF4CM7PoutE2pVVm1sgpk++1vZkNNLOfLEzfm9lNZlYQU38/MxtpyTTTzK4zszaqU6g209DAQJ9NzGyoma1MGPMtZlYzZsyzvfK1ld4r0FavlPNYU+UP1n1lM3tbaXcr7XYzm2pmX2v85QLt9Pb6/6+ZXa7/87x3/rGZ9UsaV/SnipktDTzcySXAQHua2bKUL3OemW3n1T/ccqNOqvdNDnXuL0afSx3Gda83vHK7mtlfYtrokXIuT9ZzYWaNnfr7Kq2C5rqCmdUXI5mZtVd+gZhutJm1MLNjlF9H+Y3M7EuldVTarSqflYkOCTzYNyXAQDXMbH2g7R/NbIaZrQjkTXXqV9FuGKIfAmnzVa92joz3jNNnM8udVptZLe/ZX/fKTEnY1c5NOZ+XmtljZraN6s3ydu8rtHO4de5S2UvM7FEzG+zlLzez27y0V1SnkZkdaWbjk8YVYaKWMSJiceleD48AXAXcIjy0jc7gS5z8XYFTgEckKVTy6g8EbgC+A7ZV+W7A0cD/VGY1cJY069cA2zv15wA3OniorISFiIYHnmOa+l0oPNMTaO7kFwiTdEuYi928+9lqrxLwVcr5nCl8+jUwS9KUS4cC4wOYcC1ws8B2Gy9/uObuQietswSlecAzUgeQDRPdEVgdF3gcV1Uce7e427/uMbPLnPL1A20+FcPNz3vlPlD6XwNt9Ixpo9DMygbSp3v1Ryasqt0D/U2KKftpoOxOCTtRRO+pn3x29opqY3kCDtvfS7vEzEbpmF9uZh/GHN0VEubu+DTH2ZDAw57hFa6TYltf5pQ/JZC/fcxAdvPKrVR605h+bjGzeikn3ge4YxLK3hDo69AEfOLTFVmY6ONiwoMz1U7bQF4zM1vgAek+OuKjI6+8BIL3vLpLzOzPMX2uD2DG4HG2PrBJlfXu10ukLUjY2OYmbN8AV0ucLuOkbZTo7lJlieFzgO+lZXXpIm2/D+nIHFdC+pddYkwHIRqXsr5LlxRjbOV1ZKJj3KV6wPOybU6VBrqZbJ5LdcTV0jG4Dtgf+FxK2EqCFadJXTLba7sccIa0/EuS9EShzD8FGivI4aEbB9J65lC/njBD58A5HykRe+gaJezzbjGZyH85y6QnC9FiKfAqO2nbJbS9HhhbjLHdKiborgVUX/iolTBfRZVr5jDzadLvFAoXlZWea510fL2ElSYBpwqDrhEzvQrUll6qhcoflMREc1MwwQ+yi1UANmhwV0rBFaIqxXyh0dg+0ETdLaVmiDrq6pmgcU9D/iJZE7NLoxfhM1GFLGahjcUY2zkC06dqYbUTUL5Hlvl/iYmnyNB6RIICNWK22VI6LpJytIvm+BDtYl1l+iiXMPc/v6iZgbwjhexxJJ5hXpnuCUy0wrvfKEZYHZDYQjTf+T8DOFBjOh84LKbOPdq1PsrzRa0ILIQCMQCBI9f3bliVxfxSPs9x9VDdVjriR0li6unN12y97H5ZGAjV76i2vtHvCmCErqYyj7zo2B0HSLoOSmeVYpRzB2UBeqO98h8laMA3loDeKbr2MLNhMaD79izAOklx9kSgvYYxZVsEyj6cAKxXBnRJ2a4yZvay6s+RxIuZVZf2v7ZT9hGVOyHHPs532m/gpM8yszud+zEqN80r9zN4Xg08GODWR8k4pcXRhoS88YGV2KeEAPBE4ESgk2Mriqh5AMv52CSOQpjq0JiyRwXSJpWgkbWCdp3OEi7GAl86WG0E8KRn+3oQeDzHfh5xvAJe1f9DdML0dsp9ov6fkuG3Rch2tm3Myv5cuoRcd6LqgbbWmlnLLCvjb46+pY2ZHZul/GdeHy96+TO8/O9i7Ek4mmCXlgTsh42lc/FphxLcid5RvXqyCw6KGWtNx5ySz65e5IzxW6UtlB3SLXeO00dvqXPquSJ+JG1cKrSOZ3EeoVUxR7tWdbkSNE3g8GUS6a/2VtdU9fGOwHp1SWJ7C+s0FKj7VBjgYXH+GxJd5+q8rwEc71jKI5rq3X/uid7bCmPdr92xvdQOJ6rd+6TtjmgbYY0hev6mZNxN/R1usKSnkqDmGtcASajNA3h0qSz144TF5urUWJ5jX19o53ldwHyinvfyGPVNERmfs3PJOLWdEeLMQZY/zQy0NyaPdtrkaXw17RJu/91T1JmcRcudxnBckMV2lstOdLbqNNd9ZPsKlTUzm2BmfVPs8kk2zlGyKFiM4rGDp+i82cxedTGRS2cCfYvhAOZTuzzO6TJ5qgm6yd7j0kPaeZLI72fvHHROE8lEUqzJgsXK54j58OxclQLljpOvUg0yvvAL8nxvtdV+5KjWO0GSX+Hslkt8TORfDSVhJa3KFULrj5nZ3xMkGczsCDN7Kcb6HnkNvCQ7TUXV2cHM/iMLeBx9KbPNLgl9F0p6WROD+S5PMDOMj+l3gpmdl9DnpECd7XLYHebJ5ICZfaGV7+aXVZu7mdlJxcBEkTnEhB8vizH39HD6aCnzye5mlipkKPIoLHIktZU6k+eTu091oZB9LXH3SuGxmVmkvTrCP9VVb7UwyMc59F1L+Kia6i+SAi8b1Zf0Uuh4NmZb9UWOfqya+h4vJWXa3eFTeX02lk6qq6MDu1sKxR2dHeIRMi7OudIhwEjN8dfaVX/yzE0PSGMdebmeROTXXYK6m63Xpqu7SFdBnm20CuxmLhZyneGGKu3UHPuo7OzIUdppSusWwLbjzOywkJ5oK5U8Xa2der6jf8mVmgXSrpQP1tNkYskiWiipd6hwaFqaqxPgHSdtqCS0yG+7j3DiY8DBZII2Yi31W6nkaKWn7siHfJvmdzp6rtOxfIGj9Kuol95IR2D9FO2Pk/X/LB3VkUBwgI61msBlUqVUIBOO7St3tzLRZqSNKTX7STRF9slPHJ3XtdJXPUfGI3G47F5HawfpIOaYqfu20nVVFZ6sJoYYC+wj21gn2SYHk/FkPJ9fYs4WS1M9PZsBdivlR2VTWuYLitHHUF1NxDyvAVeQieiNRP/2wDEykUSxf1Vl8e8idUVtfnFtOdZRfxyrMlFc4QQpICETPdvHMYuE6Q8Obvc2s2dlWL3Ry2ut9Mf0u4+Xf4WZPWlmz3kupwea2XAB0cVmNlfqA9/ltZ8Dhq8V0L7fzD6RUXiIY1BNe12WoAxsLXAdck1u6QQ+zJXJoqpT9wMzOyomUsfM7N407rF/1Ktxgm3rOi9vcIINrYnS/5lFc31MDBM9F/AmMFniG+chSU2M0YWNMbO6DgN00GKYIc+H1+RCW+C5Pc+L0WE9msYzoDSI2m/GxHf5cWHjPMVoRG877icu9Ve5ATF+5P0CTPOEdkaX3s/hWfZzYvhGxgQ8nBlIv84JsyJgWJ0VSL/DCYcalDSu0gCsRzj/93QUnh30/2H9tnWczFwvvihU/AYnrRdwPRmPwqs8Y+XpMeNoJynnaDI+4hHtx6Y+5nHUWMbWTpLSXvbyZwsgu9RXhvU7yIQ+3efld2LTkOo7Ba67Coe1ShxVKdiJXOexaUprp/sFOk5WeU5405w6UVTJMi9sqaNMAwcrqDCi4SrfN2aXiy43pDytgrCjo3Bs7gRsRthqZ5mOIhePmSrT3TG0zlKdVkqb7+C5ymb2ruocp7S1MiaX6uMMM/vK0/hepP9v6X6cF4ka0VcOIE1Lo514L/cYS7KtXZTyOaqp/AgHB032rPw3yafK5JO0Q6CdqxR/NtTM1gnkRwthvROW3SBNmHdpEfFfk74FMp8NjOxa0ZdEJkhn0pKMk3tELzk2N5eme3q2jbrKkQks8HVwIe+GDVnyQ7ScTNTHRWQCEvpq3I9LW30zmQCKMrJzvR3TzgB5O0RfKonm5kEy4UHRM8+WjXRI0qBKCxONcCbqKMdoOVq/kavIjvzaHTb6cNT3/Drm7nCZGbLpkCKqG8hv6jFHWrqYjPPY2Z6xdYOeo7auPmKyaVosP0jR2FCuK3sF2q4nnFVHGHFBKhNKKTnOamrbjo6bRZ7o3lr3i5yjbb2nS3nfOX4eiOmnguPG4kpn65y+kE7GpdZ5PFNruan2k/uMK6IPcNyVLSY0POQSc5jUGNeaWZe0YylNVvV3Y74gEl2LvfyxXv4BXv6zZna6dCgX6v5rB4P0C3zrqb+ZXe19KeWzzfS8bzhW+HIC1eUd36AJCrOeJv3RTvn2VZqY6HrvpQ7L8j2h/oE2+qcA1tVU9honbWFC+YM30/M2UDCB/4GqPsXY/UqtniiiZ+SIFl3vefmvOHmrHFDt0vVkAv6eJ/MZ3whQL5XR82J+CWD8TmUWydLe2cNRn0gP8+Zmet4FEiKOl5vHMOmDLiTzOZ4pJdVRWs/GP4qx1I0VG8+vP2hZV5JORC8kWN+ryL8m+u7RUjGFG7VbJOXgBgfAt5MEuFEvdPJv8NxFZCJiIwPsrWwaEVMs+v8A5sj4l5xC8FkAAAAASUVORK5CYII=\"","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Form, message, Empty, Select, Input, Button, InputNumber, Checkbox, Switch } from 'antd';\r\nimport { SortableContainer, SortableElement } from 'react-sortable-hoc';\r\nimport arrayMove from 'array-move';\r\nimport { PlusOutlined, CloseOutlined, EyeTwoTone } from '@ant-design/icons';\r\n\r\nimport api from '../../services/api';\r\nimport { ItemFormulario, TiposElementosFormulario } from './pages';\r\nimport { ModalPersonalizacaoFormulario } from \"../../components/modals/\";\r\n\r\nexport default function EditorFormulario({elementosFormulario, setElementosFormulario}) {\r\n\r\n const objElementoFormularioEdicao = { indice: null, elemento: null };\r\n\r\n const [ formEditor ] = Form.useForm();\r\n const [ openModalPersonalizacao, setOpenModalPersonalizacao ] = useState(false);\r\n const [ elementoEdicao, setElementoEdicao ] = useState(objElementoFormularioEdicao);\r\n\r\n useEffect(() => formEditor.resetFields(), [elementoEdicao]);\r\n\r\n const adicionarElemento = values => {\r\n if (values.widget === \"upload\") {\r\n values.valuePropName = \"file\";\r\n values.children = \"Clique aqui para anexar um arquivo...\"\r\n values.widgetProps = {\r\n action: `${api.defaults.baseURL}/arquivos/upload`,\r\n headers: {\r\n Authorization: 'Bearer ' + eval('localStorage.getItem(\"@Aflow-Token\")')\r\n }\r\n };\r\n }\r\n console.log('elementos', [...elementosFormulario, values]);\r\n if (elementoEdicao.indice === null) setElementosFormulario([...elementosFormulario, values]);\r\n else {\r\n let listaElementos = [...elementosFormulario];\r\n listaElementos[elementoEdicao.indice] = values;\r\n setElementosFormulario(listaElementos);\r\n }\r\n setElementoEdicao(objElementoFormularioEdicao);\r\n formEditor.resetFields();\r\n }\r\n\r\n const tratarErro = errorInfo => {\r\n errorInfo.errorFields.map((field) => field.errors.map((erro) => message.warning(erro, 2 * errorInfo.errorFields.length)));\r\n };\r\n\r\n const editarElemento = indiceElemento => {\r\n setElementoEdicao({ indice: indiceElemento, elemento: elementosFormulario[indiceElemento] });\r\n }\r\n\r\n const excluirElemento = indiceElemento => {\r\n let listaElementos = [...elementosFormulario];\r\n listaElementos.splice(indiceElemento, 1);\r\n setElementosFormulario(listaElementos);\r\n setElementoEdicao(objElementoFormularioEdicao);\r\n formEditor.resetFields();\r\n }\r\n\r\n const onSortEnd = ({oldIndex, newIndex}) => {\r\n let listaElementos = [...elementosFormulario];\r\n listaElementos = arrayMove(listaElementos, oldIndex, newIndex);\r\n setElementosFormulario(listaElementos);\r\n setElementoEdicao(objElementoFormularioEdicao);\r\n formEditor.resetFields();\r\n };\r\n\r\n const SortableItem = SortableElement(({value, sortIndex}) => editarElemento(sortIndex)} fnExcluir={() => excluirElemento(sortIndex)} />);\r\n\r\n const SortContainer = SortableContainer(({children}) => {\r\n return
{children}
;\r\n });\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Estrutura do Formulário\r\n \r\n \r\n \r\n \r\n \r\n
\r\n (e.target.tagName.toLowerCase() === \"path\" || e.target.tagName.toLowerCase() === \"svg\" || e.target.tagName.toLowerCase() === \"button\")}>\r\n {elementosFormulario.map((elemento, indice) => \r\n \r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {elementosFormulario.length === 0 && }\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Adicionar Elementos ao Formulário\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Obrigatório\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return !!value.match(/[a-zA-Z0-9_.]/gm) ? value.match(/[a-zA-Z0-9_.]/gm).join('') : '';\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n prevValues.widget !== currentValues.widget}>\r\n {({ getFieldValue }) => {\r\n return (getFieldValue('widget') === 'radio-group' || getFieldValue('widget') === 'checkbox-group' || getFieldValue('widget') === 'select') ? (\r\n \">\r\n ;\r\n if (elemento === 'textarea') return ;\r\n if (elemento === 'number') return ;\r\n if (elemento === 'checkbox') return ;\r\n if (elemento === 'switch') return ;\r\n else return null;\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {elementoEdicao.indice !== null && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n setOpenModalPersonalizacao(false)} elementosFormulario={elementosFormulario} setElementosFormulario={setElementosFormulario}/>\r\n \r\n );\r\n\r\n}","import { getPermissao, getStatusFilial } from \"./auth\";\r\n\r\nconst tipoDeValidacao = {\r\n menu: 0,\r\n tela: 1\r\n};\r\n\r\nconst botoesValidacao = {\r\n Incluir: 0,\r\n Editar: 1,\r\n Excluir: 2,\r\n Imprimir: 3,\r\n Exportar: 4,\r\n Duplicar: 5,\r\n ImportarXML: 6,\r\n CancelarEstorno: 7,\r\n Cancelar: 8,\r\n NotaFiscal: 9,\r\n EmitirNotaFiscalDebito: 10,\r\n EmitirNotaFiscalTranferencia: 11,\r\n Inutilizar: 12,\r\n LancamentoEntrada: 13,\r\n LancamentoSaida: 14,\r\n LancamentoTransferencia: 15,\r\n Consultar: 16,\r\n GerarEfdIcmsIpi: 17,\r\n Bordero: 18,\r\n Download: 19,\r\n Reprocessar: 20,\r\n Adicionar: 21\r\n};\r\n\r\nconst valuesBotoes = {\r\n 0: \"Incluir\",\r\n 1: \"Editar\",\r\n 2: \"Excluir\",\r\n 3: \"Imprimir\",\r\n 4: \"Exportar\",\r\n 5: \"Duplicar\",\r\n 6: \"ImportarXML\",\r\n 7: \"CancelarEstorno\",\r\n 8: \"Cancelar\",\r\n 9: \"NotaFiscal\",\r\n 10: \"EmitirNotaFiscalDebito\",\r\n 11: \"EmitirNotaFiscalTranferencia\",\r\n 12: \"Inutilizar\",\r\n 13: \"LancamentoEntrada\",\r\n 14: \"LancamentoSaida\",\r\n 15: \"LancamentoTransferencia\",\r\n 16: \"Consultar\",\r\n 17: \"GerarEfdIcmsIpi\",\r\n 18: \"Bordero\",\r\n 19: \"Download\",\r\n 20: \"Reprocessar\",\r\n 21: \"Adicionar\"\r\n};\r\n\r\nexport function validarPermissaoMenu(itemMenu) {\r\n let url = itemMenu.pagina.replace('/', '');\r\n if (!!!JSON.parse(getPermissao()) || JSON.parse(getPermissao()).length === 0) {\r\n return false;\r\n }\r\n let objPermissao = JSON.parse(getPermissao()).filter(perm => perm.pru_nome.toLowerCase() === url.trim().toLowerCase())[0];\r\n if (!!!objPermissao) {\r\n return false;\r\n }\r\n objPermissao.pru_permissoes = JSON.parse(objPermissao.pru_permissoes);\r\n let permissoes = objPermissao.pru_permissoes[0].sistema[0];\r\n if (!!!permissoes) {\r\n return false;\r\n } else {\r\n return !permissoes.acesso;\r\n }\r\n};\r\n\r\nexport function validarPermmissao(tipo = 1) {\r\n let url = window.location.href.split('/');\r\n if (JSON.parse(getPermissao())?.length > 0) {\r\n let objPermissao = JSON.parse(getPermissao()).filter(perm => { if (!!perm.pru_nome) { return perm.pru_nome.toLowerCase() === url[url.length - 1].trim().toLowerCase() } else { return false } })[0];\r\n if (!!!objPermissao) {\r\n return false;\r\n }\r\n objPermissao.pru_permissoes = JSON.parse(objPermissao.pru_permissoes);\r\n let permissoes = objPermissao.pru_permissoes[0].sistema[0];\r\n let retorno = false;\r\n if (tipo === tipoDeValidacao.menu) {\r\n retorno = permissoes.acesso;\r\n } else {\r\n retorno = permissoes.elementos;\r\n }\r\n return retorno;\r\n }\r\n};\r\n\r\nexport function validarPermissaoTela(metodo) {\r\n let retorno = true;\r\n if (!getStatusFilial()) {\r\n retorno = false;\r\n } else {\r\n let permissoes = validarPermmissao(1);\r\n if (!!permissoes) {\r\n let acao = retornaAcao(metodo);\r\n let permissao = permissoes.filter(elem => elem.metodo === acao);\r\n retorno = permissao.length > 0 ? permissao[0].acesso : false;\r\n }\r\n }\r\n\r\n return !retorno;\r\n};\r\n\r\nfunction retornaAcao(metodo) {\r\n let acao = \"\";\r\n switch (metodo) {\r\n case botoesValidacao.Incluir:\r\n acao = valuesBotoes[botoesValidacao.Incluir];\r\n break;\r\n case botoesValidacao.Editar:\r\n acao = valuesBotoes[botoesValidacao.Editar];\r\n break;\r\n case botoesValidacao.Excluir:\r\n acao = valuesBotoes[botoesValidacao.Excluir];\r\n break;\r\n case botoesValidacao.Imprimir:\r\n acao = valuesBotoes[botoesValidacao.Imprimir];\r\n break;\r\n case botoesValidacao.Exportar:\r\n acao = valuesBotoes[botoesValidacao.Exportar];\r\n break;\r\n case botoesValidacao.Duplicar:\r\n acao = valuesBotoes[botoesValidacao.Duplicar];\r\n break;\r\n case botoesValidacao.ImportarXML:\r\n acao = valuesBotoes[botoesValidacao.ImportarXML];\r\n break;\r\n case botoesValidacao.CancelarEstorno:\r\n acao = valuesBotoes[botoesValidacao.CancelarEstorno];\r\n break;\r\n case botoesValidacao.Cancelar:\r\n acao = valuesBotoes[botoesValidacao.Cancelar];\r\n break;\r\n case botoesValidacao.NotaFiscal:\r\n acao = valuesBotoes[botoesValidacao.NotaFiscal];\r\n break;\r\n case botoesValidacao.EmitirNotaFiscalDebito:\r\n acao = valuesBotoes[botoesValidacao.EmitirNotaFiscalDebito];\r\n break;\r\n case botoesValidacao.EmitirNotaFiscalTranferencia:\r\n acao = valuesBotoes[botoesValidacao.EmitirNotaFiscalTranferencia];\r\n break;\r\n case botoesValidacao.Inutilizar:\r\n acao = valuesBotoes[botoesValidacao.Inutilizar];\r\n break;\r\n case botoesValidacao.LancamentoEntrada:\r\n acao = valuesBotoes[botoesValidacao.LancamentoEntrada];\r\n break;\r\n case botoesValidacao.LancamentoSaida:\r\n acao = valuesBotoes[botoesValidacao.LancamentoSaida];\r\n break;\r\n case botoesValidacao.LancamentoTransferencia:\r\n acao = valuesBotoes[botoesValidacao.LancamentoTransferencia];\r\n break;\r\n case botoesValidacao.Consultar:\r\n acao = valuesBotoes[botoesValidacao.Consultar];\r\n break;\r\n case botoesValidacao.GerarEfdIcmsIpi:\r\n acao = valuesBotoes[botoesValidacao.GerarEfdIcmsIpi];\r\n break;\r\n case botoesValidacao.Bordero:\r\n acao = valuesBotoes[botoesValidacao.Bordero];\r\n break;\r\n case botoesValidacao.Download:\r\n acao = valuesBotoes[botoesValidacao.Download];\r\n break;\r\n case botoesValidacao.Reprocessar:\r\n acao = valuesBotoes[botoesValidacao.Reprocessar];\r\n break;\r\n case botoesValidacao.Adicionar:\r\n acao = valuesBotoes[botoesValidacao.Adicionar];\r\n break;\r\n }\r\n return acao;\r\n}","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/i-formas.6d3408f3.png\";","export default __webpack_public_path__ + \"static/media/i-alfinete.ffbe43fa.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEdWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTA4LTE5PC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjNkMzAzODk4LTFlZDctNDJlNC05M2Q2LThlZTA4NGNlNzMwNDwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5EZXNpZ24gc2VtIG5vbWUgLSAyPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlv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IYX5u2+dM+fC9Lj6tr6+7S3doU+f/pP1nZ0fTYH+hg3Tpj1rw5Qpx67p6+sR3MBhp0MngmJyl87kNVk2dcvg4Ix085+f/gAwdFNf34IU4AtTmI9umT37mC29vY9Pgf2kzd3df3tTd/dTt8ya9bTi7fRtT7yxt/f49Paj07eNbJ4+fTiF9sANnZ39a7u65t3S39+5PsumFT9++nk6Wv3+AuzBDh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAB6NABIAA7dAAIQIcOAAHYoQNAADp0AAjADh0AAtChA0AAdugAEIAOHQACsEMHgAB06AAQgB06AASgQweAAOzQASAAHToABGCHDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALfH/zsz2+Jhk75gAAAAASUVORK5CYII=\"","export default __webpack_public_path__ + \"static/media/i-bill.b0a3eb23.png\";","export default __webpack_public_path__ + \"static/media/i-code.096c1a79.png\";","export default __webpack_public_path__ + \"static/media/i-storage.e6a00b8a.png\";","export default __webpack_public_path__ + \"static/media/i-banco.6f49a172.png\";","import axios from 'axios';\r\nimport { getToken, logout, getEmpresa, getLocal, linkApi, linkApiGestor } from './auth';\r\nconst api = axios.create({ baseURL: window.location.href.indexOf('catalogo') > -1 ? linkApiGestor : linkApi });\r\n\r\napi.interceptors.request.use(async config => {\r\n const token = getToken();\r\n const empresa = getEmpresa();\r\n const local = getLocal();\r\n //config.headers.ApiKey =\"as123\";\r\n if (token) config.headers.Authorization = `Bearer ${token}`;\r\n if (empresa) config.headers.codigoempresa = empresa;\r\n if (local) config.headers.codigolocal = local;\r\n\r\n return config;\r\n});\r\n\r\napi.interceptors.response.use(function (response) {\r\n return response;\r\n}, function (error) {\r\n if (error.response.status === 401) {\r\n logout();\r\n }\r\n return Promise.reject(error);\r\n});\r\n\r\nexport default api;\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Table, Form, Tag, Modal } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { ModalEndereco } from \"../../components/modals/\";\r\nimport { isObjetoDiffVazio, validarDadosObj } from \"../../services/funcoes\";\r\n\r\nexport default function Endereco({produtorRural = false}) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosEndereco, setDadosEndereco] = useState(!!manutencao.dados && !!manutencao.dados.enderecos ? manutencao.dados.enderecos : []);\r\n const [form] = Form.useForm();\r\n const [openModalEndereco, setOpenModalEndereco] = useState(false);\r\n const [exibirPais, setExibirPais] = useState(true);\r\n\r\n const alterarPropriedadeEndereco = (key, coluna, checked) => {\r\n let newData = [...dadosEndereco];\r\n if (coluna === 'pee_enderecoprincipal' && checked) {\r\n let indexPrincipal = newData.findIndex((item) => true === item.pee_enderecoprincipal);\r\n if (indexPrincipal !== -1) {\r\n newData[indexPrincipal][coluna] = false;\r\n }\r\n newData[key][coluna] = checked;\r\n } else {\r\n let count = 0;\r\n newData.forEach(dados => {\r\n if (dados[coluna]) {\r\n count++;\r\n }\r\n });\r\n if (count > 1 || (checked && coluna === 'pee_ativo')) {\r\n newData[key][coluna] = checked;\r\n }\r\n }\r\n setDadosEndereco(newData);\r\n };\r\n\r\n const editEndereco = (record, indice) => {\r\n record.indice = indice;\r\n form.setFieldsValue(record);\r\n setOpenModalEndereco(true);\r\n };\r\n\r\n const removerEndereco = (record, indice) => {\r\n let dadosTemp = [...dadosEndereco];\r\n if (dadosTemp.length > 1) {\r\n dadosTemp = dadosTemp.filter((dados) => dados !== record);\r\n setDadosEndereco(dadosTemp);\r\n } else {\r\n Modal.warning({\r\n title: 'Aviso',\r\n icon: ,\r\n content: \"Deve se manter ao menos um endereço cadastrado!\",\r\n okText: 'Ok',\r\n centered: true\r\n\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ enderecos: dadosEndereco } } } });\r\n }, [dadosEndereco]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados) {\r\n if (!!manutencao.dados.enderecos) {\r\n setDadosEndereco(manutencao.dados.enderecos);\r\n }\r\n }\r\n }, [manutencao.dados]);\r\n\r\n return (\r\n\r\n
\r\n \r\n
\r\n \r\n \"Endereço(s)\" Endereço(s)\r\n \r\n Adicione o(s) endereço(s) do cliente aqui. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n
\r\n \r\n {record.log_logradouro}\r\n {(record.pee_numero !== '' && !!record.pee_numero) ? ', ' + record.pee_numero : ''}\r\n {(record.bai_nome !== '' && !!record.bai_nome) ? ', ' + record.bai_nome : ''}\r\n {(record.pee_complemento !== '' && !!record.pee_complemento) ? ', ' + record.pee_complemento : ''}\r\n {(record.cep !== '' && !!record.cep) ? ' - ' + record.cep :\r\n (record.cep_cep !== '' && !!record.cep_cep) ? ' - ' + record.cep_cep : ''}\r\n {(record.cid_descricao !== '' && !!record.cid_descricao) ? ' - ' + record.cid_descricao : ''}\r\n\r\n {(record.est_sigla !== '' && !!record.est_sigla) ? ' - ' + record.est_sigla : ''}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Tipo de Endereço',\r\n width: 80,\r\n render: ({ tpe_descricao }) => (\r\n
\r\n {tpe_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 80,\r\n align: 'center',\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEndereco(indice, \"pee_enderecoprincipal\", checked)}\r\n >\r\n Principal\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 80,\r\n align: 'center',\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEndereco(indice, \"pee_ativo\", checked)}\r\n >\r\n Ativo\r\n \r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Ainda não possui Endereço Cadastrado\r\n \r\n \r\n \r\n )\r\n }} dataSource={dadosEndereco} scroll={{ x: 960 }} />\r\n \r\n setOpenModalEndereco(false)} exibirPais={exibirPais} produtorRural={produtorRural} />\r\n \r\n\r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Table, Form, Modal, Tag } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { ModalOrgaoSubjacente } from \"../../components/modals\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\n\r\nexport default function OrgaoSubjacente() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [openModalOrgaoSubjacente, setOpenModalOrgaoSubjacente] = useState(false);\r\n const [listaOrgaoSubjacente, setListaOrgaoSubjacente] = useState(!!manutencao.dados && !!manutencao.dados.listaOrgaoPublico ? manutencao.dados.listaOrgaoPublico : []);\r\n const [form] = Form.useForm();\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ listaOrgaoPublico: listaOrgaoSubjacente } } } });\r\n }, [listaOrgaoSubjacente]);\r\n\r\n function editar(record, indice) {\r\n record.indice = indice;\r\n form.setFieldsValue(record);\r\n setOpenModalOrgaoSubjacente(true);\r\n };\r\n\r\n function excluir(id) {\r\n const lista = [...listaOrgaoSubjacente];\r\n const index = lista.findIndex((item) => id === item.pse_id);\r\n lista.splice(index, 1)\r\n setListaOrgaoSubjacente(lista);\r\n };\r\n\r\n const modalConfirmaExclusao = (record) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir o registro?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n excluir(record);\r\n }\r\n });\r\n };\r\n\r\n const alterarPropriedade = (key, coluna, checked) => {\r\n let newData = [...listaOrgaoSubjacente];\r\n newData[key][coluna] = checked;\r\n setListaOrgaoSubjacente(newData);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Órgãos Órgãos Subjacentes\r\n \r\n Adicione o(s) órgão(s) público(s) Aqui. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n alterarPropriedade(indice, \"pop_ativo\", checked)}\r\n >\r\n Ativo\r\n \r\n ),\r\n },\r\n {\r\n title: 'Nome',\r\n width: 150,\r\n render: ({ pop_nome }) => (\r\n
\r\n {pop_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Endereço',\r\n render: ({ pop_endereco, pop_numero, pop_bairro, pop_complemento, pop_cep, cep }) => (\r\n
\r\n \r\n {!!pop_endereco ? pop_endereco : \"\"}{!!pop_numero ? (', ' + pop_numero) : ''}\r\n {!!pop_bairro ? (', ' + pop_bairro) : ''}\r\n {!!pop_complemento ? (', ' + pop_complemento) : ''}\r\n {!!pop_cep ? (' - ' + pop_cep) : !!cep ? cep : ''}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nexport default function Email() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosEmail, setDadosEmail] = useState(!!manutencao.dados && manutencao.dados.emails ? manutencao.dados.emails : []);\r\n const [form] = Form.useForm();\r\n const [openModalEmail, setOpenModalEmail] = useState(false);\r\n\r\n const alterarPropriedadeEmail = (key, coluna, checked) => {\r\n const newData = [...dadosEmail];\r\n if (coluna === 'pem_emailprincipal' && checked === true) {\r\n const indexPrincipal = newData.findIndex((item) => true === item.pem_emailprincipal);\r\n if (indexPrincipal !== -1) newData[indexPrincipal][coluna] = false;\r\n }\r\n newData[key][coluna] = checked;\r\n setDadosEmail(newData);\r\n }\r\n\r\n const editEmail = (record, indice) => {\r\n record.indice = indice;\r\n form.setFieldsValue(record);\r\n setOpenModalEmail(true);\r\n };\r\n\r\n const removeEmail = (id) => {\r\n const newData = [...dadosEmail];\r\n const index = newData.findIndex((item) => id === item.pem_id);\r\n newData.splice(index, 1)\r\n setDadosEmail(newData);\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ emails: dadosEmail } } } });\r\n }, [dadosEmail]);\r\n\r\n const modalConfirmaExclusao = (record) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir o email ${record.pem_email} ?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n removeEmail(record.pem_id);\r\n }\r\n });\r\n };\r\n\r\n function adicionarEmail() {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ emails: dadosEmail } } } });\r\n setOpenModalEmail(false);\r\n }\r\n\r\n return (\r\n\r\n
\r\n \r\n
\r\n \r\n \"E-mail(s)\" E-mail(s) - (OPCIONAL)\r\n \r\n Adicione o(s) e-mail(s) do cliente aqui. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n (\r\n
\r\n {pem_email}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 68,\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEmail(indice, \"pem_emailprincipal\", checked)}\r\n >\r\n Principal\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 52,\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEmail(indice, \"pem_ativo\", checked)}\r\n >\r\n Ativo\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 92,\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEmail(indice, \"pem_enviarboleto\", checked)}\r\n >\r\n Enviar Boleto\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 140,\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEmail(indice, \"pem_enviarcobranca\", checked)}\r\n >\r\n Enviar Carta Cobrança\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 85,\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEmail(indice, \"pem_enviarnfe\", checked)}\r\n >\r\n Enviar NF-e\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n align: 'center',\r\n width: 114,\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEmail(indice, \"pem_enviarpromocao\", checked)}\r\n >\r\n Enviar Promoção\r\n \r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 132,\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeEmail(indice, \"pem_enviarvencparcela\", checked)}\r\n >\r\n Enviar Venc. Parcela\r\n \r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n fixed: 'right',\r\n key: 'x',\r\n width: 65,\r\n render: (record, obj, indice) => {\r\n return
\r\n \r\n
\r\n \r\n \r\n \r\n Ainda não possui E-mail Cadastrado\r\n \r\n \r\n \r\n )\r\n }} components={{\r\n body: {\r\n cell: EditableCell,\r\n },\r\n }} scroll={{ x: 960 }} dataSource={dadosEmail}\r\n />\r\n \r\n \r\n adicionarEmail()} />\r\n \r\n\r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Table, Form, Tag, Modal } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormatFone } from \"../../ValueObjects\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { ModalTelefone } from \"../../components/modals/\";\r\n\r\nexport default function Telefone() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosTelefone, setDadosTelefone] = useState(!!manutencao.dados && !!manutencao.dados.telefones ? manutencao.dados.telefones : []);\r\n const [form] = Form.useForm();\r\n const [openModalTelefone, setOpenModalTelefone] = useState(false);\r\n const tagPrincipal = ['Principal'];\r\n const tagsAtivo = ['Ativo'];\r\n const [editingKey, setEditingKey] = useState('');\r\n const isEditing = record => record.key === editingKey;\r\n\r\n const alterarPropriedadeTelefone = (key, coluna, checked) => {\r\n const newData = [...dadosTelefone];\r\n if (coluna === 'psc_principal' && checked) {\r\n const indexPrincipal = newData.findIndex((item) => true === item.psc_principal);\r\n if (indexPrincipal !== -1) {\r\n newData[indexPrincipal][coluna] = false;\r\n }\r\n newData[key][coluna] = checked;\r\n } else {\r\n let count = 0;\r\n newData.forEach(dados => {\r\n if (dados[coluna]) {\r\n count++;\r\n }\r\n });\r\n if (count > 1 || (checked && coluna === 'psc_ativo')) {\r\n newData[key][coluna] = checked;\r\n }\r\n }\r\n setDadosTelefone(newData);\r\n };\r\n\r\n const editaTelefone = (record, indice) => {\r\n record.indice = indice;\r\n form.setFieldsValue(record);\r\n setOpenModalTelefone(true);\r\n };\r\n\r\n const removeTelefone = (record, indice) => {\r\n const newData = [...dadosTelefone];\r\n const index = newData.findIndex((item) => record.psc_numero === item.psc_numero);\r\n newData.splice(index, 1)\r\n setDadosTelefone(newData);\r\n };\r\n\r\n const modalExcluirTelefone = (record, indice) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir o Telefone ${record.psc_numero} ?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n removeTelefone(record, indice);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ telefones: dadosTelefone } } } });\r\n }, [dadosTelefone]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.telefones) {\r\n setDadosTelefone(manutencao.dados.telefones)\r\n }\r\n }, [manutencao.dados]);\r\n\r\n const columns = [\r\n {\r\n title: 'Telefone',\r\n render: ({ psc_numero }) => (\r\n
\r\n {FormatFone(psc_numero)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Tipo de Telefone',\r\n dataIndex: 'tpt_descricao',\r\n Key: 'tpt_descricao',\r\n editable: true,\r\n },\r\n { \r\n align: 'center',\r\n render: (record, obj, indice) => (\r\n tagPrincipal.map(tag => (\r\n alterarPropriedadeTelefone(indice, \"psc_principal\", checked)}\r\n >\r\n {tag}\r\n \r\n ))\r\n ),\r\n },\r\n {\r\n align: 'center',\r\n render: (record, obj, indice) => (\r\n tagsAtivo.map(tag => (\r\n alterarPropriedadeTelefone(indice, \"psc_ativo\", checked)}\r\n >\r\n {tag}\r\n \r\n ))\r\n ),\r\n },\r\n {\r\n title: 'Ramal',\r\n editable: true,\r\n render: ({ psc_ramal }) => (\r\n
\r\n {psc_ramal || 'Não Informado'}\r\n
\r\n\r\n ),\r\n },\r\n {\r\n title: 'Observação',\r\n editable: true,\r\n render: ({ psc_observacao }) => (\r\n
\r\n {psc_observacao || 'Não Informado'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \"Telefone(s)\" Telefone(s)\r\n \r\n \r\n Adicione o(s) telefone(s) do cliente aqui.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {editing ? (\r\n \r\n {inputNode}\r\n \r\n ) : (\r\n children\r\n )}\r\n
\r\n \r\n \r\n Ainda não possui Telefone Cadastrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 960 }} dataSource={dadosTelefone}\r\n />\r\n \r\n \r\n setOpenModalTelefone(false)} />\r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Table, Form, Tag, Modal } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { ModalOcupacao } from \"../../components/modals/\";\r\n\r\nexport default function Ocupacao() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosOcupacoes, setDadosOcupacoes] = useState(!!manutencao.dados && !!manutencao.dados.ocupacoes ? manutencao.dados.ocupacoes : []);\r\n const [form] = Form.useForm();\r\n const [openModalOcupacao, setOpenModalOcupacao] = useState(false);\r\n\r\n\r\n const alterarPropriedadeOcupacao = (key, coluna, checked) => {\r\n const newData = [...dadosOcupacoes];\r\n if (coluna === 'poc_principal' && checked) {\r\n const indexPrincipal = newData.findIndex((item) => true === item.poc_principal);\r\n if (indexPrincipal !== -1) {\r\n newData[indexPrincipal][coluna] = false;\r\n }\r\n }\r\n newData[key][coluna] = checked;\r\n setDadosOcupacoes(newData);\r\n };\r\n\r\n const editaOcupacao = (record, indice) => {\r\n record.indice = indice;\r\n form.setFieldsValue(record);\r\n setOpenModalOcupacao(true);\r\n };\r\n\r\n const removeOcupacao = (id) => {\r\n const newData = [...dadosOcupacoes];\r\n const index = newData.findIndex((item) => id === item.poc_id);\r\n newData.splice(index, 1)\r\n setDadosOcupacoes(newData);\r\n };\r\n\r\n const modalExcluirOcupacao = (record) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir a ocupação ${record.cbo_descricao} ?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n removeOcupacao(record.poc_id);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ ocupacoes: dadosOcupacoes } } } });\r\n }, [dadosOcupacoes]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Ocupações\" Ocupações - (OPCIONAL)\r\n \r\n Adicione a(s) ocupação(ões) do cliente aqui. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
(\r\n
\r\n {cbo_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: '', \r\n align: 'center',\r\n render: (record, obj, indice) => (\r\n alterarPropriedadeOcupacao(indice, \"poc_principal\", checked)}\r\n >\r\n Principal\r\n \r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Ainda não possui Ocupação Cadastrada\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 960 }} dataSource={dadosOcupacoes}\r\n />\r\n \r\n \r\n setOpenModalOcupacao(false)} />\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport moment from 'moment';\r\nimport { Row, Col, Typography, Divider, Button, Tag, Table, Form, Modal } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { ModalNacionalidade } from \"../../components/modals/\";\r\n\r\nexport default function Nacionalidade() {\r\n\r\n const tagsData = ['Principal'];\r\n const [selectedTags, setSelectedTags] = useState(['Principal']);\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [listaNacionalidade, setListaNacionalidade] = useState(!!manutencao.dados && !!manutencao.dados.nacionalidades ? manutencao.dados.nacionalidades : []);\r\n const [openModalNacionalidade, setOpenModalNacionalidade] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n const selecionarOpcao = (tag, checked) => {\r\n const nextSelectedTags = checked ? [...selectedTags, tag] : selectedTags.filter(t => t !== tag);\r\n setSelectedTags(nextSelectedTags);\r\n }\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ nacionalidades: listaNacionalidade } } } });\r\n }, [listaNacionalidade]);\r\n\r\n function editarNacionalidade(record, indice) {\r\n record.indice = indice;\r\n form.setFieldsValue(record);\r\n setOpenModalNacionalidade(true);\r\n };\r\n\r\n function excluirNacionalidade(id) {\r\n const lista = [...listaNacionalidade];\r\n const index = lista.findIndex((item) => id === item.pse_id);\r\n lista.splice(index, 1)\r\n setListaNacionalidade(lista);\r\n };\r\n\r\n const modalConfirmaExclusao = (record) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir a nacionalidade ${record.pais.pse_nacionalidade} ?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n excluirNacionalidade(record.pais.pse_id);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Nacionalidade\" Nacionalidade - (OPCIONAL)\r\n \r\n Adicione a(s) nacionalidade(s) do cliente aqui. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n
\r\n { pse_nome }\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data de Entrada no País',\r\n render: ({ pen_dataentradapais }) => (\r\n
\r\n {moment(pen_dataentradapais).format(\"DD/MM/YYYY HH:mm:ss\")}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Observação',\r\n render: ({ pen_observacao }) => (\r\n
\r\n {pen_observacao}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n dataIndex: 'pen_naturalizadobrasil',\r\n Key: 'pen_naturalizadobrasil',\r\n render: (record) => (\r\n tagsData.map(tag => (\r\n -1}\r\n onChange={checked => selecionarOpcao(tag, checked)}\r\n >\r\n {tag}\r\n \r\n ))\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Ainda não possui Endereço Cadastrado\r\n \r\n \r\n \r\n )\r\n }} dataSource={listaNacionalidade} scroll={{ x: 960 }} />\r\n \r\n setOpenModalNacionalidade(false)} />\r\n \r\n\r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Table, Tag, Form, Modal } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { ModalOutroContato } from \"../../components/modals/\";\r\n\r\nexport default function OutrosContatos() {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosOutrosContatos, setDadosOutrosContatos] = useState(!!manutencao.dados && !!manutencao.dados.pessoaoutrocontatos ? manutencao.dados.pessoaoutrocontatos : []);\r\n const [form] = Form.useForm();\r\n const tagsData = ['Ativo'];\r\n const [openModalOutroContato, setOpenModalOutroContato] = useState(false);\r\n\r\n const editaOutroContato = (record, indice) => {\r\n record.indice = indice;\r\n form.setFieldsValue(record);\r\n setOpenModalOutroContato(true);\r\n };\r\n\r\n const alterarPropriedadeOutrosContatos = (indice, coluna, checked) => {\r\n const newData = [...dadosOutrosContatos];\r\n newData[indice][coluna] = checked;\r\n setDadosOutrosContatos(newData);\r\n };\r\n\r\n const removeOutroContato = (record, indice) => {\r\n const newData = [...dadosOutrosContatos];\r\n record.indice = indice;\r\n const index = newData.findIndex((item) => indice === item.indice);\r\n newData.splice(index, 1)\r\n setDadosOutrosContatos(newData);\r\n };\r\n\r\n const modalExcluirOutroContato = (record, indice) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir o Contato ${record.out_descricao} - ${record.toc_descricao} ?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n removeOutroContato(record, indice);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ pessoaoutrocontatos: dadosOutrosContatos } } } });\r\n\r\n }, [dadosOutrosContatos]);\r\n\r\n return (\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \"Outros Outros Contatos - (OPCIONAL)\r\n \r\n \r\n Adicione o(s) outro(s) contato(s) do cliente aqui.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
(\r\n
\r\n {toc_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n render: ({ out_descricao }) => (\r\n
\r\n {out_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n\r\n render: (record, obj, indice) => (\r\n tagsData.map(tag => (\r\n alterarPropriedadeOutrosContatos(indice, \"out_ativo\", checked)}\r\n >\r\n {tag}\r\n \r\n ))\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Ainda não possui Outro Contato Cadastrado\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 960 }} dataSource={dadosOutrosContatos}\r\n />\r\n \r\n \r\n setOpenModalOutroContato(false)} />\r\n \r\n\r\n );\r\n\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Table, Tag, Modal, Form } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { MaskFormat } from \"../../ValueObjects\";\r\nimport { ModalPessoaAutorizada } from \"../../components/modals/\";\r\n\r\nexport default function PessoasAutorizadas() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [dadosPessoasAutorizadas, setDadosPessoasAutorizadas] = useState(!!manutencao.dados && !!manutencao.dados.pessoaautorizada ? manutencao.dados.pessoaautorizada : []);\r\n const [form] = Form.useForm();\r\n const [openModalPessoaAutorizada, setOpenModalPessoaAutorizada] = useState(false);\r\n\r\n const editaPessoaAutorizada = (record) => {\r\n form.setFieldsValue(record);\r\n setOpenModalPessoaAutorizada(true);\r\n };\r\n\r\n const alterarPropriedadePessoaAutorizada = (key, coluna, checked, idx) => {\r\n const newData = [...dadosPessoasAutorizadas];\r\n newData[idx][coluna] = checked;\r\n setDadosPessoasAutorizadas(newData);\r\n };\r\n\r\n const removePessoaAutorizada = (record, indice) => {\r\n const newData = [...dadosPessoasAutorizadas];\r\n record.indice = indice;\r\n const index = newData.findIndex((item) => indice === item.indice);\r\n newData.splice(index, 1)\r\n setDadosPessoasAutorizadas(newData);\r\n };\r\n\r\n const modalConfirmaExclusao = (record, indice) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja excluir a pessoa autorizada ${record.pes_nome} - ${record.grp_descricao} ?`,\r\n okText: 'Excluir',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n removePessoaAutorizada(record, indice);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ pessoaautorizada: dadosPessoasAutorizadas } } } });\r\n }, [dadosPessoasAutorizadas]);\r\n\r\n return (\r\n\r\n
\r\n \r\n
\r\n \r\n \"Pessoas Pessoas Autorizadas - (OPCIONAL)\r\n \r\n \r\n Adicione a(s) pessoa(s) autorizada(s) aqui.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n
\r\n {pes_nome}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'CPF',\r\n render: ({ pef_cpf }) => (\r\n
\r\n {MaskFormat(!!pef_cpf ? pef_cpf.replaceAll('.', '').replaceAll('-', '') : '', 'Não Informado', true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Grau de Parentesco',\r\n render: ({ grp_descricao }) => (\r\n
\r\n {grp_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Autorizado(a)',\r\n Key: 'pea_ativo',\r\n render: (record, indice, idx) => (\r\n alterarPropriedadePessoaAutorizada(indice, \"pea_ativo\", checked, idx)}\r\n >\r\n Autorizado(a)?\r\n \r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n fixed: 'right',\r\n render: (record, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Ainda não possui Pessoa Autorizada Cadastrada\r\n \r\n \r\n \r\n )\r\n }} scroll={{ x: 960 }} dataSource={dadosPessoasAutorizadas}\r\n />\r\n \r\n setOpenModalPessoaAutorizada(false)} />\r\n \r\n\r\n );\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Typography, Divider, Button, Tag, Form, Table } from \"antd\";\r\nimport { PlusOutlined, EditOutlined, DeleteOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { ModalVeiculo } from \"../../components/modals/\";\r\n\r\nexport default function Veiculos() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [openModalVeiculo, setOpenModalVeiculo] = useState(false);\r\n const [dadosVeiculos, setDadosVeiculos] = useState(!!manutencao.dados && !!manutencao.dados.veiculos ? manutencao.dados.veiculos : []);\r\n const [form] = Form.useForm();\r\n const tagsAtivo = ['Ativo'];\r\n\r\n const editaTelefone = (record, indice) => {\r\n record.indice = indice;\r\n form.setFieldsValue(record);\r\n setOpenModalVeiculo(true);\r\n };\r\n\r\n const excluir = (record) => {\r\n let dadosTemp = [...dadosVeiculos];\r\n dadosTemp = dadosTemp.filter((dados) => dados !== record);\r\n setDadosVeiculos(dadosTemp);\r\n };\r\n\r\n const alterarPropriedadeVeiculo = (key, coluna, checked) => {\r\n const newData = [...dadosVeiculos];\r\n newData[key][coluna] = checked;\r\n setDadosVeiculos(newData);\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: { ...manutencao.dados, ...{ veiculos: dadosVeiculos } } } });\r\n }, [dadosVeiculos]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \"Veículo(s)\" Veículo(s) - (OPCIONAL)\r\n \r\n \r\n Adicione o(s) veículo(s) do transportador aqui.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
(\r\n
\r\n {trv_placa}-{trv_uf} {trv_marca} {trv_modelo}\r\n
\r\n ),\r\n },\r\n {\r\n title: '',\r\n width: 75,\r\n align: 'center',\r\n render: (record, obj, indice) => (\r\n tagsAtivo.map(tag => (\r\n alterarPropriedadeVeiculo(indice, \"trv_ativo\", checked)}\r\n >\r\n {tag}\r\n \r\n ))\r\n ),\r\n },\r\n {\r\n title: 'Ações',\r\n dataIndex: '',\r\n align: 'center',\r\n key: 'x',\r\n width: 65,\r\n render: (record, obj, indice) => (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Ainda não possui Outro Contato Cadastrado\r\n \r\n \r\n \r\n )\r\n }} dataSource={dadosVeiculos} />\r\n \r\n setOpenModalVeiculo(false)} listaVeiculos={{ dadosVeiculos, setDadosVeiculos }} />\r\n \r\n\r\n );\r\n\r\n}","const drawerActions = {\r\n CHANGE: 'changeDrawer'\r\n}\r\n\r\nconst manutencaoActions = {\r\n CHANGE: 'changeManutencao'\r\n}\r\n\r\nconst listagemActions = {\r\n CHANGE: 'changeListagem'\r\n}\r\n\r\nconst tributacaoActions = {\r\n CHANGE: 'changeTributacao'\r\n}\r\n\r\nconst listaTabelaDadosActions = {\r\n CHANGE: 'changeListaTabelaDados'\r\n}\r\n\r\nconst parametrosEmpresaActions = {\r\n CHANGE: 'changeParametrosEmpresa'\r\n}\r\n\r\nconst selectPaginadoActions = {\r\n CHANGE: 'changeSelectPaginadoActions'\r\n}\r\n\r\n\r\nexport {\r\n drawerActions, manutencaoActions, listagemActions, tributacaoActions, listaTabelaDadosActions, parametrosEmpresaActions, selectPaginadoActions\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Select, Divider, Pagination, Button, Row, Col } from 'antd';\r\nimport api from '../../../services/api';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\nimport { manutencaoActions, selectPaginadoActions } from '../../../actions';\r\nimport { useStateValue } from '../../../state';\r\nimport { isNotNullOrEmpty } from '../../../services/funcoes';\r\n\r\nexport default function SelectPaginacao({ url, idValue, nameValue, nameLabel, onChangeFunction, onBlurFunction, onClearFunction, campoFiltro = \"filtro\", placeholder,\r\n form, atualizaComponente = false, mostrarCodigoLabel = false, multiple = false, funcaoIncluir = null, allowClear = false, conteudo = null, filtroPesq = null, filtroExtra,\r\n disabled = false, returnObject = false, selecionarRegUnico = null, setListaDados = null, onSelectFunction, usaDados = true, registrosPorPagina = 50 }) {\r\n const [{ listaSelectPaginacao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n const [lista, setLista] = useState([]);\r\n const [filtro, setFiltro] = useState('');\r\n const [pagina, setPagina] = useState(1);\r\n const [totalReg, setTotalReg] = useState(0);\r\n const [usouFiltro, setUsouFiltro] = useState(false);\r\n const [valor, setValor] = useState(null);\r\n const [campoDescricao, setCampoDescricao] = useState(null);\r\n const [filtroAnt, setFiltroAnt] = useState(\"\");\r\n const [multiplosFiltros, setMultiplosFiltros] = useState(false);\r\n const [listaFiltros, setListaFiltros] = useState([]);\r\n const _nameValue = idValue ? idValue : nameValue;\r\n\r\n useEffect(() => {\r\n if (!!lista && lista.length > 0) {\r\n if (lista.length == 1 && !!selecionarRegUnico) {\r\n let dados = lista.find(l => l.key == lista[0].key);\r\n if (!!selecionarRegUnico) {\r\n let val = dados ? dados[selecionarRegUnico] : null\r\n setValor(val);\r\n form.setFieldsValue({ [_nameValue]: val });\r\n }\r\n }\r\n if (usaDados) {\r\n if (!!setListaDados) {\r\n setListaDados(lista);\r\n } else {\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: [...lista] } });\r\n }\r\n }\r\n }\r\n }, [lista]);\r\n\r\n useEffect(() => {\r\n setFiltro(filtroPesq);\r\n }, [filtroPesq, atualizaComponente]);\r\n\r\n useEffect(() => {\r\n if (!isNotNullOrEmpty(form.getFieldValue([_nameValue]))) {\r\n setFiltro('');\r\n }\r\n setValor(form.getFieldValue([_nameValue]));\r\n }, [form.getFieldValue([_nameValue])]);\r\n\r\n useEffect(() => {\r\n if (!!lista && listaSelectPaginacao?.itens?.length > 0) {\r\n let lista = [...listaSelectPaginacao.itens];\r\n let listaFil = lista.filter(s => s.name === _nameValue);\r\n //if (listaFil.length == 1) {\r\n let item = listaFil[0];\r\n if (!!item && !!item.value) {\r\n if (!!item.campo) {\r\n setCampoDescricao(item.campo);\r\n }\r\n setPagina(1);\r\n setFiltro(item.value);\r\n let idx = lista.indexOf(item);\r\n lista.splice(idx, 1);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } })\r\n }\r\n /*} else {\r\n setMultiplosFiltros(true);\r\n setListaFiltros(listaFil);\r\n }*/\r\n }\r\n }, [listaSelectPaginacao]);\r\n\r\n /*useEffect(() => {\r\n if (multiplosFiltros && listaFiltros?.length > 0) {\r\n let listaSelect = [...selectPaginado];\r\n listaSelect = listaSelect.filter(s => listaFiltros.indexOf(s) === -1);\r\n setPagina(1);\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: listaSelect })\r\n }\r\n }, [multiplosFiltros]);\r\n*/\r\n function carregarDados() {\r\n setCarregando(true);\r\n let parametrosUrl = '';\r\n if (atualizaComponente !== null) {\r\n if (!multiplosFiltros) {\r\n !!filtro ? parametrosUrl = `&${!!campoDescricao ? campoDescricao : campoFiltro}=${filtro}` : parametrosUrl = \"\";\r\n } else {\r\n !!listaFiltros && listaFiltros.length > 0 ? listaFiltros.forEach(lf => parametrosUrl += `&${!!lf.campoDescricao ? lf.campoDescricao : lf.campoFiltro}=${lf.filtro}`) : parametrosUrl = \"\";\r\n }\r\n if (!!campoDescricao) {\r\n setCampoDescricao(null);\r\n }\r\n if (mostrarCodigoLabel) {\r\n parametrosUrl += `&Order=%2B${nameValue}`;\r\n }\r\n else {\r\n parametrosUrl += (nameLabel.search('[/+/g]') > 0 ? `&Order=%2B${nameLabel.split('+')[0]}` : `&Order=%2B${nameLabel}`);\r\n }\r\n parametrosUrl += `&pageNumber=${pagina}&pageSize=${registrosPorPagina}`;\r\n if (url.search(/[?]/g) === -1) {\r\n parametrosUrl = parametrosUrl.replace('&', '?');\r\n }\r\n !!filtroExtra ? parametrosUrl += filtroExtra : naoFazNada();\r\n api.get(url + parametrosUrl).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let dados = [];\r\n\r\n let indice = !!atualizaComponente ? 0 : lista.length > 0 ? lista[lista.length - 1].key + 1 : 0;\r\n res.data?.items?.map((item, idx) => {\r\n item.key = indice;\r\n dados.push(item);\r\n indice++;\r\n });\r\n\r\n setTotalReg(res.data.totalItems)\r\n if (!isNotNullOrEmpty(filtro)) {//filtro em branco\r\n if (usouFiltro === true || atualizaComponente !== false) {\r\n atualizaComponente = false\r\n setUsouFiltro(false);\r\n setLista(dados);\r\n } else {\r\n setLista([...lista, ...dados]);\r\n }\r\n } else {\r\n if (filtro === filtroAnt) {\r\n if (pagina > 1) {\r\n setLista([...lista, ...dados]);\r\n } else {\r\n setLista(dados);\r\n }\r\n } else {\r\n setUsouFiltro(true);\r\n setFiltroAnt(filtro);\r\n setLista(dados);\r\n setPagina(1);\r\n }\r\n }\r\n }\r\n }\r\n ).finally(\r\n () => {\r\n setCarregando(false)\r\n }\r\n );\r\n }\r\n }\r\n\r\n function naoFazNada() { }\r\n\r\n function recarregaDados() {\r\n let totalPag = Math.trunc(totalReg / registrosPorPagina) + 1\r\n if (totalPag > pagina) {\r\n setPagina(pagina + 1)\r\n }\r\n }\r\n\r\n useEffect(() => carregarDados(), [filtro, pagina, atualizaComponente]);\r\n\r\n return (\r\n {\r\n if (option.props.value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }}\r\n onSearch={(valor) => { setFiltro(valor); }}\r\n onPopupScroll={e => {\r\n const { target } = e;\r\n if (target.scrollTop + target.offsetHeight === target.scrollHeight) {\r\n recarregaDados();\r\n }\r\n }}\r\n dropdownRender={!!funcaoIncluir ? menu => (\r\n
\r\n \r\n
\r\n {menu}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n\r\n onChange={(valor) => {\r\n setValor(valor);\r\n form.setFieldsValue({ [_nameValue]: valor });\r\n !!onChangeFunction ? onChangeFunction(valor) : naoFazNada();\r\n }}\r\n\r\n onBlur={(valor) => {\r\n\r\n !!onBlurFunction ? onBlurFunction(valor) : naoFazNada();\r\n }}\r\n\r\n onClear={(valor) => {\r\n !!onClearFunction ? onClearFunction(valor) : naoFazNada();\r\n }}\r\n\r\n onSelect={(valor) => {\r\n setValor(valor);\r\n form.setFieldsValue({ [_nameValue]: valor });\r\n !!onSelectFunction ? onSelectFunction(valor) : naoFazNada();\r\n }}\r\n\r\n >\r\n {lista.map(item =>\r\n !!conteudo ? conteudo(item) :\r\n {mostrarCodigoLabel ? item[nameValue] + \" - \" : \"\"} {(nameLabel.search(/[+]/g) > 0 ? (item[nameLabel.split('+')[0]] + \" - \" + item[nameLabel.split('+')[1]]) : item[nameLabel])} \r\n )}\r\n \r\n )\r\n}\r\n","import React, { createRef } from 'react';\r\nimport moment from 'moment';\r\nimport { Form, Input } from 'antd';\r\n\r\nexport default function Data(props) {\r\n function subtrairSomarDias(data, dias, soma) {\r\n if (soma) {\r\n return new Date(data.getTime() + (dias * 24 * 60 * 60 * 1000));\r\n } else {\r\n return new Date(data.getTime() - (dias * 24 * 60 * 60 * 1000));\r\n }\r\n }\r\n\r\n class NovaData extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.inputRef = createRef();\r\n }\r\n\r\n onChange = e => {\r\n const { value } = e.target;\r\n let data = moment(value, \"YYYY-MM-DD\", true);\r\n\r\n if (data.isValid()) {\r\n this.props.onChange(data);\r\n } else {\r\n this.props.onChange(null);\r\n }\r\n };\r\n\r\n onKeyUp = e => {\r\n let key = e.which || e.keyCode;\r\n let data = null;\r\n\r\n if (key === 68) { // Tecla 'D' - data atual\r\n data = new Date();\r\n }\r\n if (key === 79) { // Tecla 'O' - data anterior\r\n data = subtrairSomarDias(new Date(), 1, false);\r\n }\r\n if (key === 65) { // Tecla 'A' - data posterior\r\n data = subtrairSomarDias(new Date(), 1, true);\r\n }\r\n if (key === 73) { // Tecla 'I' - data inicial do mês\r\n let date = new Date();\r\n data = new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n if (key === 70) { // Tecla 'F' - data final do mês\r\n let date = new Date();\r\n data = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n }\r\n\r\n if (!!data) {\r\n this.props.onChange(moment(data));\r\n }\r\n\r\n if (!!this.props.onKeyUp) {\r\n this.props.onKeyUp();\r\n }\r\n };\r\n\r\n onPressEnter = () => {\r\n const inputElement = this.inputRef.current.input;\r\n const form = inputElement.closest('form');\r\n if (form) {\r\n const inputs = Array.from(form.querySelectorAll('input'));\r\n const currentIndex = inputs.indexOf(inputElement);\r\n const nextInput = inputs[currentIndex + 1];\r\n if (nextInput) {\r\n nextInput.focus();\r\n }\r\n }\r\n };\r\n\r\n onBlur = () => {\r\n if (this.props.onBlur) {\r\n this.props.onBlur();\r\n }\r\n };\r\n\r\n render() {\r\n const { value, month, disabled } = this.props;\r\n let data = value ? moment(value) : null;\r\n\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n class DataInput extends React.Component {\r\n onChange = () => {\r\n if (this.props.onChange) {\r\n this.props.onChange();\r\n }\r\n };\r\n\r\n render() {\r\n const { name, label, initialValue, style, className, hidden, rules } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/Contrato_NewERP.ab6ad1e4.pdf\";","export default __webpack_public_path__ + \"static/media/i-subjacentes.4dd45421.png\";","export default __webpack_public_path__ + \"static/media/i-email.7dbd9933.png\";","export default __webpack_public_path__ + \"static/media/i-ocupacoes.2f1064ca.png\";","export default __webpack_public_path__ + \"static/media/i-nacionalidade.471ad975.png\";","export default __webpack_public_path__ + \"static/media/i-pessoas-autorizadas.97d039b7.png\";","export default __webpack_public_path__ + \"static/media/i-print.f02b12f8.png\";","export default __webpack_public_path__ + \"static/media/i-servidor.1e5b5a82.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/vendas.9c6e90cd.png\";","export default __webpack_public_path__ + \"static/media/compra.056d5699.png\";","export default __webpack_public_path__ + \"static/media/pdv.f3e6acb7.png\";","export default __webpack_public_path__ + \"static/media/financeiro.da436854.png\";","export default __webpack_public_path__ + \"static/media/contabilidade.ea1a8b80.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/catalogoEletronico.98c431d0.png\";","export default __webpack_public_path__ + \"static/media/pedidosOs.c0f1184a.png\";","export default __webpack_public_path__ + \"static/media/aReceber.073bcc17.png\";","export default __webpack_public_path__ + \"static/media/aPagar.a70a06d4.png\";","export default __webpack_public_path__ + \"static/media/contaCorrente.89b4a8bb.png\";","export default __webpack_public_path__ + \"static/media/caixaBanco.4fd821e4.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/fiscal.8c9d7c46.png\";","export default __webpack_public_path__ + \"static/media/impostos.3838058b.png\";","export default __webpack_public_path__ + \"static/media/sped.314bcb54.png\";","export default __webpack_public_path__ + \"static/media/indicadores.cdfa1938.png\";","export default __webpack_public_path__ + \"static/media/mdfe.d4d72119.png\";","export default __webpack_public_path__ + \"static/media/utilitarios.d0b228df.png\";","import axios from 'axios';\r\nimport { getToken, logout, getEmpresa, getLocal, linkApi, linkApiGestor } from './auth';\r\nconst apiWeb = axios.create({ baseURL: linkApi });\r\n\r\napiWeb.interceptors.request.use(async config => {\r\n const token = getToken();\r\n const empresa = getEmpresa();\r\n const local = getLocal();\r\n //config.headers.ApiKey =\"as123\";\r\n if (token) config.headers.Authorization = `Bearer ${token}`;\r\n if (empresa) config.headers.codigoempresa = empresa;\r\n if (local) config.headers.codigolocal = local;\r\n\r\n return config;\r\n});\r\n\r\napiWeb.interceptors.response.use(function (response) {\r\n return response;\r\n}, function (error) {\r\n if (error.response.status === 401) {\r\n logout();\r\n }\r\n return Promise.reject(error);\r\n});\r\n\r\nexport default apiWeb;\r\n\r\n","import React, { useState } from \"react\";\r\nimport { Input, Form } from \"antd\";\r\n\r\n/*\r\n Ao utilizar o componente não setar valor para constantes como por exemplo setValorPedido(valor), pois isso fará com que o focus saia do input\r\n*/\r\n\r\nexport default function InputPreco(props) {\r\n\r\n /* props.percent ou props.cifrao removido, pois ao tentar utilizar o backspace não funciona */\r\n function formatNumber(value) {\r\n let precisao = !!props.precision ? props.precision : props.precision == 0 ? 0 : 2;\r\n if (!(!!value) || isNaN(value)) {\r\n value = !!props.initialValue ? props.initialValue : '0.00';\r\n }\r\n value = parseFloat(value).toFixed(precisao);\r\n value += '';\r\n const list = value.split('.');\r\n const prefix = list[0].charAt(0) === '-' ? '-' : '';\r\n let num = prefix ? list[0].slice(1) : list[0];\r\n let result = '';\r\n while (num.length > 3) {\r\n result = `.${num.slice(-3)}${result}`;\r\n num = num.slice(0, num.length - 3);\r\n }\r\n if (num) {\r\n result = num + result;\r\n }\r\n\r\n let aposVirgula = '';\r\n while (aposVirgula.length < precisao) aposVirgula = \"0\" + aposVirgula;\r\n let resultado = precisao == 0 ? '' :','+ aposVirgula;\r\n\r\n return `${prefix}${result}${list[1] ? `,${list[1]}` : resultado}`;\r\n }\r\n\r\n class InputValor extends React.Component {\r\n onChange = e => {\r\n const { value } = e.target;\r\n let precisao = !!props.precision ? props.precision : props.precision == 0 ? 0 : 2;\r\n let valorTemp = value;\r\n valorTemp = valorTemp.replace('', '');\r\n valorTemp = valorTemp.replaceAll(',', '').replaceAll('.', '');\r\n if (parseFloat(valorTemp).toString().length <= precisao) {\r\n let zeros = '0'.repeat(precisao);\r\n let valDivisao = 1 + zeros;\r\n valorTemp = parseFloat(valorTemp / valDivisao).toFixed(precisao);\r\n } else {\r\n valorTemp = valorTemp.slice(0, valorTemp.length - precisao) + '.' + valorTemp.slice(valorTemp.length - precisao);\r\n }\r\n valorTemp = valorTemp.toString();\r\n const reg = /^-?\\d*(\\.\\d*)?$/;\r\n if ((!isNaN(valorTemp) && reg.test(valorTemp)) || valorTemp === '' || valorTemp === '-') {\r\n this.props.onChange(valorTemp);\r\n }\r\n };\r\n\r\n onBlur = () => {\r\n const { value, onBlur, onChange } = this.props;\r\n if (!!value) {\r\n let valueTemp = value.toString();\r\n if (valueTemp.charAt(valueTemp.length - 1) === '.' || valueTemp === '-') {\r\n valueTemp = valueTemp.slice(0, -1);\r\n }\r\n onChange(valueTemp.replace(/0*(\\d+)/, '$1'));\r\n if (onBlur) {\r\n onBlur();\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n const { value } = this.props;\r\n let valor = value;\r\n if (props.somenteValorPositivo !== null && props.somenteValorPositivo !== undefined) {\r\n valor = parseFloat(value);\r\n if (!!props.somenteValorPositivo) {\r\n if (valor < 0) {\r\n valor = valor * -1;\r\n }\r\n }\r\n valor = valor.toString();\r\n if (valor.indexOf('.') > -1 && valor.split('.')[1].length < 2) {\r\n valor += '0';\r\n }\r\n }\r\n return (\r\n (this.myInputRef = c)}\r\n {...this.props}\r\n value={formatNumber(valor)}\r\n disabled={!!props.disabled}\r\n onChange={this.onChange}\r\n onBlur={this.onBlur}\r\n style={!!props.style ? props.style : {}}\r\n onFocus={this.onFocus}\r\n precision={!!props.precision ? props.precision : 2}\r\n placeholder={!!props.placeholder ? props.placeholder : ''}\r\n maxLength={18}\r\n className='text-right'\r\n />\r\n );\r\n }\r\n };\r\n\r\n class NumericInputDemo extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { value: 0 };\r\n }\r\n\r\n onChange = value => {\r\n this.setState({ value });\r\n if (!!props.onChange) {\r\n props.onChange();\r\n }\r\n };\r\n\r\n onBlur = () => {\r\n if (!!props.onBlur) {\r\n props.onBlur();\r\n }\r\n };\r\n\r\n onPressEnter = () => {\r\n if (!!props.onPressEnter) {\r\n props.onPressEnter();\r\n }\r\n };\r\n\r\n onFocus = () => {\r\n if (!!props.onFocus) {\r\n props.onFocus();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n );\r\n}","export default function formatNumber(valor, lista = false, cifrao = true,casasDecimais = 2) {\r\n if (!!valor) {\r\n let negativo = false;\r\n if (lista) {\r\n valor = valor.toString().replaceAll(',', '.');\r\n valor = parseFloat(valor).toFixed(casasDecimais);\r\n }\r\n if (valor < 0) {\r\n negativo = true;\r\n }\r\n valor = valor.toString().replace(/\\D/g, \"\");\r\n valor = valor.toString().replace(new RegExp(`(\\\\d)(\\\\d{${casasDecimais+6}})$`), \"$1.$2\");\r\n valor = valor.toString().replace(new RegExp(`(\\\\d)(\\\\d{${casasDecimais+3}})$`), \"$1.$2\");\r\n valor = valor.toString().replace(new RegExp(`(\\\\d)(\\\\d{${casasDecimais}})$`), \"$1,$2\");\r\n if (negativo) {\r\n valor = '-' + valor;\r\n }\r\n if (cifrao) {\r\n return `${valor}`;\r\n } else {\r\n return valor;\r\n }\r\n } else {\r\n //console.log('problema no formatNumber, valor não é valido');\r\n if (cifrao) {\r\n return '0,00';\r\n } else {\r\n return '0,00';\r\n }\r\n\r\n }\r\n}","export default __webpack_public_path__ + \"static/media/img-home.d331a346.jpg\";","export default __webpack_public_path__ + \"static/media/img-home-01.4c36f3ae.jpg\";","export default __webpack_public_path__ + \"static/media/img-home-02.90e7cf34.jpg\";","export default __webpack_public_path__ + \"static/media/img-home-03.ee856c7c.jpg\";","export default __webpack_public_path__ + \"static/media/i-sem-acesso.3ad53de4.png\";"],"sourceRoot":""}