{"version":3,"sources":["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/i-city.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/conhecimentoTransporte/tabRemetenteCTe.js","components/modals/modalDocsFiscaisCTe/index.js","pages/conhecimentoTransporte/manutencao.js","pages/conhecimentoTransporte/drawer.js","pages/conhecimentoTransporte/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/servico/tabServicoTributacao.js","pages/servico/manutencao.js","pages/servico/drawer.js","pages/servico/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/notaFiscalServico/tomadorNFSE.js","components/filtroServicoNfse/index.js","pages/notaFiscalServico/servicosNFSE.js","pages/notaFiscalServico/faturamentoNFSE.js","pages/notaFiscalServico/resumoNFSE.js","pages/notaFiscalServico/manutencao.js","pages/notaFiscal/drawerServico.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/modalSelecionarNF.js","pages/pedidos/drawerNFSE.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/modalDetalheRemessa.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/parcelaCartao/index.js","pages/cidade/drawer.js","pages/cidade/index.js","pages/CarrinhoCatalogo/index.js","pages/homeCatalogo/index.js","App.js","serviceWorker.js","index.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","assets/i-endereco.png","services/funcoesIE.js","services/apiPayer.js","assets/logoGestor.png","components/selects/selectProduto/index.js","services/auth.js","components/enuns/formaDePagamento.js","assets/i-produto.png","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-grade.png","components/comboData/index.js","pages/condicional/manutencao.js","pages/condicional/drawer.js","services/emitter.js","assets/i-info.png","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","assets/i-car.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","ValueObjects/maskFormat.js","components/modals/modalManutencaoPecasCat/UploadFoto.js","components/modals/modalProcessoLento/index.js","pages/lancamentoCaixa/lancamentoTransferencia.js","pages/lancamentoCaixa/manutencao.js","components/inputEmail/index.js","pages/marca/manutencao.js","pages/cidade/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-bill.png","assets/i-cartao.png","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-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/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/tabDetalheServico.js","components/detalheNotaFiscal/tabDetalheTransporte.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/emitirConhecimento/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","components/filtroProdutoKit/index.js","pages/fecharPedidoCatalogo/itensPedidoCat.js","pages/fecharPedidoCatalogo/index.js","services/funcoesGestor.js","components/drawerPedidoCat/index.js","components/drawerGrupoCat/index.js","components/emitirNotaFiscalServico/index.js","components/detalheRemessa/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/data/index.js","components/selects/selectPaginacao/index.js","components/inputPreco/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","ValueObjects/formatDate.js","ValueObjects/formatFone.js","ValueObjects/formatarCPF.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","services/calculaImposto.js"],"names":["reducer","state","action","type","drawerActions","CHANGE","ui","data","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","split","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","length","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","item","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","format","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","replace","DrawerAliquotaSimples","AliquotaSimples","possuiAliquotaMes","setPossuiAliquotaMes","retornaMesExtenso","mes","itens","toUpperCase","asn_percaliquota","Home","retornaConfiguracaoCertificado","lcn_validadecertificado","clickNaoExibir","dataValidade","naoMostrarNovamente","diferencaDias","setValidadeCertificado","naoExibirMensagem","getValidadeCertificado","exibirModalAviso","diasParaVencimento","formattedDate","diaOuDias","onCancel","info","exibirModalAvisoDiferencaDias","exibirModalVencimentoHoje","dif","diferencaDatas","includes","getEmpresa","empRegimeTributario","emp_regimetributario","empEnquadramentoFiscal","emp_enquadramentofiscal","markupProduto","par_markupproduto","par_diastoleranciacobrancajuro","par_percjuromesparcelavencida","par_multaparcelavencida","par_tipocalculomulta","getItem","setNavegacao","geral","setPermissoes","setStatusPlano","buscarDadosCertificado","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","Servico","ConhecimentoDeTransporte","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","Cidade","RelacionamentoFornecedorProduto","Restaurante","Hotel","ManutencaoProduto","VigenciaFiscal","TabelaRetencao","RetencaoPessoaProduto","ParametrosLocal","AcaoUsuario","DownloadXml","KitComposicao","Balanca","ConsultaRecebimento","ConsultaCartoesConciliados","ParcelaCartao","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","index","Cell","Legend","verticalAlign","Tooltip","parseFloat","TableRenderer","columns","locale","emptyText","CartesianChart","children","ChartComponent","left","right","XAxis","tickFormatter","YAxis","v","CartesianGrid","labelFormatter","CartesianChartBar","legend","cursor","ComponentSpin","VendaLiquida","graficoSelecionado","formFiltros","vendaLiquidaDiaria","setVendaLiquidaDiaria","totalizadores","setTotalizadores","pessoaFisicaJuridica","setPessoaFisicaJuridica","topVendedores","setTopVendedores","vendedores","setVendedores","vendaLiquidaCidades","setVendaLiquidaCidades","vendaLiquidaClientes","setVendaLiquidaClientes","listaLocaisUsuario","setListaLocaisUsuario","carregandoTotalizadores","setCarregandoTotalizadores","carregandoVendaDiaria","setCarregandoVendaDiaria","carregandoFisicaJuridica","setCarregandoFisicaJuridica","carregandoVendedor","setCarregandoVendedor","carregandoCliente","setCarregandoCliente","carregandoCidade","setCarregandoCidade","carregarDados","dataInicial","dataFinal","locais","local","join","mesAnterior","getDate","slice","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","valor","urlRel","PathRelatorio","Parametros","Tipo","NomeRelatorio","byteCharacters","byteNumbers","Array","i","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","cpfCnpj","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","retorno","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","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","cpf","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","FormatarCPF","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","toString","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","undefined","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","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_cpfcnpjresponsavel","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","TabRemetenteCTe","formAutores","remetenteFisico","setRemetenteFisico","destinatarioFisico","setDestinatarioFisico","expedidorFisico","setExpedidorFisico","recebedorFisico","setRecebedorFisico","outrosFisico","setOutrosFisico","enderecoRemetente","setEnderecoRemetente","enderecoDestinatario","setEnderecoDestinatario","enderecoExpedidor","setEnderecoExpedidor","enderecoRecebedor","setEnderecoRecebedor","enderecoOutros","setEnderecoOutros","tipo_prefix","buscarDadosEndereco","pee_id","tipoAutor","find","pie_inscricaoestadual","limparPessoa","autor","carregarDadosPessoa","pessoa","retornarDadosCPFCNPJ","emailPricipal","telefonePrincipal","enderecoPrincipal","setFisico","isCPF","bordered","headStyle","borderBottom","backgroundColor","padding","border","pc","ModalDocsFiscaisCTe","validarNotaFiscal","headers","dadosNota","incluirDadosNota","removerNota","overflow","borderRadius","ManutencaoConhecimentoTransporte","formConhecimento","listaValidacoesAutores","obrigatorio","cte_dataemissao","DrawerConhecimentoTransporte","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","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","result","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","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","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","text","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","valorUnitario","statusAtual","ope_descricao","dataPosicao","vlrUnitario","vlrTotalItem","tipoRegistro","TabServicoTributacao","csv_id","csv_descricao","ManutencaoServico","dadosServico","DrawerServico","formServico","modalExcluirServico","servico","modalInativarServico","inativarServico","duplicarServico","ManutencaoRelatorioEtiqueta","exibeModelo","nomeEmpresa","empresa","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","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_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","obrigaBanco","setObrigaBanco","fpg_id","definirDadosBoleto","resetarConstantes","fpg_emiteboleto","fpg_tipopagamento","fpg_tipointegracao","calcPercent","fpg_descricao","fpg_ativo","fpg_imprimecarne","fpg_padraosistema","fpg_codigofuncaotef","fpg_descontopadrao","formacondicaopagamentos","definicaoboleto","dbl_id","dbl_boletosfaltantes","dbl_percjuromora","dbl_diasaplicarmulta","dbl_modeloimpressao","dbl_diasbaixa","dbl_diasparaprotestar","dbl_valorminimoprotesto","dbl_valormulta","dbl_nomearquivoremessa","dbl_extensaoarquivoremessa","dbl_nossonumeroinicial","dbl_nossonumerofinal","dbl_numeroconvenio","dbl_numerocontrato","dbl_msglocalpagamento","dbl_mensagem1","dbl_mensagem2","dbl_mensagem3","dbl_mensagemmora","tpPagamento","alterarTpPagamento","forma","cta","tpIntegracao","alterarTpIntegracao","DrawerFormaPagamento","formFormaPagamento","roundValue","num","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","ocultarNumeroLoteRps","setOcultarNumeroLoteRps","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","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","DrawerDebitoCredito","formDebitoCredito","ModalDetalheNotaFiscal","FornecedorNFE","dadosEndereco","setDadosFornecedor","dadosFornecedor","setOpenDrawerFornecedor","listaEndereco","setListaEndereco","listaEmail","setListaEmail","dadosTelefone","setDadosTelefone","abreModalTelefone","setAbreModalTelefone","pessoaFisica","setPessoaFisica","formularioTelefone","validarProdutorRural","enderecoP","telefoneP","psc_id","emailP","pem_id","setarCpfCnpj","Object","ope_notaprodutorrural","pes_idestrangeiro","ntf_cpfcnpj","ntf_endereco","buscarDadosFornecedor","mask","dadosSelect","funcaoBotao","campoDescricao","campoValue","campokey","placeHolder","labelFormItem","nameFormItem","mail","pse","exibirModalTelefone","fecharModalTelefone","FormasPagamentoNfEntrada","dadosOperacao","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","fpg","valorRestantePgto","dadosFpg","pfp_valor","listarCondicao","faturamento","some","prc_numeroparcela","dataVencimento","prc_datavencimento","valorParcela","prc_valor","FormaDePagamento","fpDepositoBancario","fpTransferenciaBancaria","fpPixDinamico","fpCheque","fpDinheiro","fpCreditoLoja","callback","popularParcelas","fpBoletoBancario","fpBoleto","validarJaPossuiBoleto","fpCartaoCredito","fpCartaoDebito","credito","abrirModalCheque","indexPosicao","parc","popularParcelasDebito","abrirModalCartao","antecipacao","dadosFormaPagamento","fpValePresente","adicionarFormaPagamento","formaPgtoAntecipacao","cheques","antecipacoes","fpProgramaFidelidade","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","fpSemPagamento","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","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","TomadorNFSE","setInfoEndereco","formTomador","openDrawerCliente","setOpenDrawerCliente","openModalEndereco","setOpenModalEndereco","listaCidade","setListaCidade","cepInformado","setCepInformado","codigoCliente","setCodigoCliente","uf_incidencia","mun_incidencia","cep_incidencia","buscarDadosCliente","setarEnderecos","setarTelefones","setarEmails","limparCliente","ExclamationOutlined","listaCliente","blur","campoKey","verificaCepIncidencia","exibirModalEndereco","fecharModalEndereco","FiltroServicoNFSE","infoEndereco","listaSelectServ","setListaSelectServ","dadosProdutosImpostos","setDadosProdutosImpostos","servNota","onClickBtnAdicionar","servicoImposto","popularFormServico","setarCampoQtde","codigoServ","aliquotaIssqn","aliquota","serv","select","popularDadosContribuinte","onChangeServID","ServicosNFSE","retornoISSQN","ret_baseIssqn","ret_aliquotaIssqn","ret_valorIssqn","pdi_numeroitem","removerServicoNota","FaturamentoNFSE","valorTotalIssqn","setValorTotalIssqn","percentualDescontoConcedido","rateios","rateioDesconto","recalcularImpostos","_numeroItem","_totalDesconto","_valorDesconto","somaTotal","nfi_valordescontorateado","calculaValorProporcional","totalIssqn","ResumoNFSE","NFServico","setDadosVendedor","listaValidacoesTom","statusPagamentoIntegraPagto","modalInstance","listaVendedor","salvarNota","cid_idPrestacaoServico","pdi_id","itempedidonota","fpCreditoEmLoja","analisaFormaPagamento","pagamentoMaquininha","dadosIntegracaoPos","cnpjEmpresa","getCnpjEmpresa","listaIdsIntegracao","tipopgto","metodopgto","submetodopgto","imp_cnpjlocal","imp_valor","imp_tipopgto","imp_metodopgto","imp_submetodopgto","imp_qtdeparcelas","integrapgto","integrapgtook","criaRegistroIntegraPagto","imp_id","pagamentoPayer","setDadosIntegra","modalAguardandoPagamento","concluirVenda","_paymentType","_paymentMethodSubType","_installments","_paymentMethod","command","paymentMethod","paymentType","paymentMethodSubType","installments","apiPayer","destroy","verificarPagamentos","cancelarPagamentoMaquina","imp_statuspgto","imp_autorizacao","statusTransaction","authorizerId","verificaTodosPagamentos","finalizarVenda","controleloterps","clr_linkaprovacao","notafiscalformapgtos","AlterarSituacaoCondicional","ok","dadosVen","ven","alterarVendedor","setShowNFServico","showNFServico","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_modelo","autorizarNota","ser_emitentedocumento","ntf_nroinutilizadosefaz","ntf_tiponota","abrirExcluirNota","FileTextOutlined","abrirCartaCorrecao","UndoOutlined","dadosNotaFiscalDevolucao","abrirDrawerDevolucao","abrirEnvioEmail","TagOutlined","abrirImprimirEtiqueta","nomeVendedor","totalItemSemDesconto","perc_desconto","valor_item_desconto","getLabel","exportarXML","getImprimirLabel","gerarRascunho","visualizarNota","imprimirRelatorioJasper","idNotaFiscal","finalidade","tipoNota","modeloNota","visualizarDanfe","notaFiscal","imprimirRelatorioNaoFiscal","DollarOutlined","StopOutlined","tpNota","pv","condPagamento","formatarCpfCnpj","ntf_serie","ntf_cstat","ntf_xmotivo","clr_numerolote","clr_protocolo","clr_numerorps","clr_datarecebimento","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","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","validarAba","formNotaEntrada","openNota","setOpenNota","dadosCamposItens","keyItens","keyFat","keyRem","keyTransp","criarBancoWeb","vetorSeparado","nomeBanco","carregarNota","chaveNfe","xmlDistribuicaoNfe","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","totalSt","empresaSelecionada","aliquotaIcms","Number","percIpi","aliquotaICMSST","retornoICMS","ret_baseIcms","ret_valorIcms","ret_baseIcmsST","ValorST","BaseIPI","ret_baseIPI","ValorIPI","valorTotalSt","_totalFrete","_valorFrete","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","setListaVendedor","setDadosOrcamento","visualizar","IdOrcamento","gerarPedido","pes_telefone","qtditem","ManutencaoStatusPedido","setColor","initial","setInitial","setSituacao","possuiSituacao","setPossuiSituacao","recarregarDados","hex","stp_situacao","stp_id","somenteAtivar","stp_statusanterior","verificarStatus","DrawerStatusPedido","formStatusPedido","stp_ativo","duplicarStatus","editarStatus","stp_pedidocancelado","stp_pedidoconcluido","stp_permiteeditarpedido","stp_permiteemissaonf","ModalDetalhePedido","DrawerNF","dadosNFE","DrawerTransferencia","ModalSelecionarNF","drawerNFSE","drawerNF","FileOutlined","DrawerNFSE","dadosNFSE","dadosDetalhesPedido","setDadosDetalhesPedido","formPedidos","setStatus","showDrawerNF","setShowDrawerNF","showDrawerNFSE","setShowDrawerNFSE","openModalEscolha","setOpenModalEscolha","drawerTransferencia","setDrawerTransferencia","setDadosNFSE","dadosNF","setDadosNF","exibirDrawerPedidos","setExibirDrawerPedidos","ativo","ativoPedido","carregarPrimeiraVez","carregarStatus","modalConfirm","cancelarPedido","itensPedido","ped_datavalidade","ped_modalidadefrete","pdi_valorunitario","pdi_quantidade","pdi_valordesconto","pdi_valoracrescimo","tratarDevolvidoFaturado","temServico","soServico","every","tratarFaturamentoNFSe","tratarFaturamentoNFe","pdi_qtdedevolvido","pdi_qtdeentregue","porcentagens","somaValorPagos","novoValor","novoValorUltimaForma","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","novoValorTotal","nfseEscolhida","nfEscolhida","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","limparFormaPagamento","dadosVal","buscarParametrosEmp","par_contagerencialvalepresente","par_contagervalepresenteprazo","cgc_contagerencialdestino","cgc_contagerencialdestino2","onChangeFormaPagamento","compradores","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","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","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","tipoFormaPagExistente","fpPixEstatico","tipoParcelamentoCartao","calcularSobra","restanteReceber","troco","calcularRecebimentoParcial","valorRecebido","_perc","formaPagamentoSelecionada","efetuarRecebimento","calcularParcelasCartao","parcelascartao","verificaIntegracaoPagamento","definicaoParcelamento","valParcela","verificarPagamentoMaquina","dataPagamentoRecebimento","valorTotalParcelas","valorTotalMulta","dataFormatada","valorTotalPagoRecebido","valorFormaPgto","valorDescontoFormaPgto","valorJurosFormaPgto","valorMultaFormaPgto","parcelasCartao","removerCarcaterEspecial","dadosReceber","limparListas","zerarMulta","retornoParcela","buscarCodBarras","labelInput","placeholderInput","validaIntervaloData","filterOption","input","valorTotalSemDesconto","sobraDesconto","salvarDadosModal","funcaoSalvar","ManutencaoContaPagar","dadosContasPagar","setDadosContasPagar","DrawerContaPagar","formContaPagar","parametrosContasPagar","cpr_estornado","ManutencaoPagamento","calcularPagamentoParcial","listaParcelasPagar","exibirCondicaoPag","setExibirCondicaoPag","inputRef","setListaParcelasPagar","innerHeight","valorAPagar","restantePagar","DrawerPagamento","listaParcelasFornecedor","setListaParcelasFornecedor","formParametros","parcelasPagar","pagarSelecionados","filtrarPeriodo","valorInformado","listaContaCorrenteSaldo","setListaContaCorrenteSaldo","entradaSaida","setEntradaSaida","tipoMovimentacaoFinanceira","setTipoMovimentacaoFinanceira","listaCaixa","setListaCaixa","infoContas","setInfoContas","openModalSenha","setOpenModalSenha","dadosLancamentoEstornar","setDadosLancamentoEstornar","consuMovimentacao","setConsuMovimentacao","setInputPesquisa","listarCaixa","marcarTodos","pesquisaAvancada","contas","idContas","contasSelecionadas","marcado","contaAtiva","reprocessarCaixa","exibirEstornados","tipoMovimentacao","lc_valor_final","lc_valor_inicial","listaCaixaContas","saldoAtual","valormcc","saldoAnterior","reverse","mov","mcc_movimentoestornado","mcc_entradasaida","mcc_id","lc_complemento","order","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","nomelocal","totalentradarealizadolocal","totalsaidarealizadolocal","totalentradarealizado","totalsaidarealizado","valor_SaldoInicial","totalprovisaoreceberlocal","totalprovisaopagarlocal","totalprovisaoreceber","totalprovisaopagar","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","valor_RealizadoEntrada","valor_RealizadoSaida","valor_ProvisaoPagar","valor_ProvisaoReceber","InicialSaldo","justifyContent","paddingRight","Table","TableBody","categoriasFiltradas","Fragment","contasGerenciaisFiltradas","TableRow","TableCell","paddingLeft","FluxoCaixaDiarioGerencialSintetico","sum","formFluxoCaixa","tipoFluxoCaixa","setTipoFluxoCaixa","setValoresProvisionados","setPeriodo","organizacao","setOrganizacao","formaApresentacao","setFormaApresentacao","setTabelaFluxoCaixa","setSaldos","anoAtual","montaDataMes","montaDataMesFim","montaDataAno","montaDataAnoFim","flx_periodo","flx_organizacao","flx_apresentacao","flx_dataInicial","flx_dataFinal","mesInicial","flx_mesInicial","month","mesFinal","flx_mesFinal","anoInicial","flx_anoInicial","year","anoFinal","flx_anoFinal","dataInicio","organizacaoFiltrada","picker","verificarFluxo","listaMovimentacao","setListaMovimentacao","listaContaGerencialTaxas","setListaContaGerencialTaxas","listaContaGerencialAgrupadorTaxas","setListaContaGerencialAgrupadorTaxas","listarMovimentacao","dadosMovimentacao","lancamentos","conciliacaoCartaoDetalhamento","taxas","dadosTaxaCartaoCreditoParcela","totaltaxas","totalBruto","auxTotaltaxas","auxTotalBruto","rcc_id","prevVal","elem","taxa","tax","tcp_parcelaminima","tcp_parcelamaxima","tcp_taxa","bce_taxapadraodebito","bce_taxapadraocredito","openDetalhes","calcularTaxaCartao","bnd_id","marcarDesmarcarTodos","bce_nomecredenciadora","dadosTaxa","taxaAlterar","calculaValores","forceRender","toggleDetalhes","rcc_datalancamento","listaMov","ctg_id_taxas","listaComMovimentacao","movimentacao","hcc_totalbrutodebito","hcc_taxadebito","hcc_totalliquidodebito","hcc_totalbrutocredito","hcc_taxacredito","hcc_totalliquidocredito","listDados","listaConcatenada","HistoricoConciliacaoCartao","ManutencaoCheque","DrawerCheque","formCheque","openModalOcorrencia","setOpenModalOcorrencia","statusCheque","setStatusCheque","ocorrencia","setOcorrencia","cheque","chq_numero","chq_agencia","chq_contacorrente","banco","chq_status","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_dataInicio","bol_dataFim","bol_datainicio","VerificaBanco","firstId","selecionado","bancoId","rem_qtdeboletos","rem_valortotal","bol","padraoarquivoremessa","parcelaboleto","tratarParcelasBoletos","parcelaboletos","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","ModalDetalheRemessa","dadosDetalhesRemessa","setDadosDetalhesRemessa","visualizarRemessa","ExcluirRemessa","rem_id","rem_nomearquivoremessa","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","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_tipoemissao","lcn_tipoemissaonfce","authorization","lcn_id","tipoEmissao","ContainerOutlined","validaCnpj","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","pdv_versaoatualpdv","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","dadosLocais","setDadosLocais","listaApuracaoICMS","setListaApuracaoICMS","listaCodigoGuiaRecolhimento","setListaCodigoGuiaRecolhimento","listaCodigoReceitaDifal","setListaCodigoReceitaDifal","listaFinalidadeArquivo","setListaFinalidadeArquivo","listaPerfilContribuinte","setListaPerfilContribuinte","setMonthDates","startOf","endOf","filterSort","optionA","optionB","localeCompare","optionLabelProp","maskFormat","dataInventario","perfil","apurIcms","codigoRecDifal","codigoRecolhimento","codigoReceita","gerarBlocoK","gerarC170","gerar0150","gerarC176","dispensaNFCe","responseType","contentDisposition","filenameMatch","utfFilenameMatch","decodeURIComponent","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","cartaoCredito","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","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","totalConciliado","setTotalConciliado","totalNaoConciliado","setTotalNaoConciliado","TipoDoc","conciliados","conciliadoTotal","nãoConciliadoTotal","conciliado","rcc_conciliado","naoconciliado","tipoDoc","hcc_datahoraconciliacao","valorTaxa","DrawerCidade","cadCidade","formCidade","SelectPaginado","cnf_id","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","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","d1","d2","df","abs","setHours","isDate","RegExp","rev","tamanho","digitos","pos","resultado","_url","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","SelectProduto","textOverflow","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","VALIDADECERTIFICADO_KEY","CLIENTECAT_KEY","NOMECLIENTECAT_KEY","process","getNavegacao","getPermissao","getStatusPlano","getStatusFilial","getTelaAnterior","getDadosUsuario","getNomeClienteCat","nomeUsuario","setTela","tela","nav","perm","setTelaAnterior","setCnpjEmpresa","dadosUser","setClienteCatalogo","setNomeClienteCatalogo","fpValeAlimentacao","fpValeRefeicao","fpValeCombustivel","fpDuplicataMercantil","fpFalhaDeHardware","fpOutro","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","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","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","modeloDescricao","getDescricaoModelo","ModalDevolucao","abrirManutencao","ModalEnvioNFeEmail","modeloDoc","setModeloDoc","dest","chaveNFe","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","cst","csosn","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","modal","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","mostrarFaturado","setMostrarFaturado","mostrarDevolvido","setMostrarDevolvido","calcularTotais","seqKey","temDevolvido","itemEncontrado","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","validaValorPago","pedidoitens","pedidoformapgtos","arrayDados","telefoneCliente","ped_valorfrete","ped_valorTotalitens","ped_valoroutrasdespesas","ped_responsavelpedido","pgto","pfp_id","carregarDadosCliente","dadosEmailCliente","buscarDadosLocal","retornoEndereco","totalIPI","cso_i","ret_percReducaoIcms","ret_percMva","ret_percReducaoIcmsST","ped_indicadorpresenca","pdi_valoricmsst","pdi_valoripi","ope_indicadorpresenca","restoClientes","restoForma","oit_desconto","oit_observacao","restoItem","carregarDadosInciais","carregarDadosItems","ope","Divider","rulesFormItem","DrawerPedidos","setMostraBtnSalvar","setvalorTotalSt","reteioDesconto","_valorTotalDescontoItem","ManutencaoNotaFiscal","isSubmitting","setIsSubmitting","abreModalSimplesNac","setAbreModalSimplesNac","formEndereco","openValidaIE","setOpenValidaIE","consumidorFinal","setconsumidorFinal","listaSubjacente","setListaSubjacente","popularDadosSimples","setarAdjacentes","adjacentes","modalVerificaIEdestinatario","validarOperacao","pessoaorgaospublicos","ie","reteioFrete","isArray","modalAutorizarSefaz","realizarReenvioSefaz","imprimirDAVLS","subjacente","pop_id","ntf_subjacente","pe","pop_nome","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","todosItensDevolvidos","setarFocoProduto","lenght","percdes","excluirItens","setarPrimeiroReg","setLista","alterouPag","setAlterouPag","setCampoDescricao","setValor","primeiroReg","setPrimeiroReg","parametrosUrl","search","onPopupScroll","scrollTop","scrollHeight","onPopUpScroll","SelecoesEmpresa","hash","reload","retornaUnico","onlyNumbers","numbers","caracter","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","ManutencaoCidade","cnf_brasaocidade","base64Result","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","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","imp_idintegracao","nfp_valortroco","Print","renderFunction","TabDetalheTotalizadores","detalheNotaFiscal","setDetalheNotaFiscal","valortotalprodutos","valortotalbcicms","valortotalbcicmsst","valortotalbcipi","valortotalicms","valortotalicmsst","valortotalipi","valortotaloutros","valorbcpis","valorbccofins","valortotalbcissqn","valortotalpis","valortotalcofins","valortotalissqn","TabNotaReferenciada","docsreferenciados","datadoc","dfr_chave","totaldoc","TabNotaAntecipacaoDevolucao","antecipacaoDevolucao","tipoMovimento","TabDetalheServico","nfs_valorbc","nfs_percissqn","TabDetalheTransporte","transporteNF","setTransporte","DetalheNotaFiscal","arrFinalidade","arrStatus","arrAmbiente","setverificadevolucao","setModelo","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","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","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","liberadoCredito","ant","verificarAntecipacoes","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","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","infoBanco","setInfoBanco","detalhesCheque","setDetalhesCheque","listaCheques","setListaCheques","emissor","setEmissor","valorPorExtenso","pessoa_nome","selecionarCliente","popularCheque","campoValor","campoExtenso","atualizaDetalhes","cpfcnpjemissor","rgieemissor","nomeemissor","emissorclientedesde","telefoneemissor","valorUn","validarDigito","valorCheques","chq_codigocompensacao","chq_c1","chq_c2","chq_c3","valorExtenso","chq_nomeemissor","chq_cpfcnpjemissor","chq_rgieemissor","chq_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","ConhecimentoDeTransporteButton","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","FiltroProdutoKit","listaItensTemp","produtoTemp","valor_unitario","produto_id","ItensPedidoCat","FecharPedidoCatalogo","setDadosPedidos","setItensCarrinho","cliCpfCnpj","nomeCidade","codUF","GerarChavePedido","DrawerPedidoCat","setPages","DrawerGrupoCat","NotaFiscalServicoButton","DetalheRemessa","bol_nossonumero","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","subtrairSomarDias","NovaData","inputElement","closest","inputs","currentIndex","nextInput","DataInput","SelectPaginacao","totalReg","setTotalReg","totalRegIni","setTotalRegIni","listLista","trunc","InputPreco","aposVirgula","InputValor","negativo","formatDate","formatFone","origemProduto","quantidadeItem","percDiferimento","percReducaoIcms","aliquotaIcmsSt","percMva","percReducaoIcmsST","percMvaAjustado","aliquotaIpi","eConsumidorFinal","destinatarioTemIE","eProdutorRural","eOrgaoPublico","eServico","uf_origem","uf_destino","vlr_unitario","vlr_frete","vlr_outros","vlr_descontos","identificadorDestino"],"mappings":"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","file":"static/js/main.402e11d1.chunk.js","sourcesContent":["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 \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAsQAAALEBxi1JjQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAU+SURBVEiJdZV7bBzFHcc/M/u48935/Dyfk9hOjB1ik5iUBHDTQNRQ5EiECFCqtkAgojwEqisV2giBCA+pCVIVKlGJgFS1RbIQolZoeEQQJzWhoLomAtkGjN3ExPHz/ML2PX2+3R3+cHLyOctPGml/s9/5fnZ+szMjWBZb9/y+1BbaKwi1CVgNFCKEk5fnSZeEip3NWzZaO5u2J4HvFKpHItqVY//r1orgDD8QYgWgblV1xTc169e5iicikzz0m33ZXM7HML7qXzS6ezu97R0nZGx+WCjR2fDV8YHLGn25waLUDcd2yGQyrgDHUTl50YtHKLG7TeBmqrkZIDniofvapsDmnrbEFYBf7dt9Z9/X56nbuN4V8OmZ/62YvkKgVvQ5ZIyCrG/2oX08cdvQ4PhzJ94+zcT4lCsgPxjIyZWjEJrIFUmI/+lgEz9rbc0CTkZiZcrhdQRaw5ZruKVpuyvgrZb3cr10hZFv5fZFDNSa8NGTkdjHu8rzJ3UA3ZHPKwiBorenj9HhcVeAEIKxuSjJxTSWoxgLBOgrqMKnLHScJVGBIJZIlkpDHgYeEicjsTLNkcOAOXJxjFMnPua6xgZXwButHxLfuNb1nVv4veYzuncudrcVyDeVlABEY3FGhsZcB9iX/qIbo9PsnR6maiFBVNP5pDDMsVAVKanl6GtCpY163etHDwTP92GbHjK6wRrHy9upVa4AZ2aCR95rp7m8LKd/W3SaPf2fc+/AIDPW0poE7rgff211rR6oGC/XSjU0LKSToXBAUFlZgtQ0TI8X05uXNdLOdtDsXzKP1mwgvmMnQZ8H39//Sj1wpHEbv129YUmbX4gptbCuzS/I1m/jvNw7T/ryRup6LucLhWYQqm/iYGYKJMzWNzDUfIAbQnlIAXP19XibH2VnYpbQmXcZsmx8O+8AoXy6do0QiShEkymi87NXlEUISWlZmPse3svVR7oAmGy8ibBPR17aAoXhEpKlIeT0FJvqrmXCE0AE8rEdJXQ7bjhWWkmP10uRHroCIMWSS2vLu9ykBAUCzHiMxWXHhq0UJBIAxCOjZCwHrThMOmOlZWK0eDYzZpNOpZidmXJp0wDc8JPNdOIDYE3b+8wNjjK/6OAomGtrR6aSJBD0BIvRikNg6KQyi1HdrvD3WefkdsM0CRYUupYIYHw0wmcE2U0MMzpHw+GnSK6qIGml8UciALyBSUJdqpuCgMfboau8ouetIKcs22YhlXIBCEyPh2QswUVL0KIcfm1KhG3jH7mY1c04ilcTSRy1VCrNtsn3+Q7L8N7HTy/O+eMCEFK6NoD19Veheb28Wl7D9IoNBfBSMEx63dUY1RswqjdQu7Zy4OjuG7skwI9/tG5fsdfEMA2XZgJw+oP/YMVjzPSc5c8z8znmX2ds/tnfy0J3JwvdnWT6uiiS7IdlN9offrHv329+9t9bck93kEJSUhbmsUMv89o/3iG2thgJvDnUzcaFOArB/spNfJEXXCqpUmwrLmppOfDA/TkAgCd+fs+5tsGBWqWWAwRS06jauocL5weYPHcGgK1+P8fqajn+3Sy/uzB0ab1gy3U7hj449rfsibjitoC9d9091Nl9ttJxnJwZ3NX8LMfbOoivD2e1fxzu5ZXyqxg3vOQ5cLsS77/4wqN7lvtdAQC478lDu4b7+45NXuz3K+Vgejzs+GUzH536iKnBjqxOE2ArCJeszvx00/UP/uW1Qy0rvVwBl2P/M4cfvNDd9ZLH9PjXNe7SO7/8P+mqAgpLwlZhQcFszcTUSKUtnn7q4AMf/pDH9ydqE9NJJ/ALAAAAAElFTkSuQmCC\"","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, useState } 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, Data } from \"../../components\";\r\nimport { getEmpresa, getValidadeCertificado, setNavegacao, setPermissoes, setStatusPlano, setValidadeCertificado, logout } 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, ParcelaCartao, Servico, Cidade, ConhecimentoDeTransporte\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\nimport { diferencaDatas, retornaCep } from '../../services/funcoes';\r\nimport moment from 'moment';\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { format } from 'date-fns';\r\n\r\n\r\n\r\n\r\nexport default function Home() {\r\n\r\n const [, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n empresaUsuario();\r\n buscarParametros();\r\n resetarNav();\r\n buscarPermissoesUsuario();\r\n buscarStatusPlano();\r\n buscarDadosCertificado();\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 async function retornaConfiguracaoCertificado() {\r\n try {\r\n const res = await api.get('/LocalConfigNfe/RetornaConfiguracaoNfe');\r\n if (res.status === 200 && res.data.lcn_validadecertificado) {\r\n console.log(\"Retorno certificado:\", res.data);\r\n var clickNaoExibir = {\r\n dataValidade: res.data.lcn_validadecertificado,\r\n naoMostrarNovamente: false,\r\n diferencaDias: [15, 10, 5, 1, 0],\r\n };\r\n setValidadeCertificado(clickNaoExibir);\r\n } else {\r\n console.error(\"Resposta inesperada da API:\", res);\r\n }\r\n } catch (erro) {\r\n console.error(\"Erro ao buscar configuração do certificado:\", erro);\r\n }\r\n }\r\n function naoExibirMensagem() { //quando chamada função joga \"naoMostrarNovamente\"=true e nao exibe a mensagem até o proximo logout\r\n let dados = getValidadeCertificado();\r\n dados.naoMostrarNovamente = true; \r\n setValidadeCertificado(dados);\r\n }\r\n function exibirModalAviso(diasParaVencimento, dataValidade) { // Aviso exibido sempre que o valor de dif estiver dentro de [15, 10, 5, 1,]\r\n let formattedDate = moment(dataValidade).format(\"DD/MM/YYYY\");\r\n const diaOuDias = diasParaVencimento === 1 ? \"dia\" : \"dias\"; //trata plural ou singular\r\n Modal.confirm({\r\n title: 'Aviso!',\r\n icon: ,\r\n content: (\r\n <>\r\n

O certificado expira em: {diasParaVencimento} {diaOuDias}!

\r\n

Vencimento em: {formattedDate}

\r\n \r\n ),\r\n cancelText: 'Não exibir novamente',\r\n okText: 'Ok',\r\n onCancel: () => {\r\n exibirModalAvisoDiferencaDias(diasParaVencimento); // clicando em \"nao exibir novamente\" chama função de aviso2\r\n },\r\n });\r\n }\r\n function exibirModalAvisoDiferencaDias(diferencaDias) { //aviso2, mostra em quantos dias a mensagem sera exibida de novo\r\n const diaOuDias = diferencaDias === 1 ? \"dia\" : \"dias\";\r\n Modal.info({\r\n title: 'Atenção!',\r\n content: (\r\n
\r\n

\r\n A mensagem será exibida novamente em {diferencaDias} {diaOuDias} ou no próximo acesso ao sistema.\r\n

\r\n
\r\n ),\r\n okText: 'Ok',\r\n onOk: () => {\r\n naoExibirMensagem(); //clicando em \"ok\" sistema não mostra a mensagem novamente até o proximo logout;\r\n }\r\n });\r\n }\r\n function exibirModalVencimentoHoje() { //aviso exibido no dia de vencimento (dif===0)\r\n Modal.confirm({\r\n title: 'Certificado Digital vence hoje!',\r\n content: (\r\n
\r\n

Após o vencimento, a emissão de notas será bloqueada. Contate seu contador!

\r\n
\r\n ),\r\n cancelText: 'Não exibir novamente',\r\n okText: 'Ok',\r\n onCancel: () => {\r\n naoExibirMensagem(); \r\n }\r\n });\r\n }\r\n async function buscarDadosCertificado() {\r\n let dados = getValidadeCertificado();\r\n if (dados && dados.naoMostrarNovamente === true) {\r\n return;\r\n }\r\n if (!dados || !dados.dataValidade || !dados.diferencaDias) {\r\n await retornaConfiguracaoCertificado();\r\n dados = getValidadeCertificado();\r\n }\r\n const dif = diferencaDatas(dados.dataValidade);\r\n if (dif === 0) {\r\n exibirModalVencimentoHoje();\r\n return;\r\n }\r\n if ([15, 10, 5, 1, 0].includes(dif)) {\r\n exibirModalAviso(dif, dados.dataValidade);\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 () => {\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 \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 { Card, Col, Divider, Form, Input, message, Row, Select } from \"antd\";\r\nimport { InputCpfCnpj, InputPhone, SelectPaginacao } from \"../../components\";\r\nimport { MaskFormat } from \"../../ValueObjects\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function TabRemetenteCTe({ formAutores }) {\r\n const [remetenteFisico, setRemetenteFisico] = useState(true);\r\n const [destinatarioFisico, setDestinatarioFisico] = useState(true);\r\n const [expedidorFisico, setExpedidorFisico] = useState(true);\r\n const [recebedorFisico, setRecebedorFisico] = useState(true);\r\n const [outrosFisico, setOutrosFisico] = useState(true);\r\n const [enderecoRemetente, setEnderecoRemetente] = useState([]);\r\n const [enderecoDestinatario, setEnderecoDestinatario] = useState([]);\r\n const [enderecoExpedidor, setEnderecoExpedidor] = useState([]);\r\n const [enderecoRecebedor, setEnderecoRecebedor] = useState([]);\r\n const [enderecoOutros, setEnderecoOutros] = useState([]);\r\n const tipo_prefix = {\r\n 0: 'remetente',\r\n 1: 'expedidor',\r\n 2: 'recebedor',\r\n 3: 'destinatario',\r\n 4: 'outros'\r\n }\r\n\r\n function buscarDadosEndereco(pee_id, tipoAutor) {\r\n let enderecosMap = {\r\n 0: enderecoRemetente,\r\n 1: enderecoExpedidor,\r\n 2: enderecoRecebedor,\r\n 3: enderecoDestinatario,\r\n 4: enderecoOutros\r\n };\r\n let prefix = tipo_prefix[tipoAutor];\r\n let enderecos = enderecosMap[tipoAutor];\r\n if (!prefix || !enderecos);\r\n\r\n let end = enderecos.find(end => end.pee_id === pee_id);\r\n if (!end) return;\r\n\r\n formAutores.setFieldsValue({\r\n [`cep_${prefix}`]: end.cep_cep,\r\n [`bai_${prefix}`]: end.bai_nome,\r\n [`num_${prefix}`]: end.pee_numero,\r\n [`complemento_${prefix}`]: end.pee_complemento\r\n })\r\n if (end.pie_inscricaoestadual) {\r\n formAutores.setFieldsValue({ [`ie_${prefix}`]: end.pie_inscricaoestadual });\r\n }\r\n }\r\n\r\n function limparPessoa(autor) {\r\n formAutores.setFieldsValue({\r\n [`cpf_${autor}`]: null,\r\n [`cnpj_${autor}`]: null,\r\n [`ie_${autor}`]: null,\r\n [`email_${autor}`]: null,\r\n [`telefone_${autor}`]: null,\r\n [`endereco_${autor}`]: null,\r\n [`bai_${autor}`]: null,\r\n [`num_${autor}`]: null,\r\n [`complemento_${autor}`]: null,\r\n [`cep_${autor}`]: null\r\n })\r\n }\r\n\r\n async function carregarDadosPessoa(codigo, tipoAutor) {\r\n let prefix = tipo_prefix[tipoAutor];\r\n\r\n if (!!codigo) {\r\n let pessoa = (await api.get(`Cliente/BuscarByIdPessoa/${codigo}`)).data;\r\n\r\n if (!!pessoa) {\r\n retornarDadosCPFCNPJ(pessoa, tipoAutor, prefix);\r\n formAutores.setFieldsValue({ [`ie_${prefix}`]: pessoa.pej_inscricaoestadual ?? pessoa.enderecos[0].pie_inscricaoestadual });\r\n\r\n if (pessoa.emails.length > 0) {\r\n let emailPricipal = pessoa.emails.filter(f => f.pem_emailprincipal == true);\r\n formAutores.setFieldsValue({ [`email_${prefix}`]: emailPricipal[0].pem_email });\r\n }\r\n if (pessoa.telefones.length > 0) {\r\n let telefonePrincipal = pessoa.telefones.filter(f => f.psc_principal == true);\r\n formAutores.setFieldsValue({ [`telefone_${prefix}`]: telefonePrincipal[0].psc_numero });\r\n }\r\n if (pessoa.enderecos.length > 0) {\r\n if (tipoAutor === 0) {\r\n setEnderecoRemetente(pessoa.enderecos);\r\n } else if (tipoAutor === 1) {\r\n setEnderecoExpedidor(pessoa.enderecos);\r\n } else if (tipoAutor === 2) {\r\n setEnderecoRecebedor(pessoa.enderecos);\r\n } else if (tipoAutor === 3) {\r\n setEnderecoDestinatario(pessoa.enderecos);\r\n } else if (tipoAutor === 4) {\r\n setEnderecoOutros(pessoa.enderecos);\r\n }\r\n\r\n let enderecoPrincipal = pessoa.enderecos.filter(f => f.pee_enderecoprincipal == true);\r\n formAutores.setFieldsValue({\r\n [`endereco_${prefix}`]: enderecoPrincipal[0].pee_id,\r\n [`bai_${prefix}`]: enderecoPrincipal[0].bai_nome,\r\n [`num_${prefix}`]: enderecoPrincipal[0].pee_numero,\r\n [`complemento_${prefix}`]: enderecoPrincipal[0].pee_complemento,\r\n [`cep_${prefix}`]: enderecoPrincipal[0].cep_cep\r\n })\r\n }\r\n } else {\r\n limparPessoa(prefix);\r\n }\r\n } else {\r\n limparPessoa(prefix);\r\n }\r\n }\r\n\r\n async function retornarDadosCPFCNPJ(pessoa, autor, prefix) {\r\n let setFisicoMap = {\r\n 0: setRemetenteFisico,\r\n 1: setExpedidorFisico,\r\n 2: setRecebedorFisico,\r\n 3: setDestinatarioFisico,\r\n 4: setOutrosFisico\r\n }\r\n\r\n let setFisico = setFisicoMap[autor];\r\n if (!setFisico) return;\r\n\r\n let isCPF = !!pessoa.pef_cpf;\r\n setFisico(isCPF);\r\n\r\n formAutores.setFieldsValue({\r\n [`${isCPF ? 'cpf' : 'cnpj'}_${prefix}`]: isCPF ? pessoa.pef_cpf : pessoa.pej_cnpj\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 carregarDadosPessoa(dados, 0)}\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 {remetenteFisico && \r\n \r\n }\r\n {!remetenteFisico && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarDadosPessoa(dados, 3)}\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 {destinatarioFisico && \r\n \r\n }\r\n {!destinatarioFisico && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarDadosPessoa(dados, 1)}\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 {expedidorFisico && \r\n \r\n }\r\n {!expedidorFisico && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarDadosPessoa(dados, 2)}\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 {recebedorFisico && \r\n \r\n }\r\n {!recebedorFisico && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n carregarDadosPessoa(dados, 4)}\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 {outrosFisico && \r\n \r\n }\r\n {!outrosFisico && \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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, Card, Col, Divider, Form, Modal, notification, Row, Tabs, Tooltip, Upload } from \"antd\";\r\nimport { CloseOutlined, CloudUploadOutlined, DeleteOutlined, ExclamationCircleOutlined, SaveOutlined } from \"@ant-design/icons\";\r\nimport { getBase64 } from \"../../../services/funcoes\";\r\nimport api from \"../../../services/api\";\r\nimport Data from \"../../data\";\r\n\r\nexport default function ModalDocsFiscaisCTe({ form, exibirModal, fecharModal, listaDocs, setListaDocs }) {\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 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 function validarNotaFiscal() {\r\n debugger\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 function removerNota() {\r\n setArquivoBase64(\"\");\r\n setArquivo(null);\r\n }\r\n\r\n function salvarDocs() {\r\n\r\n }\r\n\r\n async function incluirDadosNota(dados, dadosNota) {\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 \r\n
\r\n \r\n {!arquivo &&
\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 \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 \r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { Button, Col, Divider, Form, Row, Select, Steps, Table, Typography } from \"antd\";\r\nimport { Data, FormGW } from \"../../components\";\r\nimport { validaForm } from \"../../services/funcoes\";\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\nimport { TabRemetenteCTe } from \"./tabPage\";\r\nimport ModalDocsFiscaisCTe from \"../../components/modals/modalDocsFiscaisCTe\";\r\nimport moment from \"moment\";\r\nimport api from \"../../services/api\";\r\n\r\nexport default function ManutencaoConhecimentoTransporte({ formConhecimento, 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 [openModal, setOpenModal] = useState(false);\r\n const [listaDocs, setListaDocs] = useState([]);\r\n const [serie, setSerie] = useState([]);\r\n const listaValidacoesAutores = [\r\n { nome: 'pes_remetente', obrigatorio: true, label: 'Remetente' },\r\n { nome: 'pes_destinatario', obrigatorio: true, label: 'Destinatário' },\r\n { nome: 'endereco_remetente', obrigatorio: true, label: 'Endereço Remetente' },\r\n { nome: 'endereco_destinatario', obrigatorio: true, label: 'Endereço Destinatário' }\r\n ]\r\n\r\n useEffect(() => {\r\n if (ui.showDrawer) {\r\n carregarDados();\r\n if (!formConhecimento.getFieldValue().cte_dataemissao) {\r\n formConhecimento.setFieldsValue({ cte_dataemissao: moment(new Date()) });\r\n }\r\n }\r\n }, [ui.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 async function carregarDados() {\r\n let listaSerie = await api.get('SerieFiscal/Listar?EmitenteDocumento=0&CodigoModeloDocFiscal=57&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 formConhecimento.setFieldsValue({ ser_id: serie[0].ser_id });\r\n }\r\n }\r\n }\r\n\r\n async function validarTrocaPg(pagina) {\r\n let paginaAtual = pages.tagPages;\r\n let listaValidacoes = [];\r\n switch (paginaAtual) {\r\n case 0:\r\n // if (paginaAtual < pagina) {\r\n // if (listaDocs.length === 0) {\r\n // notification.warning({ message: 'Atenção!', description: 'Para prosseguir, deve ter pelo menos um Documento Fiscal.' })\r\n // setPermiteValidar(false);\r\n // proximaPag.setProximaPag(paginaAtual);\r\n // return false;\r\n // }\r\n // }\r\n break;\r\n case 1:\r\n if (paginaAtual < pagina) {\r\n listaValidacoes = listaValidacoesAutores;\r\n }\r\n break;\r\n case 2:\r\n break;\r\n }\r\n if (validaForm(formConhecimento, 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 emitirCTe() {\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 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 CT-e\r\n \r\n Adicione os Documentos Fiscais do CT-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 setOpenModal(false)} listaDocs={listaDocs} setListaDocs={setListaDocs} />\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 { Button, Col, Drawer, Form, Modal, Row } from \"antd\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, LeftOutlined, MinusOutlined, RightOutlined, SaveOutlined } from \"@ant-design/icons\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport ManutencaoConhecimentoTransporte from \"./manutencao\";\r\n\r\nexport default function DrawerConhecimentoTransporte({ }) {\r\n const [formConhecimento] = 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 formConhecimento.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: '' } });\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, { useState } from \"react\";\r\nimport { Button, Col, Collapse, Form, Input, Row } from \"antd\";\r\nimport { BreadcrumbPage, ComboData, Data, EmitirConhecimento, TabelaDados } from \"../../components\";\r\nimport { ArrowDownOutlined, ArrowUpOutlined, CloseOutlined, PlusOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions } from \"../../actions\";\r\nimport moment from \"moment\";\r\nimport DrawerConhecimentoTransporte from \"./drawer\";\r\n\r\nexport default function ConhecimentoDeTransporte({ }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [formParam] = Form.useForm();\r\n const [open, setOpen] = useState(false);\r\n\r\n const togglePesquisa = () => {\r\n setOpen(!open);\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 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 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 \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 \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\r\n if (formulario.getFieldValue().ump_id != \"UN\" && formulario.getFieldValue().ump_id != \"KG\") {\r\n notification.warning({ message: `Aviso!`, description: \"Os Padrões de Unidades de medida para balança são UN ou KG!\" });\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}&SomenteProduto=true`, 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 += `&SomenteProduto=true&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 if (possuiGrade) {\r\n setPossuiGrade(false);\r\n }\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 if (prod.pro_usagrade === true) {\r\n let res = await api.get(`Produto/ListaProdutoComGradeFiltro?Filtro=${prod.prg_ean}`);\r\n prod = { ...prod, ...res.data.items[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) }}\r\n ordem={\"pro_id\"} \r\n filtroPesq={filtroProd} \r\n atualizaComponente={atualizarListaProd} \r\n />\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: '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: '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 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 width: 750,\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: 'Vlr. Unit.',\r\n align: 'right',\r\n width: 95,\r\n render: ({ valorUnitario }) => (\r\n
\r\n {FormatNumber(valorUnitario, 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: ({ valorTotal }) => (\r\n
\r\n {FormatNumber(valorTotal, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Status',\r\n align: 'right',\r\n width: 120,\r\n render: ({ statusAtual }) => (\r\n
\r\n {statusAtual}\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, useState } from \"react\";\r\nimport { Col, Divider, Form, Row, Select, Typography } from \"antd\";\r\nimport { SelectPaginado } from \"../../components\";\r\n\r\nexport default function TabServicoTributacao({ formulario }) {\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 Serviço.\r\n \r\n \r\n \r\n \r\n \r\n \r\n ({ser.csv_id} - {ser.csv_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 \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Input, Row, Col, Tabs, Select, Checkbox, notification } from \"antd\";\r\n\r\nimport api from \"../../services/api\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { Data, FormGW, InputPreco, SelectPaginacao } from \"../../components\";\r\nimport TabServicoTributacao from \"./tabServicoTributacao\";\r\nimport { selectPaginadoActions } from \"../../actions\";\r\nimport DrawerGrupoProduto from \"../grupoProdutos/drawer\";\r\nimport DrawerSubGrupo from \"../subGrupo/drawer\";\r\nimport moment from \"moment\";\r\n\r\nexport default function ManutencaoServico({ formulario, salvandoDados, aoSalvar, editando }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [abaSelecionada, setAbaSelecionada] = useState(\"1\");\r\n const [listaUnidadeMedida, setListaUnidadeMedida] = useState([]);\r\n const [filtroGrupo, setFiltroGrupo] = useState(null);\r\n const [grupoSelect, setGrupoSelect] = useState([]);\r\n const [openDrawerGrupo, setOpenDrawerGrupo] = useState(false);\r\n const [openDrawerSubGp, setOpenDrawerSubGp] = useState(false);\r\n const [foundGroup, setFoundGroup] = useState([]);\r\n\r\n const trocaAbas = (pag) => {\r\n setAbaSelecionada(pag);\r\n }\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!editando) {\r\n formulario.setFieldsValue(manutencao.dados);\r\n } else if (manutencao.dados !== null && !editando) {\r\n formulario.setFieldsValue(manutencao.dados);\r\n }\r\n }, [manutencao.dados])\r\n\r\n useEffect(() => {\r\n carregarListas();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const found = grupoSelect.find(element => element.gru_id === formulario.getFieldValue(['gru_id']));\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 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\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 salvandoDadosGrupo(retorno) {\r\n let lista = [];\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 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 async function salvarDados(values) {\r\n let dadosServico = { ...values, ...formulario.getFieldsValue() };\r\n\r\n if (dadosServico.lpi_valorvenda === 0) {\r\n notification.warning({ message: 'Atenção!', description: 'Informe o valor do Preço de Venda' });\r\n return;\r\n }\r\n if (validarForm(dadosServico, listaValidacoes)) {\r\n if (dadosServico.pro_id) {\r\n editarManutencao(dadosServico);\r\n } else {\r\n incluirManutencao(dadosServico);\r\n }\r\n }\r\n }\r\n\r\n const listaValidacoes = [\r\n { nome: 'pro_descricao', obrigatorio: true, label: 'Descrição' },\r\n { nome: 'ump_id', obrigatorio: true, label: 'Unidade de Medida' },\r\n { nome: 'csv_id', obrigatorio: true, label: 'Tipo de Serviço' }\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 (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\r\n async function editarManutencao(dadosServico) {\r\n api.put(`Produto/EditarServico`, dadosServico).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: \"Os dados do Produto foram salvos com sucesso!\" });\r\n }).catch(\r\n error => {\r\n console.log(error);\r\n }\r\n ).finally(\r\n () => {\r\n aoSalvar();\r\n salvandoDados(false);\r\n }\r\n );\r\n }\r\n\r\n async function incluirManutencao(dadosServico) {\r\n api.post(`Produto/IncluirServico`, dadosServico).then(\r\n res => {\r\n notification.success({ message: 'Operação concluída', description: 'Os dados do Serviço 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();\r\n salvandoDados(false);\r\n }\r\n )\r\n }\r\n\r\n return (\r\n
\r\n salvarDados(values)} initialValues={{ ump_id: \"UN\" }} >\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 trocaAbas(tab)} >\r\n \r\n \r\n \r\n \r\n \r\n carregarSubGrupos(IdGrupo)}\r\n onClearFunction={(IdGrupo) => carregarSubGrupos(IdGrupo)}\r\n setListaDados={setGrupoSelect}\r\n funcaoIncluir={() => setOpenDrawerGrupo(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 {editando && \r\n \r\n }\r\n {editando && \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 Serviç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 { Button, Form, Modal, Row, Col, Drawer } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, MinusOutlined, SaveOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport ManutencaoServico from \"./manutencao\";\r\n\r\nexport default function DrawerServico({ editando }) {\r\n const [formServico] = Form.useForm();\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [carregando, setCarregando] = useState(false);\r\n\r\n function 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 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 editando.setEditando(false);\r\n setCarregando(false);\r\n formServico.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 );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Col, Form, Button, Tag, Popover, Modal, Radio } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, ExclamationCircleOutlined, CopyOutlined } 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 { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { PesquisaOrdenacao, TabelaDados, Editar, Excluir, BreadcrumbPage, BotaoIncluirDados, } from \"../../components\";\r\nimport DrawerServico from \"./drawer\";\r\n\r\nexport default function Servico() {\r\n const [{ manutencao, listagem }, dispatch] = useStateValue();\r\n const [formFiltros] = Form.useForm();\r\n const [formPesquisaAdc] = Form.useForm();\r\n const [editando, setEditando] = useState(false);\r\n\r\n useEffect(() => {\r\n let _ativo = !!!formFiltros.getFieldsValue().produtoAtivo ? 1 : formFiltros.getFieldsValue().produtoAtivo;\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${_ativo}&SomenteServico=true`, filtro: '', ordem: '+pro_descricao' } });\r\n formFiltros.setFieldsValue({ produtoAtivo: 1 });\r\n }, [])\r\n\r\n function duplicarServico(servico) {\r\n let dados = {};\r\n if (!!servico.pro_id) {\r\n api.get(`produto/RetornaDadosProduto?ProdutoId=${servico.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 dados.pro_datainclusao = '';\r\n dados.data_sincro = '';\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 };\r\n\r\n function showDrawer(servico) {\r\n let dados = {};\r\n if (!!servico.pro_id) {\r\n api.get(`produto/RetornaDadosProduto?ProdutoId=${servico.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 }\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 const modalExcluirServico = (servico) => {\r\n Modal.confirm({\r\n title: 'Excluir?',\r\n icon: ,\r\n content: `Deseja realmente excluir o serviço ${servico.pro_codigo}-${servico.pro_descricao} ?`,\r\n okText: 'Sim',\r\n cancelText: 'Não',\r\n centered: true,\r\n onOk() {\r\n excluirRegistro(servico);\r\n }\r\n });\r\n };\r\n\r\n function excluirRegistro(servico) {\r\n api.delete(`produto/excluir/${servico.pro_id}`).then((res) => {\r\n if (res.data == true) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n } else {\r\n modalInativarServico(servico);\r\n }\r\n }, (erro) => {\r\n console.error(erro);\r\n modalInativarServico(servico);\r\n })\r\n };\r\n\r\n const modalInativarServico = (servico) => {\r\n Modal.confirm({\r\n title: 'Não foi possível excluir o serviço!',\r\n icon: ,\r\n content: `Deve conter referências com outros registros,\r\n Deseja inativar o serviço ${servico.pro_codigo}-${servico.pro_descricao} ?`,\r\n okText: 'Inativar',\r\n cancelText: 'Cancelar',\r\n centered: true,\r\n onOk() {\r\n inativarServico(servico);\r\n }\r\n });\r\n };\r\n\r\n function inativarServico(servico) {\r\n api.put(`produto/AtivarInativar?IdProduto=${servico.pro_id}&Ativo=false`).then((res) => {\r\n if (res.status === 200)\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '&SomenteServico=true', filtro: '', ordem: '+pro_descricao' } });\r\n })\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 function popularFiltrosTela() {\r\n let filtrosTela = '';\r\n filtrosTela += `&SomenteServico=true&Ativo=${formFiltros.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 onClickEditar(servico) {\r\n setEditando(true);\r\n showDrawer(servico);\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 {pro_codigo}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Descrição do Serviço',\r\n render: ({ pro_descricao }) => (\r\n
\r\n {pro_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Tipo de Serviço',\r\n render: ({ csv_descricao }) => (\r\n
\r\n {csv_descricao || 'Não Informado'}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Tributação Pis/Confins',\r\n width: 150,\r\n render: ({ pis_descricao }) => (\r\n
\r\n {pis_descricao || 'Não Informado'}\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 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: (servico) => (\r\n
\r\n \r\n
\r\n \r\n onClickEditar(servico)} icon={} />\r\n \r\n \r\n } onClick={() => modalExcluirServico(servico)} />\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, 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\nimport { getEmpresa, getLocal, getNomeEmpresa } from '../../services/auth';\r\n\r\nexport default function ManutencaoRelatorioEtiqueta({ formulario, carregando, aoSalvar, exibeModelo }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue(); \r\n const nomeEmpresa = getNomeEmpresa(); \r\n const empresa = getEmpresa();\r\n const locais = getLocal();\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 if(record.loc_id == null && record.emp_id == null){\r\n record.id = null;\r\n record.loc_id = locais;\r\n record.emp_id = empresa;\r\n record.nome = (record.nome + \" \" + nomeEmpresa);\r\n }\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, useState } 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_operacaoconta = 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 const [obrigaBanco, setObrigaBanco] = useState(false);\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 formulario.setFieldsValue({ ctc_id: 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 // useEffect(() => {\r\n // debugger;\r\n // // Resetar apenas o campo `ctc_id` sempre que `tipoPagamento` mudar\r\n // if (manutencao.dados?.fpg_tipopagamento != formulario.getFieldValue().fpg_tipopagamento_id && manutencao.dados?.fpg_tipopagamento != null) {\r\n // formulario.resetFields(['ctc_id']);\r\n // }\r\n // }, [tipoPagamento]);\r\n\r\n const salvarManutencao = values => {\r\n let retorno;\r\n carregando(true);\r\n var dados = {};\r\n dados.ctc_id = formulario.getFieldValue().ctc_id;\r\n dados.fpg_id = formulario.getFieldValue().fpg_id;\r\n dados.fpg_descricao = formulario.getFieldValue().fpg_descricao;\r\n dados.fpg_ativo = formulario.getFieldValue().fpg_ativo;\r\n dados.fpg_emiteboleto = formulario.getFieldValue().fpg_emiteboleto;\r\n dados.fpg_tipopagamento = formulario.getFieldValue().fpg_tipopagamento;\r\n dados.fpg_imprimecarne = formulario.getFieldValue().fpg_imprimecarne;\r\n dados.fpg_padraosistema = formulario.getFieldValue().fpg_padraosistema;\r\n dados.fpg_tipointegracao = formulario.getFieldValue().fpg_tipointegracao;\r\n dados.fpg_codigofuncaotef = !!formulario.getFieldValue().fpg_codigofuncaotef ? formulario.getFieldValue().fpg_codigofuncaotef : 0;\r\n dados.fpg_descontopadrao = !!formulario.getFieldValue().fpg_descontopadrao ? calcPercent(formulario.getFieldValue().fpg_descontopadrao) : null;\r\n dados.formacondicaopagamentos = listaCondPag.length > 0 ? listaCondPag : [];\r\n\r\n if (isBoleto) {\r\n dados.definicaoboleto = {};\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 ? parseInt(formulario.getFieldValue().dbl_especiedocumento) : 0;\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 setObrigaBanco(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 else {\r\n setShowItegracao(false)\r\n }\r\n };\r\n\r\n function carregarBoleto() {\r\n if (!!manutencao.dados.fpg_id) {\r\n api.get(`DefinicaoBoleto/Listar?codigoFormaPagamento=${manutencao.dados.fpg_id}`).then(\r\n res => {\r\n setDadosBoleto(res.data);\r\n formulario.setFieldsValue(res.data);\r\n if (!!manutencao.dados.dadosBoleto) {\r\n manutencao.dados.dadosBoleto = res.data;\r\n }\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n );\r\n }\r\n };\r\n\r\n function carregarCondicoes() {\r\n if (!!manutencao.dados.fpg_id) {\r\n api.get(`FormaPagamento/ListarCondicaoPgtoRelacionadas?CodigoFormaPagamento=${manutencao.dados.fpg_id}`).then(\r\n res => {\r\n setListaCondPag(res.data);\r\n }\r\n ).catch(\r\n erro => {\r\n console.log(erro);\r\n }\r\n )\r\n }\r\n };\r\n\r\n const calcPercent = value => {\r\n let result = 0;\r\n if (value) {\r\n value = value.toString();\r\n if (value.includes(\"%\"))\r\n result = (parseFloat(value.toString().replace(\".\", \"\").replace(\",\", \".\").replace(\"%\", \"\")) / 100);\r\n else\r\n result = (value / 100);\r\n }\r\n return result;\r\n }\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n setAbaSelecionada(tab)}>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Forma de Pagamento Ativa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isValePresente && \r\n {/* ---> não remover required nem filtroPesq, pois são utilizados caso seja boleto para preenchimento obrigatorio da conta corrente */}\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 const [ocultarNumeroLoteRps, setOcultarNumeroLoteRps] = useState(true);\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 if(manutencao.dados.mdf_id == \"98\")\r\n setOcultarNumeroLoteRps(false);\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 function verificarModeloDocumento() {\r\n if(formulario.getFieldValue(['mdf_id']) == \"98\"){\r\n setOcultarNumeroLoteRps(false);\r\n }\r\n else{\r\n setOcultarNumeroLoteRps(true);\r\n }\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 Série 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 } 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 ManutencaoSerieFiscal from './manutencao';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerSerieFiscal() {\r\n\r\n const [formSerieFiscal] = 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 formSerieFiscal.setFieldsValue(manutencao.dados);\r\n } \r\n else {\r\n // formSerieFiscal.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: { showDrawer: false}});\r\n formSerieFiscal.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 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, notification, Modal, Radio, Form } from \"antd\";\r\nimport { EditOutlined, ExclamationCircleOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\n\r\nimport api from \"../../services/api\";\r\nimport DrawerSerieFiscal 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 SerieFiscal() {\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: '+ser_serie' } });\r\n formPesquisa.setFieldsValue({ statusAtivo: 1 });\r\n }, [])\r\n\r\n function editarSerie(record) {\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n dispatch({ type: drawerActions.CHANGE, data: { showDrawer: true } });\r\n }\r\n function aplicarFiltros() {\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: `&Ativo=${formPesquisa.getFieldsValue().statusAtivo}`, ordem: '+ser_serie' } });\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 Série ${dados.ser_serie}. 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(`SerieFiscal/InativarSerie/${dados.ser_id}`).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Série inativada com sucesso!` })\r\n }\r\n ).catch(\r\n error => {\r\n console.log(error);\r\n\r\n }\r\n ).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ser_serie' } });\r\n }\r\n )\r\n }\r\n function excluirRegistro(dados) {\r\n api.delete(`SerieFiscal/Excluir/${dados.ser_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 }).catch(\r\n erro => {\r\n modalInativarRegistro(dados);\r\n }).finally(\r\n () => {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+ser_serie' } });\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 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 {ser_id}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Modelo da Série',\r\n render: ({ mdf_id, modelodocfiscal }) => (\r\n
\r\n {mdf_id} - {modelodocfiscal.mdf_descricao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Descrição',\r\n width: 150,\r\n render: ({ ser_serie }) => (\r\n
\r\n {ser_serie}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Série Fiscal do Documento',\r\n align: 'center',\r\n width: 178,\r\n render: ({ ser_numero }) => (\r\n
\r\n {ser_numero}\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, record) => (\r\n
\r\n \r\n
\r\n editarSerie(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\r\n}","import React, { useEffect } from \"react\";\r\nimport { Form, Row, Col, Radio, 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 ManutencaoHistorico({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n\r\n const salvarManutencao = (values) => {\r\n let retorno;\r\n carregando(true);\r\n\r\n\r\n let enderecoUrl = 'Historico/';\r\n if (values.his_id) {\r\n enderecoUrl += `Editar`;\r\n api.put(enderecoUrl, values).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: '+his_descricao' } });\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({ 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: '+his_descricao' } });\r\n aoSalvar();\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({ his_id: 0 });\r\n }\r\n }, [manutencao.dados]);\r\n\r\n function atualizarPagina() {\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+his_descricao' } });\r\n };\r\n\r\n return (\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\nimport FormaDePagamento from \"../enuns/formaDePagamento\";\r\n\r\nexport default function FormasPagamentoNfEntrada({ form, dadosOperacao, listaFormaPagamento, setListaFormaPagamento }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formaPagamento, setFormaPagamento] = useState([]);\r\n const [condicaoPagamento, setCondicaoPagamento] = useState([]);\r\n const [valorJaPago, setValorJaPago] = useState(false);\r\n const [pagamentoTotal, setPagamentoTotal] = useState(false);\r\n const [multiplasFormasPagamento, setMultiplasFormasPagamento] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [abrirDrawerVendedores, setAbrirDrawerVendedores] = useState(false);\r\n const [formVendedores] = Form.useForm();\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [semCondicao, setSemCondicao] = useState(false);\r\n const [ehCheque, setEhCheque] = useState(false);\r\n const [ehValePresente, setEhValePresente] = useState(false);\r\n const [dadosTela] = useState(getTela());\r\n const [isNota, setIsNota] = useState(false);\r\n const [openModalCartao, setOpenModalCartao] = useState(false);\r\n const [dadosParcelas, setDadosParcelas] = useState([]);\r\n const [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\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 === FormaDePagamento.fpDepositoBancario\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === FormaDePagamento.fpTransferenciaBancaria\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === FormaDePagamento.fpPixDinamico)) {\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 === FormaDePagamento.fpCheque\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === FormaDePagamento.fpDinheiro)) {\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 === FormaDePagamento.fpCreditoLoja) {\r\n validarJaPossuiCrediario(() => {\r\n popularParcelas();\r\n });\r\n } else if (dados[index].fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) {\r\n validarJaPossuiBoleto(() => {\r\n popularParcelas();\r\n });\r\n } else if ((((dados[index].fpg_tipopagamento === FormaDePagamento.fpCartaoCredito && dadosParcelas.length === 0)\r\n || dados[index].fpg_tipopagamento === FormaDePagamento.fpCartaoDebito) && !!!manutencao.dados.credito) && !openModalCartao) {\r\n abrirModalCartao(dados[index]);\r\n } else if (dados[index].fpg_tipopagamento === FormaDePagamento.fpCheque) {\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 !== FormaDePagamento.fpValePresente)) {\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: FormaDePagamento.fpProgramaFidelidade,//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 === FormaDePagamento.fpCreditoLoja && !!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 === FormaDePagamento.fpBoleto && !!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 === FormaDePagamento.fpProgramaFidelidade && 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: FormaDePagamento.fpProgramaFidelidade,\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 === FormaDePagamento.fpCheque || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpDinheiro\r\n || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpDepositoBancario || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpPixDinamico\r\n || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpTransferenciaBancaria)) {\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 === FormaDePagamento.fpCartaoCredito) {\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 === FormaDePagamento.fpCartaoDebito) {\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 !== FormaDePagamento.fpCreditoLoja && manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento !== FormaDePagamento.fpBoleto) {\r\n let creditoDebito = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento === FormaDePagamento.fpCartaoCredito;\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 === FormaDePagamento.fpCartaoDebito) {\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 === FormaDePagamento.fpDinheiro || dados.fpg_tipopagamento === FormaDePagamento.fpCheque || dados.fpg_tipopagamento === FormaDePagamento.fpValePresente ||\r\n dados.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja || dados.fpg_tipopagamento === FormaDePagamento.fpBoleto) {\r\n setSemCondicao(true);\r\n if (dados.fpg_tipopagamento === FormaDePagamento.fpCheque) {\r\n setEhCheque(true);\r\n } else if (dados.fpg_tipopagamento === FormaDePagamento.fpValePresente) {\r\n setEhValePresente(true);\r\n } else if (dados.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja || dados.fpg_tipopagamento === FormaDePagamento.fpBoleto) {\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 === FormaDePagamento.fpProgramaFidelidade) {\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 === FormaDePagamento.fpCartaoCredito || forma.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito) {\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 FormaDePagamento.fpDinheiro:\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpCheque:\r\n setEhCheque(true)\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpValePresente:\r\n setEhValePresente(true);\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpBoleto:\r\n case FormaDePagamento.fpCreditoLoja:\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 FormaDePagamento.fpSemPagamento:\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 === FormaDePagamento.fpCartaoDebito || record.fpg_tipopagamento === FormaDePagamento.fpCartaoCredito || record.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja || record.fpg_tipopagamento === FormaDePagamento.fpBoleto) && !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 !== FormaDePagamento.fpProgramaFidelidade && !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\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 atualizar 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\nimport FormaDePagamento from '../../components/enuns/formaDePagamento';\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\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 !== FormaDePagamento.fpCreditoLoja && !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 === FormaDePagamento.fpBoletoBancario) {\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 === FormaDePagamento.fpCheque && !!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 === FormaDePagamento.fpValePresente) {\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 { Col, Divider, Form, Input, Modal, Row, Select, Typography, notification } from 'antd';\r\nimport { ExclamationOutlined } from \"@ant-design/icons\";\r\n\r\nimport { DrawerCliente, InputCep, InputCpfCnpj, SelectIncluir, SelectPaginacao, SelectPaginado } from '../../components';\r\nimport { MaskFormat } from '../../ValueObjects';\r\nimport { useStateValue } from '../../state';\r\nimport api from '../../services/api';\r\nimport { manutencaoActions, selectPaginadoActions } from '../../actions';\r\nimport { ModalEndereco } from '../../components/modals';\r\nimport { retornaCep } from '../../services/funcoes';\r\n\r\nexport default function TomadorNFSE({ form, setInfoEndereco, carregarPagina, showDrawerExtra }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [formTomador] = Form.useForm();\r\n const [openDrawerCliente, setOpenDrawerCliente] = useState(false);\r\n const [openModalEndereco, setOpenModalEndereco] = useState(false);\r\n const [listaCidade, setListaCidade] = useState(false);\r\n const [cepInformado, setCepInformado] = useState(false);\r\n const [codigoCliente, setCodigoCliente] = useState(null);\r\n const [filtroCdd, setFiltroCdd] = useState(null);\r\n const [clientes, setClientes] = 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\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 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 (!carregarPagina) {\r\n setTimeout(() => {\r\n let element = document.getElementById(\"cep_cep\");\r\n element?.blur();\r\n }, 100);\r\n }\r\n }, [carregarPagina]);\r\n\r\n useEffect(() => {\r\n if (!!showDrawerExtra && !!form.getFieldValue().pes_id) {\r\n if (!!form.getFieldValue().pes_id) {\r\n buscarDadosCliente(form.getFieldValue().pes_id);\r\n }\r\n }\r\n }, [showDrawerExtra])\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 async function verificaCepIncidencia(cep) {\r\n let retornoCep = await retornaCep(cep);\r\n if (retornoCep !== null) {\r\n form.setFieldsValue({ uf_incidencia: retornoCep.est_descricao, mun_incidencia: retornoCep.cid_descricao });\r\n setCepInformado(true);\r\n } else {\r\n form.setFieldsValue({ uf_incidencia: '', mun_incidencia: '', cep_incidencia: '' });\r\n setCepInformado(false);\r\n }\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 setInfoEndereco(cliente.enderecos[0]);\r\n setarTelefones(cliente.telefones);\r\n setarEmails(cliente.emails);\r\n if (cliente.pes_fisicajuridica === 1) {\r\n if (cliente.pef_produtorrural) {\r\n form.setFieldsValue({ 'pej_inscricaoestadual': cliente.enderecos[0].pie_inscricaoestadual });\r\n }\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({\r\n 'pej_inscricaoestadual': null, 'pes_nome': null, 'ntf_cpfcnpj': null, 'telefoneDestinatario': null, 'ntf_emaildestinatario': null, 'ntf_endereco': null, 'pse_id': null,\r\n 'cep_cep': null, 'cidade': null, 'bai_nome': null, 'pee_numero': null, 'pee_complemento': null\r\n });\r\n setarEnderecos([]);\r\n setarTelefones([]);\r\n setarEmails([]);\r\n }\r\n\r\n function setarCpfCnpj(cliente) {\r\n let tiposPessoa = {\r\n 1: cliente.pef_cpf,\r\n 2: cliente.pej_cnpj,\r\n 3: cliente.pes_idestrangeiro\r\n };\r\n\r\n let cpfCnpj = tiposPessoa[cliente.pes_fisicajuridica];\r\n\r\n if (cpfCnpj) {\r\n setPessoaFisica(cliente.pes_fisicajuridica);\r\n form.setFieldsValue({ ntf_cpfcnpj: cpfCnpj });\r\n } else {\r\n notification.warning({ message: 'Atenção', description: \"Destinatário/Tomador informado com cadastro de pessoa física/jurídica/estrangeira incorreto!\" });\r\n form.setFieldsValue({ pes_id: null, ntf_cpfcnpj: null });\r\n return false;\r\n }\r\n }\r\n\r\n function setarEnderecos(enderecos) {\r\n if (enderecos?.length) {\r\n setDadosEndereco(enderecos);\r\n const { cep_cep, pee_id, pse_id, bai_nome, pee_numero, pee_complemento } = enderecos[0];\r\n buscarCep(cep_cep);\r\n\r\n form.setFieldsValue({\r\n ntf_endereco: pee_id,\r\n cep_cep,\r\n pse_id,\r\n bai_nome,\r\n pee_numero,\r\n pee_complemento\r\n });\r\n dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: [{ name: \"pse_id\", campo: \"pse_id\", value: pse_id }] } });\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/tomador?',\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?.length) {\r\n const telefone = telefones.find(f => f.psc_principal) ?? telefones[0];\r\n form.setFieldsValue({ telefoneDestinatario: telefone.psc_id });\r\n }\r\n }\r\n\r\n function setarEmails(emails) {\r\n setEmail(emails);\r\n if (emails?.length) {\r\n const email = emails.find(f => f.pem_emailprincipal) ?? emails[0];\r\n form.setFieldsValue({ ntf_emaildestinatario: email.pem_id });\r\n }\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 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 buscarCep(end.cep_cep);\r\n }\r\n }\r\n\r\n function carregarCidades(UfEstado) {\r\n if (!!UfEstado) {\r\n setListaCidade(true);\r\n setFiltroCdd(`&UfEstado=${UfEstado}`);\r\n } else {\r\n setListaCidade(false);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n setOpenDrawerCliente(true)}\r\n nameValue=\"pes_id\"\r\n allowClear={true}\r\n onChangeFunction={(dados) => { 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 {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 \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 \r\n \r\n \r\n \"Endereço\" Cidade da Prestação do Serviço\r\n \r\n \r\n Informe o CEP ou selecione a UF e o Município \r\n \r\n \r\n \r\n \r\n \r\n verificaCepIncidencia(cep.currentTarget.value)} />\r\n \r\n \r\n ou\r\n \r\n \r\n \r\n carregarCidades(UfEstado)} \r\n 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 ({cid.cid_id} - {cid.cid_descricao})\r\n } />\r\n \r\n \r\n \r\n \r\n setOpenModalEndereco(false)} />\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Button, Card, Col, Form, Input, InputNumber, Modal, notification, Row, Select } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, PlusOutlined } from \"@ant-design/icons\";\r\n\r\nimport SelectProduto from \"../selects/selectProduto\";\r\nimport api from \"../../services/api\";\r\nimport InputPreco from \"../inputPreco\";\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\nimport { isObjetoDiffVazio } from \"../../services/funcoes\";\r\nimport { useStateValue } from \"../../state\";\r\n\r\nexport default function FiltroServicoNFSE({ form, dadosTabela, infoEndereco, operacaoFiscal, dadosVendedor, btnEditando, itemEditando, carregarPagina }) {\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [exibirDetalhes, setExibirDetalhes] = useState(false);\r\n const [listaSelectServ, setListaSelectServ] = useState([]);\r\n const [dadosCfop, setDadosCfop] = useState([]);\r\n const [dadosDetalhes, setDadosDetalhes] = useState({});\r\n const [dadosContribuinte, setDadosContribuinte] = useState({});\r\n const [dadosProdutosImpostos, setDadosProdutosImpostos] = useState({});\r\n\r\n useEffect(() => {\r\n carregarDados();\r\n popularDadosContribuinte();\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.editando])\r\n\r\n useEffect(() => {\r\n if (isObjetoDiffVazio(dadosContribuinte)) {\r\n if (!!manutencao.dados && (!!form.getFieldValue().vnc_id || !!form.getFieldValue().ped_id)) {\r\n incluirItemPedidoCondicional();\r\n }\r\n }\r\n }, [dadosContribuinte]);\r\n\r\n function carregarDados() {\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 popularDadosContribuinte(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 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 servNota = await buscarDadosProdImpostos(itens.pro_id)\r\n let obj = { ...servNota, ...itens};\r\n obj.nfi_cfop = obj.cfo_cfop;\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 editandoItem(dadosEditando) {\r\n let dadosTemp = {};\r\n let dados = dadosEditando;\r\n form.setFieldsValue({\r\n pro_id: dados.pro_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 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 aliquotaIssqn: dados.aliquotaIssqn\r\n });\r\n dadosTemp = {\r\n pro_descricao: dadosEditando.pro_descricao,\r\n pro_codigo: dadosEditando.pro_codigo,\r\n ump_id: dadosEditando.ump_id,\r\n informacaoAdicional: dadosEditando.nfi_informacaoadicional,\r\n };\r\n setDadosDetalhes(dadosTemp);\r\n }\r\n\r\n //#region Calculos do Item\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 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(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 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 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 do Item\r\n\r\n async function onChangeServID(pro_id) {\r\n let listaItens = [...listaSelectServ];\r\n let servico = listaItens.filter(pro => pro.key === pro_id)[0];\r\n let servicoImposto = await buscarDadosProdImpostos(servico.pro_id);\r\n await popularFormServico(servicoImposto);\r\n setarCampoQtde();\r\n }\r\n\r\n async function buscarDadosProdImpostos(servico) {\r\n let destinoOperacao = (!!infoEndereco.est_sigla && !!dadosContribuinte.est_sigla && (infoEndereco.est_sigla === dadosContribuinte.est_sigla) ? '1' : '2');\r\n let codigoServ = !!servico ? servico : form.getFieldValue().pro_id;\r\n let ufDest = !!infoEndereco.est_sigla ? infoEndereco.est_sigla : dadosContribuinte.est_sigla;\r\n let inscEstadual = !!form.getFieldValue().pej_inscricaoestadual ? `&inscEstadual=${form.getFieldValue().pej_inscricaoestadual}` : '';\r\n let objProd = (await api.get(`Produto/BuscarDadosProduto?IdProduto=${codigoServ}&ufDestino=${ufDest}`\r\n + `&operacaoCodigo=${operacaoFiscal.ope_id}&ufOrigem=${dadosContribuinte.est_sigla}&tipoContribuinte=${dadosContribuinte.loc_tipocontribuinte}`\r\n + `&empresaEnquadramento=${dadosContribuinte.emp_regimetributario}&destinoOperacao=${destinoOperacao}${''}${inscEstadual}`\r\n )).data[0];\r\n setDadosProdutosImpostos(objProd);\r\n form.setFieldsValue({\r\n pis_id: objProd.pis_id,\r\n nfi_cfop: objProd.cfo_cfop,\r\n informacaoAdicional: !!form.getFieldValue().informacaoAdicional ? form.getFieldValue().informacaoAdicional : objProd.pro_observacao,\r\n aliquotaIssqn: objProd.aliquotaIssqn\r\n });\r\n return objProd;\r\n }\r\n\r\n async function popularFormServico(servico) {\r\n let valorVenda = (!!servico.lpi_valorvenda ? servico.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(servico);\r\n return servico;\r\n }\r\n\r\n async function adicionarItem(item = {}) {\r\n let dadosForm = form.getFieldValue();\r\n let possuiIe = !!dadosForm.pej_inscricaoestadual ? true : false;\r\n let fisicaJuridica = dadosForm.ntf_cpfcnpj.length === 14 ? 2 : dadosForm.ntf_cpfcnpj.length === 11 ? 1 : 3;\r\n let aliquota = !!dadosForm.aliquotaIssqn ? dadosForm.aliquotaIssqn : 0;\r\n let impostos = await CalcularImpostoItem(\"0\", null, null, null, null, dadosForm.quantidade, dadosForm.valorUnitario, null, null, null, null, null, null, null,\r\n null, null, null, null, fisicaJuridica, 0, possuiIe, dadosForm.ntf_indicadorpresenca, false, false, true, aliquota);\r\n let listaItens = [...dadosTabela.dadosItens];\r\n\r\n if (btnEditando.editando) {\r\n item = listaItens.filter((serv) => (serv.nfi_numeroitem === dadosForm.nfi_numeroitem))[0];\r\n } else {\r\n item = { ...item, ...dadosForm, ...dadosDetalhes };\r\n }\r\n let dados = {};\r\n if (!!validarItem(dadosForm)) {\r\n let dadosEditando = listaItens.filter((serv) => (serv.pro_id === item.pro_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 Modal.confirm({\r\n title: 'Atualizar?',\r\n icon: ,\r\n content: 'Serviço 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 alterarItem(dados, listaItens, dadosEditando)\r\n },\r\n onCancel() {\r\n dados.nfi_numeroitem = listaItens.length + 1;\r\n incluirItem(dados, listaItens)\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 incluirItem(dados, listaItens)\r\n }\r\n setExibirDetalhes(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 serviço 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 serviço 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 function popularItemNota(editando, item, dadosEditando) {\r\n let itemNota = {};\r\n let formulario = form.getFieldValue();\r\n\r\n if (editando) {\r\n itemNota = {\r\n ...dadosEditando,\r\n impostos: dadosEditando.impostos,\r\n orm_id: dadosEditando.orm_id,\r\n nfi_qtde: formulario.quantidade,\r\n nfi_valorunitario: parseFloat(formulario.valorUnitario),\r\n percdesc: parseFloat(formulario.percdesc),\r\n nfi_valoroutros: parseFloat(formulario.acrescimo),\r\n nfi_valordesconto: parseFloat(formulario.desconto),\r\n percacresc: parseFloat(formulario.percacresc),\r\n nfi_informacaoadicional: formulario.informacaoAdicional,\r\n nfi_cfop: formulario.nfi_cfop,\r\n total: parseFloat(formulario.valorItemDesconto),\r\n aliquotaIssqn: parseFloat(formulario.aliquotaIssqn ?? 0)\r\n };\r\n } else {\r\n let cfop = dadosCfop.filter((cfop) => (cfop.cfo_cfop === formulario.nfi_cfop))[0];\r\n itemNota = {\r\n impostos: item.impostos,\r\n orm_id: item.orm_id,\r\n pro_id: item.pro_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(formulario.valorItemDesconto),\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 aliquotaIssqn: parseFloat(formulario.aliquotaIssqn ?? 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_unidademedida: item.ump_id,\r\n pro_codigo: item.pro_codigo,\r\n pro_descricao: item.pro_descricao,\r\n ump_id: item.ump_id,\r\n pis_id: item.pis_id ?? dadosProdutosImpostos.pis_id,\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, nfi_cfop: null, icm_id: null, informacaoAdicional: '' });\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: 'Serviço editado com sucesso!' });\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: 'Serviço incluído com sucesso!' });\r\n }\r\n\r\n function cancelar() {\r\n setExibirDetalhes(false);\r\n setDadosDetalhes({});\r\n limparCampos();\r\n if (btnEditando.editando) {\r\n btnEditando.setEditando(false);\r\n }\r\n }\r\n\r\n function setarCampoQtde() {\r\n setTimeout(() => {\r\n try {\r\n let element = document.getElementById(\"qtde\");\r\n if (element) {\r\n element.focus();\r\n element.select(); // Seleciona todo o texto dentro do campo\r\n }\r\n } catch (error) {\r\n console.log('error :>> ', error);\r\n }\r\n }, 200);\r\n }\r\n\r\n //#endregion\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n { onChangeServID(dados) }}\r\n />\r\n \r\n \r\n \r\n {exibirDetalhes &&\r\n
\r\n \r\n
\r\n Serviço: {dadosDetalhes.pro_descricao}\r\n \r\n \r\n Código Interno: {dadosDetalhes.pro_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 `${value}%`} parser={value => value.replace('%', '')} />\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 \r\n \r\n \r\n \r\n \r\n \r\n \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 { Button, Col, Modal, Row, Table, Tag } from \"antd\";\r\nimport { DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport FiltroServicoNFSE from \"../../components/filtroServicoNfse\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function ServicosNFSE({ form, dadosItens, infoEndereco, operacaoFiscal, dadosVendedor, 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 editarServicoNota(registro) {\r\n setDadosEditando(registro);\r\n setEditando(true);\r\n }\r\n\r\n function removerServicoNota(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.dadosItens];\r\n if (record.nfi_numeroitem) {\r\n let dadosRet = dadosTemp.filter((item) => item.nfi_numeroitem !== record.nfi_numeroitem);\r\n dadosItens.setDadosItens(dadosRet);\r\n } else if (record.pdi_numeroitem) {\r\n let dadosRet = dadosTemp.filter((item) => item.pdi_numeroitem !== record.pdi_numeroitem);\r\n dadosItens.setDadosItens(dadosRet);\r\n }\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 },\r\n {\r\n title: 'CFOP',\r\n align: 'center',\r\n width: 40,\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: 40,\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: 40,\r\n render: ({ percdesc }) => (\r\n
\r\n {/* {percdesc}% */}\r\n {FormatNumber(percdesc, true)}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Acres.',\r\n align: 'right',\r\n width: 40,\r\n render: ({ percacresc }) => (\r\n
\r\n {FormatNumber(percacresc, true)}%\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Bc. Issqn',\r\n align: 'right',\r\n width: 40,\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoISSQN?.ret_baseIssqn, true)}\r\n
\r\n )\r\n },\r\n {\r\n title: '% Issqn',\r\n align: 'right',\r\n width: 40,\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoISSQN?.ret_aliquotaIssqn, true)}\r\n
\r\n )\r\n },\r\n {\r\n title: 'Vlr Issqn',\r\n align: 'right',\r\n width: 40,\r\n render: ({ impostos }) => (\r\n
\r\n {FormatNumber(impostos?.retornoISSQN?.ret_valorIssqn, 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 }) => (\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) => (\r\n
\r\n \r\n
\r\n \r\n \r\n Quantidade Serviços:\r\n \r\n \r\n {quantidadeItens}\r\n \r\n \r\n \r\n \r\n Valor Total dos Serviços (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 { Card, Col, Row, Typography, InputNumber, Form, notification, Modal, Divider } from \"antd\";\r\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { FormasPagamento, InputPreco } from \"../../components\";\r\nimport { calculaValorProporcional, isObjetoDiffVazio, validarNumeros } from \"../../services/funcoes\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport { CalcularImpostoItem } from \"../../services/calculaImposto\";\r\n\r\nexport default function FaturamentoNFSE({ form, dadosItens, dadosVendedor, operacaoFiscal, resume }) {\r\n const [{ manutencao }] = useStateValue();\r\n const [valorNota, setValorNota] = useState(0);\r\n const [valorTotalIssqn, setValorTotalIssqn] = useState(0);\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\r\n useEffect(() => {\r\n resume(false);\r\n recalcularTotal();\r\n }, [valorNota])\r\n\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 setValorTotalIssqn(formulario.valorTotalIssqn);\r\n setValorNota(parseFloat(subTotal) + parseFloat(formulario.valorOutrasDespesas));\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\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 * 1001) / tot;\r\n form.setFieldsValue({ 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.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 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 async function rateios() {\r\n await rateioDesconto();\r\n await recalcularImpostos();\r\n }\r\n\r\n async function rateioDesconto() {\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 async function recalcularImpostos() {\r\n if (dadosItens.length > 0) {\r\n let total = 0;\r\n let totalIssqn = 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(\"0\", null, null, null, null, p.nfi_qtde, p.nfi_valorunitario, null, null, p.nfi_valordesconto, null, null, null,\r\n null, null, null, null, null, fisicaJuridica, 0, possuiIe, form.getFieldValue().ntf_indicadorpresenca, false, false, true, p.aliquotaIssqn || 0);\r\n\r\n if (isObjetoDiffVazio(impostos)) {\r\n p.total = (p.nfi_qtde * p.nfi_valorunitario) - p.nfi_valordesconto + p.nfi_valoroutros;\r\n p.impostos = impostos;\r\n }\r\n totalIssqn += parseFloat(impostos.retornoISSQN.ret_valorIssqn);\r\n total += parseFloat(p.total);\r\n } catch (error) {\r\n console.error(\"Error item:\", error);\r\n }\r\n }\r\n form.setFieldsValue({ valorTotalIssqn: totalIssqn });\r\n calcularFaturamento();\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 `${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 Valor Issqn (R$): {FormatNumber(valorTotalIssqn, 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 from \"react\";\r\nimport { Card, Col, Divider, Form, Input, InputNumber, Row, Typography } from \"antd\";\r\n\r\nimport { InputPreco } from \"../../components\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function ResumoNFSE({ form, itensNota, resume }) {\r\n resume(true);\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 `${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 Valor Issqn (R$): {FormatNumber(form.getFieldValue().valorTotalIssqn, true)}\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 { Col, Form, Input, Modal, Row, Select, Spin, Steps, notification } from 'antd';\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { Data, FormGW, SelectPaginacao } from '../../components';\r\nimport api from '../../services/api';\r\nimport TomadorNFSE from './tomadorNFSE';\r\nimport { HasValue, isObjetoDiffVazio, novaAbaNavegador, validaForm, validarNumeros } from '../../services/funcoes';\r\nimport ServicosNFSE from './servicosNFSE';\r\nimport FaturamentoNFSE from './faturamentoNFSE';\r\nimport ResumoNFSE from './resumoNFSE';\r\nimport { getCnpjEmpresa, setDadosIntegra } from '../../services/auth';\r\nimport apiPayer from '../../services/apiPayer';\r\nimport moment from 'moment';\r\nimport { selectPaginadoActions } from '../../actions';\r\nimport FormaDePagamento from '../../components/enuns/formaDePagamento';\r\n\r\nexport default function NFServico({ form, showDrawer, carregando, aoSalvar, pages, proximaPag, resume, showDrawerExtra }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [editando, setEditando] = useState(false);\r\n const [carregarPagina, setCarregarPagina] = useState(false);\r\n const [permiteValidar, setPermiteValidar] = useState(true);\r\n const [dadosItens, setDadosItens] = useState([]);\r\n const [listaSerie, setListaSerie] = useState([]);\r\n const [infoEndereco, setInfoEndereco] = useState([]);\r\n const [vendedores, setVendedores] = useState([]);\r\n const [listaFormaPagamento, setListaFormaPagamento] = useState([]);\r\n const [operacaoFiscal, setOperacaoFiscal] = useState({});\r\n const [dadosVendedor, setDadosVendedor] = useState({});\r\n const listaValidacoesTom = [\r\n { nome: 'ope_id', obrigatorio: true, label: 'Operação' },\r\n { nome: 'pes_id', obrigatorio: true, label: 'Destinatário/Tomador' },\r\n { nome: 'cep_cep', obrigatorio: true, label: 'Cep' },\r\n { nome: 'ntf_endereco', obrigatorio: true, label: 'Endereço' },\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 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 (!!manutencao.dados) {\r\n if (!!manutencao.dados.faturamento) {\r\n setListaFormaPagamento(manutencao.dados.faturamento);\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: \"ope_id\", campo: \"CodigoOperacao\", value: manutencao.dados.ope_id });\r\n if (lista.length > 0) dispatch({ type: selectPaginadoActions.CHANGE, data: { itens: lista } });\r\n popularOperacaoFiscal(manutencao.dados.ope_id);\r\n }\r\n if (!!manutencao.dados && !!manutencao.dados.itensNf) {\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 (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 (!!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 }\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 ((!!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 setCarregarPagina(true);\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=98&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 = listaValidacoesTom;\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 serviço!' });\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n if (!!dadosItens && dadosItens.length > 0) {\r\n let naoTemCfop = dadosItens.some(item => item.cfo_cfop === null);\r\n if (naoTemCfop) {\r\n notification.warning({ message: 'Aviso', description: 'Campo CFOP do serviço adicionado é obrigatório!' });\r\n setPermiteValidar(false);\r\n proximaPag.setProximaPag(paginaAtual);\r\n return false;\r\n }\r\n }\r\n }\r\n break;\r\n case 2:\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 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\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\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 === FormaDePagamento.fpBoletoBancario) {\r\n dados.gerarBoleto = true;\r\n }\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.cid_idPrestacaoServico = dados.mun_incidencia;\r\n valores.notafiscalitens = popularDadosItens();\r\n valores.notaFiscalFaturamento = preencherDadosFaturamento();\r\n valores.notaFiscalDestinatario = await preencherDadosDestinatario(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() {\r\n dadosItens.forEach((itens) => {\r\n itens.nfi_ncm = \"00000000\";\r\n itens.nfi_numeropedidocompra = !!itens.nfi_numeropedidocompra ? itens.nfi_numeropedidocompra.toString() : '';\r\n if (itens.pdi_id) {\r\n itens.itempedidonota = [{ pdi_id: itens.pdi_id }]\r\n }\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 === FormaDePagamento.fpCheque && !!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 === FormaDePagamento.fpValePresente || forma.fpg_tipopagamento === FormaDePagamento.fpCreditoEmLoja) {\r\n aux.antecipacoes = forma.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 cliente = (await api.get(`Cliente/BuscarByIdPessoa/${form.pes_id}`)).data;\r\n let enderecoDest = infoEndereco;\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 = 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 ?? form.pee_numero;\r\n dadosDestinatario.ntf_complementodest = enderecoDest?.complemento ?? form.pee_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 preencherDadosSerieFiscal(dados) {\r\n let dadosSerieFiscal = listaSerie.filter((item) => (item.ser_id === dados.ser_id))[0];\r\n return dadosSerieFiscal;\r\n }\r\n\r\n async function salvarNota(dados) {\r\n 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 = 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 === FormaDePagamento.fpCartaoCredito || item.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || item.fpg_tipopagamento === FormaDePagamento.fpPixDinamico) {\r\n if (item.fpg_tipointegracao != null) {\r\n if (item.fpg_tipointegracao == 1) {\r\n let tipopgto = 0;\r\n let metodopgto = 0;\r\n let submetodopgto = 0;\r\n\r\n if (item.fpg_tipopagamento === FormaDePagamento.fpCartaoCredito) {\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 === FormaDePagamento.fpCartaoDebito) {\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 === FormaDePagamento.fpPixDinamico) {\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 pagamentoMaquininha = true;\r\n break;\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 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 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 === FormaDePagamento.fpCartaoCredito) {\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 === FormaDePagamento.fpCartaoDebito) {\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 === FormaDePagamento.fpPixDinamico) {\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 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 === FormaDePagamento.fpCartaoCredito || item.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || item.fpg_tipopagamento === FormaDePagamento.fpPixDinamico) {\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 === FormaDePagamento.fpCartaoCredito || item.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || item.fpg_tipopagamento === FormaDePagamento.fpPixDinamico) {\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 === FormaDePagamento.fpCartaoCredito || item.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || item.fpg_tipopagamento === FormaDePagamento.fpPixDinamico) {\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 (res.data.ntf_status === 1 && !!res.data.ntf_chavenfe && res.data.ntf_docfiscal == true) {\r\n window.open(res.data.controleloterps.clr_linkaprovacao);\r\n\r\n let formaPagItegrado = res.data.notafiscalformapgtos.filter((item) => (HasValue(item.imp_id)))\r\n if (formaPagItegrado.length > 0) {\r\n novaAbaNavegador(`Danfe/GerarComprovantePagamentoViaLoja?IdNotaFiscal=${res.data.ntf_id}`);\r\n }\r\n }\r\n }\r\n if (dados.gerarBoleto && !!res.data.ntf_id) {\r\n novaAbaNavegador(`Boleto/ImprimirBoletos/${res.data.ntf_id}`);\r\n }\r\n //COMENTADO POIS ESSE TRATAMENTO ESTÁ SENDO FEITO NO BACK\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\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 (res.data.ntf_status === 1 && !!res.data.ntf_chavenfe && res.data.ntf_docfiscal == true) {\r\n window.open(res.data.controleloterps.clr_linkaprovacao);\r\n }\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\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 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 popularOperacaoFiscal(idOperacao)}\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 \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 {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 { Button, Col, Form, Modal, Row } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, LeftOutlined, MinusOutlined, RightOutlined, SaveOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useStateValue } from \"../../state\";\r\nimport { DrawerNav } from \"../../components\";\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport NFServico from \"../notaFiscalServico/manutencao\";\r\n\r\nexport default function DrawerServico({ showDrawer }) {\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [formServico] = 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 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 function fecharDrawer() {\r\n formServico.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.setShowNFServico(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 \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, EmitirNotaFiscalServico } 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\nimport DrawerServico from \"./drawerServico\";\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 const [showNFServico, setShowNFServico] = 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 Nota Fiscal\r\n \r\n \r\n \r\n {\r\n setShowNFEntrada(true);\r\n }} icon={}>\r\n 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 Nota Fiscal de Débito e Crédito\r\n \r\n \r\n \r\n }>\r\n \r\n Nota Fiscal de Transferência\r\n \r\n \r\n \r\n \r\n {\r\n setShowNFServico(true);\r\n }} icon={}>\r\n Nota Fiscal de Serviço\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_modelo == '55' || dados.ntf_modelo == '65') {\r\n if (dados.ntf_status == 1 && !!dados.ntf_chavenfe && !!dados.ntf_docfiscal) {\r\n novaAbaNavegador(`Danfe/GerarDanfe?chaveNFe=${dados.ntf_chavenfe}`)\r\n }\r\n } else if (dados.ntf_modelo == '57') {\r\n if (dados.ntf_status == 1 && !!dados.ntf_chavenfe && !!dados.ntf_docfiscal) {\r\n novaAbaNavegador(`Danfe/GerarDacte?chave=${dados.ntf_chavenfe}`)\r\n }\r\n } else if (dados.ntf_modelo == '98') {\r\n window.open(dados.clr_linkaprovacao);\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 if (record.ntf_modelo === \"98\") {\r\n return (\r\n \r\n {(record.ntf_status === 4 || record.ntf_status === 0) && record.ntf_docfiscal === true &&\r\n \r\n \r\n }\r\n\r\n {(record.ntf_status === 1 && (record.ser_emitentedocumento === 0 || !!!record.ntf_docfiscal)) &&\r\n \r\n } onClick={() => abrirCancelarNota(record)}>\r\n Cancelar/Estornar\r\n \r\n }\r\n \r\n )\r\n } else {\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 }\r\n {(record.ntf_status === 1 && (record.ser_emitentedocumento === 0 || !!!record.ntf_docfiscal)) &&\r\n \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 }\r\n {record.ntf_status === 1 && record.ntf_docfiscal === true && record.ntf_tiponota === 1 &&\r\n \r\n \r\n }\r\n {record.ntf_status === 1 && record.ntf_docfiscal === true && record.ser_emitentedocumento === 0 &&\r\n \r\n \r\n }\r\n {(record.ntf_status === 1 && record.ntf_finalidade != 4) &&\r\n \r\n \r\n }\r\n {record.ntf_status === 1 && record.ntf_docfiscal === true &&\r\n \r\n \r\n }\r\n {(record.ntf_status === 1 && record.ntf_tiponota == 1) &&\r\n \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 }\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 const getImprimirLabel = (modelo) => {\r\n switch (modelo) {\r\n case '55':\r\n return 'Imprimir DANFE';\r\n case '65':\r\n return 'Imprimir DANFCE';\r\n case '57':\r\n return 'Imprimir DACTE';\r\n case '98':\r\n return 'Imprimir DANFSE';\r\n default:\r\n return 'Imprimir';\r\n }\r\n };\r\n\r\n return (\r\n \r\n {record.ntf_docfiscal && record.ntf_status == 1 && (['55', '65', '57', '98'].includes(record.ntf_modelo)) && (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\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 if (notaFiscal.ntf_modelo === '98') {\r\n window.open(`${notaFiscal.clr_linkaprovacao}`);\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(nota) {\r\n const getLabel = (modelo) => {\r\n switch (modelo) {\r\n case '55':\r\n return 'NFe-';\r\n case '65':\r\n return 'NFCe-';\r\n case '57':\r\n return 'CTe-';\r\n case '98':\r\n return 'NFSe-';\r\n default:\r\n return '';\r\n }\r\n };\r\n if (nota.ntf_modelo == '98') {\r\n api.get(`NotaServico/ExportarXml?chave=${nota.ntf_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 = getLabel(nota.ntf_modelo) + nota.ntf_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 } else {\r\n api.get(`NotaFiscal/ExportarXml?chaveNfe=${nota.ntf_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 = getLabel(nota.ntf_modelo) + nota.ntf_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\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 NFS-e\r\n CT-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 {ntf_modelo != '98' &&\r\n <>\r\n \r\n Chave:\r\n \r\n {!!ntf_chavenfe === false &&\r\n \r\n NF-e não gerada\r\n \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 \r\n }\r\n {ntf_modelo == '98' &&\r\n <>\r\n \r\n Código Verificação:\r\n \r\n {!!ntf_chavenfe === false &&\r\n \r\n Código não gerado\r\n \r\n }\r\n {!!ntf_chavenfe && \r\n { visualizarDanfe({ clr_linkaprovacao: clr_linkaprovacao, 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 \r\n Nº RPS:\r\n \r\n \r\n {clr_numerorps}\r\n \r\n \r\n Nº Lote:\r\n \r\n \r\n {clr_numerolote}\r\n \r\n \r\n Protocolo:\r\n \r\n \r\n {clr_protocolo}\r\n \r\n \r\n Data Recebimento:\r\n \r\n \r\n {moment(clr_datarecebimento).format('DD/MM/YYYY HH:mm')}\r\n \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 \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\nimport FormaDePagamento from \"../../components/enuns/formaDePagamento\";\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 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 === FormaDePagamento.fpCreditoLoja && 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 !== FormaDePagamento.fpCreditoLoja && !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 \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 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 from \"react\";\r\nimport { Button, Modal, Row } from \"antd\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, FileOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ModalSelecionarNF({ exibirModal, fecharModal, drawerNFSE, drawerNF }) {\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 Qual Documento Fiscal Deseja emitir?\r\n \r\n \r\n O pedido possui Produtos e Serviços.
\r\n Selecione o ducumento fiscal que deseja emitir primeiro.\r\n
\r\n \r\n )\r\n}","import { Button, Col, Form, Modal, Row } from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useStateValue } from \"../../state\";\r\nimport { drawerActions, listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { CloseOutlined, ExclamationCircleOutlined, LeftOutlined, MinusOutlined, RightOutlined, SaveOutlined } from \"@ant-design/icons\";\r\nimport { DrawerNav } from \"../../components\";\r\nimport NFServico from \"../notaFiscalServico/manutencao\";\r\n\r\nexport default function DrawerNFSE({ showDrawerExtra, setShowDrawerExtra, dadosNFSE }) {\r\n const [formServico] = Form.useForm();\r\n const [formulario] = 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 [resume, setResume] = useState(false);\r\n const [proximaPag, setProximaPag] = useState(0);\r\n\r\n const ActionsController = () => {\r\n setProximaPag(tagPages - 1);\r\n setResume(false);\r\n }\r\n\r\n useEffect(() => {\r\n if (!!dadosNFSE) {\r\n formulario.setFieldsValue(dadosNFSE);\r\n }\r\n }, [dadosNFSE])\r\n\r\n function fecharDrawer() {\r\n formServico.resetFields();\r\n setTagPages(0);\r\n setProximaPag(null);\r\n setResume(false);\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}","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\nimport ModalSelecionarNF from \"./modalSelecionarNF\";\r\nimport DrawerNFSE from \"./drawerNFSE\";\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 [showDrawerNF, setShowDrawerNF] = useState(false);\r\n const [showDrawerNFSE, setShowDrawerNFSE] = useState(false);\r\n const [openModalEscolha, setOpenModalEscolha] = useState(false);\r\n const [drawerTransferencia, setDrawerTransferencia] = useState(false);\r\n const [dadosPedido, setDadosPedido] = useState({});\r\n const [dadosNFSE, setDadosNFSE] = useState({});\r\n const [dadosNF, setDadosNF] = 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 //#region faturar pedidos\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\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\r\n tratarDevolvidoFaturado(record);\r\n setDadosPedido(record);\r\n\r\n let temServico = record.itensNf.some(item => item.pro_servico === true);\r\n let soServico = record.itensNf.every(item => item.pro_servico === true);\r\n\r\n if (temServico && !soServico) {\r\n setOpenModalEscolha(true);\r\n } else if (soServico) {\r\n tratarFaturamentoNFSe(record);\r\n setDadosNFSE(record);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n setShowDrawerNFSE(true);\r\n } else {\r\n tratarFaturamentoNFe(record);\r\n setDadosNF(record);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: record } });\r\n setShowDrawerNF(true);\r\n }\r\n };\r\n\r\n function tratarDevolvidoFaturado(dados) {\r\n if (!dados || !dados.itensNf) return dados;\r\n\r\n dados.itensNf = dados.itensNf.map(item => {\r\n let result = item.pdi_quantidade - item.pdi_qtdedevolvido - item.pdi_qtdeentregue;\r\n if (result === 0 ) {\r\n return null;\r\n } else if (result > 0) {\r\n item.pdi_quantidade = result;\r\n return item;\r\n }\r\n }).filter(item => item !== null);\r\n\r\n return dados;\r\n }\r\n\r\n function tratarFaturamentoNFSe(record) {\r\n if (record.formaPgto.length > 1) { //CONDIÇÃO PARA QUANDO SE EXISTE MAIS DE UMA FORMA DE PAGAMENTO\r\n let valorTotal = record.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0); //VALOR TOTAL INICIAL\r\n let porcentagens = record.formaPgto.map(fp => (fp.pfp_valor || 0) / valorTotal); //CALCULA A PORCENTAGEM DE CADA FORMA\r\n\r\n let somaValorPagos = 0; //CALCULA OS NOVOS VALORES DAS FORMAS DE PAGAMENTO\r\n for (let i = 0; i < record.formaPgto.length - 1; i++) {\r\n let novoValor = parseFloat(((porcentagens[i] || 0) * valorTotal).toFixed(2));\r\n record.formaPgto[i].pfp_valor = novoValor;\r\n somaValorPagos += novoValor;\r\n }\r\n\r\n let novoValorUltimaForma = parseFloat((valorTotal - somaValorPagos).toFixed(2)); //DEFINE O VALOR DA ULTIMA FORMA COM O RESTANTE\r\n record.formaPgto[record.formaPgto.length - 1].pfp_valor = novoValorUltimaForma;\r\n record.faturamento[record.faturamento.length - 1].pfp_valor = novoValorUltimaForma;\r\n } else {\r\n let valorTotal = record.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0);\r\n record.formaPgto[0].pfp_valor = valorTotal;\r\n record.faturamento[0].pfp_valor = valorTotal;\r\n }\r\n\r\n return record;\r\n }\r\n\r\n function tratarFaturamentoNFe(record) {\r\n if (record.formaPgto.length > 1) {\r\n let valorTotal = record.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0); \r\n let porcentagens = record.formaPgto.map(fp => (fp.pfp_valor || 0) / valorTotal);\r\n\r\n let somaValorPagos = 0;\r\n for (let i = 0; i < record.formaPgto.length - 1; i++) {\r\n let novoValor = parseFloat(((porcentagens[i] || 0) * valorTotal).toFixed(2));\r\n record.formaPgto[i].pfp_valor = novoValor;\r\n record.faturamento[i].pfp_valor = novoValor;\r\n somaValorPagos += novoValor;\r\n }\r\n\r\n let novoValorUltimaForma = parseFloat((valorTotal - somaValorPagos).toFixed(2));\r\n record.formaPgto[record.formaPgto.length - 1].pfp_valor = novoValorUltimaForma;\r\n record.faturamento[record.faturamento.length - 1].pfp_valor = novoValorUltimaForma;\r\n } else {\r\n let valorTotal = record.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0);\r\n record.formaPgto[0].pfp_valor = valorTotal;\r\n record.faturamento[0].pfp_valor = valorTotal;\r\n }\r\n\r\n return record;\r\n }\r\n\r\n function nfseEscolhida() {\r\n //FUNÇÃO EXECUTADA QUANDO NF DE SERVIÇO É ESCOLHIDA\r\n let dadosTemp = {}\r\n if (dadosPedido.formaPgto.length > 1) { //CONDIÇÃO PARA QUANDO SE EXISTE MAIS DE UMA FORMA DE PAGAMENTO\r\n let valorTotal = dadosPedido.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0); //VALOR TOTAL INICIAL\r\n let porcentagens = dadosPedido.formaPgto.map(fp => (fp.pfp_valor || 0) / valorTotal); //CALCULA A PORCENTAGEM DE CADA FORMA\r\n\r\n dadosTemp = { \r\n ...dadosPedido,\r\n itensNf: dadosPedido.itensNf.filter(item => item.pro_servico === true) //FILTRA APENAS OS SERVIÇOS\r\n };\r\n\r\n let novoValorTotal = dadosTemp.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0);\r\n\r\n let somaValorPagos = 0; //CALCULA OS NOVOS VALORES DAS FORMAS DE PAGAMENTO\r\n for (let i = 0; i < dadosTemp.formaPgto.length - 1; i++) {\r\n let novoValor = parseFloat(((porcentagens[i] || 0) * novoValorTotal).toFixed(2));\r\n dadosTemp.formaPgto[i].pfp_valor = novoValor;\r\n somaValorPagos += novoValor;\r\n }\r\n\r\n let novoValorUltimaForma = parseFloat((novoValorTotal - somaValorPagos).toFixed(2)); //DEFINE O VALOR DA ULTIMA FORMA COM O RESTANTE\r\n dadosTemp.formaPgto[dadosTemp.formaPgto.length - 1].pfp_valor = novoValorUltimaForma;\r\n dadosTemp.faturamento[dadosTemp.faturamento.length - 1].pfp_valor = novoValorUltimaForma;\r\n } else {\r\n dadosTemp = { \r\n ...dadosPedido,\r\n itensNf: dadosPedido.itensNf.filter(item => item.pro_servico === true)\r\n };\r\n let novoValorTotal = dadosTemp.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0);\r\n dadosTemp.formaPgto[0].pfp_valor = novoValorTotal;\r\n dadosTemp.faturamento[0].pfp_valor = novoValorTotal;\r\n }\r\n\r\n setDadosNFSE(dadosTemp);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosTemp } });\r\n setShowDrawerNFSE(true);\r\n setOpenModalEscolha(false);\r\n }\r\n\r\n function nfEscolhida() {\r\n //FUNÇÃO EXECUTADA QUANDO NF É ESCOLHIDA\r\n let dadosTemp = {}\r\n if (dadosPedido.formaPgto.length > 1) {\r\n let valorTotal = dadosPedido.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0); \r\n let porcentagens = dadosPedido.formaPgto.map(fp => (fp.pfp_valor || 0) / valorTotal);\r\n\r\n dadosTemp = { \r\n ...dadosPedido,\r\n itensNf: dadosPedido.itensNf.filter(item => item.pro_produto === true)\r\n };\r\n\r\n let novoValorTotal = dadosTemp.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0);\r\n\r\n let somaValorPagos = 0;\r\n for (let i = 0; i < dadosTemp.formaPgto.length - 1; i++) {\r\n let novoValor = parseFloat(((porcentagens[i] || 0) * novoValorTotal).toFixed(2));\r\n dadosTemp.formaPgto[i].pfp_valor = novoValor;\r\n dadosTemp.faturamento[i].pfp_valor = novoValor;\r\n somaValorPagos += novoValor;\r\n }\r\n\r\n let novoValorUltimaForma = parseFloat((novoValorTotal - somaValorPagos).toFixed(2));\r\n dadosTemp.formaPgto[dadosTemp.formaPgto.length - 1].pfp_valor = novoValorUltimaForma;\r\n dadosTemp.faturamento[dadosTemp.faturamento.length - 1].pfp_valor = novoValorUltimaForma;\r\n } else {\r\n dadosTemp = { \r\n ...dadosPedido,\r\n itensNf: dadosPedido.itensNf.filter(item => item.pro_produto === true)\r\n };\r\n let novoValorTotal = dadosTemp.itensNf.reduce((total, item) => total + (item.pdi_valortotal || 0), 0);\r\n dadosTemp.formaPgto[0].pfp_valor = novoValorTotal;\r\n dadosTemp.faturamento[0].pfp_valor = novoValorTotal;\r\n }\r\n\r\n setDadosNF(dadosTemp);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: dadosTemp } });\r\n setShowDrawerNF(true);\r\n setOpenModalEscolha(false);\r\n }\r\n //#endregion\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: 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 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\nimport FormaDePagamento from \"../../components/enuns/formaDePagamento\";\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 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 FormaDePagamento.fpCheque:\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 FormaDePagamento.fpCartaoDebito, FormaDePagamento.fpCartaoCredito:\r\n let recebimentoCartao = {};\r\n break;\r\n case FormaDePagamento.fpCreditoLoja:\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 FormaDePagamento.fpDinheiro:\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 === FormaDePagamento.fpCartaoCredito || formaPgto.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito) {\r\n abrirModalCartao(dadosVale);\r\n } else if (formaPgto.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja && (!!!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 === FormaDePagamento.fpDinheiro || fpg.fpg_tipopagamento === FormaDePagamento.fpCheque || fpg.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja) {\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 === FormaDePagamento.fpCreditoLoja) {\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 !== FormaDePagamento.fpCheque) {\r\n if (faturamento.fpg_tipopagamento === FormaDePagamento.fpDinheiro || faturamento.fpg_tipopagamento === FormaDePagamento.fpValePresente) {\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 === FormaDePagamento.fpCheque || formaPgto.fpg_tipopagamento === FormaDePagamento.fpDinheiro\r\n || formaPgto.fpg_tipopagamento === FormaDePagamento.fpDepositoBancario || formaPgto.fpg_tipopagamento === FormaDePagamento.fpPixDinamico\r\n || formaPgto.fpg_tipopagamento === FormaDePagamento.fpTransferenciaBancaria)) {\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 === FormaDePagamento.fpCreditoLoja && !!!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 === FormaDePagamento.fpCheque) {\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 === FormaDePagamento.fpCartaoDebito) {\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 === FormaDePagamento.fpCartaoCredito) {\r\n popularParcelas(dados, () => {\r\n setOpenModalCartao(true);\r\n });\r\n } else if (dados.formaPagamento.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito) {\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 !== FormaDePagamento.fpCreditoLoja) {\r\n let creditoDebito = dados.fpg_tipopagamento === FormaDePagamento.fpCartaoCredito;\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) === FormaDePagamento.fpCreditoLoja) {\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\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 } 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 }\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\nimport FormaDePagamento from \"../../components/enuns/formaDePagamento\";\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 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 FormaDePagamento.fpDinheiro,\r\n FormaDePagamento.fpCheque,\r\n FormaDePagamento.fpCartaoCredito,\r\n FormaDePagamento.fpCartaoDebito,\r\n FormaDePagamento.fpDepositoBancario,\r\n FormaDePagamento.fpPixDinamico,\r\n FormaDePagamento.fpPixEstatico,\r\n FormaDePagamento.fpTransferenciaBancaria,\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 \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 } 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 }\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 FormaDePagamento.fpDinheiro:\r\n case FormaDePagamento.fpPixDinamico:\r\n case FormaDePagamento.fpPixEstatico:\r\n case FormaDePagamento.fpTransferenciaBancaria:\r\n case FormaDePagamento.fpDepositoBancario:\r\n efetuarRecebimento(formaPagamentoSelecionada, null);\r\n break;\r\n case FormaDePagamento.fpCheque:\r\n setValoresPagamento(values);\r\n setOpenModalCheque(true);\r\n break;\r\n case FormaDePagamento.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 FormaDePagamento.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 FormaDePagamento.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 FormaDePagamento.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 FormaDePagamento.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 === FormaDePagamento.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 === FormaDePagamento.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 === FormaDePagamento.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 === FormaDePagamento.fpCartaoCredito || values.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || values.fpg_tipopagamento === FormaDePagamento.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 === FormaDePagamento.fpCartaoCredito || values.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || values.fpg_tipopagamento === FormaDePagamento.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\nimport FormaDePagamento from \"../../components/enuns/formaDePagamento\";\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 === FormaDePagamento.fpPixDinamico || forma.fpg_tipopagamento === FormaDePagamento.fpDinheiro || forma.fpg_tipopagamento === FormaDePagamento.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.valorMulta = parseFloat(values.valorMulta);\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 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 !== FormaDePagamento.fpDinheiro && formaPagamento.fpg_tipopagamento !== FormaDePagamento.fpPixDinamico && formaPagamento.fpg_tipopagamento !== FormaDePagamento.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.valorTotalMulta = parseFloat(totalizadores.listaTotalizadores.valorMulta.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.valorMulta = item.valorMulta;\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.valorMulta = 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.valorMulta));\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.valorMulta) + 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 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: 'Multa (R$)',\r\n align: 'right',\r\n width: 75,\r\n render: ({ valorMulta }) => (\r\n
\r\n \r\n {FormatNumber(!!valorMulta ? valorMulta : 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 Multas (R$):\r\n \r\n \r\n \r\n {FormatNumber(listaParcelasPagar.listaParcelasPagar[0].valorMulta, true)}\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 {(!!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.valorMulta = 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.valorMulta = 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.valorMulta += parseFloat(item.valorMulta > 0 ? item.valorMulta : 0);\r\n lista.valorTotal += valorTotal;\r\n lista.valorAPagar += parseFloat((valorTotal + parseFloat(item.valorMulta) + 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({ valorMulta: parseFloat(lista.valorMulta.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.valorMulta)).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, { 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 FluxoCaixaDiarioSintetico({ valoresProvisionados, tabelaFluxoCaixa, saldos, 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 {!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(saldoInicial, true, false)}\r\n {FormatNumber(fluxoLocal.totalentradarealizadolocal, true, false)}\r\n {FormatNumber(fluxoLocal.totalsaidarealizadolocal, true, false)}\r\n {FormatNumber(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.totalentradarealizado, true, false)}\r\n {FormatNumber(saldos.totalsaidarealizado, 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.totalprovisaoreceberlocal, true, false)}\r\n {FormatNumber(fluxoLocal.totalentradarealizadolocal, true, false)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(fluxoLocal.totalprovisaopagarlocal, true, false)}\r\n {FormatNumber(fluxoLocal.totalsaidarealizadolocal, true, false)}\r\n \r\n \r\n {FormatNumber(fluxoLocal.totalentradarealizadolocal - fluxoLocal.totalsaidarealizadolocal, true, false)}\r\n \r\n )\r\n })}\r\n \r\n TOTAL DO PERÍODO\r\n {FormatNumber(saldoInicial < 0 ? saldoInicial * -1 : saldoInicial, true, false)}\r\n \r\n \r\n {FormatNumber(saldos.totalprovisaoreceber, true, false)}\r\n {FormatNumber(saldos.totalentradarealizado, true, false)}\r\n \r\n \r\n \r\n \r\n {FormatNumber(saldos.totalprovisaopagar, true, false)}\r\n {FormatNumber(saldos.totalsaidarealizado, true, false)}\r\n \r\n \r\n {FormatNumber(saldoFinal < 0 ? saldoFinal * -1 : 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 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/ListarFluxoDiarioLocalSintetico?DataInicial=${dataInicial}&DataFinal=${dataFinal}`).then(\r\n res => {\r\n if (!!res.data) {\r\n let dados = res.data[0];\r\n let valores = {\r\n totalprovisaopagar: dados.totalprovisaopagar || 0,\r\n totalprovisaoreceber: dados.totalprovisaoreceber || 0,\r\n totalentradarealizado: dados.totalentradarealizado || 0,\r\n totalsaidarealizado: 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 === 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 {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_dataInicio) {\r\n formulario.setFieldsValue({ bol_dataInicio: moment(manutencao.dados.bol_dataInicio), bol_dataFim: moment(manutencao.dados.bol_dataFim) });\r\n } else if (!!!formulario.getFieldsValue().bol_datainicio) {\r\n formulario.setFieldsValue({ bol_dataInicio: moment(new Date()), bol_dataFim: 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 DataInicial = !!formulario.getFieldValue().bol_dataInicio ? formulario.getFieldValue().bol_dataInicio.format('YYYY-MM-DD') : moment(new Date()).format('YYYY-MM-DD'); \r\n let DataFinal = !!formulario.getFieldValue().bol_dataFim ? formulario.getFieldValue().bol_dataFim.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=${DataInicial}&DataFinal=${DataFinal}`\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 \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 from 'react';\r\nimport { Modal } from \"antd\";\r\n\r\nimport { useStateValue } from '../../state';\r\nimport { manutencaoActions } from '../../actions';\r\nimport { DetalheRemessa } from \"../../components\";\r\n\r\nexport default function ModalDetalheRemessa({ exibirModal, fecharModal, dadosModal }) {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\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, Form, Collapse, Button, Tag, Menu, Dropdown } from \"antd\";\r\nimport { DownloadOutlined, ArrowUpOutlined, ArrowDownOutlined, SearchOutlined, EyeOutlined, DeleteOutlined, MoreOutlined } from \"@ant-design/icons\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { Modal } from 'antd';\r\nimport DrawerRemessa from './drawer';\r\nimport { useStateValue } from '../../state';\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\nimport ModalDetalheRemessa from \"./modalDetalheRemessa\";\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 const [openModalDetalhes, setOpenModalDetalhes] = useState(false);\r\n const [dadosDetalhesRemessa, setDadosDetalhesRemessa] = useState({});\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}&IdCliente=${cliente}&IdNota=${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 function menuTableOutros(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 async function visualizarRemessa(dados) {\r\n let retorno = [];\r\n if (!!dados.rem_id) {\r\n retorno = await api.get(`RemessaBoleto/ListarDetalhes?Id=${dados.rem_id}`);\r\n if (retorno.status === 200) {\r\n retorno = retorno.data.items;\r\n setDadosDetalhesRemessa(retorno);\r\n setOpenModalDetalhes(true);\r\n }\r\n }\r\n };\r\n\r\n async function ExcluirRemessa(dados) {\r\n if (!!dados.rem_id) {\r\n Modal.confirm({\r\n title: \"Confirmação\",\r\n content: \"Deseja realmente excluir a remessa?\",\r\n okText: \"Sim\",\r\n cancelText: \"Não\",\r\n onOk: async () => {\r\n try {\r\n await api.delete(`RemessaBoleto/Excluir/${dados.rem_id}`);\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n dispatch({ type: listagemActions.CHANGE, data: { ordem: '+rem_nome' } });\r\n listarRemessas();\r\n } catch (erro) {\r\n console.error(erro); // Opcional: log de erro\r\n }\r\n },\r\n onCancel: () => {\r\n console.log(\"Exclusão cancelada\"); // Opcional: log de cancelamento\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 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 width: '40%',\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: 'Nome Arquivo',\r\n width: '20%',\r\n render: ({ rem_nomearquivoremessa }) => (\r\n
\r\n {rem_nomearquivoremessa}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data',\r\n width: '8%',\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: '8%',\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: '20%',\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: '8%',\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 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 + \"&SomenteProduto=true\" }`;\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 values.loc_cnpj = \"\";\r\n } else if (cpfCnpj.length === 14) {\r\n values.loc_cnpj = cpfCnpj;\r\n values.loc_cpf = \"\";\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 inválido!\", 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 if (erro.response?.data){\r\n notification.warning({ description: (<> Erro ao consultar Status.
{erro.response.data} ), message: \"Aviso\" });\r\n } else {\r\n notification.warning({ description: \"Erro ao consultar Status. Verifique o Certificado.\", message: \"Aviso\" });\r\n }\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 if (erro.response?.data){\r\n notification.warning({ description: (<> Erro ao validar Certificado.
{erro.response.data} ), message: \"Aviso\" });\r\n } else {\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 };\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 Final\" />\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: 'Versão',\r\n width: 145,\r\n render: ({pdv_versaoatualpdv }) => (\r\n
\r\n {pdv_versaoatualpdv}\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 (optionA?.label ?? '').toLowerCase().localeCompare((optionB?.label ?? '').toLowerCase())\r\n }\r\n optionLabelProp=\"label\" // Define que o label será usado para filtragem e exibição no dropdown\r\n >\r\n {dadosLocais.map((l) => (\r\n \r\n {l.loc_descricao} {/* Exibe o loc_id na interface */}\r\n {(!!l.loc_cnpj ?
{maskFormat(l.loc_cnpj.numero, '', 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 {listaFinalidadeArquivo.map((c) => (\r\n \r\n {c.value} \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaPerfilContribuinte.map((c) => (\r\n \r\n {c.value} \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaApuracaoICMS.map((c) => (\r\n \r\n {c.value} \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaCodigoGuiaRecolhimento.map((c) => (\r\n \r\n {c.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 {listaCodigoReceitaDifal.map((c) => (\r\n {c.value} \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 } loading={carregando} size=\"large\" htmlType=\"submit\" onClick={gerarEfdIcmsIpi}>\r\n Gerar\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\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 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 }]} />\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 \r\n \r\n \r\n * No momento estamos atendento apenas empresas do Simples Nacional.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n pesquisaInformacoesCep('', true)} />\r\n \r\n \r\n \r\n \r\n Não sei o CEP\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { pesquisaBairro() }} */ />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \"Cobrança/Faturamento\" Cobrança/Faturamento\r\n \r\n Informações referente a cobrança e faturamento de sua assinatura. \r\n \r\n \r\n \r\n \r\n {testeGratuito ?\r\n \r\n Não existe cobrança para o periodo de testes de 15 dias.\r\n

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

\r\n :\r\n \r\n Cobrança via Boleto Bancário com vencimento dia 10 de cada mês.\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {testeGratuito ? :\r\n }\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n fecharModalContrato()} urlContrato={urlContrato} testeGratuito={testeGratuito} cadastrarEmpresa={cadastrarEmpresa} assinarContrato={assinarContrato} codigoSeguranca={codigoSegurancaContrato} />\r\n
\r\n \r\n \r\n
\r\n comercial.gestor@abase.com.br \r\n \r\n \r\n (55) 3535-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 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 } from \"react\";\r\nimport { Row, Col, Form, Radio, Button, Collapse, Tag, Dropdown, Menu, Popover, Modal, notification, Input, Divider, Table } from \"antd\";\r\nimport moment from 'moment';\r\n\r\nimport api from '../../services/api';\r\nimport { useStateValue } from '../../state';\r\nimport { FormatNumber, FormatDate } from \"../../ValueObjects\";\r\nimport { manutencaoActions, listagemActions } from \"../../actions\";\r\nimport { formatarCpfCnpj } from \"../../services/funcoes\";\r\nimport { BreadcrumbPage, ComboData, Data } from \"../../components\";\r\nimport { linkApi } from \"../../services/auth\";\r\nimport { DownOutlined, SaveOutlined, ExclamationCircleOutlined, ArrowUpOutlined, ArrowDownOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ParcelaCartao() {\r\n\r\n const [{ ui, manutencao }, dispatch] = useStateValue();\r\n const [form] = Form.useForm();\r\n const [listaMovimentacao, setListaMovimentacao] = useState([]);\r\n const [expandedRowKey, setExpandedRowKey] = useState(null); // Estado para controlar a linha expandida\r\n const [totalConciliado, setTotalConciliado] = useState(null);\r\n const [totalNaoConciliado, setTotalNaoConciliado] = useState(null);\r\n const [totalizador, setTotalizador] = useState(false);\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 form.setFieldsValue({ dataInicial: moment(new Date()), dataFinal: moment(new Date()) });\r\n listarMovimentacao();\r\n }, []);\r\n\r\n function listarMovimentacao() {\r\n let filtro = \"\";\r\n filtro += !!form.getFieldValue().dataInicial ? `&dataInicial=${moment(form.getFieldValue().dataInicial).format('YYYY-MM-DD')}` : `&dataInicial=${moment(new Date()).format('YYYY-MM-DD')}`;\r\n filtro += !!form.getFieldValue().dataFinal ? `&dataFinal=${moment(form.getFieldValue().dataFinal).format('YYYY-MM-DD')}` : `&dataFinal=${moment(new Date).format('YYYY-MM-DD')}`;\r\n filtro += !!form.getFieldValue().tipo ? `&tipoMovimentacao=${form.getFieldValue().tipo}` : ''; \r\n filtro += !!form.getFieldValue().TipoDoc ? `&tipoDoc=${form.getFieldValue().TipoDoc}` : '';\r\n filtro += !!form.getFieldValue().conciliados ? `&conciliado=${form.getFieldValue().conciliados}` : '';\r\n filtro += !!form.getFieldValue().filtros ? `&filtro=${form.getFieldValue().filtros}` : '';\r\n api.get(`ConciliacaoCartao/ListarParcelasCartao?${filtro}`).then(\r\n (res) => {\r\n if (res.status === 200) {\r\n let dadosMovimentacao = res.data;\r\n if (dadosMovimentacao.length > 0) {\r\n setTotalizador(true);\r\n }\r\n dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: filtro } });\r\n let conciliadoTotal = 0;\r\n let nãoConciliadoTotal = 0;\r\n let conciliado = dadosMovimentacao.filter(item => item.rcc_conciliado === true);\r\n let naoconciliado = dadosMovimentacao.filter(item => item.rcc_conciliado === false);\r\n conciliadoTotal = conciliado.reduce((soma, item) => soma + item.rcc_valor, 0);\r\n nãoConciliadoTotal = naoconciliado.reduce((soma, item) => soma + item.rcc_valor, 0);\r\n setTotalConciliado(conciliadoTotal);\r\n setTotalNaoConciliado(nãoConciliadoTotal);\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\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 listarMovimentacao(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 listarMovimentacao();\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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(record.rcc_previsaorecebimento).format('DD/MM/YYYY')}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Conciliado',\r\n width: 50,\r\n render: (record) => (\r\n
\r\n {/* */}\r\n
\r\n \r\n \r\n {((record.rcc_conciliado === false) ? 'Não' : (record.rcc_conciliado === true ? 'Sim' : ''))}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n ),\r\n },\r\n {\r\n title: 'Pagamento',\r\n width: 70,\r\n render: (record) => (\r\n
\r\n {record.tipo}\r\n
\r\n ),\r\n\r\n },\r\n {\r\n title: 'Tipo Doc.',\r\n width: 70,\r\n render: (record) => (\r\n
\r\n {record.tipoDoc}\r\n
\r\n ),\r\n\r\n },\r\n {\r\n title: 'Bandeira',\r\n width: 50,\r\n render: (record) => (\r\n
\r\n \r\n
\r\n
\r\n \"Visa\"\r\n
\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Doc. Fiscal',\r\n width: 50,\r\n render: (record) => (\r\n
\r\n {record.ntf_numero}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Parcela',\r\n width: 50,\r\n render: (record) => (\r\n
\r\n {record.rcc_parcelarecebimento + \" / \" + record.cpr_numeroparcelas}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'NSU',\r\n width: 200,\r\n render: (record) => (\r\n
\r\n {record.rcc_nsu || '-'}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Conciliado',\r\n width: 50,\r\n render: (record) => (\r\n
\r\n {record.hcc_datahoraconciliacao}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Taxa (R$)',\r\n align: 'right',\r\n width: 100,\r\n render: (record) => (\r\n
\r\n {FormatNumber(record.valorTaxa, true)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Total (R$)',\r\n align: 'right',\r\n width: 100,\r\n render: (record) => (\r\n
\r\n {FormatNumber(record.rcc_valor, true)}\r\n
\r\n ),\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 Chave Nfe: {record.ntf_chavenfe}\r\n \r\n \r\n Série: {record.ser_serie}\r\n \r\n \r\n Cliente: {record.pessoa}\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 {totalizador && (\r\n
\r\n {/* Totalizadores */}\r\n \r\n
\r\n Total Conciliado: R${FormatNumber(totalConciliado, true)}\r\n \r\n \r\n Total Não Conciliado: R${FormatNumber(totalNaoConciliado, 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, Modal, Form, Drawer } from \"antd\";\r\nimport { CloseOutlined, SaveOutlined, ExclamationCircleOutlined, MinusOutlined } from \"@ant-design/icons\";\r\n\r\nimport ManutencaoCidade from './manutencao';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, manutencaoActions } from '../../actions';\r\n\r\nexport default function DrawerCidade({ cadCidade, openDrawer, setOpenDrawer, retornoSalvar }) {\r\n\r\n const [formCidade] = 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 formCidade.setFieldsValue(manutencao.dados)\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\r\n function fecharDrawer() {\r\n formCidade.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 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 )\r\n}\r\n","import DrawerCidade from './drawer';\r\nimport api from '../../services/api';\r\nimport { useEffect } from 'react';\r\nimport { useStateValue } from '../../state';\r\nimport { drawerActions, listagemActions, manutencaoActions } from '../../actions';\r\nimport { Col, Modal, notification, Popover, Row, Tag } from 'antd';\r\nimport { DeleteOutlined, EditOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { BreadcrumbIncluirDados, Duplicar, Editar, Excluir, PesquisaOrdenacao, TabelaDados } from '../../components';\r\nimport { useState } from 'react';\r\n\r\n\r\nexport default function Cidade(){\r\n\r\n const [{ ui, manutencao, SelectPaginado }, dispatch] = useStateValue();\r\n \r\n useEffect(() => dispatch({ type: listagemActions.CHANGE, data: { outrosFiltros: '', filtro: '', ordem: '+cnf_id' } }), []);\r\n\r\n function excluirRegistro(dados){\r\n api.delete(`CidadeConfigNfse/Excluir?id=${dados.cnf_id}`).then(\r\n res => {\r\n notification.success({ message: `Sucesso!`, description: `Configurações excluidas com sucesso!` });\r\n dispatch({ type: manutencaoActions.CHANGE, data: { dados: null } });\r\n }).catch(\r\n (erro) => {\r\n notification.error({ message: \"erro\", description: `${erro}`})\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?`,\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 {cidade?.cid_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 \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, { 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 \"./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 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) {\r\n return null;\r\n }\r\n\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 if (!!error.response && !!error.response.data) {\r\n notification.error({ message: 'Aviso', description: error.response.data });\r\n }\r\n else {\r\n notification.warning({ message: 'Atenção!', description: 'Erro ao buscar o CEP' });\r\n }\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 if (record.nfi_numeroitem) {\r\n let dadosRet = dadosTemp.filter((item) => item.nfi_numeroitem !== record.nfi_numeroitem);\r\n dadosItens.setDadosItens(dadosRet);\r\n } else if (record.pdi_numeroitem) {\r\n let dadosRet = dadosTemp.filter((item) => item.pdi_numeroitem !== record.pdi_numeroitem);\r\n dadosItens.setDadosItens(dadosRet);\r\n }\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\nimport { InputPreco } from \"../../components\";\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 \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\";","export default __webpack_public_path__ + \"static/media/i-endereco.c9dff16a.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};","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/logoGestor.c5a22032.png\";","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","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 VALIDADECERTIFICADO_KEY = \"@GestorWeb-ValidadeCertificado\";\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 getValidadeCertificado = () =>{ return JSON.parse(localStorage.getItem(VALIDADECERTIFICADO_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 setValidadeCertificado = dados => {\r\n localStorage.setItem(VALIDADECERTIFICADO_KEY, JSON.stringify(dados));\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 localStorage.removeItem(VALIDADECERTIFICADO_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}\r\n\r\n","const FormaDePagamento = {\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 fpDuplicataMercantil: 14,\r\n fpBoletoBancario: 15,\r\n fpDepositoBancario: 16,\r\n fpPixDinamico: 17,\r\n fpTransferenciaBancaria: 18,\r\n fpProgramaFidelidade: 19,\r\n fpPixEstatico: 20,\r\n fpCreditoEmLoja: 21, \r\n fpFalhaDeHardware: 22,\r\n fpSemPagamento: 90,\r\n fpOutro: 99,\r\n}\r\n\r\nexport default FormaDePagamento;","export default __webpack_public_path__ + \"static/media/i-produto.4cf7c7e7.png\";","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\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 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.cStat;\r\n let motivo = res.data.retorno.xMotivo;\r\n if (res.data.retorno.retEvento != null) {\r\n _cStat = res.data.retorno.retEvento[0].infEvento.cStat;\r\n motivo = _cStat + '-' + res.data.retorno.retEvento[0].infEvento.xMotivo;\r\n }\r\n if (_cStat == 135 || _cStat == 155 || _cStat == 101 || _cStat == 573 || _cStat == 218) {\r\n notification.success({ message: `Doc. Fiscal Nº: ${dadosNota.ntf_numero} cancelado 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: `Doc. Fiscal Nº: ${dadosNota.ntf_numero} cancelado com sucesso !` });\r\n else\r\n notification.warning({ message: `Não foi possível efetuar o cancelamento do Doc. Fiscal 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 do Doc. Fiscal 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 const modeloDescricao = {55: \"NF-e\", 57: \"CT-e\", 65: \"NFC-e\", 98: \"NFS-e\", };\r\n\r\n const getDescricaoModelo = (codigo) => {\r\n return modeloDescricao[codigo] || \"Modelo desconhecido\";\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 fecharModalReenviarSefaz();\r\n }\r\n });\r\n };\r\n\r\n const realizarReenvioSefaz = () => {\r\n setCarregando(true);\r\n // Nota de Serviço\r\n if (dadosNota.ntf_modelo === \"98\") {\r\n let _link = `NotaFiscal/ReenviarRps/${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) {\r\n notification.success({ message: 'Sucesso', description: `NF-e Autorizada com sucesso!` });\r\n novaAbaNavegador(`${retornoNF.data.controleloterps.clr_linkaprovacao}`);\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 } else if (dadosNota.ntf_modelo === \"57\") {\r\n let _link = `ConhecimentoTransporte/ReenviarCteSefaz/${dadosNota.ntf_id}`;\r\n api.post(_link).then(\r\n (retornoNF) => {\r\n if (retornoNF.status === 200) {\r\n if (retornoNF.data.ntf_status === 1) {\r\n notification.success({ message: 'Sucesso', description: `CT-e Autorizado com sucesso!` });\r\n novaAbaNavegador(`${retornoNF.data.controleloterps.clr_linkaprovacao}`);\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 o Conhecimento de Transporte Eletrônico!', message: `Aviso` });\r\n }\r\n } else {\r\n notification.error({ description: 'Não foi possível Autorizar o Conhecimento de Transporte 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 o Conhecimento de Transporte 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 fecharModalReenviarSefaz();\r\n });\r\n console.log(dadosNota)\r\n } else {\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 }\r\n return (\r\n \r\n Reenviar {getDescricaoModelo(dadosNota.ntf_modelo)} 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 const [modeloDoc, setModeloDoc] = useState(); ;\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 useEffect(() => {\r\n if (dadosNota?.ntf_chavenfe) { \r\n setModeloDoc(dadosNota.ntf_chavenfe.substring(20, 22));\r\n }\r\n }, [dadosNota.ntf_chavenfe]);\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 var url = \"NotaFiscal/EnviarEmailXml\";\r\n if (modeloDoc == 57) {\r\n url = \"ConhecimentoTransporte/EnviarEmailXml\"\r\n } \r\n api.post(url, 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 if (!!erro.response && !!erro.response.data) {\r\n notification.error({ description: erro.response.data, message: `Aviso` });\r\n } else {\r\n notification.warning({ description: 'Ocorreu um erro ao tentar estornar a nota fiscal.', message: 'Aviso' });\r\n }\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 [modal] = useState(true);\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-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;","export default __webpack_public_path__ + \"static/media/i-info.62c0263c.png\";","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, Tooltip, Divider } from \"antd\";\r\nimport { EditOutlined, DeleteOutlined, UndoOutlined } 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 const [mostrarFaturado, setMostrarFaturado] = useState(false);\r\n const [mostrarDevolvido, setMostrarDevolvido] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!!totalPedido?.setTotalPedido) {\r\n let valorTotal = 0;\r\n let qtd = 0;\r\n let seqKey = 0;\r\n\r\n if (dadosTabela?.dadosItens) {\r\n dadosTabela.dadosItens.forEach((dado) => {\r\n valorTotal += dado.pdi_quantidade - dado.pdi_qtdedevolvido === 0 ? 0 : dado.valorItemDesconto || 0;\r\n qtd += dado.pdi_quantidade - dado.pdi_qtdedevolvido === 0 ? 0 : dado.pdi_quantidade || 0;\r\n dado.key = seqKey++;\r\n\r\n if (dado.pdi_qtdeentregue > 0) {\r\n setMostrarFaturado(true);\r\n }\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 useEffect(() => {\r\n const temDevolvido = dadosTabela?.dadosItens.some(item => item.pdi_qtdedevolvido > 0);\r\n setMostrarDevolvido(temDevolvido || false);\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 calcularTotais(itens) {\r\n return itens.reduce((acc, item) => {\r\n const quantidade = item.pdi_quantidade - (item.pdi_qtdedevolvido || 0);\r\n acc.qtd += quantidade;\r\n acc.valor += item.pdi_valorunitario * quantidade;\r\n return acc;\r\n }, { qtd: 0, valor: 0 })\r\n }\r\n\r\n function removerItem(item) {\r\n let dadosTemp = [...dadosTabela.dadosItens];\r\n\r\n if (!item.pdi_id) {\r\n dadosTemp = dadosTemp.filter((dados) => dados !== item);\r\n dadosTemp = dadosTemp\r\n .sort((a, b) => b.pdi_numeroitem - a.pdi_numeroitem)\r\n .map((dados, index) => ({\r\n ...dados,\r\n pdi_numeroitem: dadosTemp.length - index\r\n }));\r\n } else {\r\n let itemEncontrado = dadosTemp.find((i) => i.pdi_id === item.pdi_id);\r\n if (itemEncontrado) {\r\n itemEncontrado.pdi_qtdedevolvido = item.pdi_quantidade;\r\n setMostrarDevolvido(true);\r\n }\r\n }\r\n\r\n let { qtd, valor } = calcularTotais(dadosTemp);\r\n totalPedido.setTotalPedido(valor);\r\n setQuantidade(qtd);\r\n dadosTabela.setDadosItens(dadosTemp);\r\n }\r\n\r\n function desfazerDevolucao(record) {\r\n let dadosTemp = [...dadosTabela.dadosItens];\r\n let itemEncontrado = dadosTemp.find((item) => item.pdi_id === record.pdi_id);\r\n\r\n if (itemEncontrado) {\r\n itemEncontrado.pdi_qtdedevolvido = 0;\r\n }\r\n\r\n dadosTabela.setDadosItens(dadosTemp);\r\n\r\n let { qtd, valor } = calcularTotais(dadosTemp); \r\n totalPedido.setTotalPedido(valor);\r\n setQuantidade(qtd);\r\n\r\n if (!dadosTemp.some((item) => item.pdi_qtdedevolvido > 0)) {\r\n setMostrarDevolvido(false);\r\n }\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 {pdi_qtdedevolvido === pdi_quantidade ? {pro_descricao} : {pro_descricao}}\r\n \r\n \r\n \r\n \r\n {pdi_qtdedevolvido == pdi_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 \r\n {pdi_qtdedevolvido == pdi_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: 'Faturado',\r\n align: 'center',\r\n width: '5%',\r\n fixed: 'left',\r\n hidden: !mostrarFaturado,\r\n render: ({ pdi_qtdeentregue }) => (\r\n
\r\n \r\n
\r\n {pdi_qtdeentregue > 1 ? {pdi_qtdeentregue} itens : pdi_qtdeentregue === 1 ? {pdi_qtdeentregue} item : 0}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'Devolvido',\r\n align: 'center',\r\n width: '5%',\r\n fixed: 'left',\r\n hidden: !mostrarDevolvido,\r\n render: ({ pdi_quantidade, pdi_qtdedevolvido, pdi_qtdeentregue }, record) => (\r\n
\r\n \r\n
\r\n {pdi_qtdedevolvido > 1 ? {pdi_qtdedevolvido} itens : pdi_qtdedevolvido === 1 ? {pdi_qtdedevolvido} item : 0}\r\n {pdi_qtdedevolvido > 0 &&\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, pdi_qtdedevolvido }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ? {FormatNumber(pdi_quantidade, true)} : {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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ? {FormatNumber(pdi_valorunitario, true)} : {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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ? {FormatNumber(percdesc, true)}% : {FormatNumber(percdesc, true)}%}\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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ? {FormatNumber(pdi_percacresc, true)}% : {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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ? {FormatNumber(pdi_valorfrete, true)} : {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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ?\r\n {FormatNumber(impostos?.retornoICMS?.ret_baseIcms, true)}\r\n :\r\n {FormatNumber(impostos?.retornoICMS?.ret_baseIcms, true)}\r\n }\r\n
\r\n ),\r\n },\r\n {\r\n title: '% Icms',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ?\r\n {FormatNumber(impostos?.retornoICMS?.ret_aliquotaIcms, true)}\r\n :\r\n {FormatNumber(impostos?.retornoICMS?.ret_aliquotaIcms, true)}\r\n }\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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ?\r\n {FormatNumber(impostos?.retornoICMS?.ret_valorIcms, true)}\r\n :\r\n {FormatNumber(impostos?.retornoICMS?.ret_valorIcms, true)}\r\n }\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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ?\r\n {FormatNumber(impostos?.retornoICMSST?.ret_baseIcmsSt, true)}\r\n :\r\n {FormatNumber(impostos?.retornoICMSST?.ret_baseIcmsSt, true)}\r\n }\r\n
\r\n ),\r\n },\r\n {\r\n title: '% ST',\r\n align: 'right',\r\n width: '4%',\r\n render: ({ impostos, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ?\r\n {FormatNumber(impostos?.retornoICMSST.ret_aliquotaIcmsSt, true)}\r\n :\r\n {FormatNumber(impostos?.retornoICMSST?.ret_aliquotaIcmsSt, true)}\r\n }\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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ?\r\n {FormatNumber(impostos?.retornoICMSST.ret_aliquotaIcmsSt, true)}\r\n :\r\n {FormatNumber(impostos?.retornoICMSST?.ret_valorIcmsSt, true)}\r\n }\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, pdi_qtdedevolvido, pdi_quantidade }) => (\r\n
\r\n {pdi_qtdedevolvido === pdi_quantidade ?\r\n {FormatNumber(valorItemDesconto, true)}\r\n :\r\n {FormatNumber(valorItemDesconto, 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: '5%',\r\n fixed: 'right',\r\n render: ({ pdi_qtdedevolvido, pdi_quantidade }, 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\nimport FormaDePagamento from \"../../components/enuns/formaDePagamento\";\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\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 === FormaDePagamento.fpCreditoLoja) {\r\n validarJaPossuiCrediario(() => {\r\n popularParcelas();\r\n });\r\n } else if (dados[index].fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) {\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 === FormaDePagamento.fpCreditoLoja && !!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 === FormaDePagamento.fpBoletoBancario &&\r\n !!formaPgto.pedidoparcela &&\r\n formaPgto.pedidoparcela.length > 0\r\n );\r\n let possuiBoletoSemParcelas = dados.some(formaPgto => \r\n formaPgto.fpg_tipopagamento === FormaDePagamento.fpBoletoBancario &&\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 === FormaDePagamento.fpCreditoLoja || dados.fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) {\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 !== FormaDePagamento.fpProgramaFidelidade && !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 (parseFloat(valorPago.toFixed(2)) === parseFloat(valores.ped_valorTotal) || parseFloat(valorPago.toFixed(2)) === 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\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\nimport FormaDePagamento from '../../components/enuns/formaDePagamento';\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 [isSubmitting, setIsSubmitting] = useState(false);\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 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 === FormaDePagamento.fpCreditoLoja && 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 !== FormaDePagamento.fpCreditoLoja && !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 // Testa se `forma.antecipacao` existe e é uma lista vazia\r\n if (forma.fpg_quitacaoantecipacao && Array.isArray(forma.antecipacoes) && forma.antecipacoes.length === 0) {\r\n notification.info({\r\n message: 'Informação',\r\n description: 'A forma de pagamento possui antecipação, mas a lista está vazia.'\r\n });\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\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 === FormaDePagamento.fpBoletoBancario) {\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 === FormaDePagamento.fpCartaoCredito || item.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || item.fpg_tipopagamento === FormaDePagamento.fpPixDinamico) {\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 === FormaDePagamento.fpCartaoCredito) {\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 === FormaDePagamento.fpCartaoDebito) {\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 === FormaDePagamento.fpPixDinamico) {\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 === FormaDePagamento.fpCartaoCredito) {\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 === FormaDePagamento.fpCartaoDebito) {\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 === FormaDePagamento.fpPixDinamico) {\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 === FormaDePagamento.fpCartaoCredito || item.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || item.fpg_tipopagamento === FormaDePagamento.fpPixDinamico) {\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 === FormaDePagamento.fpCartaoCredito || item.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || item.fpg_tipopagamento === FormaDePagamento.fpPixDinamico) {\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 === FormaDePagamento.fpCartaoCredito || item.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito || item.fpg_tipopagamento === FormaDePagamento.fpPixDinamico) {\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 if (isSubmitting) return; // Evita chamadas concorrentes\r\n setIsSubmitting(true);\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 //COMENTADO POIS ESSE TRATAMENTO ESTÁ SENDO FEITO NO BACK\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 setIsSubmitting(false); // Permite novos envios após conclusão\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 if (itens.pdi_id) {\r\n itens.itempedidonota = [{ pdi_id: itens.pdi_id }]\r\n }\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 === FormaDePagamento.fpCheque && !!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 === FormaDePagamento.fpValePresente || forma.fpg_tipopagamento === FormaDePagamento.fpCreditoEmLoja) {\r\n aux.antecipacoes = forma.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 ?? form.pee_numero;\r\n dadosDestinatario.ntf_complementodest = enderecoDest?.complemento ?? form.pee_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 dadosTransportador.nvl_numeracaovolume = form.nvl_numeracaovolume?.toString();\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}","export default __webpack_public_path__ + \"static/media/i-car.ab57d7de.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 \r\n setCodigoLocal(valor)} \r\n conteudo={\r\n Local => ({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\";","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};","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","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, { useState } from \"react\";\r\nimport { Form, Row, Col, Input, Select, notification, Upload, Button } from \"antd\";\r\n\r\nimport api from '../../services/api';\r\nimport { Editar, FormGW, SelectPaginacao, SelectPaginado } from \"../../components\";\r\nimport { useStateValue } from '../../state';\r\nimport { listagemActions, manutencaoActions } from \"../../actions\";\r\nimport UploadFoto from \"../../components/modals/modalManutencaoPecasCat/UploadFoto\";\r\nimport { DownloadOutlined } from \"@ant-design/icons\";\r\n\r\nexport default function ManutencaoCidade({ formulario, carregando, aoSalvar }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [imagem, setImagem] = useState([]);\r\n const [imageUrl, setImageUrl] = useState(null);\r\n const [fileList, setFileList] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const salvarManutencao = (values) => {\r\n carregando(true);\r\n let retorno;\r\n let enderecoUrl = 'CidadeConfigNfse/';\r\n\r\n if (imageUrl != null) {\r\n values.cnf_brasaocidade = imageUrl;\r\n }\r\n if (values.cnf_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: \"As novas configurações foram salvas 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 setFileList([]);\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: \"AS configurações foram incluidas 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 carregando(false);\r\n aoSalvar(retorno);\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n const base64 = (imagem, callback) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n callback(reader.result.toString());\r\n };\r\n reader.onerror = (error) => {\r\n console.error(\"Erro ao converter para base64:\", error);\r\n callback(null);\r\n };\r\n reader.readAsDataURL(imagem);\r\n };\r\n\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 base64(info.fileList[0].originFileObj, (base64Result) => {\r\n setLoading(false);\r\n setImageUrl(base64Result);\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 return (\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 Arraste a Imagem ou\r\n
\r\n \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 { 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-bill.b0a3eb23.png\";","export default __webpack_public_path__ + \"static/media/i-cartao.42a596bd.png\";","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-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\", \"sub21\"];\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, { 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 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 \r\n \r\n ),\r\n },\r\n ]}\r\n pagination={false}\r\n expandable={{ expandedRowRender: expandedRowRenderParcelas, 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 moment from 'moment';\r\nimport { FormatNumber } from '../../ValueObjects';\r\nimport DetalheNotaFiscal from '.';\r\n\r\nexport default function TabDetalheTotalizadores({ nota }) {\r\n const [detalheNotaFiscal, setDetalheNotaFiscal] = useState({});\r\n\r\n useEffect(() => {\r\n if (!!nota) {\r\n setDetalheNotaFiscal(nota);\r\n nota.itensNf.forEach(i => {\r\n\r\n });\r\n }\r\n }, [nota]);\r\n\r\n return (\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 {FormatNumber(detalheNotaFiscal.valortotalbcissqn,true)}\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 {FormatNumber(detalheNotaFiscal.valortotalissqn,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 } from \"react\";\r\nimport { Button, Col, Row, Table, Tag } from \"antd\";\r\n\r\nimport { FormatNumber } from \"../../ValueObjects\";\r\n\r\nexport default function TabDetalheServico({ itensNF }) {\r\n const [percentualDesc, setPercentualDesc] = useState(true);\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_descricao }) => (\r\n
\r\n \r\n
\r\n {(pro_descricao)}\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: '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 {\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: '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 Issqn',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nfs_valorbc }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nfs_valorbc, true)}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: '% Issqn',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nfs_percissqn }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nfs_percissqn, true)}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'Vlr Issqn',\r\n width: '3%',\r\n align: 'right',\r\n render: ({ nfs_valorissqn }) => (\r\n
\r\n \r\n
\r\n {FormatNumber(nfs_valorissqn, 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 } dataSource={itensNF}\r\n scroll={{\r\n x: 1000,\r\n y: 300,\r\n }} \r\n />\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Card, Col, Descriptions, Divider, Row } from \"antd\";\r\n\r\nexport default function TabDetalheTransporte({ transporteNF }) {\r\n const [transporte, setTransporte] = useState({});\r\n\r\n useEffect(() => {\r\n if (transporteNF) {\r\n setTransporte(transporteNF[0]);\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n Veículo\r\n }>\r\n \r\n \r\n \r\n \r\n {transporte?.trv_modelo || 'Não Informado'}\r\n \r\n \r\n {transporte?.trv_marca || 'Não Informado'}\r\n \r\n \r\n {transporte?.trv_placa || 'Não Informado'}\r\n \r\n \r\n {transporte?.trv_rntc || 'Não Informado'}\r\n \r\n \r\n {transporte?.trv_uf || 'Não Informado'}\r\n \r\n \r\n {transporte?.trv_observacao || 'Não Informado'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Volumes\r\n }>\r\n \r\n \r\n \r\n \r\n {transporte?.nvl_numeracaovolume || 'Não Informado'}\r\n \r\n \r\n {transporte?.nvl_marcavolume || 'Não Informado'}\r\n \r\n \r\n {transporte?.nvl_especievolume || 'Não Informado'}\r\n \r\n \r\n {transporte?.nvl_qtdevolumes || 'Não Informado'}\r\n \r\n \r\n {transporte?.nvl_pesoliquido || 'Não Informado'}\r\n \r\n \r\n {transporte?.nvl_pesobruto || 'Não Informado'}\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\nimport TabDetalheServico from './tabDetalheServico';\r\nimport TabDetalheTransporte from './tabDetalheTransporte';\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 const [modelo, setModelo] = useState('');\r\n\r\n useEffect(() => {\r\n if (!!dadosModal) {\r\n setDetalheNotaFiscal(dadosModal);\r\n setverificadevolucao(dadosModal.verificadevolucao);\r\n setModelo(dadosModal.ntf_modelo)\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 {detalheNotaFiscal.mdf_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 {modelo === '98' ? : }\r\n \r\n \r\n \r\n \r\n {modelo !== '98' && \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 );\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: 'Faturado',\r\n align: 'right',\r\n width: 60,\r\n render: ({ pdi_qtdeentregue }) => (\r\n
\r\n \r\n
\r\n {!!pdi_qtdeentregue ? {pdi_qtdeentregue} : 0}\r\n \r\n \r\n \r\n )\r\n },\r\n {\r\n title: 'Devolvido',\r\n align: 'right',\r\n width: 60,\r\n render: ({ pdi_qtdedevolvido }) => (\r\n
\r\n \r\n
\r\n {!!pdi_qtdedevolvido ? {pdi_qtdedevolvido} : 0}\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: 75,\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_valortotal }) => (\r\n
\r\n {FormatNumber(pdi_valortotal, 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 { patch: \"/servico\", label: \"Cadastro de Serviço\" },\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: \"/cidade\", label: \"Configurações Nfse\" },\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\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\nimport FormaDePagamento from \"../enuns/formaDePagamento\";\r\n\r\nexport default function FormasPagamento({ form, dadosOperacao, listaFormaPagamento, setListaFormaPagamento }) {\r\n\r\n const [{ manutencao }, dispatch] = useStateValue();\r\n const [formaPagamento, setFormaPagamento] = useState([]);\r\n const [condicaoPagamento, setCondicaoPagamento] = useState([]);\r\n const [valorJaPago, setValorJaPago] = useState(false);\r\n const [pagamentoTotal, setPagamentoTotal] = useState(false);\r\n const [multiplasFormasPagamento, setMultiplasFormasPagamento] = useState(false);\r\n const [editando, setEditando] = useState(false);\r\n const [abrirDrawerVendedores, setAbrirDrawerVendedores] = useState(false);\r\n const [formVendedores] = Form.useForm();\r\n const [valorTotal, setValorTotal] = useState(0);\r\n const [semCondicao, setSemCondicao] = useState(false);\r\n const [ehCheque, setEhCheque] = useState(false);\r\n const [ehValePresente, setEhValePresente] = useState(false);\r\n const [dadosTela] = useState(getTela());\r\n const [isNota, setIsNota] = useState(false);\r\n const [openModalCartao, setOpenModalCartao] = useState(false);\r\n const [dadosParcelas, setDadosParcelas] = useState([]);\r\n const [abreModalLiberacao, setAbreModalLiberacao] = useState(false);\r\n const [abreModalParcPendentes, setAbreModalParcPendentes] = useState(false);\r\n const [parcelasPessoasAtraso, setParcelasPessoasAtraso] = useState([]);\r\n const [executarParcelas, setExecutarParcelas] = useState(false);\r\n const [formaPagamentoAntecipacao, setFormaPagamentoAntecipacao] = useState({});\r\n const [listaContaCorrente, setListaContaCorrente] = useState([]);\r\n const [exibirModalCheque, setExibirModalCheque] = useState(false);\r\n const [dadosCheque, setDadosCheque] = useState([]);\r\n const [abreModalContaCorrente, setAbreModalContaCorrente] = useState(false);\r\n const [contaCorrente, setContaCorrente] = useState({});\r\n const [tipoContaCorrente, setTipoContaCorrente] = useState(\"1\");\r\n const [abreModalAntecipacao, setAbreModalAntecipacao] = useState(false);\r\n const [dadosAntecipacao, setDadosAntecipacao] = useState([]);\r\n const [valorRestante, setValorRestante] = useState(0);\r\n const [desabilitaBtn, setDesabilitaBtn] = useState(false);\r\n const [editandoParcelas, setEditandoParcelas] = useState(false);\r\n const [semPagamento, setSemPagamento] = useState(false);\r\n\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 === FormaDePagamento.fpDepositoBancario\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === FormaDePagamento.fpTransferenciaBancaria\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === FormaDePagamento.fpPixDinamico)) {\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 === FormaDePagamento.fpCheque\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === FormaDePagamento.fpDinheiro)) {\r\n setTipoContaCorrente(\"1\");\r\n setAbreModalContaCorrente(true);\r\n }\r\n\r\n setEhValePresente(false);\r\n setValorJaPago(valor);\r\n }, [listaFormaPagamento]);\r\n\r\n useEffect(() => {\r\n if (parseFloat(form.getFieldValue().valorTotal) > 0 && !editando) {\r\n let valor = 0;\r\n if (listaFormaPagamento.length > 0) {\r\n listaFormaPagamento.forEach((lista) => {\r\n valor += parseFloat(lista.pfp_valor);\r\n });\r\n if (valor >= valorTotal && valor >= parseFloat(form.getFieldValue().valorTotal)) {\r\n setPagamentoTotal(true);\r\n } else {\r\n setPagamentoTotal(false);\r\n valorRestantePgto([...listaFormaPagamento]);\r\n }\r\n }\r\n }\r\n\r\n }, [form.getFieldValue()]);\r\n\r\n useEffect(() => {\r\n if (parseFloat(valorRestante) > 0 && !!manutencao.dados && !!!manutencao.dados.antecipacao) {\r\n verificarAntecipacoes();\r\n }\r\n }, [valorRestante]);\r\n\r\n useEffect(() => {\r\n if (!!manutencao.dados && !!manutencao.dados.faturamento && executarParcelas) {\r\n let dados = manutencao.dados.faturamento;\r\n let index = dados.length - 1;\r\n setExecutarParcelas(false);\r\n if (dados[index].fpg_tipopagamento === FormaDePagamento.fpCreditoLoja) {\r\n validarJaPossuiCrediario(() => {\r\n popularParcelas();\r\n });\r\n } else if (dados[index].fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) {\r\n validarJaPossuiBoleto(() => {\r\n popularParcelas();\r\n });\r\n } else if ((((dados[index].fpg_tipopagamento === FormaDePagamento.fpCartaoCredito && dadosParcelas.length === 0)\r\n || dados[index].fpg_tipopagamento === FormaDePagamento.fpCartaoDebito) && !!!manutencao.dados.credito) && !openModalCartao) {\r\n abrirModalCartao(dados[index]);\r\n } else if (dados[index].fpg_tipopagamento === FormaDePagamento.fpCheque) {\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 !== FormaDePagamento.fpValePresente)) {\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\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 === FormaDePagamento.fpCreditoLoja && !!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 === FormaDePagamento.fpBoletoBancario && !!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 === FormaDePagamento.fpCreditoEmLoja && 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: formaPagamentoAntecipacao,\r\n pfp_valor: manutencao.dados.antecipacao[0].valorAntecipacao,\r\n parcelas: [],\r\n antecipacoes :manutencao.dados.antecipacao,\r\n descontoPadrao: {},\r\n ctc_id: formaPagamentoAntecipacao.ctc_id,\r\n fpg_tipopagamento: FormaDePagamento.fpCreditoEmLoja,\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 === FormaDePagamento.fpCheque || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpDinheiro\r\n || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpDepositoBancario || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpPixDinamico\r\n || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpTransferenciaBancaria)) {\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) === FormaDePagamento.fpCreditoLoja || parseInt(dadosFormaPagamento.fpg_tipopagamento) === FormaDePagamento.fpBoletoBancario) {\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 === FormaDePagamento.fpCartaoCredito) {\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 === FormaDePagamento.fpCartaoDebito) {\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 !== FormaDePagamento.fpCreditoLoja && manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento !== FormaDePagamento.fpBoletoBancario) {\r\n let creditoDebito = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento === FormaDePagamento.fpCartaoCredito;\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 === FormaDePagamento.fpCartaoDebito) {\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 === FormaDePagamento.fpDinheiro || dados.fpg_tipopagamento === FormaDePagamento.fpCheque || dados.fpg_tipopagamento === FormaDePagamento.fpValePresente ||\r\n dados.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja || dados.fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) {\r\n setSemCondicao(true);\r\n if (dados.fpg_tipopagamento === FormaDePagamento.fpCheque) {\r\n setEhCheque(true);\r\n } else if (dados.fpg_tipopagamento === FormaDePagamento.fpValePresente) {\r\n setEhValePresente(true);\r\n } else if (dados.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja || dados.fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) {\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 === FormaDePagamento.fpCreditoEmLoja) {\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 === FormaDePagamento.fpCartaoCredito || forma.fpg_tipopagamento === FormaDePagamento.fpCartaoDebito) {\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 FormaDePagamento.fpDinheiro:\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpCheque:\r\n setEhCheque(true)\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpValePresente:\r\n setEhValePresente(true);\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpBoletoBancario:\r\n case FormaDePagamento.fpCreditoLoja:\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 FormaDePagamento.fpSemPagamento:\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 === FormaDePagamento.fpCartaoDebito || record.fpg_tipopagamento === FormaDePagamento.fpCartaoCredito || record.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja || record.fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) && !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 !== FormaDePagamento.fpCreditoEmLoja && !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\nimport FormaDePagamento from \"../enuns/formaDePagamento\";\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 rowExpandable = record => { return (record.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja || record.fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) };\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 === FormaDePagamento.fpDinheiro\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === FormaDePagamento.fpCheque\r\n || listaFormaPagamento[listaFormaPagamento.length - 1].fpg_tipopagamento === FormaDePagamento.fpPixDinamico)) {\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 === FormaDePagamento.fpCreditoLoja) {\r\n validarJaPossuiCrediario(() => {\r\n popularParcelas();\r\n });\r\n } else if (dados[index].fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) {\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 !== FormaDePagamento.fpValePresente)) {\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 === FormaDePagamento.fpCreditoLoja && !!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 === FormaDePagamento.fpBoletoBancario && !!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 === FormaDePagamento.fpDinheiro || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpCheque) {\r\n setTipoContaCorrente(\"1\")\r\n setAbreModalContaCorrente(true);\r\n }\r\n if (ultimaForma.fpg_tipopagamento === FormaDePagamento.fpDepositoBancario || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpPixDinamico\r\n || ultimaForma.fpg_tipopagamento === FormaDePagamento.fpTransferenciaBancaria) {\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 !== FormaDePagamento.fpCreditoLoja && manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento !== FormaDePagamento.fpBoletoBancario) {\r\n let creditoDebito = manutencao.dados.faturamento[indexPosicao].fpg_tipopagamento === FormaDePagamento.fpCartaoCredito;\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 === FormaDePagamento.fpDinheiro || dados.fpg_tipopagamento === FormaDePagamento.fpValePresente || dados.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja) {\r\n setSemCondicao(true);\r\n // if (dados.fpg_tipopagamento === pagamentosCodigos.cheque) {\r\n // setEhCheque(true);\r\n // }\r\n if (dados.fpg_tipopagamento === FormaDePagamento.fpValePresente) {\r\n setEhValePresente(true);\r\n } else if (dados.fpg_tipopagamento === FormaDePagamento.fpCreditoLoja || dados.fpg_tipopagamento === FormaDePagamento.fpBoletoBancario) {\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 FormaDePagamento.fpDinheiro:\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpPixDinamico:\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpValePresente:\r\n setEhValePresente(true);\r\n setSemCondicao(true);\r\n break;\r\n case FormaDePagamento.fpBoletoBancario:\r\n case FormaDePagamento.fpCreditoLoja:\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 FormaDePagamento.fpSemPagamento:\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 setarCampoQtde();\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 let produtoImposto = await buscarDadosProdImpostos(dadosProduto.pro_id, dadosProduto.ltp_id);\r\n produtoImposto.prg_id = dadosProduto.prg_id;\r\n produtoImposto.descricaograde = dadosProduto.descricaograde;\r\n await popularFormProduto(produtoImposto);\r\n await adicionarItem(produtoImposto);\r\n if (!!codBarras && !!codBarras.current) {\r\n codBarras.current.focus();\r\n }\r\n } else {\r\n notification.warning({ message: 'Aviso!', description: 'Item não encontrado!' });\r\n }\r\n };\r\n\r\n function setarCampoQtde() {\r\n setTimeout(() => {\r\n try {\r\n let element = document.getElementById(\"qtde\");\r\n if (element) {\r\n element.focus();\r\n element.select(); // Seleciona todo o texto dentro do campo\r\n }\r\n } catch (error) {\r\n console.log('error :>> ', error);\r\n }\r\n }, 200);\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) {\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\r\n // if (buscarProdutosCodBarra) {\r\n // form.setFieldsValue({\r\n // pro_id: produto.pro_id,\r\n // prg_id: produto.prg_id\r\n // });\r\n // }\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 let dados = lista.filter(item => item.key === codigo || item.prg_id === codigoGrade)[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 console.log(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, ...item };\r\n console.log(item)\r\n console.log(p)\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 (dadosOperacao.tipooperacao.tip_entradasaida === 1 && !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 if (dadosProduto.pro_produto){\r\n abrirModalManutencaoProd();\r\n }\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 let aliquota = !!p.aliquotaIssqn ? p.aliquotaIssqn : 0;\r\n\r\n if (p.pro_produto) {\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 }\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, dadosFormulario.ped_indicadorpresenca, false, false, p.pro_servico, aliquota)\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 }\r\n {emissor === 0 &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n {emissor === 1 &&\r\n \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 }\r\n {(listaCheques.length === 0 && cliente.pes_id !== null) &&\r\n \r\n *Preencha os campos de quantidade e valor para apresentar os cheques\r\n \r\n }\r\n {cliente.pes_id !== null &&\r\n \r\n \r\n \r\n { popularCheque() }} />\r\n \r\n \r\n \r\n { popularCheque() }} />\r\n \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${cheque.sequencia}`) &&\r\n
\r\n Gestor Web\r\n
\r\n }\r\n {!!form.getFieldValue(`ban_id${cheque.sequencia}`) &&\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 ConhecimentoDeTransporteButton(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 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 { 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 { 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 React, { useState } from \"react\";\r\nimport { Button } from \"antd\";\r\n\r\nimport { validarPermissaoTela } from \"../../services/permissoes\";\r\n\r\nexport default function NotaFiscalServicoButton(props) {\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, useEffect } from 'react';\r\nimport { Row, Col, Descriptions, Table } from \"antd\";\r\n\r\nimport moment from 'moment';\r\n\r\nexport default function DetalheRemessa({ dadosModal }) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {(!!dadosModal[0].rem_nomearquivoremessa ? dadosModal[0].rem_nomearquivoremessa : 'NÃO INFORMADO')}\r\n \r\n \r\n {(!!dadosModal[0].rem_id ? dadosModal[0].rem_id : 'NÃO INFORMADO')}\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: 'N°. Parcela',\r\n align: 'center',\r\n render: ({ prc_numeroparcela }) => (\r\n
\r\n {prc_numeroparcela}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'N° Doc.',\r\n align: 'center',\r\n render: ({ bol_numerodocumento }) => (\r\n
\r\n {bol_numerodocumento}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Valor',\r\n align: 'center',\r\n render: ({ bol_valor }) => (\r\n
\r\n {bol_valor}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Data Doc.',\r\n align: 'center',\r\n render: ({ bol_dataemissao }) => (\r\n
\r\n {!!bol_dataemissao ? moment(bol_dataemissao).format('DD/MM/YYYY') : null}\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 {!!bol_datavencimento ? moment(bol_datavencimento).format('DD/MM/YYYY') : null}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Carteira/Nosso Número',\r\n align: 'center',\r\n render: ({ crt_carteira, bol_nossonumero }) => (\r\n
\r\n {(!!crt_carteira ? (crt_carteira + \"/\") : null)+ (!!bol_nossonumero ? bol_nossonumero : null)}\r\n
\r\n ),\r\n },\r\n {\r\n title: 'Chave Nfe',\r\n align: 'center',\r\n render: ({ ntf_chavenfe }) => (\r\n
\r\n {ntf_chavenfe}\r\n
\r\n ),\r\n },\r\n ]} dataSource={dadosModal} \r\n scroll={{ x: 'max-content'}} //Permite rolagem horizontal\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, { 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","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, retornaUnico = null }) {\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 [totalRegIni, setTotalRegIni] = 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 //Feito para selecionar somente se usuario tem acesso a uma unica empresa\r\n if (lista.length == 1 && !!retornaUnico && totalRegIni==1) {\r\n let dados = lista.find(l => l.key == lista[0].key);\r\n if (!!retornaUnico) {\r\n let val = dados ? dados[retornaUnico] : null\r\n setValor(val);\r\n form.setFieldsValue({ [_nameValue]: val });\r\n !!onChangeFunction ? onChangeFunction(valor) : naoFazNada();\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 (totalRegIni == 0) {\r\n setTotalRegIni(res.data.totalItems)\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 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, { 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/Contrato_NewERP.ab6ad1e4.pdf\";","export default __webpack_public_path__ + \"static/media/i-subjacentes.4dd45421.png\";","export default __webpack_public_path__ + \"static/media/i-email.7dbd9933.png\";","export default __webpack_public_path__ + \"static/media/i-ocupacoes.2f1064ca.png\";","export default __webpack_public_path__ + \"static/media/i-nacionalidade.471ad975.png\";","export default __webpack_public_path__ + \"static/media/i-pessoas-autorizadas.97d039b7.png\";","export default __webpack_public_path__ + \"static/media/i-print.f02b12f8.png\";","export default __webpack_public_path__ + \"static/media/i-servidor.1e5b5a82.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/vendas.9c6e90cd.png\";","export default __webpack_public_path__ + \"static/media/compra.056d5699.png\";","export default __webpack_public_path__ + \"static/media/pdv.f3e6acb7.png\";","export default __webpack_public_path__ + \"static/media/financeiro.da436854.png\";","export default __webpack_public_path__ + \"static/media/contabilidade.ea1a8b80.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/catalogoEletronico.98c431d0.png\";","export default __webpack_public_path__ + \"static/media/pedidosOs.c0f1184a.png\";","export default __webpack_public_path__ + \"static/media/aReceber.073bcc17.png\";","export default __webpack_public_path__ + \"static/media/aPagar.a70a06d4.png\";","export default __webpack_public_path__ + \"static/media/contaCorrente.89b4a8bb.png\";","export default __webpack_public_path__ + \"static/media/caixaBanco.4fd821e4.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/fiscal.8c9d7c46.png\";","export default __webpack_public_path__ + \"static/media/impostos.3838058b.png\";","export default __webpack_public_path__ + \"static/media/sped.314bcb54.png\";","export default __webpack_public_path__ + \"static/media/indicadores.cdfa1938.png\";","export default __webpack_public_path__ + \"static/media/mdfe.d4d72119.png\";","export default __webpack_public_path__ + \"static/media/utilitarios.d0b228df.png\";","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","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/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\";","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, eServico = false, aliquotaIssqn) => {\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: eServico,\r\n aliquotaIssqn: aliquotaIssqn,\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}"],"sourceRoot":""}