{"version":3,"sources":["ValueObjects/maskFormat.js","ValueObjects/formatDate.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","components/modals/modalEncerrarMdfe/index.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","components/modals/modalCancelamentoMdfe/index.js","components/modals/modalAdicionarMotorista/index.js","components/detalheMdfe/tabDetalheDocs.js","components/detalheMdfe/tabDetalheMotorista.js","components/detalheMdfe/tabDetalheVeiculo.js","components/detalheMdfe/index.js","components/modals/modalDetalhesMdfe/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","components/importarOperacaoFiscal/index.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","components/formasPagamentoNfEntrada/index.js","pages/notaFiscalEntrada/faturamentoNFE.js","pages/notaFiscalEntrada/resumoNFE.js","components/filtroProdutoNfEntrada/index.js","pages/notaFiscalEntrada/itensNFE.js","pages/notaFiscalEntrada/transportadorNFE.js","pages/notaFiscalEntrada/notasBlocoNFE.js","pages/notaFiscalEntrada/manutencao.js","pages/notaFiscal/drawerEntrada.js","pages/notaFiscal/index.js","services/webSql.js","pages/importacaoNotaFiscalEntrada/tabNotaFiscal.js","pages/importacaoNotaFiscalEntrada/drawerProduto.js","components/modals/modalSelecionarGrade/index.js","pages/importacaoNotaFiscalEntrada/tabItens.js","pages/importacaoNotaFiscalEntrada/tabTransporte.js","pages/importacaoNotaFiscalEntrada/tabFaturamento.js","pages/importacaoNotaFiscalEntrada/index.js","pages/importarNotaFiscalEntrada/index.js","pages/importarNotaFiscalSuporte/index.js","components/buttonXmlSuporte/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","pages/retencaoPessoaProduto/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/consultaCartoesConciliados/index.js","pages/CarrinhoCatalogo/index.js","pages/homeCatalogo/index.js","App.js","serviceWorker.js","index.js","services/calculaImposto.js","services/servidorImpressora.js","services/CarrinhoDB.js","services/funcoes.js","state/index.js","components/drawerVendedores/index.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","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","components/modals/modalConsultaProtocoloMdfe/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","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","components/editorFormulario/itemFormulario.js","components/editorFormulario/tiposElementosFormulario.js","services/api.js","services/permissoes.js","assets/logoGestorWhite.png","components/editorFormulario/index.js","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","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/tabNotaAntecipacaoDevolucao.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/emitirManifesto/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","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","ValueObjects/formatNumber.js","services/apiWeb.js","components/inputPreco/index.js","assets/img-home.jpg","assets/img-home-01.jpg","assets/img-home-02.jpg","assets/img-home-03.jpg","assets/i-suporte.png","assets/i-sem-acesso.png"],"names":["maskFormat","data","text","cpfCnpj","length","onlyNumbers","replace","result","format","split","numbers","item","index","i","num","caracter","formatDate","undefined","reverse","join","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","setDadosUsuario","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","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","par_multaparcelavencida","par_tipocalculomulta","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","ImportarNotaFiscalSuporte","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","RetencaoPessoaProduto","ParametrosLocal","AcaoUsuario","DownloadXml","KitComposicao","Balanca","ConsultaRecebimento","ConsultaCartoesConciliados","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","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","produtorRural","setProdutorRural","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","pef_produtorrural","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","vei_id","vei_uf","validatorInput","vei_inscricaoestadual_numeroInscricaoEstadual","vei_inscricaoestadual_ufestado","textTransform","placa","vei_placa","noStyle","shouldUpdate","prevValues","currentValues","vei_tipoproprietario","marginBottom","vei_cpfcnpj","validarCpfCnpj","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","caminho","setCaminho","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","gerarCaminhos","ultimaUF","caminhos","caminhoTemp","ufUltima","toLowerCase","ufFim","x1","offsetLeft","offsetWidth","y1","offsetTop","offsetHeight","x2","y2","xControle","yControle","strokeWidth","strokeDasharray","strokeLinecap","ufAtual","ufProximo","redefinirPercurso","info","includes","display","alignItems","marginRight","estadoClick","marginLeft","fontWeight","marginTop","ReloadOutlined","percursoFinal","percursoValido","listaPercursoAtt","per_sequencia","CheckOutlined","ModalEncerrarMdfe","dadosMdfe","setLimparCampo","mdf_numero","mdf_id","retornoNF","cStat","xMotivo","confirmLoading","maskClosable","mdf_chavemdfe","mdf_dataemissao","mdf_modelo","mdf_ufinicio","mdf_uffim","TabDadosManifestos","formManifesto","listaDocs","tipoEmitente","setEstadoInicio","setEstadoFinal","listaMotorista","setListaMotorista","veiculoSelecionado","setVeiculoSelecionado","reboque1Selecionado","setReboque1Selecionado","reboque2Selecionado","setReboque2Selecionado","setListaEstados","listaVeiculos","setListaVeiculos","openModalEncerrar","setOpenModalEncerrar","limparCampo","dadosModalEncerrar","setDadosModalEncerrar","reboque1","vei_id_reboque2","vei_id_reboque3","reboque2","verificarVeiculo","avisoPercurso","retornaCep","retornoCep","mca_id","mde_id","fetchData","all","estadosRes","veiculosRes","dadosDoc","cepDestino","dadosDestino","pme_cepcarrega","cepOrigem","dadosOrigem","pme_cepdescarrega","doc_modelodoc","mdf_tipoemitente","verificaCepCarregamento","verificaCepDescarrega","rod_cpfcnpjciot","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","serie_id","ser","ser_id","buscarDoc","rowKey","rowSelection","estado","ManutencaoManifestoEletronico","pages","proximaPag","permiteValidar","setPermiteValidar","percursoOk","estadoInicioSelect","setEstadoInicioSelect","estadoFinalSelect","setEstadoFinalSelect","setTipoEmitente","setTipoCarga","setUnidadePeso","setResponsavelSeguro","validarVeiculo","vei_tiporodado","vei_id_reboque1","paginaAtual","tagPages","listaValidacoes","setProximaPag","validaForm","setTagPages","validarTrocaPg","removerDoc","formManifes","dadosNewForm","pme_descricao","pme_tipocarga","mdf_unidadepeso","mdf_infadicionalfisco","mdf_infcomplentar","produtopredominantemdfe","pme_ncm","pme_ean","modalrodoviariomdfe","rod_ciot","motoristasmdfe","seguromdfe","percursomdfe","docreferenciadomdfe","mdf_status","novaAbaNavegador","mdf_cstat","mdf_xmotivo","current","Step","DrawerManifestoEletronico","onCloseDrawer","LeftOutlined","RightOutlined","ModalReenviarMdfeSefaz","exibirModalReenviarMdfeSefaz","fecharModalReenviarMdfeSefaz","titleModal","textoBotao","_link","column","mdf_serie","valortotalmdfe","ModalCancelamentoMdfe","justificativa","_cStat","motivo","quantidadedocs","pesobruto","minLength","ModalAdicionarMotorista","dadosMotorista","TabDetalheDocs","docs","TabDetalheMotorista","TabDetalheVeiculo","veiculo","DetalheMdfe","dadosModal","setTotalNfe","setTotalCte","setValorTotal","pesoTotal","setPesoTotal","mdf_ambiente","mdf_tipomodal","formatNumber","mdf_infocomplementar","cid_descricaocarrega","cid_descricaodescarrega","veiculos","motoristas","ModalDetalhesMdfe","formParam","listaStatus","setListaStatus","openModalReenviarMdfeSefaz","setModalReenviarMdfeSefaz","openModalCancelar","setOpenModalCancelar","dadosCancelamento","setDadosCancelamento","dadosConsultaSituacao","setDadosSituacaoMdfe","openModalMotorista","setOpenModalMotorista","openModalConsultaSituacao","setOpenModalConsultaSituacao","dadosDetalhesMdfe","setDadosDetalhesMdfe","openDetalhesMdfe","setOpenDetalhesMdfe","filtrosAvancados","sql","filtroPor","retornaDescricaoStatus","imprimirDamdfe","chaveMdfe","recarregarLista","IssuesCloseOutlined","encerrarMdfe","UserAddOutlined","autorizarMdfe","CloudSyncOutlined","consultaSefaz","cancelarMdfe","menuTableOutros","linkOculto","encodeURIComponent","body","appendChild","remove","EyeOutlined","visualizarMdfe","Search","onSearch","mdf_descricao","exibirModalConsultaSit","fecharModalConsultaSit","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","descricaograde","prepararDadosEditar","idModelo","dadosRel","quantidadeColuna","qtdTot","campos","dadosCampos","listaDadosImpressora","dadosImpressora","squema","numeroColuna","dadosAux","valorParcelado","quantidadeParcela","qtdParcelas","numeroParcelas","possuiEntrada","emp_nomefantasia","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","ctc_cepagencia","verificaCep","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","ImportarOperacaoFiscal","desabilita","setDesabilita","validarPermissaoTela","refreshKey","setRefreshKey","ImportOutlined","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","bancos","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","definirDadosBoleto","resetarConstantes","fpg_emiteboleto","fpg_tipopagamento","carregarBoleto","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","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","zerarFrete","setZerarFrete","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","buscarCep","validacoes","okType","retornoAmbiente","ntf_datainclusao","ntf_dhsaient","ntf_municipiodest","ntf_codigoibgemundest","ntf_paisdest","cli_regimetributariofiscal","setDadosNfeDevolucao","popularListaNotaDevolucao","adicionarNotasSelecionadas","selecionarNota","idOperacao","popularOperacaoFiscal","op","tpt_id","em","tel","pse_id","pej_inscricaomunicipal","listarClienteCpfCnpj","tipoEnd","pse_nome","tpe_id","tpe_descricao","salvarNotaAjuste","salvarNotaDevolucao","DrawerDevolucao","formDevolucao","showDrawerDevolucao","NotaFiscalDebitoCredito","listaPessoas","setListaPessoas","exibeDestinatario","setExibeDestinatario","setDadosContribuinte","verificarOperacao","odc","verificarPessoaContribuinte","pes","baseCalculo","valorDebitoCredito","emitirNfe","pc","DrawerDebitoCredito","formDebitoCredito","ModalDetalheNotaFiscal","FornecedorNFE","dadosEndereco","setDadosFornecedor","dadosFornecedor","setOpenDrawerFornecedor","listaEndereco","setListaEndereco","listaEmail","setListaEmail","dadosTelefone","setDadosTelefone","abreModalTelefone","setAbreModalTelefone","pessoaFisica","setPessoaFisica","formularioTelefone","validarProdutorRural","pie_inscricaoestadual","enderecoP","pee_id","telefoneP","psc_id","emailP","pem_id","setarCpfCnpj","Object","ope_notaprodutorrural","buscarDadosEndereco","pes_idestrangeiro","ntf_cpfcnpj","ntf_endereco","buscarDadosFornecedor","mask","dadosSelect","funcaoBotao","campoDescricao","campoValue","campokey","placeHolder","labelFormItem","nameFormItem","mail","pse","exibirModalTelefone","fecharModalTelefone","FormasPagamentoNfEntrada","dadosOperacao","nfEntrada","formaPagamento","setFormaPagamento","valorJaPago","setValorJaPago","pagamentoTotal","setPagamentoTotal","multiplasFormasPagamento","setMultiplasFormasPagamento","abrirDrawerVendedores","setAbrirDrawerVendedores","formVendedores","semCondicao","setSemCondicao","ehCheque","setEhCheque","ehValePresente","setEhValePresente","getTela","dadosTela","isNota","setIsNota","openModalCartao","setOpenModalCartao","dadosParcelas","setDadosParcelas","executarParcelas","setExecutarParcelas","formaPagamentoAntecipacao","setFormaPagamentoAntecipacao","listaContaCorrente","setListaContaCorrente","exibirModalCheque","setExibirModalCheque","abreModalContaCorrente","setAbreModalContaCorrente","contaCorrente","setContaCorrente","tipoContaCorrente","setTipoContaCorrente","desabilitaBtn","setDesabilitaBtn","editandoParcelas","setEditandoParcelas","semPagamento","setSemPagamento","pagamentosCodigos","fpg","valorRestantePgto","dadosFpg","pfp_valor","listarCondicao","faturamento","some","prc_numeroparcela","dataVencimento","prc_datavencimento","valorParcela","prc_valor","callback","popularParcelas","validarJaPossuiBoleto","credito","abrirModalCheque","indexPosicao","parc","popularParcelasDebito","abrirModalCartao","antecipacao","dadosFormaPagamento","adicionarFormaPagamento","formaPgtoAntecipacao","cheques","antecipacoes","restante","valorPago","dadosIniciais","pagamentoCartao","codigoValePresente","formasPgto","fpg_quitacaoantecipacao","valorAntecipacao","descontoPadrao","formas","validarContaCorrente","numeroCheques","incluirNovaFormaPagamento","nfp_codigovalepresente","dadosCondicoesPagamento","ultimaForma","somaParcelas","dataPagamento","numeroUltimaParcela","totalParcela","creditoDebito","removerFormaPagamento","dadosFat","cli_vendasomenteavista","validacaoFormasPagamento","fp","codVale","saldoVale","buscarValePresente","editarFormasPagamento","salvarFormaPagamento","cancelarAlteracoesFormaPagamento","numeroParc","qtdTotParcelas","dataVenc","ajustarDataParcelas","valorParcelas","valorJaUtilizado","valorRestanteTot","valorSobra","onChangeValorParc","rowExpandable","totalPagamento","exibirDrawerVendedores","fecharDrawerVendedores","fecharModalOK","retornoModal","dadosCartao","recebimentoCartao","tipoParcelamento","numeroDias","bandeira","bce_nrodiasrecebimentocredito","bce_nrodiasrecebimentodebito","bce_id","rcc_parcelarecebimento","rcc_valor","rcc_nsu","nsu","rcc_previsaorecebimento","exibirModalContaCorrente","fecharModalContaCorrenteOk","onCloseModalContaCorrente","fecharModalContaCorrente","cancelaContaCorrente","FaturamentoNFE","resume","valorNota","setValorNota","controlModal","setControlModal","calcularDesconto","percentualDesconto","tot","recalcularTotal","calcularAcrescimo","percentualAcrescimo","vendedorDescMaxFinal","totalValorDescontoItens","subTotalNotaFiscal","subTotal","total","valorOutrasDespesas","calcularFaturamento","ResumoNFE","itensNota","dadosNfp","Chave","Nfp","Serie","Data","FiltroProdutoNfEntrada","dadosTabela","btnEditando","itemEditando","carregarPagina","exibirDetalhes","setExibirDetalhes","dadosDetalhes","setDadosDetalhes","desabilitarProd_id","setDesabilitarProd_id","buscarProdutosCodBarra","setBuscarProdutosCodBarra","dadosCfop","setDadosCfop","abrirModalManutencaoNota","setAbrirModalManutencaoNota","dadosProdutoImpostos","setDadosProdutoImpostos","listaSelectProd","setListaSelectProd","abreModalLiberacao","setAbreModalLiberacao","liberacaoSenha","setLiberacaoSenha","controleLote","setControleLote","abrirModalLote","setAbrirModalLote","dadosLote","setDadosLote","setDadosItem","nfSaida","setNfSaida","setNumeroPedido","buscarDadosProdImpostos","listapreco","destinoOperacao","codigoProd","ufDest","indicadorPresenca","ntf_indicadorpresenca","inscEstadual","listaPrecoPar","loc_tipocontribuinte","objProd","informacaoAdicional","carregarSelectPaginados","produtoImposto","popularFormProduto","dadosEditando","valorUnitario","valorTotalItem","valorItemDesconto","desconto","percacresc","percdesc","acrescimo","ncm_porcentagem","editandoItem","popularDadosContribuintes","tipooperacao","tip_entradasaida","vnc_id","incluirItemPedidoCondicional","iod_ufdestino","onChangeValorTotal","vlrUnit","calculaDesconto","calculaAcrescimo","recalcularValorUnitario","onClickBtnCancelar","recalcularValorTotal","perDesconto","ven_maximodesconto","validarDescontoMaximoVendedor","calculaTotalItemDescAcr","valorTot","valorItens","valorDesc","carregarParametrosLocal","resParams","paramsEstoque","par_avisoestoqueinsuficiente","dadosIncluido","resEstoque","estoque","valorEstoque","calcularValorEstoque","estoqueInsuficiente","novosDadosIncluido","possuiIe","fisicaJuridica","p","CalcularImpostoItem","iod_uforigem","iod_percicms","iod_percdiferimentoicms","iod_percicmsreducaobc","impostos","validarItem","popularItemNota","alterarItem","incluirItem","verificarItemLote","seq","lote","setDadosItens","itemNota","valorSt","retornoICMSST","ret_valorIcmsSt","retornoIPI","ret_valorIpi","nfi_valoricmsst","nfi_valoripi","cfo_id","prodNota","onChangeProID","interestadual","icm","carregarNcm","aprovado","itemCLote","nfitemlotes","salvarLotes","ItensNFE","quantidadeItens","setQuantidadeItens","setDadosEditando","dadosRet","removerItemNota","TransportadorNFE","mostrarTransportador","setMostrarTransportador","listaTransportadores","setListaTransportadores","dadosVeiculos","setDadosVeiculos","buscarDadosTransp","popularDadosVeiculo","NotasBlocoNFE","setExibirModal","valueRadio","setValueRadio","editingNfp","setEditingNfp","nfp","Valor","filtroDados","newNFP","Model","nfpValue","setDadosNfp","pre","verif","valueNumber","model","edittingNfp","NFEntrada","setCarregarPagina","setListaSerie","setDadosEndereco","listaValidacoesForn","validarFornecedor","validarFaturamento","fpg_tipoavistaaprazo","popularDados","gerarBoleto","notasProdutorReferenciados","nfp_modelo","nfp_serie","nfp_numeronota","nfp_dataemissao","nfp_chave","SalvarNota","popularDadosItens","preencherDadosFaturamento","preencherDadosDestinatario","preencherDadosSerieFiscal","freteUn","seguroUn","qtdTotalItens","dadosForma","aux","dadosModalCheque","nfp_valor","enderecoDest","telefoneDest","pt","telefoneDestinatario","emailDest","pem","ntf_emaildestinatario","ntf_complementodest","dadosTransportador","veiculoTransp","editarNota","incluirNota","dadosFormaPgto","pdi_valorfrete","calcularFrete","spinning","tip","onBlurFunction","carregandoPagina","DrawerEntrada","formEntrada","setResume","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","modalExcluirNotaCompra","excluirNotaCompra","ntf_nroinutilizadosefaz","ntf_tiponota","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","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","deleteDatabase","incluirBanco","db","transaction","add","oncomplete","buscarDadosTabela","tabela","getRequest","getAll","TabNotaFiscal","dadosRemetente","ntf_dataentrada","oc","objeto","ModalSelecionarGrade","gradesSelecionadas","setGradesSelecionadas","gradesSelecionadasBkp","selecionarGrades","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","qtdItens","qtdTotal","validarValorTot","produtoSis","qtdeAnterior","vincularProdutoNota","proKey","fpr_id","excluirItemSistemaXml","custoInformadoAtual","qtdeInformadoAtual","calculaSobraAoRemoverItem","buscarSobra","listaProd","itensXml","valorRetorno","valorRestante","qdteRestante","produtogrades","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","alterarQtde","alterarMarkup","valorVendas","produtoSelecionado","itensProduto","valorItemSelecionado","it","modalEditar","onCloseModalGrade","TabTransporte","dadosTransporte","TabFaturamento","dadosFaturamento","faturamentoDados","openModalEditarNotaFiscalEntrada","setOpenModalEditarNotaFiscalEntrada","objFaturamento","setObjFaturamento","semCondicaoPagamento","setSemCondicaoPagamento","listaCondicoesPagamento","setListaCondicoesPagamento","editandoParcela","setEditandoParcela","parcelasGeradas","setParcelasGeradas","buscarCondicaoPagamento","idFormaPgto","DeveAbrirModalContaCorrente","verificarParcelas","montarParcelas","qtdeParcelas","prc_numeroDuplicata","alteraForm","valorFormasPagamento","pagamento","setFaturamentoDados","objetoConsolidado","acumulador","tipopagamento","formaPag","nomeFormaPagamento","tipoavistaaprazo","numeroFatura","vDesconto","adicionarFormaDePagamento","ajustarDatasParcelas","qtdeTotParcelas","onChangevalorParcela","DeleteOutlineOutlined","excluirFormaPagaento","valorFechou","exibirModalEditarNotaFiscalEntrada","fecharModalEditarNotaFiscalEntrada","exibir","fechar","setDadosFaturamento","setDadosRemetente","setDadosTransporte","setCorrelacaoCFOP","setIndicadorPagamento","desabilitaBotao","setDesabilitaBotao","setKeys","ListaPrecoItem","idProduto","idProdutoGrade","precoLista","editarValorVenda","validarItens","valido","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","prc_numeroduplicata","popularDadosFaturamento","popularDadosTransportador","incluirDadosNota","validarAba","formNotaEntrada","openNota","setOpenNota","dadosCamposItens","keyItens","keyFat","keyRem","keyTransp","criarBancoWeb","vetorSeparado","removerNota","nomeBanco","carregarNota","chaveNfe","xmlDistribuicaoNfe","validarNotaFiscal","ButtonXMLSuporte","invisivel","setInvisivel","cnpj","setCnpj","tipoNfe","setTipoNfe","situacaoNfe","setSituacaoNfe","FileProtectOutlined","tipoNf","nfd_tipodocumento","tipoManifesto","nfd_manifestodestinatario","importarNotaFiscalEletronica","nfd_chavenfe","retEvento","infEvento","limparFiltros","dataMaxEmissao","nsuEspecifico","situacaoNf","lcn_ambienteemissao","nsuUltimo","lcn_monitoramentonsuproducao","loc_cnpj","listarNotas","verificarNotas","chaveAcesso","nfd_numeronf","nfd_situacaonfe","nfd_nomeemissor","nfd_cpfcnpjemissor","nfd_datahoraemissao","nfd_valortotal","nfd_serienf","nfd_modelodocumento","TabNotaFiscalEmitida","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","empresaSelecionada","aliquotaIcms","Number","percIpi","aliquotaICMSST","retornoICMS","ret_baseIcms","ret_valorIcms","ret_baseIcmsST","ValorST","BaseIPI","ret_baseIPI","ValorIPI","valorTotalSt","_numeroItem","_totalFrete","_valorFrete","somaTotal","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","quantidadeInutilizados","expandIconPosition","infInut","nNFIni","nProt","dhRecbto","FiltroProdutoOrc","listaProdutos","refProd","alterarValorTotal","ocp_quantidade","ocp_valorun","popularLista","listaDados","setItensOrdemCompra","itensOrdemCompra","retornaSequencial","adicionarItemOrdemCompra","ocp_valortotal","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","totalItemRecebendo","ratearDescontoFrete","qtdeTotalRecebendo","switchReceber","r","alteraQuantidadeItemRecebido","ManutencaoRecebimentoOrdemCompra","setFormasPagamento","buscarItensOrdemCompra","listaDadosContribuinte","ocp_quantidaderecebidaanteriormente","bloquear","orc_valordesconto","orc_valoracrescimo","recebimento","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","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","dadosVale","setDadosVale","parcelasPessoasAtraso","setParcelasPessoasAtraso","abreModalParcPendentes","setAbreModalParcPendentes","tipoFormaPagamento","dinheiro","cheque","cartaoCredito","cartaoDebito","creditoLoja","valeAlimentacao","valeRefeicao","valeCombustivel","fpPixDinamico","fpTransferencia","fpPixEstatico","outro","limparFormaPagamento","dadosVal","buscarParametrosEmp","par_contagerencialvalepresente","par_contagervalepresenteprazo","cgc_contagerencialdestino","cgc_contagerencialdestino2","onChangeFormaPagamento","compradores","depositoBancario","pix","transfBancaria","inserirDadosCrediario","incluirCheque","liberado","parcelasAtraso","limiteCreditoDisp","parcelasPessoa","verificarRestricoesCredito","validarVale","lancouCheque","cpr_numeroparcelas","valesQuitados","com","onChangeCondicao","popularValor","fecharModalOk","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","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","multa","valorMulta","valorPagoRecebido","setTotalSelecionados","totalReceber","parcelasReceber","valorReceber","numeroDiasVencida","concat","zerouJuros","zerouMulta","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","valorTotalMulta","dataFormatada","valorTotalPagoRecebido","valorFormaPgto","valorDescontoFormaPgto","valorJurosFormaPgto","valorMultaFormaPgto","parcelasCartao","removerCarcaterEspecial","dadosReceber","limparListas","zerarMulta","retornoParcela","buscarCodBarras","labelInput","placeholderInput","validaIntervaloData","filterOption","input","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","valorTotalAcrescimo","valorTotalSemAcrescimo","sobraAcrescimo","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","mov","mcc_movimentoestornado","mcc_entradasaida","mcc_id","lc_complemento","order","h","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","saldoInicial","setSaldoInicial","saldoFinal","setSaldoFinal","listaFinal","setListaFinal","fluxoPeriodo","fluxoApresentacao","fluxoOrganizacao","dadosFinal","FinalSaldo","totalSaldoConta","totalSaldosConta","totalSaldo","totalSaldoInicial","createFinal","codigoLocal","CodigoLocal","nomeContaCorrente","saldosConta","tratarDados","fontFamily","nomeLocal","row","fluxoLocal","datapgtovencimento","entradarealizado","saidarealizado","realizadoEntrada","realizadoSaida","provisaoreceber","provisaopagar","prevReceber","prevPagar","FluxoCaixaDiarioSintetico","valor_SaldoInicial","valor_RealizadoEntrada","valor_RealizadoSaida","valor_SaldoFinal","totalCreditoRealizado","totalDebitoRealizado","valor_ProvisaoReceber","valor_ProvisaoPagar","totalCreditoPrevisto","totalDebitoPrevisto","FluxoCaixaMensalAnalitico","mesExtenso","realizadoEntradaMesAno","realizadoSaidaMesAno","prevReceberMesAno","prevPagarMesAno","FluxoCaixaMensalLocalSintetico","FluxoCaixaAnualAnalitico","realizadoEntradaAno","realizadoSaidaAno","prevReceberAno","prevPagarAno","FluxoCaixaAnualLocalSintetico","setListaInicial","dadosInicial","createInicial","saldoConta","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","totalprovisaopagar","totalprovisaoreceber","totalentradarealizado","totalsaidarealizado","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","match","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","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","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","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_cpf","loc_inscricaoestadual","loc_cpfCnpj","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","siglaEstado","possuiCep","fetch","pesquisaCepPostmon","retornoCnpjLocal","retornoCnpj","loc_telefone","loc_nomefantasia","loc_numeroestabelecimento","loc_complemento","verificarLocal","loc_matriz","retornoFilial","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","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","con_cidade","con_ibge","cid_ibge","con_uf","con_bairro","con_logradouro","con_cep","Emitter","emit","con_id","con_cpf","con_cnpjescritorio","verificarCnpjValido","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","tipoCalculo","setTipoCalculo","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","pesquisaCNPJ","cadastrarEmpresa","novaEmpresa","retornoNovaEmpresa","retornoEmail","textoAleatorio","assinarContrato","periodoTeste","localId","retornoAssinatura","retornoPlanos","loc_tipoContribuinte","pla_numeropdvs","RocketOutlined","retornoPesquisaEmail","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","defaultChecked","preserveSelectedRowKeys","confirmar","vig","vig_descricao","ManutencaoVigencia","DrawerVigencia","vig_datainicial","ManutencaoRetencao","dadosTipoRetencao","setDadosTipoRetencao","descontoTotal","setDescontoTotal","checked1","setChecked1","tar_descontamovimentacaofinanceira","tar_descontototalnota","tar_id","tipoImpostoSelecionado","exibirModalRetencao","DrawerRetencao","tabRetencao","tar_descricao","tar_percentuaretencao","tar_tiporetencao","tar_descontatotalnota","alterarPessoa","setAlterarPessoa","carregandoDados","setCarregandoDados","verificarDados","retencao","valorLista","filtrosArray","proxSequencia","limparLista","rcf_id","produtoSelecioando","removeProd","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","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","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","rec_decricaofinanceiro","cde_chaveacesso","ModalDetalheRecibo","formRecebimento","openModalRecibo","setOpenModalRecibo","dadosDetalheRecibo","setDadosDetalheRecibo","visualizarDetalhes","rec_id","cde_id","reimprimirRecibo","rec_numero","rec_datahora","CarrinhoCatalogo","carrinhoItens","setCarrinhoItens","atualizarCarrinho","setAtualizarCarrinho","setTotal","setPrecoItem","dateSincro","setDateSincro","openDrawerPedido","setOpenDrawerPedido","initDatabase","loadShoppingCartItems","updateTotal","getDateSincro","date","getTime","buscarPreco","useCallback","deleteCartItem","prevState","deleteAllItems","clearShoppingCart","clearDateSincro","editItemQuantity","more","editCartItemQuantity","enviarPedido","ConcatPedido","precoFinal","newTotal","Qtd","CodigoCliente","UpOutlined","ToolOutlined","concluirPedido","textDecoration","HomeCatalogo","incollapsed","PrivateRoute","Component","rest","isAuthenticated","App","FormSizeDemo","componentSize","primaryColor","ptBR","nextColor","mergedNextColor","ConfigProvider","theme","onColorChange","initialState","userConfig","Boolean","hostname","ReactDOM","StrictMode","serviceWorker","ready","registration","unregister","origemProduto","cst","csosn","quantidadeItem","percDiferimento","percReducaoIcms","aliquotaIcmsSt","percMva","percReducaoIcmsST","percMvaAjustado","aliquotaIpi","eConsumidorFinal","destinatarioTemIE","eProdutorRural","eOrgaoPublico","uf_origem","uf_destino","vlr_unitario","vlr_frete","vlr_outros","vlr_descontos","ope_indicadorpresenca","eServico","identificadorDestino","impressorasInstaladas","imprimirRawBase64","nomeImpressora","impressora","texto","urlImpressao","objectStoreSincro","errorCode","cursorRequest","openCursor","continue","clearRequest","clear","saveShoppingCart","descricaoPeca","valorPeca","newItem","addRequest","novaQuantidade","itemExistente","putRequest","deleteRequest","numeroEan","digitoVerificador","multiplicador","somaEAN","Ean","formObj","Buffer","decodeBase64","jsonPayload","decodeURIComponent","d1","d2","df","abs","setHours","isDate","RegExp","rev","tamanho","digitos","pos","resultado","_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","StateContext","createContext","StateProvider","Provider","useReducer","useContext","DrawerVendedores","ret_aliquotaIcms","ret_baseIcmsSt","ret_aliquotaIcmsSt","valortotalseguro","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","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","DADOSUSUARIO_KEY","CLIENTECAT_KEY","NOMECLIENTECAT_KEY","process","getNavegacao","getPermissao","getStatusPlano","getStatusFilial","getTelaAnterior","getDadosUsuario","getNomeClienteCat","nomeEmpresa","nomeUsuario","setTela","tela","nav","perm","setTelaAnterior","setDadosIntegra","setCnpjEmpresa","dadosUser","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","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","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","rt","codigoCso","validarCsosn","calculaAliquotaEquivalente","calculaPercentualReducao","_percicms","_aliquotaEquivalente","_calc","_percreducao","aliquotaEquivalente","percicms","percicmsreducaobc","percdiferimentoicms","iod_id","cst_descricao","cso_descricao","ModalVeiculo","exibirModalVeiculo","fecharModalVeiculo","ModalCancelamentoNfe","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","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","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","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","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","ModalConsultaProtocoloMdfe","listaProcEvento","setListaProcEvento","procEventoMDFe","protMDFe","infProt","chMDFe","eventoMDFe","dhEvento","retEventoMDFe","tpEvento","xEvento","ComboData","opcoes","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","codigoAlternativo","infAdicional","lineHeight","sx","infoCliente","clienteCidade","clienteCep","clienteUF","addShoppingCart","seqKey","pdi_numeroitem","pdi_percacresc","DrawerTransportadores","exibirDrawerTransportadores","fecharDrawerTransportadores","valorTotalPedido","formTransp","mostrarModalTransp","setMostrarModalTransp","buscarVeiculos","pdi_valoroutrasdespesas","transp","trn_valorfretefixo","trn_percentualfrete","retornaValorFrete","emiteTransferencia","editarValores","setEditarValores","formaPagamentoAtual","setFormaPagamentoAtual","pedidoparcela","novaFormaPagamento","novaCondicoesPagamento","pagamentoTemp","ped_valorTotal","percValor","ped_valorTotalDesc","recalcularTotalPedido","ped_valorTotalAcre","percDesconto","valorCFreteEOutros","calcuPercDesc","calcuPercAcresc","possuiBoletoComParcelas","possuiBoletoSemParcelas","valorTotalIPI","editarParcelas","salvarParcelas","ManutencaoPedidos","mostraBtnSalvar","dadosEnderecoLocal","setDadosEnderecoLocal","listaTelefone","setListaTelefone","abreModalEndereco","setAbreModalEndereco","abreModalEmail","setAbreModalEmail","formularioEmail","dadosFormasPagamento","setDadosFormasPagamento","setEmiteTransferencia","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","ManutencaoNotaFiscal","abreModalSimplesNac","setAbreModalSimplesNac","setDadosVendedor","openModalEndereco","setOpenModalEndereco","formEndereco","openValidaIE","setOpenValidaIE","consumidorFinal","setconsumidorFinal","listaSubjacente","setListaSubjacente","popularDadosSimples","setarAdjacentes","adjacentes","setarEnderecos","setarTelefones","telefonePrincipal","setarEmails","emailPricipal","modalVerificaIEdestinatario","validarOperacao","buscarDadosCliente","pessoaorgaospublicos","ie","reteioFrete","salvarNota","modalAutorizarSefaz","realizarReenvioSefaz","analisaFormaPagamento","pagamentoMaquininha","listaIdsIntegracao","pagamentoPayer","concluirVenda","verificarPagamentos","imprimirDAVLS","tratarPedidoFaturado","AlterarSituacaoCondicional","subjacente","pop_id","ntf_subjacente","pe","pop_nome","listaCliente","dadosVen","alterarVendedor","localidade","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","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","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","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","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","TabelaDados","headerTabela","setRegistrosPorPagina","listaTbDados","setListaTbDados","configPaginacao","onSelectAll","changeRows","setCondicaoSelecionarItem","configSelecionarRadio","setSelecionaRadio","ordem2","newValue","ItemFormulario","fnEditar","fnExcluir","TiposElementosFormulario","el","RetornaDescricaoElementoFormulario","widget","tipoDeValidacao","botoesValidacao","valuesBotoes","validarPermissaoMenu","itemMenu","objPermissao","validarPermmissao","acao","retornaAcao","permissao","Suporte","EditorFormulario","objElementoFormularioEdicao","formEditor","openModalPersonalizacao","setOpenModalPersonalizacao","elementoEdicao","setElementoEdicao","adicionarElemento","widgetProps","defaults","eval","tratarErro","errorFields","field","errors","editarElemento","indiceElemento","excluirElemento","onSortEnd","oldIndex","newIndex","arrayMove","SortableItem","SortableElement","sortIndex","SortContainer","SortableContainer","shouldCancelStart","tagName","tipoEl","normalize","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","BotaoAbrirChamado","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","itm_id","BreadcrumbPage","listaTitulo","breadcrumb","htmlBreadcrumb","setHtmlBreadcrumb","MontaBreadcrumb","arrBreadcrumb","defaultActiveKey","SelectProduto","overflow","textOverflow","FiltroSearch","nameInput","FiltroAtivo","FiltroOrdenacao","BotaoIncluirDados","PesquisaOrdenacao","labelInputFiltroAtivo","BreadcrumbIncluirDados","PesquisaOrdenacaoData","setDataPesquisa","FiltroData","valueSlider","setValueSlider","ModalDetalheLoteNfi","itemLote","TabDetalheItens","itensNF","percentualDesc","setPercentualDesc","exibirModalLote","setExibirModalLote","retornarPercentual","nis_valorbcst","nis_percicmsst","nis_valoricmsst","nis_percmvast","tooltip","TabDetalheIFormaPagamento","Print","imp_idintegracao","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","TabNotaAntecipacaoDevolucao","antecipacaoDevolucao","tipoMovimento","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","openModalImportarElemento","setOpenModalImportarElemento","optionsSelect","rpj_options","editarElementoTela","rpj_mensagemobrigatorio","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","popularProduto","produtosSelec","adicionarItemCondicional","filtroGrade","somenteValorPositivo","gravarTela","constante","limparTela","todos","DrawerNav","afterVisibleChange","jsonGeral","dadosCaminho","nomeForm","DrawerLancamentoTransferencia","DrawerManutencaoCaixa","listaPag","onClosePaginaAbertas","dadosGeral","pag","pagSelec","pagAbertas","excluirPagina","Tabela","FormasPagamento","abreModalAntecipacao","setAbreModalAntecipacao","setDadosAntecipacao","setValorRestante","verificarAntecipacoes","liberadoCredito","ant","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","ocultaListaPreco","setOcultaListaPreco","retImposto","setRetImposto","listaPrecoTemp","listaPrecoCliente","ope_tipoprecoutilizar","onChangeValorUnitario","dadosImposto","icms_id","dadosPreco","buscaPrecoListaPrecoSelecionada","buscarDadosIcms","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","ManifestoEletronicoButton","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","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","listLista","trunc","subtrairSomarDias","NovaData","inputElement","closest","inputs","currentIndex","nextInput","DataInput","negativo","InputPreco","aposVirgula","InputValor"],"mappings":"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","file":"static/js/main.2301e126.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 formatDate(data) {\r\n if (data === '' || data === undefined)\r\n return;\r\n\r\n return data.split('/').reverse().join('-');;\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, setDadosUsuario } 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 setDadosUsuario(dadosUsuario);\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-4922\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-4922\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-4922\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 } 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 {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, RetencaoPessoaProduto, ConsultaCartoesConciliados, ImportarNotaFiscalSuporte\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, par_multaparcelavencida: res.data.par_multaparcelavencida, par_tipocalculomulta: res.data.par_tipocalculomulta } });\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
\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 } 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 \"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 } 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 \"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, 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 \"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 } 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 \"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 { 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 { 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, 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 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 [produtorRural, setProdutorRural] = useState(false);\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 setProdutorRural(!!valores.pef_produtorrural);\r\n formulario.setFieldsValue(valores);\r\n setProdutorRural(!!valores.pef_produtorrural);\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 setProdutorRural(!!valores.pef_produtorrural);\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 Calcula Retenção? \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 \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, 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 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, 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 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, TabelaDados, Editar, Excluir, BotaoIncluirDados, 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 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, 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 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 } 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, 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 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, Divider, 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, selectPaginadoActions } from \"../../actions\";\r\nimport { validarIE } from \"../../services/funcoesIE\";\r\nimport { MaskFormat } from \"../../ValueObjects\";\r\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\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 const [cpfCnpj, setCpfCnpj] = 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 useEffect(() => {\r\n if (ui.showDrawer && !!manutencao.dados && !!manutencao.dados.vei_id && editando.editando) {\r\n let lista = [];\r\n if (!!manutencao.dados.vei_uf) {\r\n lista.push({ name: \"vei_uf\", campo: \"Uf\", value: manutencao.dados.vei_uf });\r\n }\r\n if (!!manutencao.dados.cid_id) {\r\n lista.push({ name: \"cid_id\", campo: \"IdCidade\", value: manutencao.dados.cid_id });\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 formulario.setFieldsValue(manutencao.dados);\r\n setListaCidades(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 = '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 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 formulario.setFieldsValue({\r\n vei_cpfcnpj: \"\"\r\n })\r\n }\r\n }\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)} onSelectFunction={(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 \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 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 Proprietário\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 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 [caminho, setCaminho] = useState([]);\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: 24, 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 useEffect(() => {\r\n gerarCaminhos()\r\n }, [percurso])\r\n\r\n function gerarCaminhos(ultimaUF = false) {\r\n let caminhos = [];\r\n if (!ultimaUF) {\r\n for (let i = 0; i < percurso.length - 1; i++) {\r\n let ufAtual = document.getElementById(percurso[i].toLowerCase());\r\n let ufProximo = document.getElementById(percurso[i + 1].toLowerCase());\r\n\r\n if (ufAtual && ufProximo) {\r\n let x1 = ufAtual.offsetLeft + ufAtual.offsetWidth / 2;\r\n let y1 = ufAtual.offsetTop + ufAtual.offsetHeight / 2;\r\n let x2 = ufProximo.offsetLeft + ufProximo.offsetWidth / 2;\r\n let y2 = ufProximo.offsetTop + ufProximo.offsetHeight / 2;\r\n\r\n let xControle = (x1 + x2) / 2;\r\n let yControle = (y1 + y2) / 2 - 20;\r\n\r\n caminhos.push(\r\n \r\n )\r\n }\r\n }\r\n setCaminho(caminhos);\r\n } else {\r\n let caminhoTemp = [...caminho];\r\n let ufUltima = document.getElementById(percurso[percurso.length - 1].toLowerCase());\r\n let ufFim = document.getElementById(ufFinal.toLowerCase());\r\n\r\n if (ufUltima && ufFim) {\r\n let x1 = ufUltima.offsetLeft + ufUltima.offsetWidth / 2;\r\n let y1 = ufUltima.offsetTop + ufUltima.offsetHeight / 2;\r\n let x2 = ufFim.offsetLeft + ufFim.offsetWidth / 2;\r\n let y2 = ufFim.offsetTop + ufFim.offsetHeight / 2;\r\n let xControle = (x1 + x2) / 2;\r\n let yControle = (y1 + y2) / 2 - 20;\r\n\r\n caminhoTemp.push(\r\n \r\n );\r\n setCaminho(caminhoTemp);\r\n }\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\r\n if (percurso.includes(uf)) return;\r\n\r\n if (uf === ufInicial || uf === ufFinal) {\r\n notification.warning({ message: 'Atenção', description: 'Não é necessário selecionar o estado inicial e o final' });\r\n return;\r\n }\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 setCaminho([]);\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 é necessário 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 gerarCaminhos(true);\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 \r\n {caminho}\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 } from \"react\";\r\nimport { Modal, Form, Descriptions, notification } from \"antd\";\r\nimport { SaveOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\r\nimport api from \"../../../services/api\";\r\n\r\nexport default function ModalEncerrarMdfe({ exibirModal, fecharModal, dadosMdfe, setLimparCampo }) {\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const cancelarModal = () => {\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 setLimparCampo(true);\r\n }\r\n });\r\n }\r\n\r\n const encerrarMdfe = () => {\r\n Modal.confirm({\r\n title: 'Encerrar MDF-e?',\r\n icon: ,\r\n content: `Deseja realmente encerrar o MDF-e Nº:${dadosMdfe.mdf_numero}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n setCarregando(true);\r\n api.post(`ManifestoEletronico/EncerrarMdfe/${dadosMdfe.mdf_id}`).then(\r\n (retornoNF) => {\r\n if (retornoNF.status === 200) {\r\n if (retornoNF.data.cStat === 132 || retornoNF.data.cStat === 135) {\r\n notification.success({ message: 'Sucesso', description: retornoNF.data.cStat + \" - \" + retornoNF.data.xMotivo });\r\n } else {\r\n notification.error({ description: 'Não foi possível Encerrar Manifesto Eletrônico! ' + retornoNF.data.cStat + \" - \" + retornoNF.data.xMotivo, message: `Aviso` });\r\n }\r\n } else {\r\n notification.error({ description: 'Não foi possível Encerrar Manifesto Eletrônico! ' + retornoNF.data.cStat + \" - \" + retornoNF.data.xMotivo, 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 setLimparCampo(true);\r\n }\r\n ).finally(() => {\r\n fecharModal();\r\n setCarregando(false);\r\n });\r\n }\r\n })\r\n }\r\n\r\n return (\r\n
\r\n \r\n Encerrar MDF-e\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 {dadosMdfe.mdf_chavemdfe} \r\n \r\n \r\n \r\n \r\n {dadosMdfe.mdf_numero} \r\n \r\n \r\n {moment(dadosMdfe.mdf_dataemissao).format('DD-MM-YYYY')} \r\n \r\n \r\n \r\n \r\n {dadosMdfe.mdf_modelo} \r\n \r\n \r\n {dadosMdfe.mdf_ufinicio} \r\n \r\n \r\n {dadosMdfe.mdf_uffim} \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, Modal } 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, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport ModalEncerrarMdfe from \"../../components/modals/modalEncerrarMdfe\";\r\nimport { retornaCep } from \"../../services/funcoes\";\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 const [openModalEncerrar, setOpenModalEncerrar] = useState(false);\r\n const [limparCampo, setLimparCampo] = useState(false);\r\n const [dadosModalEncerrar, setDadosModalEncerrar] = 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 useEffect(() => {\r\n if (limparCampo === true) {\r\n formManifesto.setFieldsValue({ vei_id: undefined })\r\n setLimparCampo(false);\r\n }\r\n },[limparCampo])\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 verificarVeiculo(dados) {\r\n if (!!dados) {\r\n api.get(`ManifestoEletronico/VerificarMdfeNaoEncerradoVeiculo/${dados}`).then(\r\n res => {\r\n let retorno = res.data;\r\n if (retorno !== \"\") {\r\n avisoPercurso(retorno);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n function avisoPercurso(retorno) {\r\n Modal.confirm({\r\n title: 'Veículo em percurso',\r\n icon: ,\r\n centered: true,\r\n content: 'Já existe um MDF-e em percurso com o veículo selecionado, é necessário encerrar o MDF-e para utilizar esse veículo.',\r\n okText: 'Verificar MDF-e',\r\n cancelText: 'Cancelar',\r\n onOk() {\r\n setOpenModalEncerrar(true);\r\n setDadosModalEncerrar(retorno);\r\n },\r\n onCancel() {\r\n formManifesto.setFieldsValue({ vei_id: undefined });\r\n }\r\n });\r\n }\r\n\r\n async function verificaCepCarregamento(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n formManifesto.setFieldsValue({ mdf_ufinicio: retornoCep.est_descricao, mca_id: retornoCep.cid_descricao });\r\n setEstadoInicio(retornoCep.est_sigla);\r\n } else {\r\n formManifesto.setFieldsValue({ mdf_ufinicio: '', mca_id: ''});\r\n setEstadoInicio('');\r\n }\r\n }\r\n\r\n async function verificaCepDescarrega(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n formManifesto.setFieldsValue({ mdf_uffim: retornoCep.est_descricao, mde_id: retornoCep.cid_descricao });\r\n setEstadoFinal(retornoCep.est_sigla);\r\n } else {\r\n formManifesto.setFieldsValue({ mdf_uffim: '', mde_id: '' });\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.currentTarget.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.currentTarget.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 [carregando, setCarregando] = useState(false);\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 setCarregando(true);\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 ).finally(\r\n () => {\r\n setCarregando(false);\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 { novaAbaNavegador, 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 validarVeiculo() {\r\n let formulario = form.getFieldValue();\r\n let retorno = true;\r\n await api.get(`Veiculo/Buscar/${formulario.vei_id}`).then(\r\n res => {\r\n let dados = res.data;\r\n if (dados.vei_tiporodado === 3) {\r\n if (formulario.vei_id_reboque1 === undefined) {\r\n retorno = false\r\n }\r\n }\r\n }\r\n )\r\n return retorno;\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 let validaVeiculo = await validarVeiculo();\r\n if (validaVeiculo === false) {\r\n notification.warning({ message: 'Atenção!', description: 'Veículo com tipo rodado igual a Cavalo Mecânico, deve-se selecionar pelo menos um reboque' });\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 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 notification.success({ message: 'Sucesso', description: `Nota incluída com sucesso!` });\r\n if (res.data.mdf_status === 1 && !!res.data.mdf_chavemdfe) {\r\n novaAbaNavegador(`Danfe/GerarDamdfe?chaveMdfe=${res.data.mdf_chavemdfe}`);\r\n } else {\r\n notification.error({\r\n description: (<>\r\n Não foi possível Autorizar Manifesto Eletrônico!
\r\n {res.data.mdf_cstat} - {res.data.mdf_xmotivo}\r\n ), message: `Aviso`\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 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, listagemActions, 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: listagemActions.CHANGE, data: { ordem: '-mdf_numero' } });\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 (res) => {\r\n if (res.status === 200) {\r\n if (res.data.mdf_status === 1 && !!res.data.mdf_chavemdfe) {\r\n notification.success({ message: 'Sucesso', description: `MDF-e Autorizada com sucesso!` });\r\n novaAbaNavegador(`Danfe/GerarDamdfe?chaveMdfe=${res.data.mdf_chavemdfe}`);\r\n } else {\r\n notification.error({\r\n description: (<>\r\n Não foi possível Autorizar Manifesto Eletrônico!
\r\n {res.data.mdf_cstat} - {res.data.mdf_xmotivo}\r\n ), message: `Aviso`\r\n });\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 { Col, Descriptions, Form, Input, Modal, notification, Row } from \"antd\";\r\nimport { CheckOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport { FormatNumber } from \"../../../ValueObjects\";\r\nimport moment from \"moment\";\r\nimport { getLocal } from \"../../../services/auth\";\r\nimport api from \"../../../services/api\";\r\n\r\nexport default function ModalCancelamentoMdfe({ dadosMdfe, 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 fecharModal();\r\n }\r\n });\r\n };\r\n\r\n const realizarCancelamento = () => {\r\n let motivo = '';\r\n let dados = { ...dadosMdfe };\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\r\n setCarregando(true);\r\n api.post(`ManifestoEletronico/CancelarMdfe`, dados).then(\r\n res => {\r\n let _cStat = res.data.cStat;\r\n let motivo = _cStat + \" - \" + res.data.xMotivo;\r\n if (_cStat == 135 || _cStat == 155 || _cStat == 101 || _cStat == 573 || _cStat == 218) {\r\n notification.success({ message: `MDF-e Nº: ${dados.mdf_numero} cancelada com sucesso !`, description: motivo });\r\n } else {\r\n notification.warning({ message: `Não foi possível efetuar o cancelamento da MDF-e Nº: ${dados.mdf_numero} !`, description: motivo });\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n notification.warning({ description: `Não foi possível efetuar o cancelamento da MDF-e Nº: ${dados.mdf_numero} !`, message: 'Aviso' });\r\n setCarregando(false);\r\n }\r\n ).finally(\r\n () => {\r\n form.resetFields();\r\n setCarregando(false);\r\n fecharModal();\r\n }\r\n );\r\n }\r\n\r\n return (\r\n \r\n Realizar Cancelamento\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 {dadosMdfe.ser_serie} \r\n \r\n \r\n {dadosMdfe.mdf_chavemdfe} \r\n \r\n \r\n \r\n \r\n {dadosMdfe.mdf_numero} \r\n \r\n \r\n {moment(dadosMdfe.mdf_dataemissao).format('DD-MM-YYYY')} \r\n \r\n \r\n \r\n \r\n {dadosMdfe.vei_descricao} \r\n \r\n \r\n {dadosMdfe.vei_placa} \r\n \r\n \r\n \r\n \r\n {dadosMdfe.quantidadedocs} \r\n \r\n \r\n {dadosMdfe.pesobruto} \r\n \r\n \r\n {FormatNumber(dadosMdfe.valortotalmdfe, 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, { useState } from \"react\";\r\nimport { Col, Descriptions, Form, Modal, notification, Row, Select } from \"antd\";\r\nimport { CheckOutlined, CloseOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\nimport SelectPaginacao from \"../../selects/selectPaginacao\";\r\nimport api from \"../../../services/api\";\r\nimport moment from \"moment\";\r\n\r\nexport default function ModalAdicionarMotorista({ exibirModal, fecharModal, dados }) {\r\n const [form] = Form.useForm()\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n const cancelarModal = () => {\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 incluirMotorista = () => {\r\n setCarregando(true);\r\n let dadosForm = form.getFieldsValue();\r\n\r\n if (dadosForm.fun_id !== undefined) {\r\n let dadosMotorista = {\r\n fun_id: dadosForm.fun_id,\r\n mdf_id: dados.mdf_id\r\n }\r\n api.post(`ManifestoEletronico/IncluirCondutor`, dadosMotorista).then(\r\n res => {\r\n let _cStat = res.data.cStat;\r\n let motivo = _cStat + \" - \" + res.data.xMotivo;\r\n if (_cStat === 135) {\r\n notification.success({ message: 'Novo condutor incluído com sucesso!', description: motivo });\r\n } else {\r\n notification.warning({ message: 'Não foi possível incluir um novo condutor!', description: motivo })\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.error(erro);\r\n notification.warning({ message: 'Atenção!', description: 'Não foi possível incluir um novo motorista' });\r\n setCarregando(false);\r\n }\r\n ).finally(\r\n () => {\r\n form.resetFields();\r\n setCarregando(false);\r\n fecharModal();\r\n }\r\n );\r\n } else {\r\n notification.warning({ message: 'Atenção!', description: 'É necessário selecionar um motorista para realizar a inclusão' });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n Incluir\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 {moment(dados.mdf_dataemissao).format('DD-MM-YYYY')} \r\n \r\n \r\n \r\n \r\n {dados.mdf_chavemdfe} \r\n \r\n \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}","import React from \"react\";\r\nimport { Tag, Table } from \"antd\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function TabDetalheDocs({ docs }) {\r\n return (\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 align: 'center',\r\n render: ({ doc_modelodoc }) => (\r\n {doc_modelodoc}\r\n )\r\n },\r\n {\r\n title: 'Cidade',\r\n align: 'center',\r\n render: ({ cid_descricao }) => (\r\n {cid_descricao}\r\n )\r\n },\r\n {\r\n title: 'Estado (UF)',\r\n align: 'center',\r\n render: ({ est_sigla }) => (\r\n {est_sigla}\r\n )\r\n },\r\n {\r\n title: 'Peso',\r\n align: 'center',\r\n render: ({ doc_pesobruto }) => (\r\n {doc_pesobruto}\r\n )\r\n },\r\n {\r\n title: 'Valor (R$)',\r\n align: 'right',\r\n fixed: 'right',\r\n render: ({ doc_valortotal }) => (\r\n R$ {FormatNumber(doc_valortotal, true)}\r\n )\r\n }\r\n ]\r\n } dataSource={docs}\r\n />\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { Table, Tag } from \"antd\";\r\n\r\nexport default function TabDetalheMotorista({ motorista }) {\r\n return (\r\n
\r\n
(\r\n \r\n {fun_id}\r\n \r\n )\r\n },\r\n {\r\n title: 'Nome',\r\n align: 'center',\r\n render: ({ pes_nome }) => (\r\n {pes_nome}\r\n )\r\n }\r\n ]\r\n } dataSource={motorista} />\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { Table, Tag } from \"antd\";\r\n\r\nexport default function TabDetalheVeiculo({ veiculo }) {\r\n return (\r\n
\r\n
(\r\n \r\n {vei_id}\r\n \r\n )\r\n },\r\n {\r\n title: 'Descrição',\r\n align: 'center',\r\n width: 200,\r\n render: ({ vei_descricao }) => (\r\n {vei_descricao}\r\n )\r\n },\r\n {\r\n title: 'Placa',\r\n align: 'center',\r\n width: 200,\r\n render: ({ vei_placa }) => (\r\n {vei_placa}\r\n )\r\n },\r\n {\r\n title: 'Tipo Rodado',\r\n align: 'center',\r\n width: 200,\r\n render: ({ vei_tiporodado }) => (\r\n {vei_tiporodado}\r\n )\r\n }\r\n ]\r\n } dataSource={veiculo} />\r\n \r\n )\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Descriptions, Tabs, Divider } from \"antd\";\r\nimport moment from \"moment\";\r\nimport { TabDetalheDocs, TabDetalheMotorista, TabDetalheVeiculo } from './tabPage'\r\nimport formatNumber from '../../ValueObjects/formatNumber';\r\n\r\nexport default function DetalheMdfe({ dadosModal }) {\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [totalNfe, setTotalNfe] = useState(null);\r\n const [totalCte, setTotalCte] = useState(null);\r\n const [valorTotal, setValorTotal] = useState(null);\r\n const [pesoTotal, setPesoTotal] = useState(null);\r\n\r\n useEffect(() => {\r\n if (dadosModal?.docs?.length > 0) {\r\n let docs = [...dadosModal.docs]\r\n let totalValor = docs.reduce((vlr, item) => { let valor = parseFloat(item.doc_valortotal) || 0; return vlr + valor; }, 0);\r\n let totalPeso = docs.reduce((vlr, item) => { let peso = parseFloat(item.doc_pesobruto) || 0; return vlr + peso; }, 0);\r\n setValorTotal(totalValor);\r\n setPesoTotal(totalPeso);\r\n\r\n if (docs[0].doc_modelodoc === \"55\") {\r\n setTotalNfe(docs.length);\r\n } else if (docs[0].doc_modelodoc === \"57\") {\r\n setTotalCte(docs.length);\r\n }\r\n }\r\n\r\n }, [dadosModal])\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {dadosModal.mdf_chavemdfe} \r\n \r\n \r\n {dadosModal.mdf_numero} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {moment(dadosModal.mdf_dataemissao).format('DD-MM-YYYY')} \r\n \r\n \r\n {dadosModal.mdf_status} \r\n \r\n \r\n {dadosModal.mdf_ambiente} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosModal.mdf_tipoemitente} \r\n \r\n \r\n {dadosModal.mdf_tipomodal} \r\n \r\n\r\n \r\n {dadosModal.pme_descricao} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dadosModal.mdf_unidadepeso} \r\n \r\n \r\n {pesoTotal} \r\n \r\n \r\n R$ {formatNumber(valorTotal, true)} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {totalNfe ?? 0} \r\n \r\n \r\n {totalCte ?? 0} \r\n \r\n \r\n {(dadosModal.mdf_infocomplementar ?? \"NÃO INFORMADO\")} \r\n \r\n \r\n \r\n \r\n Carregamento\r\n \r\n \r\n \r\n \r\n {dadosModal.pme_cepcarrega} \r\n \r\n \r\n {dadosModal.cid_descricaocarrega} \r\n \r\n \r\n {dadosModal.mdf_ufinicio} \r\n \r\n \r\n \r\n \r\n Descarregamento\r\n \r\n \r\n \r\n \r\n {dadosModal.pme_cepdescarrega} \r\n \r\n \r\n {dadosModal.cid_descricaodescarrega} \r\n \r\n \r\n {dadosModal.mdf_uffim} \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 { Modal } from \"antd\";\r\nimport DetalheMdfe from \"../../detalheMdfe\";\r\n\r\nexport default function ModalDetalhesMdfe({ exibirModal, fecharModal, dadosModal }) {\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, Form, Input, Select, Collapse, Menu, Tag, Dropdown, Popover, notification, Modal } from \"antd\";\r\nimport { BreadcrumbPage, ComboData, Data, EmitirManifesto, Imprimir, TabelaDados } from \"../../components\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, CloseOutlined, CloudSyncOutlined, CloudUploadOutlined, ExclamationCircleOutlined, EyeOutlined, IssuesCloseOutlined, MoreOutlined, PlusOutlined, PrinterOutlined, SearchOutlined, TruckOutlined, UserAddOutlined } 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 { novaAbaNavegador } from \"../../services/funcoes\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport ModalReenviarMdfeSefaz from \"../../components/modals/modalReenviarMdfeSefaz\";\r\nimport ModalCancelamentoMdfe from \"../../components/modals/modalCancelamentoMdfe\";\r\nimport ModalAdicionarMotorista from \"../../components/modals/modalAdicionarMotorista\";\r\nimport { ModalConsultaProtocoloMdfe } from \"../../components/modals\";\r\nimport ModalDetalhesMdfe from \"../../components/modals/modalDetalhesMdfe\";\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 const [openModalCancelar, setOpenModalCancelar] = useState(false);\r\n const [dadosCancelamento, setDadosCancelamento] = useState({});\r\n const [dadosConsultaSituacao, setDadosSituacaoMdfe] = useState({});\r\n const [openModalMotorista, setOpenModalMotorista] = useState(false);\r\n const [openModalConsultaSituacao, setOpenModalConsultaSituacao] = useState(false);\r\n const [dadosDetalhesMdfe, setDadosDetalhesMdfe] = useState({});\r\n const [openDetalhesMdfe, setOpenDetalhesMdfe] = 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 consultaSefaz(record) {\r\n api.get(`ManifestoEletronico/ConsultarProtocolo?xmlOuChave=${record.mdf_chavemdfe}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n setDadosSituacaoMdfe(res.data);\r\n setOpenModalConsultaSituacao(true);\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 encerrarMdfe(record) {\r\n Modal.confirm({\r\n title: `Encerrar MDF-e ?`,\r\n icon: ,\r\n content: `Deseje realmente Encerrar o MDF-e nº:${record.mdf_numero}?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n api.post(`ManifestoEletronico/EncerrarMdfe/${record.mdf_id}`).then(\r\n (retornoNF) => {\r\n if (retornoNF.status === 200) {\r\n if (retornoNF.data.cStat === 132 || retornoNF.data.cStat === 135) {\r\n notification.success({ message: 'Sucesso', description: retornoNF.data.cStat + \" - \" + retornoNF.data.xMotivo });\r\n } else {\r\n notification.error({ description: 'Não foi possível Encerrar Manifesto Eletrônico! ' + retornoNF.data.cStat + \" - \" + retornoNF.data.xMotivo, message: `Aviso` });\r\n }\r\n } else {\r\n notification.error({ description: 'Não foi possível Encerrar Manifesto Eletrônico! ' + retornoNF.data.cStat + \" - \" + retornoNF.data.xMotivo, 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 filtrosAvancados();\r\n });\r\n }\r\n });\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(chaveMdfe) {\r\n if (chaveMdfe) {\r\n novaAbaNavegador(`Danfe/GerarDamdfe?chaveMdfe=${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 cancelarMdfe(record) {\r\n let dataEmissao = new Date(record.mdf_dataemissao);\r\n let dataAtual = new Date();\r\n let diferenca = dataAtual - dataEmissao;\r\n\r\n // milissegundosPorSegundo = 1000;\r\n // segundosPorMinuto = 60;\r\n // minutosPorHora = 60;\r\n let horasDeDiferenca = diferenca / (1000 * 60 * 60);\r\n\r\n if (horasDeDiferenca > 24) {\r\n notification.warning({ message: 'Atenção!', description: 'O prazo de 24 horas para cancelamento expirou. MDFe não pode ser cancelado' })\r\n } else {\r\n setDadosCancelamento(record);\r\n setOpenModalCancelar(true);\r\n }\r\n }\r\n\r\n async function visualizarMdfe(dados) {\r\n if (dados.mdf_id) {\r\n await api.get(`ManifestoEletronico/BuscarMdfe/${dados.mdf_id}`).then(\r\n res => {\r\n let retorno = res.data;\r\n setDadosDetalhesMdfe(retorno);\r\n setOpenDetalhesMdfe(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 menuTable(record) {\r\n return (\r\n \r\n {(record.mdf_status === 1) &&\r\n \r\n }\r\n {(record.mdf_status === 1) &&\r\n \r\n }\r\n {(record.mdf_status === 4 || record.mdf_status === 0) &&\r\n \r\n }\r\n {(record.mdf_status === 1 || record.mdf_status === 7) &&\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 dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true, editItem: false } });\r\n }} icon={}>\r\n EMITIR\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: 'Valor Carga (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 MDF-e não gerada\r\n }\r\n {!!mdf_chavemdfe && mdf_status === 1 && mdf_status === 7 &&\r\n { imprimirDamdfe(mdf_chavemdfe) }}>Clique para visualizar o DAMDFE}>\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 { setOpenModalCancelar(false); recarregarLista(); }} />\r\n { setOpenModalMotorista(false); recarregarLista(); }} dados={dados} />\r\n { setOpenModalConsultaSituacao(false); }} />\r\n setOpenDetalhesMdfe(false)} dadosModal={dadosDetalhesMdfe} />\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.status == 200) {\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\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, 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, 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 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 {pro_ean && \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}&Ativo=1`);\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 obj.descricaograde = obj.grade;\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 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 } 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 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\nimport { retornaCep } from \"../../services/funcoes\";\r\n\r\nexport default function TabEndereco({ formulario }) {\r\n\r\n async function verificaCep(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n formulario.setFieldsValue({\r\n ctc_cidadeagencia: retornoCep.cid_descricao,\r\n ctc_ufagencia: retornoCep.est_sigla,\r\n ctc_bairroagencia: retornoCep.bai_nome ?? '',\r\n ctc_enderecoagencia: retornoCep.log_logradouro ?? ''\r\n })\r\n } else {\r\n formulario.setFieldsValue({ ctc_cepagencia: undefined });\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(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 );\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, { useState } from \"react\";\r\nimport { Button } from 'antd';\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function ImportarOperacaoFiscal(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(23));\r\n }, []);\r\n\r\n return (\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, ImportOutlined } 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, BotaoIncluirDados } from \"../../components\";\r\nimport DrawerOperacaoFiscalImportar from \"./drawerImportar\";\r\nimport ImportarOperacaoFiscal from \"../../components/importarOperacaoFiscal\";\r\nimport { Link } from \"@material-ui/core\";\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 { setShowImportar(true); }}\r\n >\r\n }>\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 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 {\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 ? manutencao.dados.ban_id : dadosBoleto.ban_id;\r\n } else {\r\n let bancos = await api.get(`ContaCorrente/Buscar?idContaCorrente=${formulario.getFieldValue().ctc_id}`);\r\n _banco = bancos.data.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 {/* verificar uma melhor forma para remover e preencher via beck direto se possivel */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 debugger;\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 definirDadosBoleto();\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 || formulario.getFieldValue().fpg_emiteboleto == true) {\r\n setDefinirDadosBoletos(true);\r\n }\r\n if (e != undefined && e?.target.checked == false) {\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 debugger;\r\n if (!!manutencao.dados.fpg_id) {\r\n api.get(`DefinicaoBoleto/Listar?codigoFormaPagamento=${manutencao.dados.fpg_id}`).then(\r\n res => {\r\n debugger;\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, zerarFrete, setZerarFrete }) {\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 if (zerarFrete) { \r\n resumo.valorFrete = 0;\r\n setZerarFrete(false);\r\n };\r\n \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 buscarCep(cep.currentTarget.value)} onPressEnter={(cep) => buscarCep(cep.currentTarget.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\nimport { retornaCep } from '../../services/funcoes';\r\n\r\nexport default function FornecedorNFE({ form, dadosEndereco, dadosFornecedor, setDadosFornecedor, operacaoFiscal, setOperacaoFiscal }) {\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 let fornecedor = (await api.get(`Fornecedor/BuscarFornecedor/${registro}`)).data;\r\n if (fornecedor) {\r\n setDadosFornecedor(fornecedor);\r\n let retorno = await validarProdutorRural(fornecedor);\r\n if (retorno === true) {\r\n if (fornecedor.pef_produtorrural) {\r\n form.setFieldsValue({ 'pej_inscricaoestadual': fornecedor?.enderecos[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 }\r\n }\r\n } else {\r\n form.resetFields(); \r\n setDadosFornecedor({});\r\n setOperacaoFiscal({});\r\n }\r\n }\r\n\r\n async function validarProdutorRural(fornecedor) {\r\n let retorno = true;\r\n\r\n if (Object.keys(fornecedor).length > 0 && Object.keys(operacaoFiscal).length > 0) {\r\n if (fornecedor.pef_produtorrural === false && operacaoFiscal.ope_notaprodutorrural === true) {\r\n notification.warning({ message: 'Atenção!', description: 'O fornecedor selecionado não é um produtor rural.' })\r\n form.setFieldsValue({ for_id: null });\r\n setDadosFornecedor({});\r\n retorno = false;\r\n }\r\n }\r\n\r\n return retorno;\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 async function buscarCep(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n form.setFieldsValue({ cidade: `${retornoCep.cid_descricao} / ${retornoCep.est_sigla}` });\r\n } else {\r\n form.setFieldsValue({ cep_cep: undefined });\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\"\r\n allowClear={true} \r\n onChangeFunction={(dados) => {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 \r\n \r\n \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 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 FormasPagamentoNfEntrada({ form, dadosOperacao, listaFormaPagamento, setListaFormaPagamento, nfEntrada }) {\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 [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 [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 (!!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 onCloseModalCheque() {\r\n setExibirModalCheque(false);\r\n };\r\n\r\n function carregarDados() {\r\n api.get('FormaPagamento/Listar?Ativo=true&EntradaSaida=2').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 } 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 incluirNovaFormaPagamento(dadosTemp);\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 }\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 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 } 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 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 { onCloseModalContaCorrente() }} fecharModalContaCorrente={() => { cancelaContaCorrente(); }} contaCorrente={{ contaCorrente, setContaCorrente }} listaContaCorrente={{ listaContaCorrente, setListaContaCorrente }} tipoConta={tipoContaCorrente} />\r\n \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\nimport FormasPagamentoNfEntrada from '../../components/formasPagamentoNfEntrada';\r\n\r\nexport default function FaturamentoNFE({ form, dadosItens, dadosOperacao, resume }) {\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 const [nfEntrada] = useState(true);\r\n\r\n useEffect(() => {\r\n resume(false);\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 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\nimport moment from 'moment';\r\n\r\n\r\nexport default function ResumoNFE({ form, itensNota, dadosNfp, resume }) {\r\n resume(true);\r\n\r\n const calcFunrural = () => {\r\n let valorTot = form.getFieldValue('subTotalNotaFiscal');\r\n let aliqFunr = dadosNfp[0].Aliq/*.replace(\"%\", \"\")*/\r\n\r\n let calcTot = valorTot * (aliqFunr / 100);\r\n\r\n return calcTot.toFixed(2);\r\n }\r\n\r\n useEffect(() => {\r\n if (dadosNfp.length > 0) {\r\n form.setFieldsValue({\r\n ntf_infcomplementar: `CONTRA NOTA REF.COMPRA DE PRODUTOR RURAL: ${dadosNfp[0].Chave ? 'Chave:' + dadosNfp[0].Chave+', ' : ''} N°: ${dadosNfp[0].Nfp}, Serie: ${dadosNfp[0].Serie}, Emitida em: ${moment(dadosNfp[0].Data).format('DD/MM/YYYY')}`\r\n });\r\n } else {\r\n form.setFieldsValue({ ntf_infcomplementar: '' })\r\n }\r\n }, [dadosNfp, form])\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$): 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, { 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 { selectPaginadoActions } from \"../../actions\";\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\n\r\nexport default function FiltroProdutoNfEntrada({ 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 [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 const [nfSaida, setNfSaida] = useState(false);\r\n const [numeroPedido, setNumeroPedido] = useState(null);\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);\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 (dadosOperacao.tipooperacao.tip_entradasaida === 1) {\r\n setNfSaida(true);\r\n } else if (dadosOperacao.tipooperacao.tip_entradasaida === 0) {\r\n setNfSaida(false);\r\n }\r\n }, [dadosOperacao])\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 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 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.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 setControleLote(produto.pro_controlelote)\r\n form.setFieldsValue({ nfi_numeropedidocompra: numeroPedido });\r\n\r\n let produtoImposto = await buscarDadosProdImpostos(produto.pro_id);\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);\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 onChangeValorTotal() {\r\n recalcularValorUnitario();\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 recalcularValorUnitario() {\r\n let vlrUnit = 0;\r\n vlrUnit = parseFloat(parseFloat(form.getFieldValue().valorTotalItem) / parseFloat(form.getFieldValue().quantidade));\r\n form.setFieldsValue({ valorUnitario: vlrUnit.toFixed(4) });\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) {\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 nfi_itempedidocompra: null\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 if (resParams.status == 200) {\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\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 setNumeroPedido(dadosFormulario.nfi_numeropedidocompra);\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) {\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 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 nfi_qtde: formulario.quantidade,\r\n nfi_numeropedidocompra: formulario.nfi_numeropedidocompra,\r\n nfi_itempedidocompra: formulario.nfi_itempedidocompra,\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 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: item.nfi_numeropedidocompra,\r\n nfi_itempedidocompra: item.nfi_itempedidocompra,\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 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 nfi_itempedidocompra: dados.nfi_itempedidocompra,\r\n nfi_numeropedidocompra: dados.nfi_numeropedidocompra\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 \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 onChangeValorTotal()} />\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 {nfSaida === 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 { 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, { useState, useEffect } from 'react';\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\nimport FiltroProdutoNfEntrada from '../../components/filtroProdutoNfEntrada';\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 form.setFieldsValue({ valorTotal: 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 [listaTransportadores, setListaTransportadores] = useState([]);\r\n const [dadosVeiculos, setDadosVeiculos] = useState({});\r\n\r\n useEffect(() => {\r\n buscarTransportadores();\r\n if (form.getFieldValue().ntf_modalidadefrete === 9) {\r\n setMostrarTransportador(false);\r\n setAbaSelecionada(\"2\");\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 setAbaSelecionada(\"2\");\r\n } else {\r\n setMostrarTransportador(true);\r\n setAbaSelecionada(\"1\");\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 }\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 }\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
\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 { CheckOutlined, CloseOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport { Button, Col, Divider, Form, Input, Modal, Row, Table, Typography, Select } from 'antd';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport { Data, InputPreco } from '../../components';\r\nimport api from '../../services/api';\r\nimport moment from 'moment';\r\n\r\nexport default function NotasBlocoNFE(dadosNfp) {\r\n const [exibirModal, setExibirModal] = useState(false);\r\n const [valueRadio, setValueRadio] = useState('04');\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [editingNfp, setEditingNfp] = useState(false);\r\n const [listaModelo, setListaModelo] = useState([]);\r\n const [form] = Form.useForm();\r\n\r\n const saveNFP = () => {\r\n let modelNfp = valueRadio;\r\n let keyNumber = form.getFieldValue().key;\r\n let numberNfp = form.getFieldValue().nfp;\r\n let serie = form.getFieldValue().serie;\r\n let data = moment(form.getFieldValue().data);\r\n let valorTotal = parseFloat(form.getFieldValue().nfpValue).toFixed(2);\r\n\r\n const newNFP = {\r\n Model: modelNfp, Chave: keyNumber, Nfp: numberNfp,\r\n Serie: serie, Data: data, Valor: valorTotal\r\n };\r\n\r\n if (!!editingNfp) {\r\n dadosNfp.dadosNfp.setDadosNfp((pre) => {\r\n let verif = pre.filter(nota => nota.Nfp !== newNFP.Nfp)\r\n return [...verif, newNFP];\r\n })\r\n } else {\r\n dadosNfp.dadosNfp.setDadosNfp((pre) => {\r\n return [...pre, newNFP];\r\n });\r\n }\r\n setExibirModal(false);\r\n form.resetFields();\r\n setEditingNfp(null);\r\n setValueRadio('04');\r\n }\r\n\r\n const deleteItem = (record) => {\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: 'Deseja remover a NFP?',\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n dadosNfp.dadosNfp.setDadosNfp((pre) => {\r\n return pre.filter(nota => nota.Nfp !== record.Nfp)\r\n });\r\n form.resetFields();\r\n }\r\n })\r\n }\r\n\r\n const edittingNfp = (record) => {\r\n setEditingNfp(true);\r\n setValueRadio(record.Model);\r\n form.setFieldsValue({\r\n model: record.Model,\r\n key: record.Chave,\r\n nfp: record.Nfp,\r\n serie: record.Serie,\r\n data: moment(record.Data, 'DD/MM/YYYY'),\r\n nfpValue: parseFloat(record.Valor).toFixed(2),\r\n });\r\n setExibirModal(true);\r\n }\r\n\r\n const callInput = () => {\r\n let valueNumber = form.getFieldValue().key;\r\n\r\n form.setFieldsValue({\r\n nfp: valueNumber.substring(25, 34),\r\n serie: valueNumber.substring(22, 25)\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 setExibirModal(false);\r\n setEditingNfp(null);\r\n setValueRadio('04');\r\n form.resetFields();\r\n }\r\n });\r\n }\r\n\r\n const onChangeRadio = (e) => {\r\n setValueRadio(e);\r\n if (e === \"04\") {\r\n form.setFieldsValue({\r\n key: undefined,\r\n nfp: undefined,\r\n serie: undefined\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (dadosNfp.dadosNfp.dadosNfp.length > 0) {\r\n let total = 0;\r\n dadosNfp.dadosNfp.dadosNfp.forEach((nfp) => {\r\n total += parseFloat(nfp.Valor.replace(/,/g, ''));\r\n });\r\n setValorTotal(total);\r\n form.setFieldsValue({ valorTotal: total });\r\n } else {\r\n setValorTotal(0);\r\n }\r\n }, [dadosNfp.dadosNfp]);\r\n\r\n useEffect(() => {\r\n api.get(`ModeloDocumentoFiscal/ListarTodos`).then(\r\n res => {\r\n let dados = res.data;\r\n let filtroDados = dados.filter(item => item.mdf_id === '04' || item.mdf_id === '55');\r\n setListaModelo(filtroDados);\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! \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n form.submit()}\r\n destroyOnClose\r\n title=\"Dados da Nota do Produtor Rural\"\r\n okText={\r\n <>\r\n Confirmar\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
(\r\n {Model}\r\n ),\r\n },\r\n {\r\n title: 'Chave de Acesso',\r\n width: 450,\r\n render: ({ Chave }) => (\r\n {Chave || \"Não Informado\"}\r\n ),\r\n },\r\n {\r\n title: 'Número',\r\n align: 'center',\r\n render: ({ Nfp }) => (\r\n {Nfp}\r\n ),\r\n },\r\n {\r\n title: 'Série',\r\n align: 'center',\r\n render: ({ Serie }) => (\r\n {Serie}\r\n ),\r\n },\r\n {\r\n title: 'Valor Total (R$)',\r\n align: 'right',\r\n render: ({ Valor }) => (\r\n R$ {FormatNumber(Valor, true)}\r\n )\r\n },\r\n {\r\n title: 'Ações',\r\n align: 'center',\r\n width: 100,\r\n render: (record) => {\r\n return (\r\n <>\r\n \r\n Valor Total das Notas (R$):\r\n \r\n \r\n {FormatNumber(valorTotal, true)}\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, Modal, 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\nexport default function NFEntrada({ form, showDrawer, carregando, aoSalvar, pages, proximaPag, resume }) {\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 [dadosNfp, setDadosNfp] = 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 [permiteValidar, setPermiteValidar] = useState(true);\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 }\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 && permiteValidar) {\r\n validarTrocaPg(proximaPag.proximaPag);\r\n } else {\r\n setPermiteValidar(true);\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 let retorno = await validarFornecedor();\r\n if (!retorno) {\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n break;\r\n\r\n case !!operacaoFiscal.ope_notaprodutorrural && 1:\r\n if (paginaAtual < pagina) {\r\n console.log(\"passada de pag\");\r\n if (!!dadosNfp && dadosNfp.length === 0) {\r\n notification.warning({ message: 'Aviso', description: 'Nota Fiscal deve ter ao menos 1 NFP referenciada!' });\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n break;\r\n case !!operacaoFiscal.ope_notaprodutorrural ? 2 : 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 else if (dadosNfp.length > 0) {\r\n if (parseFloat(dadosNfp[0]?.Valor) !== form.getFieldValue('valorTotal')) {\r\n notification.warning({ message: 'Aviso', description: 'Valor total dos itens deve ser o mesmo total da NFP!' });\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case !!operacaoFiscal.ope_notaprodutorrural ? 4 : 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 }\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 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\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 let retorno = true\r\n if (Object.keys(dadosFornecedor).length > 0 && Object.keys(operacaoFiscal).length > 0) {\r\n if (operacaoFiscal.ope_notaprodutorrural === true) {\r\n if (form.getFieldValue('pej_inscricaoestadual') === \"\") {\r\n notification.warning({ message: 'Atenção!', description: 'Inscrição Estadual obrigatória' });\r\n retorno = false;\r\n }\r\n }\r\n }\r\n return retorno;\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.notasProdutorReferenciados = dadosNfp.map((item) => ({\r\n nfp_modelo: item.Model,\r\n nfp_serie: item.Serie,\r\n nfp_numeronota: item.Nfp,\r\n nfp_dataemissao: item.Data,\r\n nfp_chave: item.Chave,\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 = dadosFornecedor.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\r\n function validarProdutorRural() {\r\n if (Object.keys(dadosFornecedor).length > 0 && Object.keys(operacaoFiscal).length > 0) {\r\n if (operacaoFiscal.ope_notaprodutorrural === true && dadosFornecedor.pef_produtorrural === false) {\r\n notification.warning({ message: 'Atenção!', description: 'A operação selecionada é destinada apenas para produtores rurais' });\r\n form.setFieldsValue({ ope_id: null });\r\n setOperacaoFiscal({});\r\n }\r\n }\r\n }\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 function SalvarNota(dados) {\r\n if (!!dados.ntf_id) {\r\n editarNota(dados);\r\n } else {\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\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 ).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\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\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 ).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 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)}\r\n onBlurFunction={() => validarProdutorRural()} \r\n 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 {!!operacaoFiscal.ope_notaprodutorrural && \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 {!!operacaoFiscal.ope_notaprodutorrural &&\r\n pages.tagPages === 1 &&\r\n \r\n }\r\n {pages.tagPages === (!!operacaoFiscal.ope_notaprodutorrural ? 2 : 1) &&\r\n \r\n }\r\n {pages.tagPages === (!!operacaoFiscal.ope_notaprodutorrural ? 3 : 2) &&\r\n \r\n }\r\n {pages.tagPages === (!!operacaoFiscal.ope_notaprodutorrural ? 4 : 3) &&\r\n \r\n }\r\n {pages.tagPages === (!!operacaoFiscal.ope_notaprodutorrural ? 5 : 4) &&\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 [resume, setResume] = 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 setResume(false);\r\n showDrawer.setShowNFEntrada(false);\r\n };\r\n\r\n const ActionsController = () => {\r\n setProximaPag(tagPages - 1)\r\n setResume(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 setResume(false);\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 { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { formatarCpfCnpj, imprimirRelatorioJasper, novaAbaNavegador, openPdfNewTab } from \"../../services/funcoes\";\r\nimport { BreadcrumbPage, 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 setShowNFEntrada(true);\r\n }} icon={}>\r\n Emitir Nota Fiscal Entrada\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 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, { 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, { 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, 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 } from \"../../components\";\r\nimport { getBase64 } from \"../../services/funcoes\";\r\nimport api from \"../../services/api\";\r\nimport { buscarDadosTabela, criarBanco, excluirBancoDados, incluirBanco } from \"../../services/webSql\";\r\nimport { manutencaoActions } from \"../../actions\";\r\nimport { useStateValue } from \"../../state\";\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 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\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 {!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, { useState } from \"react\";\r\nimport { Button, Col, notification, Row, Upload } 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\n\r\nexport default function ImportarNotaFiscalSuporte() {\r\n const [arquivoBase64, setArquivoBase64] = useState(\"\");\r\n const [arquivo, setArquivo] = useState(null);\r\n const [carregando, setCarregando] = useState(false);\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 function validarNotaFiscal() {\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 function removerNota() {\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 {!!!arquivo &&
\r\n \r\n
\r\n

\r\n \r\n

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

Arraste o xml aqui! (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 \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 ButtonXMLSuporte(props) {\r\n const [invisivel, setInvisivel] = useState(false);\r\n\r\n useState(() => {\r\n setInvisivel(validarPermissaoTela(24));\r\n }, []);\r\n\r\n return (\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\nimport ButtonXMLSuporte from \"../../components/buttonXmlSuporte\";\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 Importar Nota Fiscal (PDV) \r\n \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 } 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, 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 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 } 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 {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, 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 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 { imprimirRelatorioJasper } from \"../../services/funcoes\";\r\nimport { FormatNumber, MaskFormat, FormatFone } from \"../../ValueObjects\";\r\nimport { DrawerNF, DrawerPedidos, DrawerTransferencia } from './drawerPage';\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacaoData, TabelaDados, Imprimir, Data, PesquisaAvancada, BreadcrumbPage } 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 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 fpPixDinamico: 17,\r\n fpTransferencia: 18,\r\n fpPixEstatico: 20,\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, 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 { 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, 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 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, 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 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.multa = 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.multa += parcela.valorMulta;\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 let items = dados.data.items;\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.valorMulta = 0;\r\n item.key = item.cpr_id.toString().concat(item.prc_id);\r\n item.zerouJuros = false;\r\n item.zerouMulta = 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 if(parametrosEmpresa.par_tipocalculomulta == 1){\r\n item.valorMulta= !!parametrosEmpresa.par_multaparcelavencida ? parametrosEmpresa.par_multaparcelavencida : 0;\r\n } else if(parametrosEmpresa.par_tipocalculomulta == 2){\r\n item.valorMulta= !!parametrosEmpresa.par_multaparcelavencida ? (item.prc_valor * ( parametrosEmpresa.par_multaparcelavencida/100)) : 0;\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 + item.valorMulta).toFixed(2) );\r\n item.valorPagoRecebido = parseFloat(item.prc_valor);\r\n item.valorDesconto = 0.00;\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 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.valorTotalMulta = 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) + parseFloat(item.valorMulta));\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: 'Multa (R$)',\r\n align: 'right',\r\n render: ({ valorMulta }) => (\r\n
\r\n 0 ? 'c-red' : ''}>\r\n {FormatNumber(!!valorMulta ? valorMulta : 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 Multa (R$): \r\n {FormatNumber(!!selecionados.totalSelecionados.multa ? selecionados.totalSelecionados.multa : 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, 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 fpPixDinamico: 17,\r\n fpTransferencia: 18,\r\n fpPixEstatico: 20,\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.fpPixDinamico,\r\n tipoFormaPagamento.fpPixEstatico,\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.valorTotalMulta = 0\r\n lista.valorDesconto = 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.valorTotalMulta += parseFloat(item.valorMulta);\r\n lista.valorDesconto += parseFloat(item.valorDesconto);\r\n lista.valorTotal += valorTotal;\r\n lista.valorAReceber += parseFloat(((valorTotal + parseFloat(item.valorJuros) + parseFloat(item.valorMulta)) - parseFloat(item.valorDesconto)).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({ 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.valorJuros) + parseFloat(item.valorMulta)).toFixed(2));\r\n if(item.vencida && !item.zerouMulta){\r\n if(parametrosEmpresa.par_tipocalculomulta == 1){\r\n item.valorMulta= !!parametrosEmpresa.par_multaparcelavencida ? parametrosEmpresa.par_multaparcelavencida : 0;\r\n } else if(parametrosEmpresa.par_tipocalculomulta == 2){\r\n item.valorMulta= !!parametrosEmpresa.par_multaparcelavencida ? (valorParcela * ( parametrosEmpresa.par_multaparcelavencida/100)) : 0;\r\n } \r\n }\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 if(parametrosEmpresa.par_tipocalculomulta == 1){\r\n item.valorMulta= !!parametrosEmpresa.par_multaparcelavencida ? parametrosEmpresa.par_multaparcelavencida : 0;\r\n } else if(parametrosEmpresa.par_tipocalculomulta == 2){\r\n item.valorMulta= !!parametrosEmpresa.par_multaparcelavencida ? (valorParcela * (parametrosEmpresa.par_multaparcelavencida/100)) : 0;\r\n }\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));\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.valorJuros) + parseFloat(item.valorMulta)).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 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 retornoParcela.valorMulta = 0;\r\n retornoParcela.zerarMulta = 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 if(parametrosEmpresa.par_tipocalculomulta == 1){\r\n retornoParcela.valorMulta= !!parametrosEmpresa.par_multaparcelavencida ? parametrosEmpresa.par_multaparcelavencida : 0;\r\n } else if(parametrosEmpresa.par_tipocalculomulta == 2){\r\n retornoParcela.valorMulta= !!parametrosEmpresa.par_multaparcelavencida ? (retornoParcela.prc_valor * (parametrosEmpresa.par_multaparcelavencida/100)) : 0;\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 + retornoParcela.valorMulta).toFixed(2));\r\n retornoParcela.valorPagoRecebido = parseFloat(retornoParcela.prc_valor);\r\n retornoParcela.valorDesconto = 0.00;\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.valorMulta = parseFloat(values.valorMulta);\r\n linha.valorDesconto = parseFloat(values.valorDesconto);\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.fpPixDinamico:\r\n case tipoFormaPagamento.fpPixEstatico:\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.fpPixDinamico:\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.fpPixDinamico) {\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.fpPixDinamico) {\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.fpPixDinamico) {\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.valorTotalMulta = parseFloat(listaTotalizadores.valorTotalMulta.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: listaTotalizadores.valorTotalJuros,\r\n valorMultaFormaPgto: listaTotalizadores.valorTotalMulta,\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.valorMulta)).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 zerarMulta() {\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.valorMulta = 0;\r\n if (parseFloat(item.valorDesconto) > valorTotal) {\r\n item.valorDesconto = valorTotal;\r\n }\r\n item.zerarMulta = true;\r\n item.valorAReceber = parseFloat((valorTotal - parseFloat(item.valorDesconto) + parseFloat(item.valorJuros) + parseFloat(item.valorMulta)).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 {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 Multa\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 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.valorTotalMulta && listaTotalizadores.valorTotalMulta !== 0) &&\r\n \r\n \r\n \r\n Valor Multa (R$):\r\n \r\n \r\n {FormatNumber(listaTotalizadores.valorTotalMulta, 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 fpPixDinamico: 17,\r\n fpTransferencia: 18,\r\n fpPixEstatico: 20,\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.fpPixDinamico && formaPagamento.fpg_tipopagamento !== tipoFormaPagamento.fpPixEstatico) {\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 { FormatFone, MaskFormat, FormatNumber } from '../../ValueObjects';\r\nimport { BreadcrumbPage, 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 {!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 } 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 } from '../../services/funcoes';\r\nimport { BreadcrumbPage, 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 if (!!formulario.getFieldValue().his_id){\r\n url += `&Historico=${formulario.getFieldValue().his_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 } 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 ({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 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 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, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\n\r\nimport api from '../../../services/api';\r\nimport { Col, Divider, Row } from 'antd';\r\nimport { FormatNumber } from '../../../ValueObjects';\r\n\r\nexport default function FluxoCaixaDiarioLocalAnalitico({ 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 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.datapgtovencimento}\r\n \r\n \r\n {FormatNumber(fluxoLocal.entradarealizado, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.saidarealizado, 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
\r\n \r\n \r\n DATA\r\n \r\n \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.datapgtovencimento}\r\n \r\n \r\n {FormatNumber(fluxoLocal.provisaoreceber, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.entradarealizado, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.provisaopagar, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.saidarealizado, 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 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].totalSaldoInicial !== 0) ? res.data[0].totalSaldoInicial : 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 api from '../../services/api';\r\nimport { BreadcrumbPage, 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 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 = \"diarioLocalAnalitico\";\r\n api.get(`FluxoCaixa/ListarFluxoDiarioLocal?DataInicial=${dataInicial}&DataFinal=${dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dados = res.data[0];\r\n debugger;\r\n let valores = {\r\n prevPagar: dados.totalprovisaopagar || 0,\r\n prevReceber: dados.totalprovisaoreceber || 0,\r\n realizadoEntrada: dados.totalentradarealizado || 0,\r\n realizadoSaida: dados.totalsaidarealizado || 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 === 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\nreturn (\r\n
\r\n \r\n \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 }\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, 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}` : '')}&conciliado=false`;\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 {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 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 { 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 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 } 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 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(50);\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, 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 { 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 {!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, 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 { 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, 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 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 \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, retornaCep } 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\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\";\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 const [cpfCnpj, setCpfCnpj] = useState(null);\r\n const listaValidacoes = [\r\n { nome: 'loc_cpfCnpj', 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: 'loc_numeroestabelecimento', 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 if (!!manutencao.dados) {\r\n formulario.setFieldsValue(manutencao.dados);\r\n if ((!!manutencao.dados?.loc_cnpj?.numero || manutencao.dados?.loc_cpf?.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 || !!manutencao.dados.loc_cpf.numero) {\r\n formulario.setFieldsValue({ loc_cpfCnpj: manutencao.dados.loc_cnpj.numero !== \"\" ? manutencao.dados.loc_cnpj.numero : manutencao.dados.loc_cpf.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 buscarCep(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 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 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 function verificaMatriz() {\r\n if (formulario.getFieldValue().loc_matriz) {\r\n api.get(`Local/BuscarLocalCpfCnpj/${formulario.getFieldValue().loc_cpfCnpj}`).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_cpfCnpj || retornoFilial.data[i].loc_cpf.numero !== formulario.getFieldValue().loc_cpfCnpj) {\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 function 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 const cpfCnpj = values.loc_cpfCnpj.replace(/\\D/g, '');\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 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 if (cpfCnpj.length === 11) {\r\n values.loc_cpf = cpfCnpj\r\n } else if (cpfCnpj.length === 14) {\r\n values.loc_cnpj = cpfCnpj\r\n }\r\n delete values.loc_cpfCnpj\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\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: 'loc_descricao' } });\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 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 } else {\r\n verificarLocal(cpfCnpj);\r\n }\r\n }\r\n }\r\n\r\n function verificarLocal(cpfCnpj) {\r\n if (!!cpfCnpj) {\r\n api.get(`Local/BuscarLocalCpfCnpj/${cpfCnpj}`).then(retornoCnpjLocal => {\r\n if (!!retornoCnpjLocal.data) {\r\n Modal.warning({\r\n title: 'Aviso!',\r\n content: \"CPF/CNPJ já cadastrado!\",\r\n onOk() {\r\n formulario.setFieldsValue({ loc_cpfCnpj: \"\" });\r\n }\r\n });\r\n } else {\r\n consultaCNPJ(cpfCnpj).then((retorno) => {\r\n if (retorno.status === \"ERROR\") {\r\n api.get(`Empresa/BuscarDadosNovaEmpresa?cpfCnpj=${cpfCnpj}`).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 cep_cep: retornoCnpj.data[0].cep_cep,\r\n cid_descricao: 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 cep_cep: retorno.cep.replace('.', '').replace('-', ''),\r\n cid_descricao: 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 }\r\n }).catch(erro => {\r\n console.log(erro);\r\n });\r\n }\r\n };\r\n\r\n async function buscarCep(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n formulario.setFieldsValue({\r\n cid_descricao: `${retornoCep.cid_descricao} / ${retornoCep.est_sigla}`, est_sigla: retornoCep.est_sigla, cep_id: retornoCep.cep_id\r\n });\r\n } else {\r\n formulario.setFieldsValue({ cep_cep: undefined });\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 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 \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\" />\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: 'CPF/CNPJ',\r\n render: ({ loc_cnpj, loc_cpf }) => (\r\n
\r\n {loc_cnpj.numero ? MaskFormat(loc_cnpj.numero, '', true) : MaskFormat(loc_cpf.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, 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, 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 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 {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(event.currentTarget.value)} />\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\nimport { retornaCep } from \"../../services/funcoes\";\r\n\r\nexport default function TabEndereco({ formulario }) {\r\n\r\n const [cidade, setCidade] = useState(null);\r\n\r\n async function verificaCep(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n setCidade(retornoCep);\r\n formulario.setFieldsValue({\r\n cid_descricao: `${retornoCep.cid_descricao} / ${retornoCep.est_sigla}`,\r\n est_sigla: retornoCep.est_sigla,\r\n cep_id: retornoCep.cep_id\r\n })\r\n } else {\r\n formulario.setFieldsValue({ cep_cep: undefined });\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 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 const [tipoCalculo, setTipoCalculo] = 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 api.get(`Enum/Listar?nome=TipoCalculo`).then(res => {\r\n if (res.status === 200) {\r\n setTipoCalculo(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 dadosParametrosEmpresa.par_tipocalculomulta = !!dadosParametrosEmpresa.par_tipocalculomulta ? dadosParametrosEmpresa.par_tipocalculomulta :null;\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 \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, notification } 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\nimport CpfCnpj from \"@react-br-forms/cpf-cnpj-mask\"\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 const [cpfCnpj, setCpfCnpj] = useState(null);\r\n const [regimeTributarioFiscal, setRegimeTributarioFiscal] = useState([]);\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 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 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 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 } else {\r\n pesquisaCNPJ(cpfCnpj);\r\n }\r\n }\r\n }\r\n\r\n function pesquisaCNPJ(cpfCnpj) {\r\n if (!!cpfCnpj) {\r\n api.get(`Local/BuscarLocalCpfCnpj/${cpfCnpj}`).then(\r\n retornoCnpjLocal => {\r\n if (!!retornoCnpjLocal.data || retornoCnpjLocal !== \"\") {\r\n consultaCNPJ(cpfCnpj).then((retorno) => {\r\n if (retorno.status === \"ERROR\") {\r\n api.get(`Empresa/BuscarDadosNovaEmpresa?cpfCnpj=${cpfCnpj}`).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 const cpfCnpj = values.loc_cpfCnpj.replace(/\\D/g, '');\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_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 ? 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 if (cpfCnpj.length === 11) {\r\n novaEmpresa.loc_cpf = cpfCnpj\r\n } else if (cpfCnpj.length === 14) {\r\n novaEmpresa.loc_cnpj = cpfCnpj\r\n }\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?codigoAceitacao=${dados.codigoSegurancaContrato}&localid=${dadosLocalAtivacao.loc_id}&planoId=${planoSelecionado.pla_id}&periodoAssinatura=${periodoAssinatura}&cnpj=${cpfCnpj}`);\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 ? novaEmpresa.loc_cnpj : novaEmpresa.loc_cpf}`);\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 \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 \r\n \r\n \r\n \r\n {(cpfCnpj && cpfCnpj.replace(/\\D/g, '').length > 11 )&& \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 Comércio\r\n Indústria\r\n Equiparado a Indústria\r\n Serviços\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-4922\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 { BreadcrumbPage } from \"../../components\";\r\nimport { useStateValue } from \"../../state\";\r\nimport api from \"../../services/api\";\r\nimport { ExclamationCircleOutlined, SaveOutlined, SearchOutlined } from \"@ant-design/icons\";\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 ({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 const [descontoTotal, setDescontoTotal] = useState(true);\r\n const [checked1, setChecked1] = 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 const onChangeChecked1 = (e) => {\r\n setChecked1(e.target.checked);\r\n }\r\n\r\n function tipoImpostoSelecionado(record) {\r\n if (record === 7) {\r\n setChecked1(false);\r\n setDescontoTotal(false);\r\n } else {\r\n setDescontoTotal(true);\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_descontototalnota = checked1;\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 Desconta total da nota?\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 React, { useState } from \"react\";\r\nimport { Button, Col, Divider, Form, notification, Row, Select, Table, Tag, Tooltip } from \"antd\";\r\n\r\nimport { BreadcrumbAbrirChamado, FormGW, SelectPaginacao, SelectProduto } from \"../../components\";\r\nimport { DeleteOutlined, ExclamationCircleOutlined, LoadingOutlined, PlusOutlined, UserSwitchOutlined } from \"@ant-design/icons\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function RetencaoPessoaProduto() {\r\n const [form] = Form.useForm();\r\n const [alterarPessoa, setAlterarPessoa] = useState(true);\r\n const [listaSelectProd, setListaSelectProd] = useState([]);\r\n const [listaProdutos, setListaProdutos] = useState([]);\r\n const [carregandoDados, setCarregandoDados] = useState(false);\r\n\r\n const informarPessoa = () => {\r\n setAlterarPessoa(!alterarPessoa);\r\n form.setFieldsValue({ cli_id: undefined, for_id: undefined });\r\n }\r\n\r\n function verificarDados() {\r\n let values = form.getFieldValue();\r\n let cliente = values.cli_id !== undefined ? values.cli_id : null;\r\n let fornecedor = values.for_id !== undefined ? values.for_id : null;\r\n let retencao = values.tar_id !== undefined ? values.tar_id : null;\r\n let valorLista = [...listaProdutos];\r\n\r\n if (valorLista.length > 0) {\r\n if (valorLista[0].cli_id !== cliente || valorLista[0].for_id !== fornecedor || valorLista[0].tar_id !== retencao) {\r\n buscarDados(cliente, fornecedor, retencao);\r\n } else {\r\n notification.warning({ message: 'Atenção!', description: 'Relacionamento já carregado' });\r\n }\r\n } else {\r\n buscarDados(cliente, fornecedor, retencao);\r\n }\r\n }\r\n\r\n function buscarDados(cliente, fornecedor, retencao) {\r\n if ((cliente !== null || fornecedor !== null) && retencao !== null) {\r\n setCarregandoDados(true)\r\n let filtrosArray = [];\r\n if (cliente !== null) {\r\n filtrosArray.push(`idCliente=${cliente}`);\r\n }\r\n if (fornecedor !== null) {\r\n filtrosArray.push(`idFornecedor=${fornecedor}`);\r\n }\r\n filtrosArray.push(`idTabelaRetencao=${retencao}`);\r\n let filtros = filtrosArray.join('&');\r\n api.get(`RetencaoClienteFornecedor/Listar?${filtros}`).then(\r\n res => {\r\n let retorno = res.data.items;\r\n let proxSequencia = listaProdutos.length + 1;\r\n retorno = retorno.map((item, index) => ({\r\n ...item,\r\n sequencia: proxSequencia + index\r\n }));\r\n let listaTemp = [...retorno];\r\n\r\n setCarregandoDados(false);\r\n setListaProdutos(listaTemp);\r\n if (retorno.length > 0) {\r\n if (cliente !== null) {\r\n notification.success({ message: 'Sucesso!', description: 'Produtos relacionados ao cliente e tabela de retenção carregados' });\r\n } else if (fornecedor !== null) {\r\n notification.success({ message: 'Sucesso!', description: 'Produtos relacionados ao fornecedor e tabela de retenção carregados' });\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\r\n function produtoSelecioando() {\r\n let values = form.getFieldValue();\r\n let dados = {};\r\n if ((alterarPessoa ? values.cli_id !== undefined : values.for_id !== undefined) && values.tar_id !== undefined) {\r\n if (values.pro_id !== undefined) {\r\n let listaItens = [...listaSelectProd];\r\n let produto = listaItens.filter(pro => pro.key === values.pro_id)[0];\r\n let listaTemp = [...listaProdutos];\r\n produto = { ...produto, sequencia: listaProdutos.length + 1 };\r\n dados = {\r\n tar_id: values.tar_id,\r\n cli_id: values.cli_id !== undefined ? values.cli_id : null,\r\n for_id: values.for_id !== undefined ? values.for_id : null,\r\n pro_id: produto.pro_id\r\n }\r\n api.post(`RetencaoClienteFornecedor/Incluir`, dados).then(\r\n res => {\r\n if (res.status === 200) {\r\n produto = { ...produto, rcf_id: res.data.rcf_id };\r\n listaTemp.push(produto);\r\n setListaProdutos(listaTemp);\r\n if (values.cli_id !== null) {\r\n notification.success({ message: 'Sucesso!', description: 'Produto relacionado com cliente e tabela de retenção' });\r\n } else if (values.for_id !== null) {\r\n notification.success({ message: 'Sucesso!', description: 'Produto relacionado com fornecedor e tabela de retenção' });\r\n }\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.error(erro)\r\n }\r\n )\r\n form.setFieldsValue({ pro_id: undefined });\r\n } else {\r\n notification.warning({ message: 'Atenção!', description: 'Selecione um produto para adicioná-lo' });\r\n }\r\n } else {\r\n notification.warning({ message: 'Atenção!', description: 'Preencha os campos obrigatórios' });\r\n }\r\n }\r\n\r\n function limparLista() {\r\n setListaProdutos([]);\r\n }\r\n\r\n function removeProd(record) {\r\n let index = listaProdutos.findIndex(prod => prod.sequencia === record.sequencia)\r\n let dadosTemp = [...listaProdutos];\r\n dadosTemp.splice(index, 1)\r\n\r\n dadosTemp.forEach((item, index) => {\r\n item.sequencia = index + 1;\r\n })\r\n\r\n setListaProdutos(dadosTemp);\r\n api.delete(`RetencaoClienteFornecedor/Excluir/${record.rcf_id}`).then(\r\n res => {\r\n if (res.status === 200) {\r\n notification.success({ message: 'Sucesso!', description: 'Relacionamento excluído com sucesso' });\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 return (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n verificarDados()}\r\n onClearFunction={() => limparLista()}\r\n />\r\n \r\n }\r\n {!alterarPessoa && \r\n \r\n verificarDados()}\r\n onClearFunction={() => limparLista()}\r\n />\r\n \r\n }\r\n \r\n \r\n verificarDados()}\r\n onClearFunction={() => limparLista()}\r\n conteudo={(item) => (\r\n \r\n {item.tar_descricao} - {item.tar_percentuaretencao}%\r\n \r\n )}\r\n />\r\n \r\n \r\n {carregandoDados && \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Produto\r\n \r\n \r\n
(\r\n \r\n {rcf_id}\r\n \r\n )\r\n },\r\n {\r\n title: 'Codigo',\r\n align: 'center',\r\n render: ({ pro_id }) => (\r\n {pro_id}\r\n )\r\n },\r\n {\r\n title: 'Descrição',\r\n width: 1000,\r\n render: ({ pro_descricao }) => (\r\n {pro_descricao}\r\n )\r\n },\r\n {\r\n title: 'EAN',\r\n width: 200,\r\n align: 'center',\r\n render: ({ prg_ean, pro_ean }) => (\r\n {prg_ean ? prg_ean : pro_ean}\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 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 \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-4922\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, Form, Row } from \"antd\";\r\nimport React, { useState } from \"react\";\r\nimport { 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 {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 { 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 {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 { 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 { 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 {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 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, Modal, Popover, Row, Table, Tag, notification } from \"antd\";\r\nimport { BreadcrumbIncluirDados, Editar, Excluir, PesquisaOrdenacao } from \"../../components\";\r\nimport { 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\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 } from \"antd\";\r\nimport { BreadcrumbPage, Data, SelectPaginacao } from \"../../components\";\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 } from \"@ant-design/icons\";\r\nimport moment from \"moment\";\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 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 title: 'Multa',\r\n width: '8%',\r\n align: 'right',\r\n render: ({ valorMulta }) => (\r\n
\r\n {FormatNumber(valorMulta, 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 \r\n \r\n \r\n \r\n \r\n listarMovimentacao(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 {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 \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 }\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}","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, { useEffect } from 'react';\r\nimport { Route, Switch, HashRouter } from \"react-router-dom\";\r\nimport { Layout, Modal } from 'antd';\r\nimport { HeaderPage, MenuPage } from '../../components';\r\nimport InicialCatalogo from '../InicialCatalogo';\r\nimport CatPecasExterno from '../catPecasExterno';\r\nimport CatalogosExterno from '../catalogosExterno';\r\nimport CatAcessosExterno from '../catAcessosExterno';\r\nimport UsuarioCatalogo from '../usuarioCatalogo';\r\nimport apiWeb from '../../services/apiWeb';\r\nimport { parametrosEmpresaActions, tributacaoActions } from '../../actions';\r\nimport { useStateValue } from '../../state';\r\nimport { getEmpresa, setNavegacao, setPermissoes } from '../../services/auth';\r\nimport CarrinhoCatalogo from '../CarrinhoCatalogo';\r\nimport CadastroCatalogo from '../cadastroCatalogo';\r\nimport { CotacaoCatalogo } from '..';\r\n\r\n\r\nexport default function HomeCatalogo() {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n empresaUsuario();\r\n buscarParametros();\r\n resetarNav();\r\n buscarPermissoesUsuario();\r\n }, []);\r\n\r\n function empresaUsuario() {\r\n apiWeb.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 apiWeb.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, par_multaparcelavencida: res.data.par_multaparcelavencida, par_tipocalculomulta: res.data.par_tipocalculomulta } });\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 apiWeb.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 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\nimport React, { useState } from 'react';\r\nimport { ConfigProvider } from 'antd';\r\nimport { BrowserRouter as Router, Switch, Route, Redirect } from \"react-router-dom\";\r\nimport Circle from '@uiw/react-color-circle';\r\nimport ptBR from 'antd/lib/locale/pt_BR';\r\nimport 'moment/locale/pt-br';\r\nimport moment from 'moment';\r\n\r\nimport \"./App.less\";\r\nimport { StateProvider } from './state';\r\nimport { reducer } from './state/reducer';\r\nimport { isAuthenticated } from './services/auth';\r\nimport { Login, AtivarNovoEmail, Home, RecuperarSenha, RecuperarSenhaGerencial, AtivarConta, AnaliseInadimplenciaCliente, NovaEmpresa, AtivarUsuarioPlano, RenovarPlano, Testes, LoginCatalogo } from \"./pages\";\r\nimport HomeCatalogo from './pages/homeCatalogo';\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => (\r\n \r\n isAuthenticated() ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n);\r\n\r\nfunction App() {\r\n\r\n moment.locale('pt-br');\r\n\r\n const initialState = {\r\n userConfig: { size: 'small' },\r\n ui: { showDrawer: false, showDrawerExtra: false },\r\n manutencao: { dados: null },\r\n listaSelectPaginacao: { itens: [] },\r\n listaTabelaDados: { itens: [] },\r\n listagem: { filtro: '', ordem: '', outrosFiltros: '' },\r\n tributacao: { empRegimeTributario: null, empEnquadramentoFiscal: null },\r\n parametrosEmpresa: { markupProduto: null, par_percjuromesparcelavencida: '', par_multaparcelavencida: '', par_diastoleranciacobrancajuro: '', par_tipocalculomulta: '' }\r\n };\r\n\r\n const FormSizeDemo = () => {\r\n\r\n const [componentSize, setComponentSize] = useState('small');\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 ConfigProvider.config({\r\n theme: mergedNextColor,\r\n });\r\n\r\n }\r\n\r\n return (\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 \r\n \r\n \r\n \r\n \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\r\nexport default App;","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker === null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType !== null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.less';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import api from '../services/api';\r\nimport { notification } from \"antd\";\r\nimport { getRegimeTributario } from \"../services/auth\";\r\n\r\nexport const calculoIPI = (baseIPI, aliquotaIPI, valorFrete, valorOutrasDespesas) => {\r\n return new Promise(resolve => {\r\n if (!!baseIPI && !!aliquotaIPI) {\r\n if (valorFrete < 0) {\r\n resolve({ error: \"Valor do frete não pode ser negativo\" });\r\n }\r\n if (valorOutrasDespesas < 0) {\r\n resolve({ error: \"Valor do outras despesas acessórias não pode ser negativo\" });\r\n }\r\n\r\n let baseCalculo = (baseIPI + valorFrete + valorOutrasDespesas).toFixed(2);\r\n let valorIpi = ((baseCalculo * aliquotaIPI) / 100).toFixed(2);\r\n\r\n resolve({ baseIPI: parseFloat(baseCalculo), valorIPI: parseFloat(valorIpi) });\r\n } else {\r\n if (!(!!baseIPI)) {\r\n resolve({ error: \"A base de cálculo do IPI não foi informada!\" });\r\n }\r\n if (!(!!aliquotaIPI)) {\r\n resolve({ error: \"A alíquota do IPI não foi informada!\" });\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport const calculoICMSST = (valorItem, quantidade, valorFrete, valorDespesas, valorIPI, valorDesconto, valorAcrescimo, reducaoICMS, aliquotaICMS, reducaoICMSST, mva, aliquotaICMSST, ufDestino, ufOrigem, regimeTributario, mvaAjustado, retornoCalcIcms) => {\r\n return new Promise(resolve => {\r\n let valorICMS = 0;\r\n let resultadoBaseICMSST = 0;\r\n let resultadoICMSST = 0;\r\n if (!!valorItem && !!mva && !!aliquotaICMSST && !!quantidade) {\r\n if (valorFrete < 0) {\r\n resolve({ error: \"Valor do frete não pode ser negativo\" });\r\n }\r\n if (valorDespesas < 0) {\r\n resolve({ error: \"Valor das despesas não pode ser negativo\" });\r\n }\r\n if (valorIPI < 0) {\r\n resolve({ error: \"Valor do IPI não pode ser negativo\" });\r\n }\r\n if (valorDesconto < 0) {\r\n resolve({ error: \"Valor do desconto não pode ser negativo\" });\r\n }\r\n if (reducaoICMS < 0) {\r\n resolve({ error: \"Valor do desconto não pode ser negativo\" });\r\n }\r\n if (valorItem < 0) {\r\n resolve({ error: \"Valor do item não pode ser negativo\" });\r\n }\r\n if (aliquotaICMS < 0) {\r\n resolve({ error: \"A alíquota do ICMS não pode ser negativa\" });\r\n }\r\n if (aliquotaICMSST < 0) {\r\n resolve({ error: \"A alíquota do ICMS ST não pode ser negativa\" });\r\n }\r\n if (mva < 0) {\r\n resolve({ error: \"O MVA não pode ser negativo\" });\r\n }\r\n if (reducaoICMSST < 0) {\r\n resolve({ error: \"O percentual de redução do MVA não pode ser negativo\" });\r\n }\r\n\r\n if (!!retornoCalcIcms) {\r\n if (!(!!retornoCalcIcms.ICMS)) {\r\n valorICMS = 0;\r\n } else {\r\n valorICMS = retornoCalcIcms.ICMS;\r\n }\r\n if (aliquotaICMSST > aliquotaICMS && ufOrigem !== ufDestino && regimeTributario === 3) {\r\n if (mvaAjustado === 0) {\r\n mvaAjustado = ((((1 + (mva / 100)) * ((100 - aliquotaICMS) / 100)) / ((100 - aliquotaICMSST) / 100) - 1) * 100);\r\n }\r\n resultadoBaseICMSST = ((((valorItem * quantidade) + valorFrete + valorDespesas + valorAcrescimo + parseFloat(valorIPI)) * (1 + (mvaAjustado / 100))) - ((valorItem + valorFrete + valorDespesas + parseFloat(valorIPI)) * reducaoICMSST / 100)).toFixed(2);\r\n resultadoICMSST = ((((resultadoBaseICMSST * aliquotaICMSST / 100) - valorICMS))).toFixed(2);\r\n\r\n } else {\r\n resultadoBaseICMSST = ((((valorItem * quantidade) + valorFrete + valorDespesas + valorAcrescimo + parseFloat(valorIPI)) * (1 + (mva / 100))) - ((valorItem + valorFrete + valorDespesas + parseFloat(valorIPI)) * reducaoICMSST / 100)).toFixed(2);\r\n resultadoICMSST = ((((resultadoBaseICMSST * aliquotaICMSST / 100) - valorICMS))).toFixed(2);\r\n\r\n }\r\n resolve({ baseICMSST: parseFloat(resultadoBaseICMSST), ICMSST: parseFloat(resultadoICMSST) });\r\n } else {\r\n calculoICMS(valorItem, quantidade, valorFrete, valorDespesas, valorIPI, valorDesconto, valorAcrescimo, reducaoICMS, aliquotaICMS).then(function (icms) {\r\n if (!(!!icms.ICMS)) {\r\n valorICMS = 0;\r\n } else {\r\n valorICMS = icms.ICMS;\r\n }\r\n if (aliquotaICMSST > aliquotaICMS && ufOrigem !== ufDestino && regimeTributario === 3) {\r\n if (mvaAjustado === 0) {\r\n mvaAjustado = ((((1 + (mva / 100)) * ((100 - aliquotaICMS) / 100)) / ((100 - aliquotaICMSST) / 100) - 1) * 100);\r\n }\r\n resultadoBaseICMSST = ((((valorItem * quantidade) + valorFrete + valorDespesas + valorAcrescimo + parseFloat(valorIPI)) * (1 + (mvaAjustado / 100))) - ((valorItem + valorFrete + valorDespesas + parseFloat(valorIPI)) * reducaoICMSST / 100)).toFixed(2);\r\n resultadoICMSST = ((((resultadoBaseICMSST * aliquotaICMSST / 100) - valorICMS))).toFixed(2);\r\n\r\n } else {\r\n resultadoBaseICMSST = ((((valorItem * quantidade) + valorFrete + valorDespesas + valorAcrescimo + parseFloat(valorIPI)) * (1 + (mva / 100))) - ((valorItem + valorFrete + valorDespesas + parseFloat(valorIPI)) * reducaoICMSST / 100)).toFixed(2);\r\n resultadoICMSST = ((((resultadoBaseICMSST * aliquotaICMSST / 100) - valorICMS))).toFixed(2);\r\n\r\n }\r\n resolve({ baseICMSST: parseFloat(resultadoBaseICMSST), ICMSST: parseFloat(resultadoICMSST) });\r\n });\r\n }\r\n } else {\r\n if (!(!!valorItem)) {\r\n resolve({ error: \"O valor do item não foi informado\" });\r\n }\r\n if (!(!!quantidade)) {\r\n resolve({ error: \"A quantidade do item não foi informado\" });\r\n }\r\n\r\n if (!(!!aliquotaICMSST)) {\r\n resolve({ error: \"A alíquota do ICMS não foi informada\" });\r\n }\r\n\r\n if (!(!!mva)) {\r\n resolve({ error: \"O MVA não foi informado\" });\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport const calculoICMS = (valorItem, quantidadeItem, valorFrete, valorDespesas, valorIPI, valorDesconto, valorAcrescimo, reducaoICMS, aliquotaICMS) => {\r\n return new Promise(resolve => {\r\n if (!!valorItem && !!aliquotaICMS) {\r\n if (valorFrete < 0) {\r\n resolve({ error: \"Valor do frete não pode ser negativo\" });\r\n }\r\n if (valorDespesas < 0) {\r\n resolve({ error: \"Valor das despesas não pode ser negativo\" });\r\n }\r\n if (valorIPI < 0) {\r\n resolve({ error: \"Valor do IPI não pode ser negativo\" });\r\n }\r\n if (valorDesconto < 0) {\r\n resolve({ error: \"Valor do desconto não pode ser negativo\" });\r\n }\r\n if (reducaoICMS < 0) {\r\n resolve({ error: \"Valor do desconto não pode ser negativo\" });\r\n }\r\n if (valorItem < 0) {\r\n resolve({ error: \"Valor do item não pode ser negativo\" });\r\n }\r\n if (quantidadeItem <= 0) {\r\n resolve({ error: \"A quantidade do item não pode ser igual a zero\" });\r\n }\r\n if (aliquotaICMS < 0) {\r\n resolve({ error: \"A alíquota não pode ser negativa\" });\r\n }\r\n\r\n let resultadoBaseICMS = ((((valorItem * quantidadeItem) + valorFrete + valorDespesas + valorAcrescimo + parseFloat(valorIPI) - valorDesconto) * parseFloat(100 - reducaoICMS)) / 100).toFixed(2);\r\n let resultadoICMS = (((((valorItem * quantidadeItem) + valorFrete + valorDespesas + valorAcrescimo + parseFloat(valorIPI) - valorDesconto) * (100 - reducaoICMS) / 100) * aliquotaICMS) / 100).toFixed(2);\r\n\r\n resolve({ baseICMS: parseFloat(resultadoBaseICMS), ICMS: parseFloat(resultadoICMS) });\r\n } else {\r\n if (!(!!valorItem)) {\r\n resolve({ error: \"O valor do item não foi informado\" });\r\n }\r\n\r\n if (quantidadeItem == 0) {\r\n resolve({ error: \"A quantidade do item não foi informada\" });\r\n }\r\n\r\n if (!(!!aliquotaICMS)) {\r\n resolve({ error: \"A alíquota do ICMS não foi informada\" });\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport const calculoICMSDiferido = (valorICMSOperacao, percentualICMSDiferido) => {\r\n return new Promise(resolve => {\r\n if (!!valorICMSOperacao && !!percentualICMSDiferido) {\r\n if (valorICMSOperacao < 0) {\r\n resolve({ error: \"Valor do ICMS operação não pode ser negativo\" });\r\n }\r\n if (percentualICMSDiferido < 0) {\r\n resolve({ error: \"Valor do percentual do diferimento não pode ser negativo\" });\r\n }\r\n\r\n var resultadoICMSDiferido = ((valorICMSOperacao * parseFloat(percentualICMSDiferido)) / 100).toFixed(2);\r\n var resultadoICMSDevido = (valorICMSOperacao - resultadoICMSDiferido).toFixed(2);\r\n\r\n resolve({ valorICMSDiferido: parseFloat(resultadoICMSDiferido), ICMSDevido: parseFloat(resultadoICMSDevido) });\r\n } else {\r\n if (!(!!valorICMSOperacao)) {\r\n resolve({ error: \"O valor do ICMS operação não foi informado\" });\r\n }\r\n\r\n if (!(!!percentualICMSDiferido)) {\r\n resolve({ error: \"O percentual do ICMS diferido não foi informado\" });\r\n }\r\n }\r\n });\r\n}\r\n// tratar campos numericos....\r\nexport const CalcularImpostoItem = (origemProduto, cst, csosn, ufOrigem, ufDestino, quantidadeItem, valorUnitario, valorFrete, valorOutros, valorDesconto, aliquotaIcms, percDiferimento,\r\n percReducaoIcms, aliquotaIcmsSt, percMva, percReducaoIcmsST, percMvaAjustado, aliquotaIpi, tipoPessoa, eConsumidorFinal, destinatarioTemIE,\r\n indicadorPresenca = 0, eProdutorRural = false, eOrgaoPublico = false) => {\r\n return new Promise(resolve => {\r\n var values = {\r\n orm_id: origemProduto,\r\n cso_id: csosn,\r\n cst_id: cst,\r\n uf_origem: ufOrigem,\r\n uf_destino: ufDestino,\r\n quantidade: quantidadeItem,\r\n vlr_unitario: parseFloat(valorUnitario),\r\n vlr_frete: parseFloat(valorFrete),\r\n vlr_outros: parseFloat(valorOutros),\r\n vlr_descontos: parseFloat(valorDesconto),\r\n aliquotaIcms: aliquotaIcms,\r\n percDiferimento: percDiferimento,\r\n percReducaoIcms: percReducaoIcms,\r\n aliquotaIcmsSt: aliquotaIcmsSt,\r\n percReducaoIcmsST: percReducaoIcmsST,\r\n percMva: percMva,\r\n percMvaAjustado: percMvaAjustado,\r\n aliquotaIpi: aliquotaIpi,\r\n emp_regimetributario: parseInt(getRegimeTributario()),\r\n ope_indicadorpresenca: indicadorPresenca,\r\n tipoPessoa: tipoPessoa,\r\n eConsumidorFinal: eConsumidorFinal,\r\n eOrgaoPublico: eOrgaoPublico,\r\n eProdutorRural: eProdutorRural,\r\n destinatarioTemIE: destinatarioTemIE,\r\n eServico : false,\r\n identificadorDestino: ufDestino==='EX'? 3 : ufOrigem == ufDestino ? 1 : 2,\r\n };\r\n\r\n api.post(`CalculaImpostos/CalcularImpostoItem`, values).then(res => {\r\n if (res.status === 200) {\r\n resolve(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\r\n }\r\n );\r\n });\r\n}","import api from \"./api\";\r\n\r\nexport async function ServidorImpressoraOnline() {\r\n let req;\r\n try {\r\n req = await api.get(`http://localhost:3001/online`);\r\n } catch {\r\n req = { data: { online: false } };\r\n }\r\n return req.data;\r\n}\r\n\r\nexport async function impressorasInstaladas() {\r\n let req;\r\n try {\r\n req = await api.get(`http://localhost:3001/impressao/printers`);\r\n } catch {\r\n req = { data: null };\r\n }\r\n return req.data;\r\n}\r\n\r\nexport async function carregarConfiguracoes() {\r\n let req;\r\n try {\r\n req = await api.get(`http://localhost:3001/configuracao`);\r\n } catch {\r\n req = { data: null };\r\n }\r\n return req.data;\r\n}\r\n\r\nexport async function impressoraEtiqueta() {\r\n let req = await api.get(`http://localhost:3001/configuracao/ImpressoraEtiqueta`);\r\n return req.data;\r\n}\r\n\r\nexport async function impressoraNaoFiscal() {\r\n let req = await api.get(`http://localhost:3001/configuracao/ImpressoraNaoFiscal`);\r\n return req.data;\r\n}\r\n\r\nexport async function modeloEtiqueta() {\r\n let req = await api.get(`http://localhost:3001/configuracao/ModeloEtiqueta`);\r\n return req.data;\r\n}\r\n\r\nexport async function configurarImpressoraEtiqueta(impressoraEtiqueta) {\r\n let impressora = {\r\n impressora: impressoraEtiqueta\r\n };\r\n let req = await api.post(`http://localhost:3001/configuracao/ImpressoraEtiqueta`, JSON.stringify(impressora), { headers: { 'Content-type': 'application/json;charset=utf-8' } });\r\n return req.data;\r\n}\r\n\r\nexport async function configurarModeloEtiqueta(etiqueta) {\r\n let dados = {\r\n modeloEtiqueta: etiqueta\r\n };\r\n let req = await api.post(`http://localhost:3001/configuracao/ModeloEtiqueta`, JSON.stringify(dados), { headers: { 'Content-type': 'application/json;charset=utf-8' } });\r\n return req.data;\r\n}\r\n\r\nexport async function salvarConfiguracoes(configuracoes) {\r\n let req = await api.post(`http://localhost:3001/configuracao/ModeloEtiqueta`, JSON.stringify(configuracoes), { headers: { 'Content-type': 'application/json;charset=utf-8' } });\r\n return req.data;\r\n}\r\n\r\nexport async function imprimirRawBase64(nomeImpressora, conteudo) {\r\n let dados = {\r\n impressora: nomeImpressora,\r\n texto: btoa(conteudo)\r\n };\r\n\r\n let urlImpressao = 'http://localhost:3001/naofiscal/imprimirRAWB64';\r\n if (nomeImpressora.toLowerCase().includes('dymo')) urlImpressao = 'http://localhost:3001/naofiscal/imprimeEtiquetaDymo';\r\n\r\n let req = await api.post(urlImpressao, JSON.stringify(dados), { headers: { 'Content-type': 'application/json;charset=utf-8' } });\r\n return req.data;\r\n}\r\n\r\nexport async function imprimirEtiquetaDymo(nomeImpressora, conteudo) {\r\n let dados = {\r\n impressora: nomeImpressora,\r\n texto: btoa(unescape(encodeURIComponent(conteudo)))\r\n };\r\n\r\n let req = await api.post(`http://localhost:3001/naofiscal/imprimeEtiquetaDymo`, JSON.stringify(dados), { headers: { 'Content-type': 'application/json;charset=utf-8' } });\r\n return req.data;\r\n}\r\n\r\nexport async function enviaComandoImpressoraNaoFiscal(nomeImpressora, comando, dados) {\r\n let dadosEnviar = {\r\n impressora: nomeImpressora\r\n };\r\n\r\n if (!!dados) {\r\n dadosEnviar = { ...dadosEnviar, ...dados };\r\n }\r\n\r\n let req = await api.post(`http://localhost:3001/naofiscal/${comando}`, JSON.stringify(dadosEnviar), { headers: { 'Content-type': 'application/json;charset=utf-8' } });\r\n return req.data;\r\n}\r\n\r\n","export function initDatabase() {\r\n\r\n var request = indexedDB.open(\"CarrinhoDB\", 1);\r\n\r\n request.onupgradeneeded = function (event) {\r\n var db = event.target.result;\r\n\r\n // Cria uma object store\r\n var objectStore = db.createObjectStore(\"Carrinho\", { keyPath: \"codigo\" });\r\n var objectStoreSincro = db.createObjectStore(\"Sincronizador\", { keyPath: \"id\", autoIncrement: true });\r\n\r\n // Cria índices para pesquisa rápidaz\r\n objectStore.createIndex(\"descricao\", \"descricao\", { unique: false });\r\n objectStore.createIndex(\"quantidade\", \"quantidade\", { unique: false });\r\n objectStore.createIndex(\"valor\", \"valor\", { unique: false });\r\n objectStoreSincro.createIndex(\"data\", \"data\", { unique: false });\r\n\r\n };\r\n // Tratamento de erros\r\n request.onerror = function (event) {\r\n console.error(\"Erro ao abrir o banco de dados:\", event.target.errorCode);\r\n };\r\n}\r\n\r\nexport function dateSincro() {\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n\r\n var transaction = db.transaction([\"Sincronizador\"], \"readwrite\");\r\n var objectStore = transaction.objectStore(\"Sincronizador\");\r\n var date = new Date();\r\n date = date.getTime();\r\n var newItem = { data: (date - 86400000) };\r\n\r\n var addRequest = objectStore.add(newItem);\r\n addRequest.onsuccess = function (event) {\r\n console.log(\"Sincronizador Atualizado\");\r\n };\r\n\r\n addRequest.onerror = function (event) {\r\n console.error(\"Erro ao atualizar Sincronizador\");\r\n };\r\n }\r\n request.onerror = function (event) {\r\n console.error(\"Erro ao atualizar Sincronizador\");\r\n }\r\n}\r\n\r\nexport function getDateSincro(setDateSincro) {\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n try {\r\n\r\n var transaction = db.transaction([\"Sincronizador\"], \"readonly\");\r\n var objectStore = transaction.objectStore(\"Sincronizador\");\r\n\r\n var cursorRequest = objectStore.openCursor();\r\n\r\n var date = 0;\r\n\r\n cursorRequest.onsuccess = function (event) {\r\n var cursor = event.target.result;\r\n\r\n if (cursor) {\r\n date = cursor.value.data;\r\n cursor.continue();\r\n } else {\r\n setDateSincro(date);\r\n }\r\n }\r\n cursorRequest.onerror = function (event) {\r\n console.error(\"Erro getDateSincro: \", event)\r\n }\r\n } catch (ex) {\r\n debugger;\r\n var a = ex;\r\n //cai aqui teu erro kadu\r\n }\r\n\r\n }\r\n}\r\n\r\nexport function clearDateSincro(){\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n var transaction = db.transaction([\"Sincronizador\"], \"readwrite\");\r\n var objectStore = transaction.objectStore(\"Sincronizador\");\r\n\r\n var clearRequest = objectStore.clear();\r\n\r\n clearRequest.onsuccess = function (event) {\r\n console.log(\"Sincronizador limpo com sucesso!\");\r\n }\r\n\r\n clearRequest.onerror = function(event) {\r\n console.log(\"Erro ao limpar sincronizador: \", event.target.errorCode);\r\n }\r\n }\r\n request.onerror = function(event) {\r\n console.error(\"Erro ao abrir o banco de dados: \", event.target.errorCode);\r\n }\r\n}\r\nexport function loadShoppingCartItems(setCarrinhoItens, callback) {\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n\r\n var transaction = db.transaction([\"Carrinho\"], \"readonly\");\r\n var objectStore = transaction.objectStore(\"Carrinho\");\r\n\r\n var cursorRequest = objectStore.openCursor();\r\n\r\n var items = [];\r\n\r\n cursorRequest.onsuccess = function (event) {\r\n var cursor = event.target.result;\r\n\r\n if (cursor) {\r\n items.push(cursor.value);\r\n cursor.continue();\r\n } else {\r\n setCarrinhoItens(items);\r\n if (!!callback) {\r\n callback(items);\r\n }\r\n }\r\n\r\n };\r\n cursorRequest.onerror = function (event) {\r\n console.error(\"Erro ao carregar itens do carrinho:\", event.target.errorCode);\r\n };\r\n\r\n };\r\n\r\n request.onerror = function (event) {\r\n console.error(\"Erro ao abrir o banco de dados:\", event.target.errorCode);\r\n };\r\n}\r\n\r\nexport function saveShoppingCart(codigoPeca, descricaoPeca, quantidade, valorPeca) {\r\n return new Promise((resolve, reject) => {\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n\r\n var transaction = db.transaction([\"Carrinho\"], \"readwrite\");\r\n\r\n var objectStore = transaction.objectStore(\"Carrinho\");\r\n\r\n var newItem = { codigo: codigoPeca, descricao: descricaoPeca, Qtd: quantidade, valor: valorPeca };\r\n var addRequest = objectStore.add(newItem);\r\n\r\n addRequest.onsuccess = function (event) {\r\n console.log(\"Item adicionado ao carrinho com sucesso!\");\r\n dateSincro();\r\n resolve();\r\n };\r\n\r\n addRequest.onerror = function (event) {\r\n console.error(\"Erro ao adicionar item ao carrinho:\", event.target.errorCode);\r\n reject(event.target.errorCode);\r\n };\r\n };\r\n\r\n request.onerror = function (event) {\r\n console.error(\"Erro ao abrir o banco de dados:\", event.target.errorCode);\r\n reject(event.target.errorCode);\r\n };\r\n })\r\n}\r\n\r\nexport function editCartItemQuantity(codigoPeca, novaQuantidade) {\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n\r\n var transaction = db.transaction([\"Carrinho\"], \"readwrite\");\r\n var objectStore = transaction.objectStore(\"Carrinho\");\r\n\r\n var getRequest = objectStore.get(codigoPeca);\r\n\r\n getRequest.onsuccess = function (event) {\r\n\r\n var itemExistente = event.target.result;\r\n\r\n if (itemExistente) {\r\n if (novaQuantidade >= 1 && novaQuantidade <= 120) {\r\n itemExistente.Qtd = novaQuantidade;\r\n\r\n var putRequest = objectStore.put(itemExistente);\r\n\r\n putRequest.onsuccess = function (event) {\r\n console.log(\"Quantidade do item editada no carrinho com sucesso!\");\r\n };\r\n\r\n putRequest.onerror = function (event) {\r\n console.error(\"Erro ao editar quantidade do item no carrinho:\", event.target.errorCode);\r\n };\r\n } else {\r\n console.error(\"Quantidade não autorizada\");\r\n }\r\n } else {\r\n console.error(\"Item não encontrado no carrinho.\");\r\n }\r\n };\r\n\r\n getRequest.onerror = function (event) {\r\n console.error(\"Erro ao obter item do carrinho:\", event.target.errorCode);\r\n };\r\n };\r\n\r\n request.onerror = function (event) {\r\n console.error(\"Erro ao abrir o banco de dados:\", event.target.errorCode);\r\n };\r\n}\r\n\r\nexport function deleteCartItem(codigoPeca) {\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n\r\n var transaction = db.transaction([\"Carrinho\"], \"readwrite\");\r\n var objectStore = transaction.objectStore(\"Carrinho\");\r\n\r\n var deleteRequest = objectStore.delete(codigoPeca);\r\n\r\n deleteRequest.onsuccess = function (event) {\r\n console.log(\"Item excluído do carrinho com sucesso!\");\r\n };\r\n\r\n deleteRequest.onerror = function (event) {\r\n console.error(\"Erro ao excluir item do carrinho:\", event.target.errorCode);\r\n };\r\n };\r\n\r\n request.onerror = function (event) {\r\n console.error(\"Erro ao abrir o banco de dados:\", event.target.errorCode);\r\n };\r\n}\r\n\r\nexport function clearShoppingCart() {\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n var transaction = db.transaction([\"Carrinho\"], \"readwrite\");\r\n var objectStore = transaction.objectStore(\"Carrinho\");\r\n\r\n var clearRequest = objectStore.clear();\r\n\r\n clearRequest.onsuccess = function (event) {\r\n console.log(\"Carrinho limpo com sucesso!\");\r\n };\r\n\r\n clearRequest.onerror = function (event) {\r\n console.error(\"Erro ao limpar o carrinho:\", event.target.errorCode);\r\n };\r\n };\r\n\r\n request.onerror = function (event) {\r\n console.error(\"Erro ao abrir o banco de dados:\", event.target.errorCode);\r\n };\r\n}\r\n\r\nexport function countItemsInCart() {\r\n return new Promise((resolve, reject) => {\r\n var request = indexedDB.open(\"CarrinhoDB\");\r\n\r\n request.onsuccess = function (event) {\r\n var db = event.target.result;\r\n\r\n var transaction = db.transaction([\"Carrinho\"], \"readonly\");\r\n var objectStore = transaction.objectStore(\"Carrinho\");\r\n\r\n var countRequest = objectStore.count();\r\n\r\n countRequest.onsuccess = function (event) {\r\n console.log(\"Contador: \", countRequest.result)\r\n resolve(countRequest.result);\r\n };\r\n\r\n countRequest.onerror = function (event) {\r\n console.error(\"Erro ao contar registros no carrinho:\", event.target.errorCode);\r\n reject(event.target.errorCode);\r\n };\r\n };\r\n\r\n request.onerror = function (event) {\r\n console.error(\"Erro ao abrir o banco de dados:\", event.target.errorCode);\r\n reject(event.target.errorCode);\r\n };\r\n });\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n initDatabase();\r\n});\r\n\r\n\r\n","import { Modal, notification, Row } from \"antd\";\r\nimport { func } from \"prop-types\";\r\nimport { getEmpresa, getIdUsuario, getLocal, getToken, linkApi } from \"./auth\";\r\nimport moment from 'moment';\r\nimport api from \"./api\";\r\nimport axios from 'axios';\r\n\r\nexport const calculaDigitoVerificadorEAN = (numeroEan) => {\r\n var multiplicador = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3];\r\n var somaEAN = 0;\r\n var divisao = 0;\r\n var divisaoArredondada = 0;\r\n var resultado = 0;\r\n var digitoVerificador;\r\n var Ean = numeroEan.toString();\r\n for (var i = 0; i < 12; i++) {\r\n somaEAN += Ean[i] * multiplicador[i];\r\n };\r\n\r\n divisao = somaEAN / 10;\r\n divisaoArredondada = Math.floor(divisao) + 1;\r\n resultado = divisaoArredondada * 10;\r\n digitoVerificador = resultado - somaEAN;\r\n if (digitoVerificador > 9) {\r\n digitoVerificador = 0;\r\n }\r\n return digitoVerificador;\r\n};\r\n\r\nexport const validaForm = (formulario, listaValidacoes) => {\r\n let retorno = false;\r\n if (!!formulario && !!listaValidacoes) {\r\n let formObj = formulario.getFieldValue();\r\n let msgRetorno = [];\r\n listaValidacoes.forEach((validacao) => {\r\n if (validacao.obrigatorio && (!!formObj[validacao.nome] === false && formObj[validacao.nome] !== 0)) {\r\n msgRetorno.push('O campo ' + validacao.label + ' é obrigatório!');\r\n }\r\n });\r\n if (msgRetorno.length > 0) {\r\n msgRetorno.forEach((msg) =>\r\n notification.warning({ message: 'Aviso', description: msg })\r\n );\r\n } else {\r\n retorno = true;\r\n }\r\n }\r\n return retorno;\r\n};\r\n\r\nexport const encodeBase64 = (data) => {\r\n return Buffer.from(data).toString('base64');\r\n}\r\n\r\nexport const decodeBase64 = (data, type = 'ascii') => {\r\n return Buffer.from(data, 'base64').toString(type);;\r\n}\r\n\r\nexport const parseToken = (token) => {\r\n var base64Url = token.split('.')[1];\r\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n var jsonPayload = decodeURIComponent(decodeBase64(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 function diferencaDatas(dataInicial, dataFinal = new Date()) {\r\n var d1 = new Date(dataInicial).getTime();\r\n var d2 = new Date(dataFinal).getTime();\r\n var df = Math.abs(d1 - d2);\r\n return Math.round(df / (24 * 60 * 60 * 1000));\r\n};\r\n\r\nexport function compararDatas(dataInicial, dataFinal, operacao = '>=') {\r\n dataFinal = (!!dataFinal) ? dataFinal : new Date();\r\n dataInicial = new Date(dataInicial);\r\n dataFinal = new Date(dataFinal);\r\n dataInicial.setHours(0, 0, 0, 0);\r\n dataFinal.setHours(0, 0, 0, 0);\r\n dataInicial = dataInicial.getTime();\r\n dataFinal = dataFinal.getTime();\r\n let validacao = false;\r\n switch (operacao) {\r\n case '=':\r\n validacao = dataInicial === dataFinal;\r\n break;\r\n case '>':\r\n validacao = dataInicial > dataFinal;\r\n break;\r\n case '<':\r\n validacao = dataInicial < dataFinal;\r\n break;\r\n case '>=':\r\n validacao = dataInicial >= dataFinal;\r\n break;\r\n case '<=':\r\n validacao = dataInicial <= dataFinal;\r\n break;\r\n }\r\n\r\n return validacao;\r\n};\r\nexport const isDate = (date) => {\r\n const _regExp = new RegExp('^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]+)?(Z)?$');\r\n return _regExp.test(date);\r\n};\r\n\r\nexport function validarNumeros(valor) {\r\n let numero = 0;\r\n\r\n if (!!valor && !isNaN(parseFloat(valor))) {\r\n numero = parseFloat(valor);\r\n }\r\n return numero;\r\n};\r\n\r\nexport function validarDadosObj(dados) {\r\n let retorno = {};\r\n let valido = false;\r\n if (!!dados) {\r\n for (let key in dados) {\r\n if (!!dados[key]) {\r\n valido = true;\r\n }\r\n }\r\n if (valido) {\r\n retorno = dados;\r\n }\r\n }\r\n return retorno;\r\n};\r\n\r\nexport function validarCpf(cpf) {\r\n if (cpf !== '') {\r\n cpf = cpf.replace(/[^\\d]+/g, '');\r\n\r\n if (cpf.length !== 11 ||\r\n cpf === \"00000000000\" ||\r\n cpf === \"11111111111\" ||\r\n cpf === \"22222222222\" ||\r\n cpf === \"33333333333\" ||\r\n cpf === \"44444444444\" ||\r\n cpf === \"55555555555\" ||\r\n cpf === \"66666666666\" ||\r\n cpf === \"77777777777\" ||\r\n cpf === \"88888888888\" ||\r\n cpf === \"99999999999\") {\r\n return false;\r\n }\r\n\r\n let add = 0;\r\n let i;\r\n for (i = 0; i < 9; i++)\r\n add += parseInt(cpf.charAt(i)) * (10 - i);\r\n let rev = 11 - (add % 11);\r\n if (rev === 10 || rev === 11)\r\n rev = 0;\r\n if (rev !== parseInt(cpf.charAt(9))) {\r\n return false;\r\n }\r\n\r\n add = 0;\r\n for (i = 0; i < 10; i++)\r\n add += parseInt(cpf.charAt(i)) * (11 - i);\r\n rev = 11 - (add % 11);\r\n if (rev === 10 || rev === 11)\r\n rev = 0;\r\n if (rev !== parseInt(cpf.charAt(10))) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n};\r\n\r\nexport function validarCnpj(cnpj) {\r\n if (cnpj !== '') {\r\n cnpj = cnpj.replace(/[^\\d]+/g, '');\r\n\r\n if (cnpj.length !== 14) {\r\n return false;\r\n }\r\n\r\n // Elimina CNPJs invalidos conhecidos\r\n if (cnpj === \"00000000000000\" ||\r\n cnpj === \"11111111111111\" ||\r\n cnpj === \"22222222222222\" ||\r\n cnpj === \"33333333333333\" ||\r\n cnpj === \"44444444444444\" ||\r\n cnpj === \"55555555555555\" ||\r\n cnpj === \"66666666666666\" ||\r\n cnpj === \"77777777777777\" ||\r\n cnpj === \"88888888888888\" ||\r\n cnpj === \"99999999999999\") {\r\n return false;\r\n }\r\n\r\n // Valida DVs\r\n var tamanho = cnpj.length - 2\r\n var numeros = cnpj.substring(0, tamanho);\r\n var digitos = cnpj.substring(tamanho);\r\n var soma = 0;\r\n var pos = tamanho - 7;\r\n var i;\r\n for (i = tamanho; i >= 1; i--) {\r\n soma += numeros.charAt(tamanho - i) * pos--;\r\n if (pos < 2)\r\n pos = 9;\r\n }\r\n\r\n var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n if (resultado != digitos.charAt(0)) {\r\n return false;\r\n }\r\n\r\n tamanho = tamanho + 1;\r\n numeros = cnpj.substring(0, tamanho);\r\n soma = 0;\r\n pos = tamanho - 7;\r\n for (i = tamanho; i >= 1; i--) {\r\n soma += numeros.charAt(tamanho - i) * pos--;\r\n if (pos < 2)\r\n pos = 9;\r\n }\r\n\r\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n if (resultado != digitos.charAt(1)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n};\r\nexport function formatarCpfCnpj(cpfCnpj) {\r\n if (HasValue(cpfCnpj)) {\r\n cpfCnpj = cpfCnpj.replace(/[^\\d]+/g, '');\r\n\r\n if (cpfCnpj.length === 14)\r\n return formatarCnpj(cpfCnpj);\r\n\r\n return formatarCpf(cpfCnpj);\r\n }\r\n return '';\r\n};\r\nexport 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};\r\n\r\nexport function formatarCnpj(cnpj) {\r\n let valor = '';\r\n if (!!cnpj && cnpj != '') {\r\n if (cnpj.valor !== undefined) {\r\n valor = cnpj.valor.slice(0, 2) + '.' + cnpj.valor.slice(2, 5) + '.' + cnpj.valor.slice(5, 8) + '/' + cnpj.valor.slice(8, 12) + '-' + cnpj.valor.slice(12, 15);\r\n } else {\r\n valor = cnpj.slice(0, 2) + '.' + cnpj.slice(2, 5) + '.' + cnpj.slice(5, 8) + '/' + cnpj.slice(8, 12) + '-' + cnpj.slice(12, 15);\r\n }\r\n }\r\n return valor;\r\n};\r\n\r\nexport const getBase64 = file => {\r\n return new Promise(resolve => {\r\n let baseURL = \"\";\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = () => {\r\n baseURL = reader.result;\r\n resolve(baseURL);\r\n };\r\n });\r\n};\r\n\r\nexport function novaAbaNavegador(caminho) {\r\n return window.open(linkApi + caminho, '_blank');\r\n};\r\n\r\nexport const openPdfNewTab = async (_url) => {\r\n try {\r\n let token = getToken();\r\n const response = await axios.get(linkApi + _url, {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n responseType: 'arraybuffer',\r\n });\r\n const blob = new Blob([response.data], { type: 'application/pdf' });\r\n const url = URL.createObjectURL(blob);\r\n window.open(url, '_blank');\r\n } catch (error) {\r\n console.error('Erro ao buscar o PDF:', error);\r\n }\r\n};\r\n\r\nexport function isObjetoDiffVazio(obj = {}) {\r\n let valido = false;\r\n\r\n if (typeof obj === 'object') {\r\n if (!!obj && JSON.stringify(obj) !== '{}') {\r\n valido = true;\r\n }\r\n }\r\n return valido;\r\n};\r\n\r\nexport function retornaValorPorExtenso(valor) {\r\n\r\n var ex = [\r\n [\"zero\", \"um\", \"dois\", \"três\", \"quatro\", \"cinco\", \"seis\", \"sete\", \"oito\", \"nove\", \"dez\", \"onze\", \"doze\", \"treze\", \"quatorze\", \"quinze\", \"dezesseis\", \"dezessete\", \"dezoito\", \"dezenove\"],\r\n [\"dez\", \"vinte\", \"trinta\", \"quarenta\", \"cinquenta\", \"sessenta\", \"setenta\", \"oitenta\", \"noventa\"],\r\n [\"cem\", \"cento\", \"duzentos\", \"trezentos\", \"quatrocentos\", \"quinhentos\", \"seiscentos\", \"setecentos\", \"oitocentos\", \"novecentos\"],\r\n [\"mil\", \"milhão\", \"bilhão\", \"trilhão\", \"quadrilhão\", \"quintilhão\", \"sextilhão\", \"setilhão\", \"octilhão\", \"nonilhão\", \"decilhão\", \"undecilhão\", \"dodecilhão\", \"tredecilhão\", \"quatrodecilhão\", \"quindecilhão\", \"sedecilhão\", \"septendecilhão\", \"octencilhão\", \"nonencilhão\"]\r\n ];\r\n valor = valor.toString().replace('.', ',');\r\n var a, n, v, i, n = valor.toString().replace(valor ? /[^,\\d]/g : /\\D/g, \"\").split(\",\"), e = \" e \", $ = \"real\", d = \"centavo\", sl;\r\n for (var f = n.length - 1, l, j = -1, r = [], s = [], t = \"\"; ++j <= f; s = []) {\r\n j && (n[j] = ((\".\" + n[j]) * 1).toFixed(2).slice(2));\r\n if (!(a = (v = n[j]).slice((l = v.length) % 3).match(/\\d{3}/g), v = l % 3 ? [v.slice(0, l % 3)] : [], v = a ? v.concat(a) : v).length) continue;\r\n for (a = -1, l = v.length; ++a < l; t = \"\") {\r\n if (!(i = v[a] * 1)) continue;\r\n i % 100 < 20 && (t += ex[0][i % 100]) ||\r\n i % 100 + 1 && (t += ex[1][(i % 100 / 10 >> 0) - 1] + (i % 10 ? e + ex[0][i % 10] : \"\"));\r\n s.push((i < 100 ? t : !(i % 100) ? ex[2][i == 100 ? 0 : i / 100 >> 0] : (ex[2][i / 100 >> 0] + e + t)) +\r\n ((t = l - a - 2) > -1 ? \" \" + (i > 1 && t > 0 ? ex[3][t].replace(\"?o\", \"?es\") : ex[3][t]) : \"\"));\r\n }\r\n a = ((sl = s.length) > 1 ? (a = s.pop(), s.join(\" \") + e + a) : s.join(\"\") || ((!j && (n[j + 1] * 1 > 0) || r.length) ? \"\" : ex[0][0]));\r\n a && r.push(a + (valor ? (\" \" + (v.join(\"\") * 1 > 1 ? j ? d + \"s\" : (/0{6,}$/.test(n[0]) ? \"de \" : \"\") + $.replace(\"l\", \"is\") : j ? d : $)) : \"\"));\r\n }\r\n return r.join(e);\r\n};\r\n\r\nexport function info(mensagem, titulo = null) {\r\n Modal.info({\r\n title: (!!titulo ? titulo : 'Atenção!'),\r\n content: (\r\n
\r\n

\r\n {mensagem}\r\n

\r\n
\r\n ),\r\n });\r\n};\r\nexport function HasValue(value) {\r\n if (value === undefined || value === \"\" || value === null)\r\n return false\r\n return true\r\n};\r\nexport function substituirCaracterEspecial(str) {\r\n str = str.replace('ç', 'c');\r\n str = str.replace('Ç', 'C');\r\n str = str.replace('á', 'a');\r\n str = str.replace('Á', 'A');\r\n str = str.replace('À', 'A');\r\n str = str.replace('à', 'a');\r\n str = str.replace('É', 'E');\r\n str = str.replace('é', 'e');\r\n str = str.replace('ó', 'o');\r\n str = str.replace('Ó', 'o');\r\n str = str.replace('í', 'i');\r\n str = str.replace('Í', 'i');\r\n str = str.replace('ñ', 'n');\r\n str = str.replace('Ñ', 'n');\r\n str = str.replace('ã', 'a');\r\n str = str.replace('Ã', 'A');\r\n str = str.replace('õ', 'o');\r\n str = str.replace('Õ', 'O');\r\n str = str.replace('ú', 'u');\r\n str = str.replace('Ú', 'U');\r\n str = str.replace('â', 'a');\r\n str = str.replace('Â', 'A');\r\n str = str.replace('ê', 'e');\r\n str = str.replace('Ê', 'E');\r\n str = str.replace('ô', 'o');\r\n str = str.replace('Ô', 'O');\r\n return str;\r\n\r\n};\r\n\r\nexport 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\nexport var delay = (function () {\r\n var timer = 0;\r\n return function (callback, ms) {\r\n clearTimeout(timer);\r\n timer = setTimeout(callback, ms);\r\n };\r\n})();\r\n\r\n\r\nexport function textoAleatorio(tamanho) {\r\n var aleatorio = '';\r\n if (!!tamanho) {\r\n var letras = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n for (var i = 0; i < tamanho; i++) {\r\n var rnum = Math.floor(Math.random() * letras.length);\r\n aleatorio += letras.substring(rnum, rnum + 1);\r\n }\r\n }\r\n return aleatorio;\r\n};\r\n\r\nexport async function consultaCNPJ(cnpj) {\r\n cnpj = cnpj.replace(/\\D/g, '');\r\n\r\n return jsonp(`https://www.receitaws.com.br/v1/cnpj/${encodeURI(cnpj)}`, 60000)\r\n .then((json) => {\r\n if (json['status'] === 'ERROR') {\r\n return Promise.reject(json['message']);\r\n } else {\r\n return Promise.resolve(json);\r\n }\r\n });\r\n};\r\n\r\nexport function jsonp(url, timeout) {\r\n const func = 'jsonp_' + Math.random().toString(36).substr(2, 5);\r\n\r\n return new Promise(function (resolve, reject) {\r\n let script = document.createElement('script');\r\n\r\n let timer = setTimeout(() => {\r\n reject('Tempo limite atingido');\r\n document.body.removeChild(script);\r\n }, timeout);\r\n\r\n window[func] = (json) => {\r\n clearTimeout(timer);\r\n resolve(json);\r\n document.body.removeChild(script);\r\n delete window[func];\r\n };\r\n script.src = url + '?callback=' + encodeURI(func);\r\n document.body.appendChild(script);\r\n });\r\n};\r\n\r\nexport const retornaSoNumeros = (valor) => {\r\n return valor.replace(/\\D/g, \"\");\r\n};\r\n\r\nexport const retornaSoLetras = (valor) => {\r\n return valor.replace(/[^a-zA-Z]/g, '');\r\n};\r\n\r\nexport const retornaCep = async (cep) => {\r\n cep = retornaSoNumeros(cep);\r\n if (cep.length === 8) {\r\n return await api.get(`Cidade/BuscaCidadeCep?cep=${cep}`).then(\r\n res => {\r\n if (res.status === 200 && res.data.length > 0) {\r\n return res.data[0]; \r\n } else {\r\n notification.warning({ message: 'Aviso!', description: 'Cep não encontrado' });\r\n return null;\r\n }\r\n }\r\n ).catch((error) => {\r\n notification.warning({ message: 'Atenção!', description: 'Erro ao buscar o CEP' });\r\n return null;\r\n })\r\n } else {\r\n notification.warning({ message: 'Aviso!', description: 'Informe o Cep' })\r\n return null;\r\n }\r\n};\r\n// NAO UTILIZADA NO MOMENTO\r\n// export const informacoesCep = async (cep) => {\r\n// cep = retornaSoNumeros(cep);\r\n// if (cep.length === 8) {\r\n// try {\r\n// const res = await fetch(`https://viacep.com.br/ws/${cep}/json/`);\r\n// const result = await res.json();\r\n\r\n// if (result.erro) {\r\n// notification.warning({ message: 'Aviso!', description: 'Cep não encontrado' });\r\n// return null;\r\n// }\r\n\r\n// return result;\r\n// } catch (erro) {\r\n// notification.warning({ message: 'Aviso!', description: 'Erro ao buscar o CEP' });\r\n// return null;\r\n// }\r\n// } else {\r\n// notification.warning({ message: 'Aviso!', description: 'Informe o Cep' })\r\n// return null;\r\n// }\r\n// };\r\n\r\nexport const trataRetornoFormularioDinamico = (values, elemento) => {\r\n if (!!Date.parse(values[elemento.cap_nomeelemento]) && typeof values[elemento.cap_nomeelemento] === \"object\" && values[elemento.cap_nomeelemento].toString().length > 30) {\r\n values[elemento.cap_nomeelemento] = moment(values[elemento.cap_nomeelemento])\r\n } else if (typeof values[elemento.cap_nomeelemento] === \"object\") {\r\n values[elemento.cap_nomeelemento] = values[elemento.cap_nomeelemento]?.join(',')\r\n }\r\n return values;\r\n};\r\n\r\nexport const trataSetaDadosFormularioDinamico = (formulario, elemento, valor) => {\r\n switch (elemento.cap_tipoelemento) {\r\n case 'dataPicker':\r\n valor = moment(valor, \"YYYY/MM/DD\");\r\n break;\r\n case 'checkbox':\r\n valor = JSON.parse(valor);\r\n break;\r\n };\r\n formulario.setFieldsValue({ [elemento.cap_nomeelemento]: valor });\r\n return true;\r\n};\r\n\r\nexport const parseBool = valor => {\r\n switch (valor) {\r\n case true:\r\n case \"true\":\r\n case 1:\r\n case \"1\":\r\n case \"on\":\r\n case \"yes\":\r\n return true;\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\nexport const arredonda = (valor, casasDec = 2, retorno) => {\r\n if (typeof valor === 'number') {\r\n valor = valor.toFixed(casasDec);\r\n } else if (typeof valor === 'string') {\r\n valor = parseFloat(valor).toFixed(casasDec);\r\n } else {\r\n console.log('Valor informado não identificado! Favor informar um valor valido (Number,String)');\r\n return '';\r\n }\r\n if (retorno === 'number') {\r\n valor = parseFloat(valor);\r\n }\r\n\r\n return valor;\r\n};\r\n\r\nexport const removerCarcaterEspecial = (valor) => {\r\n valor = valor?.replaceAll(/[^a-zA-Z 0-9]+/g, '');\r\n return valor;\r\n};\r\n\r\nexport const validarImportacao = (dados, entidade) => {\r\n if (dados.possuiErro) {\r\n Modal.error({\r\n title: `${entidade} não importado, favor verificar a planilha!`,\r\n content: (\r\n <>\r\n {!!dados.campo && Coluna: {dados.campo}.}\r\n Linha: {dados.linha}.\r\n {dados.mensagem}\r\n ),\r\n });\r\n } else {\r\n notification.success({ description: `${entidade} importado com sucesso!`, message: 'Aviso' });\r\n }\r\n\r\n};\r\n\r\nexport const imprimirRelatorioJasper = (idRelatorio, parametros = {}) => {\r\n api.get(`RelatorioJasper/BuscarRelatorio/${idRelatorio}`).then(\r\n res => {\r\n let dadosRel = res.data;\r\n let filtro = [];\r\n let params = [\r\n { \"nome\": \"empresaLogado\", \"valor\": getEmpresa() },\r\n { \"nome\": \"localLogado\", \"valor\": getLocal() },\r\n { \"nome\": \"usuarioLogado\", \"valor\": getIdUsuario() }\r\n ];\r\n dadosRel.relatorioParametro.forEach((param) => {\r\n if (!!!parametros[param.rpj_nomeelemento]) {\r\n if (!!param.rpj_obrigatorio) {\r\n notification.warn({ message: \"Parâmetro não preenchido!\", description: `O parâmetro ${param.rpj_label} não foi preenchido!` });\r\n return;\r\n }\r\n } else {\r\n params.push({ \"nome\": param.rpj_nomeelemento, \"valor\": parametros[param.rpj_nomeelemento] });\r\n filtro.push(`${param.rpj_label}: ${parametros[param.rpj_nomeelemento]}`);\r\n }\r\n });\r\n params.push({ \"nome\": \"filtros\", \"valor\": filtro.join(', ') });\r\n let dados = {};\r\n dados.pathRelatorio = dadosRel.rel_nomearquivo;\r\n dados.parametros = JSON.stringify(params).replaceAll(\"\\\"\", \"'\");\r\n dados.tipo = \"PDF\";\r\n dados.nomeRelatorio = dadosRel.rel_descricao;\r\n api.post(`RelatorioJasper/RetornaDadosRelatorios`, dados).then(\r\n res => {\r\n let byteCharacters = decodeBase64(res.data, 'latin1');\r\n let byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n let byteArray = new Uint8Array(byteNumbers);\r\n let file = new Blob([byteArray], { type: 'application/pdf;base64' });\r\n let fileURL = URL.createObjectURL(file);\r\n window.open(fileURL);\r\n }\r\n ).catch(\r\n erro => {\r\n console.error(erro);\r\n }\r\n );\r\n }\r\n ).catch(\r\n erro =>\r\n console.error(erro)\r\n );\r\n};\r\n\r\nexport const isNotNullOrEmpty = (registro) => {\r\n let retorno = false;\r\n if (!!registro || registro === 0) {\r\n retorno = true;\r\n }\r\n return retorno;\r\n};\r\n\r\nexport function calculaValorProporcional(valorUnitario, valorRatear, valorTotal) {\r\n if (valorUnitario > 0 && valorRatear > 0 && valorTotal > 0) {\r\n return parseFloat(((valorUnitario * valorRatear) / valorTotal).toFixed(2));\r\n }\r\n return 0;\r\n};\r\n\r\nexport function validarEan(eanCodigo) {\r\n if (!!eanCodigo) {\r\n let fator = 3;\r\n let sum = 0;\r\n let cc = 0;\r\n let ca = 0;\r\n let numlen = eanCodigo.length;\r\n let index = 0;\r\n if (numlen == 13) {\r\n for (index = numlen; index > 0; --index) {\r\n if (index != 13) {\r\n sum = sum + eanCodigo.substring(index - 1, index) * fator;\r\n fator = 4 - fator;\r\n }\r\n }\r\n cc = ((1000 - sum) % 10);\r\n ca = eanCodigo.substring(12);\r\n if (cc == ca) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n if (numlen == 14) {\r\n for (index = eanCodigo.length; index > 0; --index) {\r\n if (index != 14) {\r\n sum = sum + eanCodigo.substring(index - 1, index) * fator;\r\n fator = 4 - fator;\r\n }\r\n }\r\n cc = ((1000 - sum) % 10);\r\n ca = eanCodigo.substring(13);\r\n if (cc == ca) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n if (numlen == 8) {\r\n for (index = eanCodigo.length; index > 0; --index) {\r\n if (index != 8) {\r\n sum = sum + eanCodigo.substring(index - 1, index) * fator;\r\n fator = 4 - fator;\r\n }\r\n }\r\n cc = ((1000 - sum) % 10);\r\n ca = eanCodigo.substring(7);\r\n if (cc == ca) {\r\n return true\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n if (((numlen != 8) && (numlen != 13) && (numlen != 14) && (numlen != 0))) {\r\n return false;\r\n }\r\n } else {\r\n return true;\r\n }\r\n\r\n\r\n};\r\n\r\n// ajustar tamanho e resolução de imagem base64, base64 string da imagem, width e height é a resolução da imagem, e por fim o tamanho maximo da imagem.\r\nexport async function ajustarTamanhoImagemBase64(base64String, maxWidth, maxHeight, maxSizeInBytes) {\r\n const img = new Image();\r\n img.src = base64String;\r\n await new Promise((resolve, reject) => {\r\n img.onload = () => {\r\n let width = img.width;\r\n let height = img.height;\r\n if (width > height) {\r\n if (width > maxWidth) {\r\n height *= maxWidth / width;\r\n width = maxWidth;\r\n }\r\n } else {\r\n if (height > maxHeight) {\r\n width *= maxHeight / height;\r\n height = maxHeight;\r\n }\r\n }\r\n const canvas = document.createElement('canvas');\r\n canvas.width = 1200;\r\n canvas.height = 1200;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(img, 1200, 1200, width, height);\r\n canvas.toBlob((blob) => {\r\n resolve(blob);\r\n }, 'image/jpeg', 1); // Qualidade da compressão (0.8 neste exemplo)\r\n };\r\n img.onerror = reject;\r\n });\r\n // Verifica o tamanho do blob\r\n const blob = await fetch(base64String).then((res) => res.blob());\r\n if (blob.size <= maxSizeInBytes) {\r\n return base64String; // Retorna se o tamanho já está dentro do limite\r\n }\r\n // Se o tamanho ainda for maior que o limite, reduz a qualidade da imagem\r\n const newQuality = 0.8; // Reduz a qualidade para alcançar o tamanho desejado\r\n //const newQuality = 0.6; // Reduz a qualidade para alcançar o tamanho desejado\r\n const compressedBase64 = await new Promise((resolve) => {\r\n const canvas = document.createElement('canvas');\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(img, 1200, 1200);\r\n canvas.toBlob((blob) => resolve(URL.createObjectURL(blob)), 'image/jpeg', newQuality);\r\n });\r\n return compressedBase64;\r\n}\r\n\r\n// Função para redimensionar e limitar o tamanho de uma imagem base64 em MB\r\nexport function resizeImageToMB(base64String, maxSizeInMB, maxWidth, maxHeight) {\r\n return new Promise((resolve, reject) => {\r\n const maxFileSize = maxSizeInMB * 1024 * 1024; // Tamanho máximo em bytes\r\n const imageQuality = 0.9; // Qualidade da imagem após compressão (0.7 é um valor de exemplo)\r\n let img = new Image();\r\n img.src = base64String;\r\n img.onload = function () {\r\n let canvas = document.createElement('canvas');\r\n let ctx = canvas.getContext('2d');\r\n const width = maxWidth;\r\n const height = maxHeight;\r\n canvas.width = width;\r\n canvas.height = height;\r\n ctx.drawImage(img, 0, 0, width, height);\r\n let compressedBase64 = canvas.toDataURL('image/jpeg', imageQuality);\r\n const base64FileSize = (compressedBase64.length * 0.75); // Calcula o tamanho em bytes\r\n if (base64FileSize > maxFileSize) {\r\n const scaleRatio = Math.sqrt(maxFileSize / base64FileSize);\r\n const scaledWidth = width * scaleRatio;\r\n const scaledHeight = height * scaleRatio;\r\n canvas.width = scaledWidth;\r\n canvas.height = scaledHeight;\r\n ctx.drawImage(img, 0, 0, scaledWidth, scaledHeight);\r\n compressedBase64 = canvas.toDataURL('image/jpeg', imageQuality);\r\n }\r\n resolve(compressedBase64); // Retorna a imagem redimensionada e limitada em MB como base64\r\n };\r\n img.onerror = function (error) {\r\n reject(error);\r\n };\r\n });\r\n}\r\nexport function validarEmail(email) {\r\n let reg = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n return reg.test(email);\r\n};\r\nexport function validarTelefone(telefone) {\r\n const phoneRegex = /^[1-9]{2}9?[0-9]{8}$/; // Exemplo para validar números de telefone no Brasil\r\n return phoneRegex.test(telefone);\r\n};\r\nexport function exibirMensagemException(execao) {\r\n let msg = \"Houve um problema\";\r\n let titulo = \"Aviso\";\r\n if (!!execao) {\r\n if (!!execao.response.data) {\r\n msg = execao.response.data.detail;\r\n titulo = execao.response.data.title;\r\n }\r\n }\r\n notification.warn({ message: titulo, description: msg });\r\n}\r\n\r\nexport const arredondar = (numero, casasDecimais = 2, limiteArredondamento = 5) => {\r\n const fator = Math.pow(10, casasDecimais);\r\n const valorArredondado = Math.round(numero * fator) / fator;\r\n const proximaCasaDecimal = Math.round((numero * fator * 10) % 10);\r\n\r\n // Verifica se a próxima casa decimal é maior que o limite\r\n if (proximaCasaDecimal >= limiteArredondamento) {\r\n // Se for maior, arredonda para cima\r\n return Math.ceil(numero * fator) / fator;\r\n } else {\r\n // Se for menor ou igual, arredonda para baixo\r\n return Math.floor(numero * fator) / fator;\r\n }\r\n};","import React, {createContext, useContext, useReducer} from 'react';\r\nexport const StateContext = createContext();\r\nexport const StateProvider = ({reducer, initialState, children}) =>(\r\n \r\n {children}\r\n \r\n);\r\nexport const useStateValue = () => useContext(StateContext);","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};","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Button, Tag, Table, Modal } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\n\r\nimport { FiltroProdutoNfi } from \"../../components\";\r\nimport { FormatNumber } from '../../ValueObjects';\r\n\r\nexport default function TabItens({ form, dadosItens, dadosEndereco, dadosOperacao, dadosContribuinte, dadosVendedor, carregarPagina }) {\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.dadosItens.length > 0) {\r\n let total = 0;\r\n let totalSt = 0;\r\n setQuantidadeItens(dadosItens.dadosItens.length);\r\n dadosItens.dadosItens.forEach((item) => {\r\n total += parseFloat(item.total);\r\n totalSt += parseFloat(item.nfi_valoricmsst);\r\n });\r\n form.setFieldsValue({ valorTotalSt: totalSt });\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 console.log(\"Clicou no Editar:\", 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 \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, dadosNfe }) {\r\n\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [mostrarTransportador, setMostrarTransportador] = useState(true);\r\n const [listaTransportadores, setListaTransportadores] = useState([]);\r\n const [dadosVeiculos, setDadosVeiculos] = useState({});\r\n\r\n useEffect(() => {\r\n buscarTransportadores();\r\n if (dadosNfe) {\r\n if (dadosNfe.dadosNfeDevolucao) {\r\n form.setFieldsValue({\r\n ntf_modalidadefrete: dadosNfe.dadosNfeDevolucao.ntf_modalidadefrete\r\n })\r\n if (dadosNfe.dadosNfeDevolucao.ntf_modalidadefrete !== 9) {\r\n form.setFieldsValue({ \r\n valorFrete: dadosNfe.dadosNfeDevolucao.valortotalfrete > 0 ? dadosNfe.dadosNfeDevolucao.valortotalfrete : 0,\r\n valorSeguro: dadosNfe.dadosNfeDevolucao.valortotalseguro > 0 ? dadosNfe.dadosNfeDevolucao.valortotalseguro : 0\r\n })\r\n setMostrarTransportador(true);\r\n }\r\n }\r\n }\r\n if (form.getFieldValue().ntf_modalidadefrete === 9) {\r\n setMostrarTransportador(false);\r\n setAbaSelecionada(\"2\");\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 setAbaSelecionada(\"2\");\r\n } else {\r\n setMostrarTransportador(true);\r\n setAbaSelecionada(\"1\");\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 }\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 } \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
\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({ form, mostrarTransportador }) {\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\";","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 DADOSUSUARIO_KEY = \"@GestorWeb-DadosUsuario\";\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 getDadosUsuario = () => { return JSON.parse(localStorage.getItem(DADOSUSUARIO_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 setDadosUsuario = dadosUser => {\r\n localStorage.setItem(DADOSUSUARIO_KEY, JSON.stringify(dadosUser));\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\nimport { retornaCep } from \"../../../services/funcoes\";\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 async function verificaCep(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n form.setFieldsValue({ \r\n cid_descricao: retornoCep.cid_descricao,\r\n est_sigla: retornoCep.est_sigla,\r\n pse_id: retornoCep.pse_id,\r\n bai_nome: retornoCep.bai_nome ?? '',\r\n log_logradouro: retornoCep.log_logradouro ?? '',\r\n })\r\n setCidade(retornoCep);\r\n let lista = [];\r\n if (!!retornoCep.pse_id) {\r\n lista.push({ name: \"pse_id\", campo: \"pse_id\", value: retornoCep.pse_id });\r\n }\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n } else {\r\n form.setFieldsValue({ cep_cep: '' });\r\n setFocusCep();\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 setFocusCep();\r\n }, 500);\r\n }, [exibirModalEndereco, inputRef.current]);\r\n\r\n function setFocusCep() {\r\n try {\r\n if (!!!form.getFieldValue().cep_cep) {\r\n let element = document.getElementById(\"cep_cep\");\r\n if (element) {\r\n element.focus();\r\n\r\n }\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.currentTarget.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, retornaCep, 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 async function verificaCep(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n form.setFieldsValue({ pop_cidade: `${retornoCep.cid_descricao}` });\r\n } else {\r\n form.setFieldsValue({ pop_cep: undefined });\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(50);\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(\"valorMulta\")))) {\r\n formDados.setFieldsValue({ valorDesconto: valorTotal + parseFloat(formDados.getFieldValue(\"valorJuros\")) + parseFloat(formDados.getFieldValue(\"valorMulta\")) });\r\n }\r\n\r\n let valorReceber = (valorTotal + parseFloat(formDados.getFieldValue(\"valorJuros\")) + parseFloat(formDados.getFieldValue(\"valorMulta\")) - 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(\"valorMulta\")) - 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={'valorMulta'} label={'Multa (R$)'} />\r\n \r\n \r\n calcularValorReceber()} name={'valorDesconto'} label={'Descontos (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}","import React, { useEffect, useState } from \"react\";\r\nimport { Row, Col, Form, Input, Checkbox, Modal, Table, Descriptions, Button } from \"antd\";\r\nimport { ExclamationCircleOutlined, PlusOutlined, CloseOutlined, CheckOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../../state\";\r\nimport moment from \"moment\";\r\n\r\nexport default function ModalConsultaProtocoloMdfe({ dadosMdfe, exibirModalConsultaSit, fecharModalConsultaSit }) {\r\n\r\n const [listaProcEvento, setListaProcEvento] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!!dadosMdfe.retorno) {\r\n setListaProcEvento(dadosMdfe.retorno.procEventoMDFe);\r\n }\r\n }, [dadosMdfe]);\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 fecharModalConsultaSit();\r\n }\r\n });\r\n };\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 {dadosMdfe.retorno?.protMDFe.infProt.chMDFe}\r\n \r\n \r\n \r\n \r\n {dadosMdfe.retorno?.protMDFe.infProt.cStat + \" - \" + dadosMdfe.retorno?.protMDFe.infProt.xMotivo}\r\n \r\n \r\n \r\n \r\n {moment(dadosMdfe.retorno?.protMDFe.infProt.dhRecbto).format('DD/MM/YYYY HH:mm:ss')}\r\n \r\n \r\n \r\n
\r\n (\r\n
\r\n {eventoMDFe.infEvento.nSeqEvento}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Data Hora',\r\n align: 'center',\r\n width: \"15%\",\r\n render: ({ eventoMDFe }) => (\r\n
\r\n {moment(eventoMDFe.infEvento.dhEvento).format('DD/MM/YYYY HH:mm:ss')}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Evento',\r\n align: 'left',\r\n width: \"30%\",\r\n render: ({ retEventoMDFe }) => (\r\n
\r\n {retEventoMDFe.infEvento.tpEvento + \" - \" + retEventoMDFe.infEvento.xEvento}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Protocolo',\r\n align: 'left',\r\n width: \"15%\",\r\n render: ({ retEventoMDFe }) => (\r\n
\r\n {retEventoMDFe.infEvento.nProt}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Status',\r\n align: 'left',\r\n width: \"30%\",\r\n render: ({ retEventoMDFe }) => (\r\n
\r\n {retEventoMDFe.infEvento.cStat + \" - \" + retEventoMDFe.infEvento.xMotivo}\r\n
\r\n )\r\n },\r\n ]}\r\n dataSource={listaProcEvento}\r\n pagination={false}\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 console.log(\"valores\", 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 const [nfEntrada] = 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, retornaCep } 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 async function buscarCep(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n form.setFieldsValue({ cidade: `${retornoCep.cid_descricao} / ${retornoCep.est_sigla}` });\r\n } else {\r\n form.setFieldsValue({ cep_cep: undefined });\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 Calcula Retenção? \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 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 let ean = null;\r\n if(item.pro_ean !== \"\" && item.pro_ean !== \"undefined\" && item.pro_ean !== null){\r\n ean = item.pro_ean;\r\n }else{\r\n ean = item.prg_ean;\r\n }\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 descricaograde: !!item.grade ? item.grade : item.descricaograde,\r\n pro_ean: 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 if (!!listaEtiqueta[indice].descricaograde) {\r\n comando = comando.replaceAll('@gradeProduto' + i , 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 , listaEtiqueta[indice].descricaograde.substr(parseInt(modelo.met_quantidadecaracteresdescricaoproduto), parseInt(modelo.met_quantidadecaracteresdescricaoproduto)));\r\n } else {\r\n comando = comando.replaceAll('@gradeProduto' + i + listaEtiqueta[indice].descricaograde);\r\n }\r\n } else {\r\n comando = comando.replaceAll('@gradeProduto' + i, ' ');\r\n comando = comando.replaceAll('@gradeProduto' + i, ' ');\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 , ' ');\r\n comando = comando.replaceAll('@gradeProduto' + i ,' ');\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 __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 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 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}","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 React, { useEffect, useMemo, useState } from \"react\";\r\nimport { useStateValue } from '../../state';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Row, Col, Layout, Avatar, Form, Dropdown, Menu, Tooltip, Button, Drawer, Input, Typography, Badge, notification } from \"antd\";\r\nimport {\r\n SearchOutlined, UserOutlined, SettingFilled, DeleteOutlined, LogoutOutlined, AppstoreOutlined, BellFilled, SaveFilled, InfoCircleTwoTone,\r\n CheckOutlined, ExpandOutlined, WechatFilled, PrinterFilled, CloseOutlined, UnorderedListOutlined, RedoOutlined, ShoppingOutlined\r\n} from '@ant-design/icons';\r\nimport { useFullScreen } from 'react-browser-hooks';\r\nimport Circle from '@uiw/react-color-circle';\r\nimport \"./index.less\";\r\nimport { ModalEmpresaFilial, ModalSelecaoClientesCat } from \"../../components/modals/\";\r\nimport { logout, getNomeEmpresa, getNomeLocal, getEmailUsuario, getNomeUsuario, getStatusFilial, getNomeClienteCat } from '../../services/auth';\r\nimport { ModulosPage, PesquisaGlobal, Perfil, DrawerPaginasAbertas, SincronizarCatalogo, BotaoAbrirChamado } from \"../../components\";\r\nimport ServidorImpressao from \"../../pages/etiqueta/servidorImpressao\";\r\nimport { ServidorImpressoraOnline } from \"../../services/servidorImpressora\";\r\nimport apiWeb from \"../../services/apiWeb\";\r\nimport { loadShoppingCartItems } from \"../../services/CarrinhoDB\";\r\n\r\nexport default function HeaderPage() {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [openPerfil, setOpenPerfil] = useState(false);\r\n const [openBuscaGlobal, setOpenBuscaGlobal] = useState(false);\r\n const [openPaginaAbertas, setOpenPaginaAbertas] = useState(false);\r\n const [openModalModulos, setOpenModalModulos] = useState(false);\r\n const [openModalPesquisaGlobal, setOpenModalPesquisaGlobal] = useState(false);\r\n const [openModalEmpresaFilial, setOpenModalEmpresaFilial] = useState(false);\r\n const [paginasAbertas, setPaginasAbertas] = useState([]);\r\n const [formularioPerfil] = Form.useForm();\r\n const [listaNotificacoes, setListaNotificacoes] = useState([]);\r\n const [contador, setContador] = useState(0);\r\n const [image, setImage] = useState(false);\r\n const [openServidor, setOpenServidor] = useState(false);\r\n const [dadosBusca, setDadosBusca] = useState({});\r\n const [formularioServImp] = Form.useForm();\r\n const [openModalCliente, setOpenModalCliente] = useState(false);\r\n const [catalogo, setCatalogo] = useState(false);\r\n const [openDrawerSinc, setOpenDrawerSinc] = useState(false);\r\n const [clienteCatalogo, setClienteCatalogo] = useState(\"\");\r\n const [openCart, setOpenCart] = useState(false);\r\n const [countItemCart, setCountItemCart] = useState(0);\r\n const [carrinhoItens, setCarrinhoItens] = useState([]);\r\n const { toggle } = useFullScreen()\r\n\r\n const showDrawerBusca = () => {\r\n setOpenBuscaGlobal(true);\r\n };\r\n\r\n const onCloseBuscaGlobal = () => {\r\n setOpenBuscaGlobal(false)\r\n };\r\n\r\n\r\n const showDrawerModulos = () => {\r\n setOpenModalModulos(true);\r\n };\r\n\r\n const onCloseModulos = () => {\r\n setOpenModalModulos(false)\r\n };\r\n\r\n const onClosePesquisaGlobal = () => {\r\n setOpenModalPesquisaGlobal(false);\r\n setOpenBuscaGlobal(false);\r\n localStorage.removeItem('@GestorWeb-PesquisaGlobal');\r\n };\r\n\r\n const showDrawerPerfil = async () => {\r\n await carregarAvatar();\r\n setOpenPerfil(true);\r\n };\r\n\r\n const openModalCart = () => {\r\n loadShoppingCartItems(setCarrinhoItens);\r\n setOpenCart(true);\r\n }\r\n\r\n const onCloseCart = () => {\r\n setOpenCart(false);\r\n }\r\n const onClosePerfil = async () => {\r\n setOpenPerfil(false);\r\n };\r\n\r\n const showDrawerServidor = () => {\r\n verificarServidor();\r\n };\r\n\r\n const showDrawerSincronizarCat = () => {\r\n setOpenDrawerSinc(true);\r\n };\r\n\r\n async function verificarServidor() {\r\n let servidorOn = await ServidorImpressoraOnline();\r\n if (servidorOn.online) {\r\n setOpenServidor(true)\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 setOpenServidor(false);\r\n }\r\n };\r\n\r\n const onCloseServidor = () => {\r\n setOpenServidor(false);\r\n };\r\n\r\n const avatar = useMemo(() => {\r\n return ();\r\n }, [image]);\r\n\r\n const menuUsuario = (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 } 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 TabNotaAntecipacaoDevolucao({ antecipacaoDevolucao }) { \r\n return (\r\n
\r\n
(\r\n
\r\n \r\n
\r\n {!!tipoMovimento ? tipoMovimento : ''}\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: 'Informações',\r\n width: 140,\r\n align: 'center',\r\n render: ({ informacoes }) => (\r\n
\r\n \r\n
\r\n {!!informacoes ? informacoes : ''}\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: ({ valor }) => (\r\n
\r\n \r\n
\r\n {!!FormatNumber(valor, true) ? FormatNumber(valor, 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, TabNotaAntecipacaoDevolucao } 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 \r\n \r\n \r\n \r\n {(!!detalheNotaFiscal.ntf_infcomplementar ? detalheNotaFiscal.ntf_infcomplementar : '')}\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 {(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 if (resParams.status == 200) {\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\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, nfEntrada }) {\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 && nfEntrada === false) {\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 && nfEntrada === false) {\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 { selectPaginadoActions } from \"../../actions\";\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\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 const [nfSaida, setNfSaida] = useState(false);\r\n const [numeroPedido, setNumeroPedido] = useState(null);\r\n const [retImposto, setRetImposto] = useState({});\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.editando])\r\n\r\n useEffect(() => {\r\n popularDadosContribuintes();\r\n carregaDados();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (dadosOperacao.tipooperacao !== undefined) {\r\n if (dadosOperacao.tipooperacao.tip_entradasaida === 1) {\r\n setNfSaida(true);\r\n } else if (dadosOperacao.tipooperacao.tip_entradasaida === 0) {\r\n setNfSaida(false);\r\n }\r\n }\r\n }, [dadosOperacao])\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: !!form.getFieldValue().icm_id ? form.getFieldValue().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 form.setFieldsValue({ nfi_numeropedidocompra: numeroPedido });\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 nfi_itempedidocompra: null\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 if (resParams.status == 200) {\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\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 p.icms_id = !!form.getFieldValue().icm_id ? form.getFieldValue().icm_id : dadosProdutoImpostos.icm_id;\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 setNumeroPedido(dadosFormulario.nfi_numeropedidocompra);\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 buscarDadosIcms(value) {\r\n let pro_id = form.getFieldValue().pro_id\r\n let listaItens = [...listaSelectProd]\r\n let produto = listaItens.filter(pro => pro.key === pro_id)[0];\r\n\r\n let codigoProd = btnEditando.editando ? form.getFieldValue().pro_id : produto.pro_id\r\n let ufDest = !!dadosEndereco.est_sigla ? dadosEndereco.est_sigla : dadosContribuinte.est_sigla;\r\n let destinoOperacao = (!!dadosEndereco.est_sigla && !!dadosContribuinte.est_sigla && (dadosEndereco.est_sigla === dadosContribuinte.est_sigla) ? '1' : '2');\r\n let indicadorPresenca = !!form.getFieldsValue().ntf_indicadorpresenca ? `&indicadorPresenca=${form.getFieldsValue().ntf_indicadorpresenca}` : '';\r\n let inscEstadual = !!form.getFieldValue().pej_inscricaoestadual ? `&inscEstadual=${form.getFieldValue().pej_inscricaoestadual}` : '';\r\n let listaPrecoPar = !!listaPreco ? `&ListaPreco=${listaPreco[0].ltp_id}` : '';\r\n\r\n api.get(`Produto/BuscarDadosProduto?IdProduto=${codigoProd}&ufDestino=${ufDest}&IcmsId=${value}`\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 ).then(\r\n res => {\r\n setRetImposto(res.data[0]);\r\n }\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_numeropedidocompra: formulario.nfi_numeropedidocompra,\r\n nfi_itempedidocompra: formulario.nfi_itempedidocompra,\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 icm_id: formulario.icm_id,\r\n cso_id: retImposto.cso_id ? retImposto.cso_id : item.cso_id ?? dadosProdutoImpostos.cso_id,\r\n cst_id: retImposto.cst_id ? retImposto.cst_id : item.cst_id ?? dadosProdutoImpostos.cst_id\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: item.nfi_numeropedidocompra,\r\n nfi_itempedidocompra: item.nfi_itempedidocompra,\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: formulario.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: retImposto.cso_id ? retImposto.cso_id : item.cso_id ?? dadosProdutoImpostos.cso_id,\r\n cst_id: retImposto.cst_id ? retImposto.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 nfi_itempedidocompra: dados.nfi_itempedidocompra,\r\n nfi_numeropedidocompra: dados.nfi_numeropedidocompra\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 buscarDadosIcms(value)} conteudo={\r\n icm => ({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 (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 {nfSaida === 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 { 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 if (resParams.status == 200) {\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\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 let listaDados = adicionarItemPedido(false, dados);\r\n listaDados.emp_id = dados.emp_id;\r\n listaDados.prg_ean = dados.prg_ean;\r\n listaItens.push(listaDados);\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 ? item.pdi_quantidade : 1)),\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 ? item.pdi_quantidade : 1)),\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 setProdutoBuscaEan(itemPedido);\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 // Verificar se dadosPreco.data.lpi_valorvenda é um número\r\n let valorUnitario = parseFloat(dadosPreco.data.lpi_valorvenda);\r\n let quantidade = parseFloat(form.getFieldValue().pdi_quantidade);\r\n if (isNaN(valorUnitario) || isNaN(quantidade)) {\r\n console.error('Valor unitário ou quantidade não são números válidos:', {\r\n valorUnitario,\r\n quantidade\r\n });\r\n return;\r\n }\r\n // Definir os valores no formulário\r\n form.setFieldsValue({\r\n pdi_valorunitario: valorUnitario,\r\n pdi_valortotal: quantidade * valorUnitario,\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 {/* original */}\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 ManifestoEletronicoButton(props) {\r\n\r\n const [desabilita, setDesabilita] = useState(false);\r\n\r\n useState(() => {\r\n setDesabilita(validarPermissaoTela(22));\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\nimport { MdSupportAgent } from \"react-icons/md\";\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 handleOnClickOpen()}\r\n style={{ color: \"white\", fontSize: '20px', verticalAlign: 'middle' }}\r\n title=\"Suporte\" // Adiciona o tooltip com a mensagem\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}","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}","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 const [listLista, setListLista] = useState([]);\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 if(multiple == true){\r\n listLista.push(valor);\r\n form.setFieldsValue({ [_nameValue]: listLista });\r\n }\r\n else{\r\n setValor(valor);\r\n form.setFieldsValue({ [_nameValue]: valor });\r\n }\r\n !!onSelectFunction ? onSelectFunction(valor) : naoFazNada();\r\n }}\r\n // ajustado onSelect para que fosse possivel selecionar mais de um item, codigo original comentado abaixo\r\n // onSelect={(valor) => {\r\n // listTemp.push(valor);\r\n\r\n // form.setFieldsValue({ [_nameValue]: listTemp });\r\n // // form.setFieldsValue({ [_nameValue]: valor });\r\n // !!onSelectFunction ? onSelectFunction(valor) : naoFazNada();\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,iVBORw0KGgoAAAANSUhEUgAAAiYAAAH0CAYAAAAJ0Ob/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+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/FRgAAFsRJREFUeNrs3XuM5Wddx/HPtzs72+6l0L1S2m1ttYClglAQJNAqaLhEknIpl4AEuVRQQapR0BgIRBBxGzThEmKIMdYqaFQuqQpiVWipxaA2IFBatZZmA7RcGi5t6fL4x5lCu93OzpzbPOec1yvpP92Z2dnvOTO/93me3+93qrUWAIAeHGMEAIAwAQAQJgCAMAEAECYAgDABABAmAIAwAQAQJgCAMAEAECYAgDABABAmAIAwAQAQJgCAMAEAECYAAMIEABAmAADCBAAQJgAAwgQAECYAAMIEABAmAADjsWQEMJqqOibJU5M8Mcn+JJuTfCHJ+5N8oLXWTAlgjb9T/c6EkaLkAUnek+RH7+VDPpDkma21200L4Ohs5cBoUfLRVaIkGayk/IZpAazxd6sVExgqSo5NclWSH1nDh9+cZF9r7ZDJAazOigkM5zVrjJIk2ZXkLCMDECYwdlV1UpJfW+ennWpyAMIEJuG3kmxd5+ccZ2wAwgTGqqr2J3nREJ/6bdMDECYwbq9JsjzE533R6ADW8ALQVTmwxh+Wwbkl1yXZMsSn726t3WyKAKuzYgJr95tDRsn/ihIAYQJjU1UPTHLBkJ9+lQkCCBMYpzdn+PeW+pjxAazxhaBzTOAoPyRVP53kQyN8iQe01j5vkgDCBEaNku1J/jPJ6UN+iWtaaw80SYC1sZUDq3vnCFGSJH9phADCBEZWVa9I8vwRvkRL8scmCSBMYNQoOS/JW0f8Mpe31q4xTYC1WzICpnSg35PkoUkelOS0JCclOSHJtiSV5LtJbk3ytSRfSnJDks9ncH7HdW2KJ0NV1flJ/jTJphG/1AGPPMA6fwc7+ZUJHdy3J3lSkicm+akkPzDCl7tlJVA+muSyJFe01r41ge+5krw6yW+PIUr+K8lZzQ8YgDBhw2KkkjwhyUuTPDWTe0fd25NcuRIp/5jkytba7SN+72cmeVuSnxzT9/iM1tpfeVYACBOmHyRLSZ6X5NeTnLkB38K3klye5ONJPpHkX1trX17j931ukpckOT+jr5Lc6bLW2uM9MwCECdOPkqcleVMG54705Pokn0vyPxm8s+8tK+GxnOTEJA9I8mNJjh/z33t7kke21q727ABYPye/MmyQnJrBPT6e3Om3eOrKf9P2BlECMMLxxYoJQ0TJi5L8fpIdpnE3VyZ5XGvtDqMAECZMPki2JnlXRrvp2Lz6YgZbODcYBcDwbOWw1ig5Mcn7kjzSNO7htiRPFyUAwoTpRMnpST6c0d4zZl7dkeT5rbUrjAJgdG5Jz9Gi5MEZ3NhMlNzTd5O8sLXmjfoAxnXccY4Jq0TJD61Eyf1M4x5uT/JzrbVLjAJgfGzlcG9RclIG2zei5J6+muRZrbV/MAqA8bKVw5Gi5Lgkf5PR3t9mXn0yg6tvRAmAMGFK3p3kEcZwN4eSvCXJY1pr1xkHwGTYyuFuquolSZ5rEnfziSS/0Fr7N6MAmPBxyMmv3CVKzkjy70m2jflLH1r5ulcl+XySg0m+vvL/t2XwfjW7kpySwfbRg5KckfG9qd6wPpfk9Un+vPlBAZgKKybc1TvGHCWfTfK2JO9dy7v9HhZJW5OcleQhSR668t/Dkmyf8Axakn9O8vYkf91aO+RpATDFF8leCLISAs9J8mdj+nJfSvLqJH8yzgN7VW1K8uAM3hX4UUkeneTMjH6u1KEMtmvetxJR/+0ZASBM2LgoWU7ymYznJmp/l+QF610hGeF7Pz6DE3UfvhIpP5jBuwrvS3LsYR/eknwtyQ1Jrk3yqZUguaK19hXPBABhQh9h8rIk7xzDl3pHklf2sP1RVZXkuAy2piqDW8ff4p1/AYQJfUfJMRmcC3LGiF/qD5Jc6CRRAEbhPiY8aQxR8h5RAoAwYRxeOOLnfyrJi0UJAONgK2eRH/zBJblfTrJ1yC9xa5JHtNY+bZoAjIMVk8X2+BGiJEleL0oAECaMyzkjfO6nk1xkhAAIE8blUSN87q+21r5jhAAIE8blh4f8vI+01v7e+AAYNye/LuoDPzjx9ZtDfvqPt9auNEUAxs2KyeLaPeTnfUSUACBMGLflIT/vLUYHgDBh3IY5cfXTST5sdAAIE8bt5iE+563u8ArAJDn5dZEf/KqDSe63xg8/mOS01tptJgfApFgxWWyfWMfHvkmUACBMmKRL1/hxn0nyLuMCYNJs5Szyg1+1M8n1Sbav8mF3JHmcS4QBmAYrJgustfaVJL93lA/7FVECwNReNFsxWfAnQNXmJB9I8sTD/uhQkte01g6YEgDChGnGyXKSVyd5QZL7JLkyye+01j5uOgAIEwBgITnHBAAQJgAAwgQAECYAAMIEABAmAADCBAAQJgAAwgQAECYAAMIEABAmAADCBAAQJgAAwgQAECYAAMIEAECYAADCBABAmAAAvVsygsmoqlcmOcMkuvQXrbV/MQYAYbJIXpzkIcbQpa8lESYAHbKVMzn7jKBbpxgBgDBZGFW1lGSPSQgTAIRJD/aYbdf2GwGAMFkk9zOCvsOkqjz3AYSJMKELy3EOEIAwESZ0xHkmAMJEmCBMABAmwgRhAiBMhAnCBABhIkwQJgDCBGEiTAAQJr1xKWr/3GQNoEPVWjOFcQ606rgk3zKJ7rUk21trHiuAjlgxGT/bODPSkLFqAiBMhAkdcZ4JgDARJggTAISJMEGYAAgTYYIwAUCYCBOECYAwESZGIEwAECbChPU6uarKGACEiTChB8cm2WsMAMJkLq28+nY7+tliOwdAmMyt+ybZYgzCBABh0gPbOMIEAGEiTBAmAMIEYSJMABAmwgRhAiBMECbCBABhIkyYmD1VdawxAAgTYUIPKsl+YwAQJsKEXtjOARAmwgRhAoAwmYiqWkqy2ySECQDCpAd7zFOYACBMemEbR5gAIEyECcIEQJggTObH/qoqYwAQJsKEHhwXJy4DCBNhQkds5wAIE2GCMAFAmAgThAmAMBEmCBMAhIkwQZgACJPFUFVbkxxvEsIEAGHSg31GIEwAECa9sI0zB3FZVVuMAUCYCBN6UElONgYAYSJM6IXtHABhIkwQJgAIE2GCMAEQJsIEYQKAMBEmCBMAYSJMECYArE211kxhlAFWVZJvJ3EPjNn3zdbadmMA2DhWTEZ3giiZG9uqarcxAAiTWWYbZ77YzgEQJjPN++TMl/1GACBMZpkVk/lixQRAmAgThAkAwkSYIEwAhIkwQZgAIEyECcIEQJgIE2bn8ayqZWMAECbChF5+Jk42BgBhMnOqaimJO4XOH9s5AMJkJu01w7nkJmsAwmQm2caZT1ZMAITJTHI7emECgDDphhUTYQKAMBEmCBMAYYIwESYACBNhwlRtr6qdxgAgTIQJvbBqAiBMhAnCBECYIEw4nJusAQiT2VFVW5McbxJzy4oJgDCZKVZLhAkAwkSYIEwAhAmHczt6YQKAMOmGFZP5dmJVbTYGAGEiTOjBpiQnGQOAMBEm9MJ2DoAwESYIEwBhgjDhcG6yBiBMhAndsGICIEz6V1UVlwsLEwCESSdOSLLFGIQJAMKkB7ZxhAkAwkSYMFXHV9V9jQFAmAgTemHVBECYdM+Jr8IEAGHSDSsmwgQAYSJMmDo3WQMQJsKEblgxARAmwgRhAiBMECYIE4ANVK01U1jPwKqWktwm6hbGHUmOa63dYRQAk+fgun57zW2hLCW5vzEACJNe2cZZPLZzAISJMEGYAAgThAnCBECYzAy3o188brIGIEy6ZcVk8VgxARAmwgRhAiBMECYIEwBhIkzo1n2r6nhjABAmwoReWDUBECZ9qaqtSbxyFiYACJMuWC0RJgAIE2GCMAEQJggT7uQmawDCRJjQDSsmAMKkO25HL0wAECbdsGKyuE6qqk3GACBMhAk92JzkRGMAECbChF7YzgEQJsIEYQIgTLibqqo4+VWYACBMOnFCki3GIEwAECY9sI2Dm6wBCBNhQjesmAAIE2GCMAEQJggTDrezqrYbA4AwESb0wqoJgDDpgkuFESYAwqQbVkwQJgDCRJggTACECcIEYQIgTPpTVUtJdpsEcZM1AGHSgb1mxQorJgDCZMPZxuFOJ1eVnxsAYSJM6MKy5wOAMBEm9MR2DoAwESYIEwBhgjBBmAAIk664HT3CBECYdMOKCcIEQJgIE7rkJmsAwkSY0A0rJgATUq01U1htQFVbk3zTJDjM9taa5wXAmFkxOTqrJRyJ7RwAYSJM6IbtHABhIkwQJgDCRJiAMAEQJsIEYQIgTBAmCBMAYSJMmBmuygEQJhvC++RwxDCpqjIGAGEybVZMOJItohVAmEzVyitiBx/ujfNMAITJVJ2w8soYhAmAMNlwtnEQJgDCRJggTACECcIEYQIgTIQJwgQAYSJMGIWbrAEIE2FCN/ZU1XHGACBMhAk9qFg1ARAmU+TmahyN80wAhMnUWDFBmAAIk41XVUtJdpsEwgRAmPRgr/kgTACESS9s4yBMAISJMEGYAAgThAnD2F9VZQwAwkSY0INjk+wxBgBhIkzohe0cAGEiTBAmAMJEmIAwmZCq2lFV55sECBPuye3oESbTC5KzqurtSW5M8rsmsq7Zeb8m5sqSEdwrKyYIk8keUJeTPDPJy5M89i5/dJPprHl2r0hyW5KfMBWEyXz/0G9NcrxJIEwm8vN1WpILkrwogzsss/bZ7Uvy8yv/3X/lf3/MZBAm889qCcJkvAfUTUmevHJAfXKSTaayrvk9MskvJXl2ki2H/bEteYSJMIG72VtVx7bWbjWKexxQ92awMnJBktNMZF2zu+t2zaNX+VCRhzARJnD3Y0iSk5NcaxTfO6g+NoPVkfOP8Aqf1Wd3pO2aCBOEiTCB9Thl0cOkqnYkeV4GJ7M+xFNi3fNbbbtGmCBMhAmsO0wW9YB61kqM/GySHZ4K65rdnds1v5jkMUN+GWGCMBEmsNhhssqlvqxtfuvdrhEmCBNhAsLkCAdUl/qONr9ht2tW46ochIkwgcUJk6o6JslT4lLfYee3OckzMri65jET+Cs8HggTYQLzHyYu9R15fuPcrhEmCJMF/mVS8T45rN/+qqrWWpuDnwGX+o42v0dksDry7CnNT5ggTObcCUmWjYF12ppkd5Ivz+jB9M5LfV+W5KEeznXPb9LbNcIEYbLAbOMwrP2zFiYu9R15fnsz2Op6eSa7XSNMECbCBNbtlCSfnIGDqUt9R5/htLdrhAnCRJjAUGHS88HUpb6jzW8jt2tW43JhhIkwgdkIk5VLfZ+UweqIS32Hm+GeDE4G3sjtmtV4TBEmwgT6DhOX+o5lhj1t1wgThIkwgdkLE5f6jjy/XrdrhAnCRJjAbISJS33HMsM7t2teluSkGfv2hQnCRJjAEe2rquXW2u1TOpi61Hf0GT48g9WR52Z2V5iECcJEmMARHZPBvUyum+CB1KW+o89wFrdrjva8A2Eyp7+wlpLsMgmG9B9JDk3ouelS39FnOMvbNauxYoIwmWN7vfpgnW5N8t4k72ytXTnmA6lLfcczx3nYrjnKP7GOaa1916ONMJk/tnFYq2uTvCvJH7XWbp7AK/sXx6W+o8xwc5KnrQTJImx5bUoiTBAmwoQFc0eSD64EyYfG/QrVpb5ji7p53K5ZS5h8xzMAYSJMWAwHk7w7yR+21v5vzAdSl/qOZ47zvl2zljABYSJMmHNXJHlrkve11sb6atSlvmOZ4aJt16zGuXEIE2HCHPtikgtaa+8f84HUpb7jmeOeJC9dmePJJpLEignCRJgwt65L8oTW2vVjPJCemsGJrC+JS31HmePDkrwyyXOSHGsiwgRhIkyYd99I8jPjiBKX+o4tRmzXCBOEiTBhYb2htfbZEQ+kLvUdT5DYrhEmLOrPf2vNFL7/y/CWOBFxUX09yYmttW8P+dxxqe/43J7BPTls16zd/tbaF4yBeWDF5PsHlm2iZKF9cL1R4lLfiVk2gnV7f1XdZgwL61mttRuEyfzZZwQL7ap1BIlLfenNw4xgoc3V6qIw+T7nlyy2g2sIkqcn+eUk5xgXgDARJkzSN9bwMW9OcoZRAUyOuwUKEwAQJsIEABAmwgQAhIkwAQCEiTABAGEiTAAAYTKEqqq4wRoACJNO7IzbYAOAMOmE1RIAECbdcH4JAAgTYQIACBNhAgDCRJgAAMJEmACAMBEmAIAwESYALIoSJsIEABAmE8jMqqUkuzwVAECY9GCfOQCAMOkpTAAAYdIF55cAgDARJgCAMBEmACBMhAkAIEyECQAIE2ECAAgTYQIAwkSYAADCZGhVtS3JDk8DABAmPbBaAgDCRJgAAMLkcN4nBwCESTesmACAMBEmAIAwESYAIEyECQBwdEvCBGbPmWeemTe+8Y1z8++5+uqr87rXva6L7+XCCy/MOeecMzezPXDgQC6//PKp/70XXXRRTj/99LmZ46te9apcf/31fvkIE2ECR7Jr166cd955c/Pv2bGjn/scnn322XM120suuWRD/t5zzz03Z5999tzM8bWvfa1fPFOysFs5VVVxuTAACJNO7Eyy7CkAAMKkB7ZxAECYCBMAQJgczvklACBMumHFBACEiTABAISJMAEAYSJMAABhIkwAQJgIEwBAmKxZVW1OssvDDwDCpAd7s9irRQAgTDpiGwcAhIkwAQCEiTABAGHSLe+TAwDCpBtWTACYFyVMhAkAIEyECQAIE2ECAAgTYQIAwmSOVdW2JDs89AAgTHpgtQQAhIkwAQCEiTABAGEiTAAAYXI0bkcPAMKkG1ZMAECYCBMAQJgIEwAQJsIEAFifpUX6x1ZVxcmvzIEbb7wxBw4cmJt/z7XXXtvN93LppZfm4MGDczPba665ZkP+3osvvjiXXXbZ3Mzxpptu8otnWsfq1toihcmuJJ5dHMlTWmt/e5TnzzVJzjAqoDMPaq19bl7+MYu2lWMbBwCEiTABAISJMAEAYSJMAABhcjSuyAEAYdINKyYAIEyECQAgTIQJAAgTYQIACJN7VVWbk+zykAOAMOnB3izmmxYCgDDpkG0cABAmwgQAECbCBACEiTABAISJMAEAYTIzvE8OAAiTblgxAQBhIkwAAGEiTABAmPSnqrYl2eHhBgBh0gOrJQAgTIQJACBMhAkACBNhAgBTVsJEmAAAwkSYAIAwmX1uRw8AwqQbVkwAQJgIEwBAmHxPVVVs5QCAMOnEziTLHmoAECY9sI0DAMJEmAAAwkSYAIAwESYAgDARJgAgTIQJACBMhAkACJOZ5eZqACBMumHFBACEycarqs1JdnmYAUCY9GBvFueNCgFAmHTONg4ACBNhAgAIE2ECAMJEmAAAwkSYAIAwESYAgDARJgAgTGaW29EDgDDphhUTABAmG6+qtiXZ4SEGAGHSA6slACBMhAkAIEyECQAIE2ECAAgTYQIAwkSYAADCRJgAgDARJgCAMBmV29EDgDDZeFVVwgQAhEkvdiZZ9vACgDDpgfNLAECYCBMAmLISJsIEABAmwgQAhIkwAQCEiTABAGEiTAAAYSJMAECYCBMAQJiMX1VtzuDOrwCAMNlwezPfb04IAMJkhtjGAQBhIkwAAGEiTABAmAgTAECYCBMAECbCBAAQJsIEAISJMAEApmtJmMCaI/3iJHuMCujMV4VJp6pqe5LtnqMM4T5H+4DW2huMCUCYrMf2JP/kYWUIm4wAYONVa80UAIAueLM7AECYAAAIEwBAmAAACBMAQJgAAAgTAECYAAAIEwBAmAAACBMAQJgAAAgTAECYAAAIEwBAmAAACBMAAGECAAgTAABhAgAIEwAAYQIACBMAAGECAAgTAIAx+f8BAFwjENZ90dDnAAAAAElFTkSuQmCC\"","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\";","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}","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 __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 \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/i-sem-acesso.3ad53de4.png\";"],"sourceRoot":""}