Ejemplo n.º 1
0
        public void Atualizar(MovimentacoesEdicaoModel model)
        {
            var movimentacaoFinanceira = new MovimentacaoFinanceira
            {
                Id               = model.IdMovimentacao,
                Nome             = model.NomeMovimentacao,
                Data             = DateTime.Parse(model.DataMovimentacao),
                Valor            = decimal.Parse(model.ValorMovimentacao),
                TipoMovimentacao = (TipoMovimentacao)int.Parse(model.TipoMovimentacao)
            };

            movimentacaoFinanceiraDomainService.Atualizar(movimentacaoFinanceira);
        }
Ejemplo n.º 2
0
        public void Cadastrar(MovimentacoesCadastroModel model)
        {
            var movimentacaoFinanceira = new MovimentacaoFinanceira
            {
                Id               = Guid.NewGuid(),
                Nome             = model.NomeMovimentacao,
                Data             = DateTime.Parse(model.DataMovimentacao),
                Valor            = decimal.Parse(model.ValorMovimentacao),
                TipoMovimentacao = (TipoMovimentacao)int.Parse(model.TipoMovimentacao)
            };

            movimentacaoFinanceiraDomainService.Cadastrar(movimentacaoFinanceira);
        }
        public void Atualizar(MovimentacaoFinanceira movimentacaoFinanceira)
        {
            #region Não é permitido atualizar movimentações para datas anteriores à data atual

            if (movimentacaoFinanceira.Data
                < new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0))
            {
                throw new Exception("Não é permitido atualizar movimentações para datas anteriores à data atual.");
            }

            movimentacaoFinanceiraRepository.Update(movimentacaoFinanceira);

            #endregion
        }
 public void Excluir(MovimentacaoFinanceira movimentacaoFinanceira)
 {
     movimentacaoFinanceiraRepository.Delete(movimentacaoFinanceira);
 }
Ejemplo n.º 5
0
        public ActionResult Criar(VariacaoPatrimonialDiminutivaViewModel instancia)
        {
            try
            {
                var    now = DateTime.Now;
                String msg = string.Empty;
                if (this.UnidadeGestoraEhFechada(ref msg, now))
                {
                    this.EmitirMensagem(msg, ETipoMensagem.Aviso);
                    {
                        CriarViewBag();
                        return(View(instancia));
                    }
                }

                var dataExercicioAtual = ExercicioAnoSessao.Sessao.AnoExercicioCorrente;
                if (instancia.DataEmissao.Year < dataExercicioAtual)
                {
                    this.EmitirMensagem("A Data informada não pode ser anterior ao Exercício atual", ETipoMensagem.Aviso);
                    CriarViewBag();
                    return(View(instancia));
                }

                var vpdVM = VariacaoPatrimonialDiminutivaGerenciarSessao.Sessao.variacaoPatrimonialDiminutivaVM;
                if (vpdVM.ListaItemVPD == null || !vpdVM.ListaItemVPD.Any())
                {
                    this.EmitirMensagem("Informe ao menos um item da VPD", ETipoMensagem.Aviso);
                    CriarViewBag();
                    return(View(instancia));
                }
                var          documento = MontaObjetoVPDPrevia(instancia, now);
                const string str       = "Campo Obrigatório";
                if (String.IsNullOrWhiteSpace(instancia.CredorIdentificacao))
                {
                    ModelState.AddModelError("CredorIdentificacao", str);
                }

                if (!ModelState.IsValid)
                {
                    CriarViewBag();
                    return(View(instancia));
                }

                #region Monta Lista de Processos a ser executados ao criar uma VPD
                List <ProcessosDoLancamentoContabil> processosVPD = new List <ProcessosDoLancamentoContabil>();
                var configVPD = new ConfiguracaoLancamentoContabil()
                {
                    Exercicio                         = ExercicioAnoSessao.Sessao.AnoExercicioCorrente.Value,
                    CodigoDoDocumento                 = "VPD",
                    Evento                            = false,
                    UsarEventoDoDocumento             = false,
                    PermitirInscricaoDoEventoInvalida = true,
                    Estorno                           = false,
                    Atualizar                         = false,
                    NaturezaDespesa                   = true,
                };
                using (SimplesLancamentoContabil contabil = new SimplesLancamentoContabil())
                {
                    contabil.SetDocumento(documento);
                    contabil.SetConfiguracao(configVPD);
                    processosVPD = contabil.MontarProcessos();
                }
                #endregion

                #region Criar VPD
                List <ChaveConta> chaves = new List <ChaveConta>();
                SimplesLancamentoContabil.AdicionarChaves(chaves, processosVPD);

                var move = new MovimentacaoFinanceira();
                move.AdicionarProcesso(processosVPD);
                move.Validar();
                move.LiberarDocumento(documento);
                using (ControleConta cc = new ControleConta(chaves))
                {
                    cc.Validar();
                    using (var ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions {
                        IsolationLevel = ControleConta.IsolationLevelLancamentoContabil
                    }))
                    {
                        using (GenericoSalvarLancamento save = new GenericoSalvarLancamento(documento, configVPD))
                        {
                            save.GerarLancamentos(processosVPD);
                            save.Salvar();
                        }
                        ts.Complete();
                    }
                }
                #endregion

                DocumentoGerenciarSession.Sessao.Dispose("DocumentoGerenciarSession_SESSAO");
                EmitirMensagem(ConfigurationManager.AppSettings["MENSAGEM_SUCESSO"] + " VPD Prévia Nº " + documento.Numero);
                return(RedirectToAction("Index"));
            }
            catch (DbEntityValidationException e)
            {
                EmitirMensagem(e);
            }
            catch (CFP.Util.SPFException ex)
            {
                EmitirMensagem(ex.Message, ETipoMensagem.Erro);
            }
            CriarViewBag();
            return(View(instancia));
        }
Ejemplo n.º 6
0
        public JsonResult Estornar(VPDEstorno vpdEstorno)
        {
            string status   = "OK";
            string mensagem = string.Empty;
            string numeroDocumentoGerado = string.Empty;

            try
            {
                var now = DateTime.Now;
                if (this.UnidadeGestoraEhFechada(ref mensagem, now))
                {
                    throw new CFP.Util.SPFException(mensagem);
                }

                if (string.IsNullOrEmpty(vpdEstorno.DataEmissao.ToString()) || vpdEstorno.DataEmissao.Year == 1)
                {
                    throw new CFP.Util.SPFException("A data de emissão é obrigatória!");
                }

                var documento = MontaObjetoVPDPreviaEstorno(vpdEstorno, now);

                #region Monta Lista de Processos a ser executados ao estornar uma VPD
                List <ProcessosDoLancamentoContabil> processosVPD = new List <ProcessosDoLancamentoContabil>();
                var configVPD = new ConfiguracaoLancamentoContabil()
                {
                    Exercicio                         = ExercicioAnoSessao.Sessao.AnoExercicioCorrente.Value,
                    CodigoDoDocumento                 = "VPD",
                    Evento                            = false,
                    UsarEventoDoDocumento             = false,
                    PermitirInscricaoDoEventoInvalida = true,
                    Estorno                           = true,
                    Atualizar                         = false,
                    NaturezaDespesa                   = true,
                };
                using (SimplesLancamentoContabil contabil = new SimplesLancamentoContabil())
                {
                    contabil.SetDocumento(documento);
                    contabil.SetConfiguracao(configVPD);
                    processosVPD = contabil.MontarProcessos();
                }
                #endregion

                #region Criar VPD
                List <ChaveConta> chaves = new List <ChaveConta>();
                SimplesLancamentoContabil.AdicionarChaves(chaves, processosVPD);

                var move = new MovimentacaoFinanceira();
                move.AdicionarProcesso(processosVPD);
                move.Validar();
                move.LiberarDocumento(documento);
                using (ControleConta cc = new ControleConta(chaves))
                {
                    cc.Validar();
                    using (var ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions {
                        IsolationLevel = ControleConta.IsolationLevelLancamentoContabil
                    }))
                    {
                        using (GenericoSalvarLancamento save = new GenericoSalvarLancamento(documento, configVPD))
                        {
                            save.GerarLancamentos(processosVPD);
                            save.Salvar();
                        }
                        ts.Complete();

                        numeroDocumentoGerado = documento.Numero;
                    }
                }
                #endregion
            }
            catch (CFP.Util.SPFException ex)
            {
                status   = "Erro";
                mensagem = ex.Message;
            }

            return(Json(new { Status = status, Mensagem = mensagem, NumeroDocumentoGerado = numeroDocumentoGerado }, JsonRequestBehavior.AllowGet));

            //return View(vpdEstorno);
        }