/// <summary> /// Faz a alteração de qualquer campo informado /// </summary> private UtilRetorno alterarCampo(TituloReceita OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); var listaCamposEditaveis = new[] { "observacao", "flagFixa", "valorTotal", "idContaBancaria", "idCentroCusto", "idMacroConta", "idCategoria", "idGatewayPermitido", "limiteParcelamento", "nroNotaFiscal", "nroContabil", "nroContrato", "nroDocumento", "dtLimitePagamento", "flagBoletoBancarioPermitido", "flagDepositoPermitido", "flagCartaoCreditoPermitido", "emailPrincipal", "descricao" }; if (!listaCamposEditaveis.Contains(OLog.nomeCampoAlterado)) { return(UtilRetorno.newInstance(true, "Campo informado não pode ser editado")); } OLog.valorAntigo = OItem.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.getValorCampo(OLog.nomeCampoAlterado); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
/// <summary> /// Faz a alteração de qualquer campo informado /// </summary> private UtilRetorno alterarCampo(TituloDespesa OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); var listaCamposEditaveis = new[] { "flagFixa", "valorTotal", "descricao", "idContaBancaria", "idCentroCusto", "idMacroConta", "idCategoria", "nroNotaFiscal", "nroContabil", "nroContrato", "codigoBoleto", "nroDocumento", "idTipoDespesa", "idModoPagamento", "idContaBancariaFavorecida", "documentoPessoaCredor", "nomePessoaCredor", "nroTelPrincipalCredor" }; if (!listaCamposEditaveis.Contains(OLog.nomeCampoAlterado)) { return(UtilRetorno.newInstance(true, "Campo informado não pode ser editado")); } OLog.valorAntigo = OItem.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.getValorCampo(OLog.nomeCampoAlterado); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
//Alteracao de senha solicitada pelo usuario public UtilRetorno alterarSenha(int idAssociado, string senhaAtual, string novaSenha, bool flagValidarSenhaAtual = true, int?idOrganizacaoParam = null) { if (idOrganizacao > 0 && idOrganizacaoParam == null) { idOrganizacaoParam = idOrganizacao; } var query = from Ass in db.Associado .Include(x => x.Pessoa) where Ass.id == idAssociado && Ass.dtExclusao == null select Ass; var OAssociado = query.FirstOrDefault(); if (OAssociado == null) { return(UtilRetorno.newInstance(true, "Desculpe, não foi localizado nenhum associado com os dados informados.")); } query = query.Where(x => x.idOrganizacao == idOrganizacaoParam); if (!UtilCrypt.SHA512(senhaAtual).Equals(OAssociado.Pessoa.senha) && flagValidarSenhaAtual) { return(UtilRetorno.newInstance(true, "A senha atual informada está incorreta.")); } OAssociado.Pessoa.senha = UtilCrypt.SHA512(novaSenha); db.SaveChanges(); //Assinatura e disparo do evento this.onSenhaAlterada.subscribe(new OnSenhaAlteradaHandler()); this.onSenhaAlterada.publish((OAssociado as object)); return(UtilRetorno.newInstance(false, "A senha foi alterada com sucesso!")); }
public UtilRetorno excluir(int id, string motivoExclusao) { var idUsuario = User.id(); var OTituloDespesa = this.carregar(id); if (OTituloDespesa == null) { return(UtilRetorno.newInstance(true, "Registro não localizado")); } db.TituloDespesa.Where(x => x.id == id) .Update(x => new TituloDespesa { dtExclusao = DateTime.Now, idUsuarioExclusao = idUsuario, motivoExclusao = motivoExclusao }); db.TituloDespesaPagamento.Where(x => x.idTituloDespesa == id && x.dtExclusao == null) .Update(x => new TituloDespesaPagamento { dtExclusao = DateTime.Now, idUsuarioExclusao = idUsuario, motivoExclusao = motivoExclusao }); return(UtilRetorno.newInstance(false)); }
//Bloquear um determinado associado public UtilRetorno bloquearAssociado(int idAssociado, string observacoes) { this.onDesativacao.subscribe(new OnDesativacaoHandler()); int idUsuarioLogado = User.id(); Associado OAssociado = this.db.Associado.FirstOrDefault(x => x.id == idAssociado); if (OAssociado == null) { return(UtilRetorno.newInstance(true, "Associado não encontrado.")); } OAssociado.dtDesativacao = DateTime.Now; OAssociado.idUsuarioDesativacao = idUsuarioLogado; OAssociado.ativo = "B"; db.SaveChanges(); OAssociado.observacoes = observacoes; this.onDesativacao.publish((OAssociado as object)); return(UtilRetorno.newInstance(false, "Associado bloqueado com sucesso.")); }
//Reativar um não associado que estava com status inativo public UtilRetorno reativarNaoAssociado(int idAssociado, string observacoes) { this.onReativacao.subscribe(new OnNaoAssociadoReativacaoHandler()); int idUsuarioLogado = User.id(); Associado OAssociado = this.db.Associado.FirstOrDefault(x => x.id == idAssociado && x.dtExclusao == null); if (OAssociado == null) { return(UtilRetorno.newInstance(true, "Cadastro não encontrado.")); } OAssociado.dtReativacao = DateTime.Now; OAssociado.idUsuarioReativacao = idUsuarioLogado; OAssociado.ativo = "S"; db.SaveChanges(); OAssociado.observacoes = observacoes; this.onReativacao.publish((OAssociado as object)); return(UtilRetorno.newInstance(false, "Não Associado reativado com sucesso.")); }
/// <summary> /// /// </summary> public virtual UtilRetorno validaSenha(MovimentoOperacaoDTO Transacao) { var senhaTransacao = Transacao.MembroOrigem.senhaTransacao; if (senhaTransacao.isEmpty()) { return(UtilRetorno.newInstance(true, "A conta informada não possui senha de transação configurada.")); } if (Transacao.tk.isEmpty()) { return(UtilRetorno.newInstance(true, "A senha de confirmação da transação não foi informada.")); } string senhaEnviada = UtilCrypt.SHA512(Transacao.tk); if (!senhaEnviada.Equals(senhaTransacao)) { return(UtilRetorno.newInstance(true, "A senha de transação informada é inválida.")); } return(UtilRetorno.newInstance(false, "")); }
// public UtilRetorno clonar(TituloDespesa ODespesa, int qtdeReplicacoes) { var ORetorno = UtilRetorno.newInstance(false); var ODespesaClone = this.carregarDadosDespesaBase(ODespesa.id); if (ODespesaClone == null) { ORetorno.flagError = true; ORetorno.listaErros.Add("A despesa informada não foi encontrada."); return(ORetorno); } ODespesaClone.id = 0; ODespesaClone.idTituloDespesaOrigem = ODespesa.id; ODespesaClone.descricao = ODespesa.descricao; ODespesaClone.idPessoa = ODespesa.idPessoa; ODespesaClone.dtDespesa = ODespesa.dtDespesa; ODespesaClone.mesCompetencia = Convert.ToByte(ODespesa.dtDespesa?.Month); ODespesaClone.anoCompetencia = Convert.ToInt16(ODespesa.dtDespesa?.Year); ODespesaClone.dtVencimento = ODespesa.dtVencimento; ODespesaClone.dtQuitacao = null; ORetorno = this.salvarDespesas(ODespesaClone, qtdeReplicacoes); return(ORetorno); }
/// <summary> /// Faz a alteração de qualquer campo informado /// </summary> private UtilRetorno alterarCampo(TituloDespesaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); var listaCamposEditaveis = new[] { "idCentroCusto", "idMacroConta", "descParcela", "idCategoria", "idMeioPagamento", "idContaBancaria", "dtVencimento", "dtPrevisaoPagamento", "valorJuros", "valorMulta", "valorDesconto" }; if (!listaCamposEditaveis.Contains(OLog.nomeCampoAlterado)) { return(UtilRetorno.newInstance(true, "Campo informado não pode ser editado")); } OLog.valorAntigo = OItem.alterarValorCampo(OLog.nomeCampoAlterado, OLog.valorNovo); if (OLog.valorAntigo == null) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.getValorCampo(OLog.nomeCampoAlterado); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
//Carregamento do registro public UtilRetorno enviarEmailCobranca(int id) { var OPagamento = this.OTituloReceitaPagamentoBL.carregar(id); if (OPagamento == null) { return(UtilRetorno.newInstance(true, "O pagamento informado não pôde ser localizado.")); } if (OPagamento.dtPagamento.HasValue) { return(UtilRetorno.newInstance(true, "Não é possível enviar o e-mail de cobrança para um pagamento já realizado.")); } if (OPagamento.TituloReceita.idTipoReceita == TipoReceitaConst.OUTROS && OPagamento.TituloReceita.dtQuitacao == null) { OPagamento = this.OTituloReceitaPagamentoBL.carregar(id); } if (OPagamento.TituloReceita.emailPrincipal == null) { return(UtilRetorno.newInstance(true, "Nenhum e-mail foi encontrado para enviar a cobrança.")); } IEnvioCobrancaPagamento OEmail = EnvioCobrancaPagamento.factory(OPagamento.idOrganizacao, new List <string> { OPagamento.TituloReceita.emailPrincipal }, null); var ORetorno = OEmail.enviar(OPagamento); if (ORetorno.flagError) { return(UtilRetorno.newInstance(true, "Ocorreram problemas para disparar o e-mail de cobrança: " + ORetorno.listaErros.FirstOrDefault())); } return(UtilRetorno.newInstance(false, "O e-mail de cobrança foi enviado com sucesso.")); }
//Exclusao Lógica public UtilRetorno excluir(int idPerfil, int idRecursoAcao) { var query = from Perm in db.AcessoPermissao where Perm.flagExcluido == "N" select Perm; if (idPerfil > 0) { query = query.Where(x => x.idPerfilAcesso == idPerfil); } if (idRecursoAcao > 0) { query = query.Where(x => x.idRecursoAcao == idRecursoAcao); } query.Update(x => new AcessoPermissao { flagExcluido = "S", dtAlteracao = DateTime.Now }); return(UtilRetorno.newInstance(false, "Os registros foram removidos com sucesso")); }
//Events // 1) Enviar email de cobranca public UtilRetorno enviarEmailCobranca(int idAssociadoContribuicao) { AssociadoContribuicao OAssociadoContribuicao = this.OAssociadoContribuicaoBL.carregar(idAssociadoContribuicao); if (OAssociadoContribuicao == null) { return(UtilRetorno.newInstance(true, "O registro de anuidade não foi localizado.")); } if (string.IsNullOrEmpty(OAssociadoContribuicao.Contribuicao.emailCobrancaHtml)) { return(UtilRetorno.newInstance(true, "Não há cadastro do conteúdo que deve ser enviado por e-mail.")); } var listaEmails = OAssociadoContribuicao.Associado.Pessoa.ToEmailList(); if (listaEmails.Count == 0) { return(UtilRetorno.newInstance(true, "Não existem contas de e-mails válidas para envio para esse associado.")); } var listaCopias = ConfiguracaoNotificacaoBL.getInstance.carregar().emailCobrancaContribuicao.ToEmailList(";"); IEnvioCobrancaContribuicao EnvioEmail = EnvioCobrancaContribuicao.factory(OAssociadoContribuicao.idOrganizacao, listaEmails, listaCopias); //bool flagEnviado = EnvioEmail.enviar(OAssociadoContribuicao); bool flagEnviado = true; if (flagEnviado) { return(UtilRetorno.newInstance(false, "A cobrança foi enviada com sucesso.")); } return(UtilRetorno.newInstance(true, "Ocorreu um problema ao enviar a cobrança, por favor tente novamente.")); }
/// <summary> /// /// </summary> public UtilRetorno debitar(MovimentoOperacaoDTO Transacao) { var RetornoValidacao = this.Validador.validar(Transacao); if (RetornoValidacao.flagError) { return(RetornoValidacao); } var MovimentoResumo = RetornoValidacao.info as MovimentoResumoVW; var RetornoMovimento = GeradorMovimento.debitar(MovimentoResumo); if (RetornoMovimento.flagError) { return(RetornoMovimento); } var listaMovimentos = RetornoMovimento.info as List <Movimento>; var RetornoAtualizador = this.AtualizadorSaldoBL.atualizar(listaMovimentos); return(UtilRetorno.newInstance(false, "Lançamento de débito realizado com sucesso!", listaMovimentos.FirstOrDefault())); }
/// <summary> /// Altera o valor original do pagamento /// </summary> private UtilRetorno alterarCampoValorOriginal(TituloReceitaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.valorOriginal.ToString(); var valorOrginal = UtilNumber.toDecimal(OLog.valorNovo); if (valorOrginal == 0) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } if (valorOrginal < OItem.valorTotalTarifas()) { ORetorno.listaErros.Add("O valor informado é menor que o total de tarifas"); return(ORetorno); } OItem.valorOriginal = valorOrginal; var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.valorOriginal.ToString(); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
//Exclusao Logica public UtilRetorno excluir(int id) { var db = this.getDataContext(); PlanoContratacao OPlanoContratacao = this.carregar(id); if (OPlanoContratacao == null) { return(UtilRetorno.newInstance(true, "O registro não pode ser localizado.")); } OPlanoContratacao.flagExcluido = "S"; OPlanoContratacao.dtAlteracao = DateTime.Now; db.SaveChanges(); //Excluo tambem o titulo de cobrança //ITituloReceitaBL OTituloReceitaPlanoContratacaoBL = new TituloReceitaPlanoContratacaoBL(); // int idMacroConta = (int)MacroContaEnum.PLANO; //OTituloReceitaPlanoContratacaoBL.excluir(idMacroConta, id); return(UtilRetorno.newInstance(false, "O registro foi removido com sucesso.")); }
/// <summary> /// /// </summary> public UtilRetorno transferir(MovimentoResumoVW MovimentoResumo) { var MovimentoOrigem = new Movimento(); MovimentoOrigem.captarDadosOrigem(MovimentoResumo); MovimentoOrigem.idTipoTransacao = (byte)TipoTransacaoEnum.TRANSFERÊNCIA; var MovimentoDestino = new Movimento(); MovimentoDestino.captarDadosDestino(MovimentoResumo); MovimentoDestino.idTipoTransacao = (byte)TipoTransacaoEnum.TRANSFERÊNCIA; MovimentoOrigem.setDefaultInsertValues(); MovimentoDestino.setDefaultInsertValues(); var listaItens = new List <Movimento>(); listaItens.Add(MovimentoOrigem); listaItens.Add(MovimentoDestino); db.Movimento.AddRange(listaItens); var Retorno = db.validateAndSave(); if (Retorno.flagError) { return(Retorno); } db.Movimento.Where(x => x.id == MovimentoDestino.id).Update(x => new Movimento { idMovimentoPrincipal = MovimentoOrigem.id }); return(UtilRetorno.newInstance(false, "", listaItens)); }
/// <summary> /// /// </summary> public UtilRetorno debitar(MovimentoResumoVW MovimentoResumo) { var MovimentoDestino = new Movimento(); MovimentoDestino.captarDadosDestinoDebito(MovimentoResumo); MovimentoDestino.idTipoTransacao = MovimentoResumo.idTipoTransacao; MovimentoDestino.setDefaultInsertValues(); var listaItens = new List <Movimento>(); listaItens.Add(MovimentoDestino); db.Movimento.AddRange(listaItens); var Retorno = db.validateAndSave(); if (Retorno.flagError) { return(Retorno); } return(UtilRetorno.newInstance(false, "", listaItens)); }
// public UtilRetorno excluir(int id) { var OCupom = this.carregar(id); if (OCupom == null) { return(UtilRetorno.newInstance(true, "Não foi possível remover esse registro.")); } var flagUsadoQtde = db.TituloReceitaPagamento.Count(x => x.idCupomDesconto == id); if (OCupom.flagUtilizado || (OCupom.qtdeUsos > 0 && flagUsadoQtde > 0)) { return(UtilRetorno.newInstance(true, "Não é possível editar um cupom de desconto que já foi usado.")); } OCupom.flagExcluido = "S"; OCupom.idUsuarioAlteracao = User.id(); OCupom.dtAlteracao = DateTime.Now; this.db.SaveChanges(); return(UtilRetorno.newInstance(false, "Registro removido com sucesso.")); }
//validar registro public UtilRetorno validar(AcessoRecursoAcao OAcessoRecursoAcao) { if (OAcessoRecursoAcao.idRecursoPai == 0 && OAcessoRecursoAcao.idRecursoGrupo == 0) { return(UtilRetorno.newInstance(true, "O módulo ou menu não foi informado.")); } if (String.IsNullOrEmpty(OAcessoRecursoAcao.descricao)) { return(UtilRetorno.newInstance(true, "O descrição da ação não foi informada.")); } if (String.IsNullOrEmpty(OAcessoRecursoAcao.controller)) { return(UtilRetorno.newInstance(true, "O controlador da ação não foi informada.")); } if (String.IsNullOrEmpty(OAcessoRecursoAcao.action)) { return(UtilRetorno.newInstance(true, "O nome da ação não foi informada.")); } return(UtilRetorno.newInstance(false, "")); }
/// <summary> /// Altera o valor pago do pagamento /// </summary> private UtilRetorno alterarCampoValorRecebido(TituloReceitaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.valorRecebido.ToString(); if (OItem.dtPagamento == null) { ORetorno.listaErros.Add("Não é possível alterar o valor pago de uma parcela sem pagamento registrado"); return(ORetorno); } var valorRecebido = UtilNumber.toDecimal(OLog.valorNovo); if (valorRecebido == 0) { ORetorno.listaErros.Add("O valor informado é inválido"); return(ORetorno); } OItem.valorRecebido = valorRecebido; var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.valorRecebido.ToString(); OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
/// <summary> /// Altera o nroDocumento do pagamento /// </summary> private UtilRetorno alterarCampoNroDocumento(TituloReceitaPagamento OItem, LogAlteracao OLog) { var ORetorno = UtilRetorno.newInstance(true); OLog.valorAntigo = OItem.nroDocumento; var nroDocumento = UtilString.onlyAlphaNumber(OLog.valorNovo); OItem.nroDocumento = nroDocumento; var successSave = db.SaveChanges(); if (successSave > 0) { OLog.valorNovo = OItem.nroDocumento; OLog.oldValueSelect = OLog.valorAntigo.isEmpty() ? null : OLog.oldValueSelect; OLogAlteracaoBL.salvar(OLog); ORetorno.flagError = false; return(ORetorno); } ORetorno.listaErros.Add("Não foi possível salvar o registro no banco."); return(ORetorno); }
//Atributos //Servicos // public void enviarEmail(NotificacaoSistema ONotificacao, List <NotificacaoSistemaEnvio> listaEnvios) { var listaIdsEnviados = new List <int>(); var listaExcluidos = new List <UtilRetorno>(); foreach (var ONotificacaoEnvio in listaEnvios) { var listaEmailsEnvio = ONotificacaoEnvio.ToEmailList(); var flagEnviado = false; var ORetorno = UtilRetorno.newInstance(false); foreach (var stringEmail in listaEmailsEnvio) { ORetorno = this.enviarEmail(ONotificacao, ONotificacaoEnvio, new List <string> { stringEmail }); if (!ORetorno.flagError) { flagEnviado = true; continue; } ORetorno.info = ONotificacaoEnvio.id; } if (flagEnviado) { listaIdsEnviados.Add(ONotificacaoEnvio.id); } if (!flagEnviado) { listaExcluidos.Add(ORetorno); } } if (listaIdsEnviados.Any()) { db.NotificacaoSistemaEnvio.Where(x => listaIdsEnviados.Contains(x.id)) .Update(x => new NotificacaoSistemaEnvio() { dtEnvioEmail = DateTime.Now, flagEnvioEmail = true }); } if (listaExcluidos.Any()) { var idsEnviosExcluidos = listaExcluidos.Select(x => x.info.toInt()).Distinct().ToList(); var listaEnviosExcluidos = db.NotificacaoSistemaEnvio.Where(x => idsEnviosExcluidos.Contains(x.id)).ToList(); listaEnviosExcluidos.ForEach(x => { x.flagExcluido = true; x.motivoExclusao = listaExcluidos.FirstOrDefault(c => c.info.toInt() == x.id)?.listaErros?.FirstOrDefault() ?? "Os e-mails configurados não são válidos."; }); db.SaveChanges(); } var idsMembrosNotificados = listaEnvios.Where(x => listaIdsEnviados.Contains(x.id) && x.idReferencia > 0) .Select(x => x.idReferencia.toInt()) .ToList(); }
public ActionResult registrarPagamento(BaixaTituloReceitaPagamentoForm ViewModel) { if (!ModelState.IsValid) { return(PartialView("modal-registrar-pagamento", ViewModel)); } foreach (var Item in ViewModel.listaTituloReceitaPagamento) { Item.dtPagamento = ViewModel.TituloReceitaPagamento.dtPagamento; Item.dtPrevisaoCredito = ViewModel.TituloReceitaPagamento.dtCredito; Item.dtCredito = ViewModel.TituloReceitaPagamento.dtCredito; Item.idMeioPagamento = ViewModel.TituloReceitaPagamento.idMeioPagamento; Item.idFormaPagamento = ViewModel.TituloReceitaPagamento.idFormaPagamento; Item.valorJuros = ViewModel.TituloReceitaPagamento.valorJuros; Item.valorRecebido = ViewModel.TituloReceitaPagamento.valorRecebido; Item.valorOutrasTarifas = ViewModel.TituloReceitaPagamento.valorOutrasTarifas; Item.nroBanco = ViewModel.TituloReceitaPagamento.nroBanco; Item.nroDocumento = ViewModel.TituloReceitaPagamento.nroDocumento; Item.nroAgencia = ViewModel.TituloReceitaPagamento.nroAgencia; Item.nroDigitoAgencia = ViewModel.TituloReceitaPagamento.nroDigitoAgencia; Item.nroConta = ViewModel.TituloReceitaPagamento.nroConta; Item.nroDigitoConta = ViewModel.TituloReceitaPagamento.nroDigitoConta; Item.codigoAutorizacao = ViewModel.TituloReceitaPagamento.codigoAutorizacao; Item.valorTarifasBancarias = ViewModel.TituloReceitaPagamento.valorTarifasBancarias; Item.flagBaixaAutomatica = false; } var ORetorno = UtilRetorno.newInstance(false); foreach (var OTituloReceitaPagamento in ViewModel.listaTituloReceitaPagamento) { var Retorno = this.OTituloReceitaPagamentoBaixaBL.registrarPagamento(OTituloReceitaPagamento); if (Retorno.flagError) { ORetorno.flagError = true; } ORetorno.listaErros.Add($"Pagamento #{OTituloReceitaPagamento.id} - " + Retorno.listaErros.FirstOrDefault()); } if (ORetorno.flagError) { this.Flash(UtilMessage.TYPE_MESSAGE_INFO, string.Join("<br/>", ORetorno.listaErros)); } this.Flash(UtilMessage.TYPE_MESSAGE_SUCCESS, string.Join("<br/>", ORetorno.listaErros)); return(PartialView("modal-registrar-pagamento", ViewModel)); }
/// <summary> /// Registrar o pagamento de uma parcela de um titulo /// Utilizado para a realizacao das baixas manuais /// </summary> public UtilRetorno registrarPagamento(TituloReceitaPagamento OTituloReceitaPagamento) { var dbPagamento = db.TituloReceitaPagamento.FirstOrDefault(x => x.id == OTituloReceitaPagamento.id); if (dbPagamento == null) { return(UtilRetorno.newInstance(true, "Pagamento não localizado no sistema.")); } dbPagamento.idUsuarioBaixa = User.id(); dbPagamento.idUsuarioAlteracao = User.id(); dbPagamento.dtBaixa = DateTime.Now; dbPagamento.flagBaixaAutomatica = false; dbPagamento.idStatusPagamento = StatusPagamentoConst.PAGO; dbPagamento.idMeioPagamento = OTituloReceitaPagamento.idMeioPagamento; dbPagamento.idFormaPagamento = OTituloReceitaPagamento.definirFormaPagamento(); dbPagamento.dtPagamento = OTituloReceitaPagamento.dtPagamento; dbPagamento.dtCredito = OTituloReceitaPagamento.dtCredito; dbPagamento.valorJuros = OTituloReceitaPagamento.valorJuros; dbPagamento.valorTarifasBancarias = OTituloReceitaPagamento.valorTarifasBancarias; if (!String.IsNullOrEmpty(OTituloReceitaPagamento.codigoAutorizacao)) { dbPagamento.codigoAutorizacao = OTituloReceitaPagamento.codigoAutorizacao; } if (!String.IsNullOrEmpty(OTituloReceitaPagamento.nroBanco)) { dbPagamento.nroBanco = OTituloReceitaPagamento.nroBanco; } if (!String.IsNullOrEmpty(OTituloReceitaPagamento.nroDocumento)) { dbPagamento.nroDocumento = OTituloReceitaPagamento.nroDocumento; } if (!String.IsNullOrEmpty(OTituloReceitaPagamento.nroAgencia)) { dbPagamento.nroAgencia = OTituloReceitaPagamento.nroAgencia; } if (!String.IsNullOrEmpty(OTituloReceitaPagamento.nroDigitoAgencia)) { dbPagamento.nroDigitoAgencia = OTituloReceitaPagamento.nroDigitoAgencia; } if (!String.IsNullOrEmpty(OTituloReceitaPagamento.nroConta)) { dbPagamento.nroConta = OTituloReceitaPagamento.nroConta; } if (!String.IsNullOrEmpty(OTituloReceitaPagamento.nroDigitoConta)) { dbPagamento.nroDigitoConta = OTituloReceitaPagamento.nroDigitoConta; } if (!(OTituloReceitaPagamento.valorRecebido > 0)) { dbPagamento.valorRecebido = dbPagamento.valorOriginal; } db.SaveChanges(); this.eventoPagamentoRecebido.subscribe(new OnPagamentoRecebidoHandler()); this.eventoPagamentoRecebido.publish(dbPagamento as object); return(UtilRetorno.newInstance(false, "O pagamento foi registrado com sucesso.")); }
//Metodo para geracao do titulo de receita public override UtilRetorno gerar(object OrigemTitulo) { Pedido OPedido = (OrigemTitulo as Pedido); if (OPedido == null) { return(UtilRetorno.newInstance(true, "O registro Pedido está nulo.")); } //Verificar se o titulo já existe var OTituloReceita = this.OTituloReceitaBL.carregarPorReceita(OPedido.id); if (OTituloReceita != null) { return(UtilRetorno.newInstance(false, "O título já foi gerado anteriormente.", OTituloReceita)); } var OConfigEcommerce = OConfiguracaoEcommerceBL.carregar(User.idOrganizacao(), false); OTituloReceita = new TituloReceita(); OTituloReceita.idPessoa = OPedido.idPessoa; OTituloReceita.idTipoReceita = (byte)idTipoReceita; OTituloReceita.idReceita = OPedido.id; OTituloReceita.idOrganizacao = OPedido.idOrganizacao.toInt(); OTituloReceita.idUnidade = OPedido.idUnidade; OTituloReceita.limiteParcelamento = OConfigEcommerce.qtdeLimiteParcelas; OTituloReceita.qtdeRepeticao = 1; OTituloReceita.mesCompetencia = (byte?)OPedido.dtFaturamento?.Month; OTituloReceita.anoCompetencia = (short?)OPedido.dtFaturamento?.Year; if (OTituloReceita.mesCompetencia > 0 && OTituloReceita.anoCompetencia > 0) { byte?diaCompetencia = OPedido.dtFaturamento?.Day.toByte(); diaCompetencia = diaCompetencia.toByte() > 0 ? diaCompetencia.toByte() : (byte)1; OTituloReceita.dtCompetencia = new DateTime(OTituloReceita.anoCompetencia.toInt(), OTituloReceita.mesCompetencia.toInt(), diaCompetencia.toInt()); } OTituloReceita.idContaBancaria = OPedido.idContaBancaria; OTituloReceita.idCentroCusto = OPedido.idCentroCusto; OTituloReceita.idMacroConta = OPedido.idMacroConta; OTituloReceita.idCategoria = OPedido.idCategoriaTitulo; OTituloReceita.flagCartaoCreditoPermitido = OPedido.flagCartaoCreditoPermitido; OTituloReceita.flagBoletoBancarioPermitido = OPedido.flagBoletoBancarioPermitido; OTituloReceita.flagDepositoPermitido = OPedido.flagDepositoPermitido; OTituloReceita.descricao = $"Pedido {OPedido.id}"; OTituloReceita.valorTotal = OPedido.getValorTotal(); OTituloReceita.dtVencimentoOriginal = OPedido.dtVencimento; OTituloReceita.dtVencimento = OPedido.dtVencimento; this.preencherRecibo(ref OTituloReceita, OPedido.Pessoa); this.salvar(OTituloReceita); return(UtilRetorno.newInstance(false, "O título foi gerado com sucesso.", OTituloReceita)); }
//Metodo para geracao do titulo de receita public override UtilRetorno gerar(object OrigemTitulo) { var OAssociado = (OrigemTitulo as Associado); if (OAssociado == null) { return(UtilRetorno.newInstance(true, "O Objeto (associado) para gerar o título de taxa de inscrição não foi informado")); } var OTipoAssociado = this.OTipoAssociadoBL.carregar(UtilNumber.toInt32(OAssociado.idTipoAssociado)); if (OTipoAssociado == null) { return(UtilRetorno.newInstance(true, "O Objeto (tipo) para gerar o título de taxa de inscrição não foi informado")); } //Verificar se o titulo já existe TituloReceita OTituloReceita = this.OTituloReceitaBL.carregarPorReceita(OAssociado.id); if (OTituloReceita != null) { return(UtilRetorno.newInstance(false, "O título já foi gerado antes.", OTituloReceita)); } OTituloReceita = new TituloReceita(); OTituloReceita.idPessoa = OAssociado.idPessoa; OTituloReceita.idTipoReceita = (byte)idTipoReceita; OTituloReceita.idReceita = OAssociado.id; OTituloReceita.idOrganizacao = OAssociado.idOrganizacao; OTituloReceita.idUnidade = OAssociado.idUnidade; OTituloReceita.qtdeRepeticao = 1; OTituloReceita.mesCompetencia = (byte)DateTime.Today.Month; OTituloReceita.anoCompetencia = (short)DateTime.Today.Year; if (OTituloReceita.mesCompetencia > 0 && OTituloReceita.anoCompetencia > 0) { byte?diaCompetencia = DateTime.Today.Day.toByte(); diaCompetencia = diaCompetencia.toByte() > 0 ? diaCompetencia.toByte() : (byte)1; OTituloReceita.dtCompetencia = new DateTime(OTituloReceita.anoCompetencia.toInt(), OTituloReceita.mesCompetencia.toInt(), diaCompetencia.toInt()); } OTituloReceita.idContaBancaria = OTipoAssociado.idContaBancariaInscricao; OTituloReceita.idCentroCusto = OTipoAssociado.idCentroCustoInscricao; OTituloReceita.idMacroConta = OTipoAssociado.idMacroContaInscricao; OTituloReceita.idCategoria = null; OTituloReceita.descricao = string.Concat("Taxa de Inscrição", " - ", OAssociado.Pessoa.nome).abreviar(100); OTituloReceita.valorTotal = Math.Round(UtilNumber.toDecimal(OTipoAssociado.valorTaxaInscricao), 2); OTituloReceita.dtVencimentoOriginal = DateTime.Today.AddDays(OTipoAssociado.diasPrazoTaxaInscricao ?? 5); OTituloReceita.dtVencimento = OTituloReceita.dtVencimentoOriginal; this.preencherRecibo(ref OTituloReceita, OAssociado.Pessoa); this.salvar(OTituloReceita); return(UtilRetorno.newInstance(false, "O título foi gerado com sucesso.", OTituloReceita)); }
public UtilRetorno calcularImpostoTitulo(int idTabelaImposto, TituloImposto OTituloImposto) { var ORetorno = UtilRetorno.newInstance(false); decimal valorBase = 0; if (OTituloImposto.idTituloDespesa > 0) { valorBase = OTituloDespesaBL.carregar(OTituloImposto.idTituloDespesa.toInt()).valorTotalComDesconto(); OTituloImposto.idTituloReceita = null; } if (OTituloImposto.idTituloReceita > 0) { valorBase = OTituloReceitaConsultaBL.carregar(OTituloImposto.idTituloReceita.toInt()).valorTotalComDesconto(); OTituloImposto.idTituloDespesa = null; } if (valorBase <= 0) { ORetorno.flagError = true; ORetorno.listaErros.Add("É necessário que o valor do título seja maior que zero."); return(ORetorno); } var OTabela = OTabelaImpostoConsultaBL.carregar(idTabelaImposto); if (OTabela == null) { ORetorno.flagError = true; ORetorno.listaErros.Add("Não foi possível encontrar a tabela de imposto"); return(ORetorno); } OTituloImposto.percentualCOFINS = OTabela.percentualCOFINS; OTituloImposto.valorCOFINS = (OTabela.percentualCOFINS / 100) * valorBase; OTituloImposto.percentualICMS = OTabela.percentualICMS; OTituloImposto.valorICMS = (OTabela.percentualICMS / 100) * valorBase; OTituloImposto.percentualISS = OTabela.percentualISS; OTituloImposto.valorISS = (OTabela.percentualISS / 100) * valorBase; OTituloImposto.percentualPIS = OTabela.percentualPIS; OTituloImposto.valorPIS = (OTabela.percentualPIS / 100) * valorBase; var flagSucesso = OTituloImpostoBL.salvar(OTituloImposto); if (flagSucesso) { ORetorno.flagError = false; ORetorno.listaErros.Add("Dados de impostos do titulo preenchidos com sucesso."); return(ORetorno); } ORetorno.flagError = true; ORetorno.listaErros.Add("Erro ao preencher dados de impostos do titulo."); return(ORetorno); }
//Atributos //Propriedades //Excluir o registro de um pagamento e salvar os dados de log //Chamar rotina para reordenar descrição das parcelas public UtilRetorno excluirPagamento(int idTituloReceitaPagamento, string motivoExclusao, bool?flagAtualizarParcelas = true, string flagOutros = "") { using (var Context = new DataContext()){ try{ var dbPagamento = db.TituloReceitaPagamento.condicoesSeguranca().FirstOrDefault(x => x.id == idTituloReceitaPagamento && x.dtExclusao == null); if (dbPagamento == null) { return(UtilRetorno.newInstance(true, "Pagamento não localizado no sistema")); } if (dbPagamento.dtPagamento.HasValue) { return(UtilRetorno.newInstance(true, "Não é possível remover com o pagamento já realizado")); } dbPagamento.motivoExclusao = motivoExclusao; dbPagamento.dtExclusao = DateTime.Now; dbPagamento.idUsuarioExclusao = User.id(); dbPagamento.idUsuarioAlteracao = User.id(); db.SaveChanges(); if (flagOutros == "NEXT") { Context.TituloReceitaPagamento .Where(x => x.dtExclusao == null && x.idTituloReceita == dbPagamento.idTituloReceita && x.dtPagamento == null && (x.dtVencimento > dbPagamento.dtVencimento || (x.dtVencimento == dbPagamento.dtVencimento && x.id > dbPagamento.id))) .Update(x => new TituloReceitaPagamento() { motivoExclusao = dbPagamento.motivoExclusao, dtExclusao = DateTime.Now, idUsuarioExclusao = dbPagamento.idUsuarioExclusao }); } if (flagOutros == "ALL") { db.TituloReceitaPagamento .Where(x => x.dtExclusao == null && x.idTituloReceita == dbPagamento.idTituloReceita && x.dtPagamento == null) .Update(x => new TituloReceitaPagamento() { motivoExclusao = dbPagamento.motivoExclusao, dtExclusao = DateTime.Now, idUsuarioExclusao = dbPagamento.idUsuarioExclusao }); } if (flagAtualizarParcelas == true) { this.atualizarDescricaoParcelas(dbPagamento.idTituloReceita); } return(UtilRetorno.newInstance(false, "Exclusão do(s) pagamento(s) realizado com sucesso.")); } catch (Exception ex) { UtilLog.saveError(ex, $"Erro ao excluir manualmente o pagamento da receita {idTituloReceitaPagamento}."); } } return(UtilRetorno.newInstance(true, "Não foi possível realizar a exclusão do(s) pagamento(s).")); }
//Metodo para geracao do titulo de Despesa public override UtilRetorno gerar(object OrigemTitulo) { var OContaBancariaMovimentacao = (OrigemTitulo as ContaBancariaMovimentacao); if (OContaBancariaMovimentacao == null) { return(UtilRetorno.newInstance(true, "O registro ContaMovimentação está nulo.")); } //Verificar se o titulo já existe var OTituloDespesa = this.OTituloDespesaBL.carregarPorDespesa(OContaBancariaMovimentacao.id); if (OTituloDespesa != null) { return(UtilRetorno.newInstance(false, "O título já foi gerado anteriormente.", OTituloDespesa)); } OTituloDespesa = new TituloDespesa(); OTituloDespesa.idTipoDespesa = idTipoDespesa; OTituloDespesa.idDespesa = OContaBancariaMovimentacao.id; OTituloDespesa.idOrganizacao = OContaBancariaMovimentacao.idOrganizacao.toInt(); OTituloDespesa.idUnidade = OContaBancariaMovimentacao.idUnidade; OTituloDespesa.qtdeRepeticao = 1; OTituloDespesa.mesCompetencia = (byte?)OContaBancariaMovimentacao.dtOperacao.Month; OTituloDespesa.anoCompetencia = (short?)OContaBancariaMovimentacao.dtOperacao.Year; if (OTituloDespesa.mesCompetencia > 0 && OTituloDespesa.anoCompetencia > 0) { byte?diaCompetencia = OContaBancariaMovimentacao.dtOperacao.Day.toByte(); diaCompetencia = diaCompetencia.toByte() > 0 ? diaCompetencia.toByte() : (byte)1; OTituloDespesa.dtDespesa = new DateTime(OTituloDespesa.anoCompetencia.toInt(), OTituloDespesa.mesCompetencia.toInt(), diaCompetencia.toInt()); } OTituloDespesa.idContaBancaria = OContaBancariaMovimentacao.idContaBancariaOrigem; var OContaBancariaDestino = this.OContaBancariaBL.carregar(OContaBancariaMovimentacao.idContaBancariaDestino) ?? new ContaBancaria(); OTituloDespesa.descricao = $"Transferência realizada para a conta { OContaBancariaDestino.OBanco?.nome }: { OContaBancariaDestino.nroConta }/{ OContaBancariaDestino.nroAgencia }"; OTituloDespesa.valorTotal = OContaBancariaMovimentacao.valor; OTituloDespesa.dtVencimento = DateTime.Now; OTituloDespesa.dtQuitacao = DateTime.Now; this.salvar(OTituloDespesa); if (OTituloDespesa.id > 0) { this.gerarPagamento(OTituloDespesa); } return(UtilRetorno.newInstance(false, "O título foi gerado com sucesso.", OTituloDespesa)); }
//Metodo para geracao do titulo de receita public override UtilRetorno gerar(object OrigemTitulo) { AssociadoContribuicao AssociadoContribuicao = (OrigemTitulo as AssociadoContribuicao); if (AssociadoContribuicao == null) { return(UtilRetorno.newInstance(true, "O registro Associado Contribuição está nulo.")); } if (AssociadoContribuicao.Contribuicao == null) { return(UtilRetorno.newInstance(true, "O registro Contribuição está nulo.")); } //Verificar se o titulo já existe var OTituloReceita = this.OTituloReceitaBL.carregarPorReceita(AssociadoContribuicao.id); if (OTituloReceita != null) { return(UtilRetorno.newInstance(false, "O título já foi gerado anteriormente.", OTituloReceita)); } var OAssociado = AssociadoContribuicao.Associado; var Contribuicao = AssociadoContribuicao.Contribuicao; var ConfiguracaoContribuicao = ConfiguracaoContribuicaoBL.getInstance.carregar(AssociadoContribuicao.idOrganizacao); OTituloReceita = new TituloReceita(); OTituloReceita.idPessoa = AssociadoContribuicao.Associado.idPessoa; OTituloReceita.idTipoReceita = (byte)idTipoReceita; OTituloReceita.idReceita = AssociadoContribuicao.id; OTituloReceita.idOrganizacao = AssociadoContribuicao.idOrganizacao; OTituloReceita.idUnidade = AssociadoContribuicao.idUnidade; OTituloReceita.qtdeRepeticao = 1; OTituloReceita.mesCompetencia = (byte?)AssociadoContribuicao.dtInicioVigencia?.Month; OTituloReceita.anoCompetencia = (short?)AssociadoContribuicao.dtInicioVigencia?.Year; if (OTituloReceita.mesCompetencia > 0 && OTituloReceita.anoCompetencia > 0) { byte?diaCompetencia = AssociadoContribuicao.dtInicioVigencia?.Day.toByte(); diaCompetencia = diaCompetencia.toByte() > 0 ? diaCompetencia.toByte() : (byte)1; OTituloReceita.dtCompetencia = new DateTime(OTituloReceita.anoCompetencia.toInt(), OTituloReceita.mesCompetencia.toInt(), diaCompetencia.toInt()); } OTituloReceita.idContaBancaria = Contribuicao.idContaBancaria > 0 ? Contribuicao.idContaBancaria : ConfiguracaoContribuicao.idContaBancariaPadrao; OTituloReceita.idCentroCusto = Contribuicao.idCentroCusto > 0 ? Contribuicao.idCentroCusto : ConfiguracaoContribuicao.idCentroCustoPadrao; OTituloReceita.idMacroConta = Contribuicao.idMacroConta > 0 ? Contribuicao.idMacroConta : ConfiguracaoContribuicao.idMacroContaPadrao; OTituloReceita.idCategoria = Contribuicao.idCategoriaTitulo; OTituloReceita.limiteParcelamento = Contribuicao.qtdeLimiteParcelas ?? 1; OTituloReceita.flagCartaoCreditoPermitido = Contribuicao.flagCartaoCreditoPermitido; OTituloReceita.flagBoletoBancarioPermitido = Contribuicao.flagBoletoBancarioPermitido; OTituloReceita.flagDepositoPermitido = Contribuicao.flagDepositoPermitido; OTituloReceita.descricao = $"Cobrança {Contribuicao.descricao} - {AssociadoContribuicao.Associado.Pessoa.nome}"; if (AssociadoContribuicao.dtInicioVigencia.HasValue) { OTituloReceita.descricao = $"{OTituloReceita.descricao}. Vigência: {AssociadoContribuicao.dtInicioVigencia.exibirData()} à {AssociadoContribuicao.dtFimVigencia.exibirData()}"; } OTituloReceita.valorTotal = AssociadoContribuicao.valorAtual; OTituloReceita.dtVencimentoOriginal = AssociadoContribuicao.dtVencimentoOriginal; OTituloReceita.dtVencimento = AssociadoContribuicao.dtVencimentoAtual; this.preencherRecibo(ref OTituloReceita, OAssociado.Pessoa); var TabelaPreco = Contribuicao.retornarTabelaVigente(); OTituloReceita.listaDescontosAntecipacao = TabelaPreco.retornarListaDescontos(AssociadoContribuicao.idTipoAssociado, AssociadoContribuicao.dtVencimentoOriginal); this.salvar(OTituloReceita); return(UtilRetorno.newInstance(false, "O título foi gerado com sucesso.", OTituloReceita)); }