public ActionResult DeleteConfirmed(int id, int baixaid)
 {
     ViewBag.UsuarioLogado = Utils.User.GetCookieUsuarioLogado(Request, Session);
     if (!string.IsNullOrEmpty(ViewBag.UsuarioLogado))
     {
         Utils.User.UsuarioLogado usuariologado = Utils.User.GetDadosUsuarioLogado(ViewBag.UsuarioLogado);
         ViewBag.ModuloFinanceiro = usuariologado.moduloFinanceiro;
         ViewBag.RuleAdmin        = usuariologado.admin;
         ViewBag.RuleFinanceiro   = usuariologado.RuleFinanceiro;
         ViewBag.RuleMovimentacao = usuariologado.RuleMovimentacao;
         ViewBag.RuleCadastro     = usuariologado.RuleCadastro;
         BancoCaixa bancoCaixa = db.BancoCaixa.Find(id, baixaid, usuariologado.empresaId);
         Baixa      baixa      = db.Baixas.Where(x => x.ID == baixaid && x.EmpresaID == usuariologado.empresaId).FirstOrDefault();
         Financeiro financeiro = db.RecPag.Where(x => x.ID == baixa.FinanceiroID && x.ParcelaID == baixa.ParcelaID && x.EmpresaID == usuariologado.empresaId).FirstOrDefault();
         db.BancoCaixa.Remove(bancoCaixa);
         db.Baixas.Remove(baixa);
         db.RecPag.Remove(financeiro);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     else
     {
         TempData["MensagemRetorno"] = "Faça Login para continuar.";
         return(Redirect("~/Login"));
     }
 }
Ejemplo n.º 2
0
    protected void btnGravar_Click(object sender, EventArgs e)
    {
        string mensagem = "";

        Baixa baixa = new Baixa();

        baixa.cod_ficha        = Convert.ToInt32(lbBE.Text);
        baixa.cod_status       = Convert.ToInt32(ddlStatusFicha.SelectedValue);
        baixa.cod_profissional = Convert.ToInt32(ddlProfissional.SelectedValue);
        baixa.data_baixa       = DateTime.Now;
        baixa.obs           = txbJustifica.Text;
        baixa.usuario_baixa = System.Web.HttpContext.Current.User.Identity.Name;

        mensagem = CheckoutDAO.GravaBaixa(baixa.cod_ficha, baixa.cod_status, baixa.cod_profissional, baixa.data_baixa, baixa.obs, baixa.usuario_baixa);
        ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + mensagem + "');", true);

        ClearInputs(Page.Controls);// limpa os textbox

        Response.Redirect("~/Administrativo/checkoutbe.aspx");
    }
Ejemplo n.º 3
0
        public ActionResult BaixaLote(LoteViewModel model, int codigoLote)
        {
            var loteDAO   = new LoteDAO();
            var loteAtual = loteDAO.GetById(codigoLote);

            if (model.QuantidadeBaixa > loteAtual.QuantidadeProduto)
            {
                ModelState.AddModelError("", "Quantidade invalida");
                return(View("ErroQuantidade"));
            }
            else
            {
                var lote = new Lote()
                {
                    CodigoLote        = loteAtual.CodigoLote,
                    QuantidadeProduto = (loteAtual.QuantidadeProduto - model.QuantidadeBaixa), //Subtraindo a quantidade atual.
                };



                loteDAO.Update(lote);

                var baixaDAO = new BaixaDAO();
                var baixa    = new Baixa()
                {
                    DataBaixa             = DateTime.Now,
                    Lote_CodigoLote       = loteAtual.CodigoLote,
                    Produto_CodigoProduto = loteAtual.Produto_CodigoProduto,
                    QuantidadeBaixa       = model.QuantidadeBaixa,
                };

                baixaDAO.Salva(baixa);

                return(RedirectToAction("Index"));
            }
        }
        public ActionResult Create([Bind(Include = "ID,BaixaID,EmpresaID,Tipo,ContaID,TpDocto,PessoaId,DataEmissao,DataVencimento,DataConciliacao,NumeroDocumento,Banco,Agencia,Obs,valor,Cheque,Transferencia,Emitente,PlanoContaID")] BancoCaixa bancoCaixa)
        {
            ViewBag.UsuarioLogado = Utils.User.GetCookieUsuarioLogado(Request, Session);
            if (!string.IsNullOrEmpty(ViewBag.UsuarioLogado))
            {
                Utils.User.UsuarioLogado usuariologado = Utils.User.GetDadosUsuarioLogado(ViewBag.UsuarioLogado);
                ViewBag.ModuloFinanceiro = usuariologado.moduloFinanceiro;
                ViewBag.RuleAdmin        = usuariologado.admin;
                ViewBag.RuleFinanceiro   = usuariologado.RuleFinanceiro;
                ViewBag.RuleMovimentacao = usuariologado.RuleMovimentacao;
                ViewBag.RuleCadastro     = usuariologado.RuleCadastro;
                ViewBag.ContaID          = new SelectList(db.ContaCorrenteCaixas.Where(x => x.EmpresaID == usuariologado.empresaId), "ID", "Descricao", bancoCaixa.ContaID);
                ViewBag.TpDocto          = new SelectList(new BancoCaixa.ListaTipoDocumento().MetodoListaOpcao(), "ID", "Descricao", bancoCaixa.TpDocto);
                ViewBag.Tipo             = new SelectList(new BancoCaixa.ListaTipo().MetodoListaOpcao(), "ID", "Descricao", bancoCaixa.Tipo);
                if (ModelState.IsValid)
                {
                    var observacao = "";
                    if (string.IsNullOrEmpty(bancoCaixa.Obs))
                    {
                        var planoConta = Convert.ToInt32(bancoCaixa.PlanoContaID);
                        var plconta    = db.PlanoContas.Where(x => x.ID == planoConta && x.EmpresaID == usuariologado.empresaId).FirstOrDefault();
                        if (plconta != null)
                        {
                            observacao = plconta.Conta + " - " + plconta.Descricao;
                        }
                    }
                    else
                    {
                        observacao = bancoCaixa.Obs;
                    }
                    //finaneiro
                    Financeiro financeiro = new Financeiro();
                    var        contador2  = db.RecPag.Count(x => x.EmpresaID == usuariologado.empresaId);
                    financeiro.ID              = LibProdusys.GetNewCode("financeiro", "id", " empresaid = " + usuariologado.empresaId.ToString());
                    financeiro.ParcelaID       = 1;
                    financeiro.Competencia     = Convert.ToDateTime(bancoCaixa.DataEmissao).ToString("yyyy-MM");
                    financeiro.PessoaID        = Convert.ToInt32(bancoCaixa.PessoaId);
                    financeiro.Tipo            = bancoCaixa.Tipo;
                    financeiro.Valor           = bancoCaixa.valor;
                    financeiro.ValorBaixado    = bancoCaixa.valor;
                    financeiro.CategoriaID     = Convert.ToInt32(bancoCaixa.PlanoContaID);
                    financeiro.DataEmissao     = Convert.ToDateTime(bancoCaixa.DataEmissao);
                    financeiro.DataLiquidacao  = bancoCaixa.DataEmissao;
                    financeiro.DataVencimento  = Convert.ToDateTime(bancoCaixa.DataVencimento);
                    financeiro.EmpresaID       = Convert.ToInt32(usuariologado.empresaId);
                    financeiro.NumeroDocumento = bancoCaixa.NumeroDocumento;
                    financeiro.Observacao      = LibProdusys.FS(observacao);
                    db.RecPag.Add(financeiro);
                    db.SaveChanges();

                    //baixa
                    Baixa baixa    = new Baixa();
                    var   contador = db.Baixas.Count(x => x.EmpresaID == usuariologado.empresaId);
                    baixa.ID = LibProdusys.GetNewCode("baixa", "id", " empresaid = " + usuariologado.empresaId.ToString());

                    baixa.FinanceiroID = financeiro.ID;
                    baixa.ParcelaID    = financeiro.ParcelaID;
                    baixa.Valor        = financeiro.Valor;
                    baixa.Juros        = financeiro.Juros;
                    baixa.Multa        = financeiro.Multa;
                    baixa.Desconto     = financeiro.Desconto;
                    baixa.JMD          = baixa.Juros + baixa.Multa - baixa.Desconto;
                    baixa.Total        = baixa.Valor + baixa.JMD;

                    if (financeiro.DataLiquidacao == null)
                    {
                        baixa.DataBaixa = DateTime.Now;
                    }
                    else
                    {
                        baixa.DataBaixa = financeiro.DataLiquidacao;
                    }

                    baixa.Obs       = LibProdusys.FS(observacao);
                    baixa.EmpresaID = Convert.ToInt32(usuariologado.empresaId);
                    db.Baixas.Add(baixa);
                    db.SaveChanges();

                    var alteraRecpag = db.RecPag.Where(x => x.EmpresaID == usuariologado.empresaId && x.ID == financeiro.ID && x.ParcelaID == financeiro.ParcelaID).FirstOrDefault();
                    alteraRecpag.ValorBaixado    = Convert.ToDecimal(baixa.Total);
                    db.Entry(alteraRecpag).State = EntityState.Modified;
                    db.SaveChanges();

                    //controle conta corrente/caixa
                    var conta = db.ContaCorrenteCaixas.Where(x => x.EmpresaID == usuariologado.empresaId && x.ID == bancoCaixa.ContaID).FirstOrDefault();

                    bancoCaixa.ID        = LibProdusys.GetNewCode("bancocaixa", "id", " empresaid = " + usuariologado.empresaId.ToString());
                    bancoCaixa.EmpresaID = Convert.ToInt32(usuariologado.empresaId);

                    bancoCaixa.Obs     = LibProdusys.FS(observacao);
                    bancoCaixa.Agencia = conta.Agencia;
                    bancoCaixa.Banco   = Convert.ToString(conta.Banco);
                    bancoCaixa.ContaID = conta.ID;
                    bancoCaixa.BaixaID = baixa.ID;
                    bancoCaixa.Conta   = conta.NumeroConta;
                    db.BancoCaixa.Add(bancoCaixa);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }

                return(View(bancoCaixa));
            }
            else
            {
                TempData["MensagemRetorno"] = "Faça Login para continuar.";
                return(Redirect("~/Login"));
            }
        }
Ejemplo n.º 5
0
 public void Salva(Baixa baixa)
 {
     contexto.Add(baixa);
     contexto.SaveChanges();
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Realiza a baixa dos lançamentos informados
        /// </summary>
        /// <param name="lancamentos"></param>
        /// <param name="conta"></param>
        /// <param name="dataBaixa"></param>
        /// <param name="frmPagto"></param>
        /// <returns></returns>
        public bool BaixarLancamentos(List <LancamentoFinanceiro> lancamentos,
                                      ContaBancaria conta, Nullable <DateTime> dataBaixa, FormaPagamento frmPagto)
        {
            //liberado manualmente
            var ctx = new BalcaoContext();

            bool transation = false;


            //Esse foreach eh muito sensivel
            //Entao deve se evitar mexer no objeto da estrutura dele
            foreach (var l in lancamentos)
            {
                //traz o lancamento pro contexto atual
                var current = ctx.LancamentoFinanceiroDao.Find(l.IdLancamento);

                //se a data da baixa enviada for nula, utilizar a data de vencimento (pra facilitar a geracao dos cenarios)
                if (dataBaixa == null)
                {
                    dataBaixa = l.DataVencimento;
                }
                else if (dataBaixa != l.DataVencimento)
                {
                    dataBaixa = l.DataVencimento;
                }
                else
                {
                }

                //valor da baixa
                var valorBaixa = l.TotalLancamento;

                //se o valor recebido informado for menor que o valor do lancamento
                //crie outro lançamento
                if (l.ValorLancamento < current.ValorLancamento)
                {
                    LancamentoFinanceiro pRestante = current.Clone();

                    //somente o valor sendo pago
                    pRestante.ValorLancamento = current.ValorLancamento - l.ValorLancamento;

                    //prolongue o prazo a partir da data do pagamento
                    var vencimento = dataBaixa.Value.AddDays(30);
                    //use a data do lançamento
                    pRestante.DiasPrazo = DataUtil.CalcularDias(l.DataLancamento, vencimento);

                    //sem juros
                    pRestante.ValorJuros = 0;

                    //incrementa o numero para nova parcela
                    pRestante.SequencialParcela = current.SequencialParcela + 1;


                    if (current.IdVenda != null)
                    {
                        var v = ctx.VendaDao.Find(current.IdVenda);

                        if (v.Parcelas.Count > 0)
                        {
                            var lastOrDefault = v.Parcelas.First();
                            current.Observacao = "REF. VENDA Nº.: " + v.IdVenda + " | PARCELA ALTERADA Nº: "
                                                 + lastOrDefault.SequencialParcela;

                            pRestante.Observacao = "REF. VENDA Nº.: " + v.IdVenda + " | PARCELA ADICIONAL Nº: "
                                                   + lastOrDefault.SequencialParcela + 1;
                        }
                    }
                    else
                    {
                        current.Observacao   += " | PARCELA ALTERADA";
                        pRestante.Observacao += " | PARCELA ADICIONAL Nº:" + current.SequencialParcela + 1;
                    }


                    //salve a nova parcela

                    ctx.LancamentoFinanceiroDao.Save(pRestante);

                    //atualize o valor do lançamento sendo pago
                    current.ValorLancamento = l.ValorLancamento;
                    current.ValorJuros      = l.ValorJuros;
                }

                //inicia o update do objeto do banco => lancto
                current.IdFormaPagamento = frmPagto.IdFormaPagamento;
                current.DataPagamento    = dataBaixa;
                current.ValorJuros       = l.ValorJuros;

                //marque como Pago/Recebido
                current.StatusLancamento = TypeStatusLancamentoFinanceiro.Pago;

                //crie uma baixa para o lancamento
                Baixa baixa = new Baixa(valorBaixa, current.IdLancamento, dataBaixa.Value);
                current.Baixas.Add(baixa);

                //gera os extratos por referencia
                generateExtrato(current, dataBaixa.Value, valorBaixa, conta);

                //efetiva transacao no banco
                if (!ctx.LancamentoFinanceiroDao.Update(current))
                {
                    XMessageIts.Advertencia("Baixa " + current.IdLancamento + " cancelada.");
                }
                else
                {
                    //ok
                    transation = true;

                    //atualiza no grid
                    l.Update(current);

                    //garante a alteração
                    ctx.LancamentoFinanceiroDao.Dispose();

                    if (l.IdVenda != null)
                    {
                        //acessando o contexto com a alteração efetivada
                        ctx = new BalcaoContext();

                        Venda venda = ctx.Vendas.First(v => v.IdVenda == current.IdVenda.Value);

                        //todas as parcelas foram pagas
                        if (!venda.Parcelas.ToList().Exists(p => p.DataPagamento == null))
                        {
                            venda.StatusVenda = TypeStatusVenda.Paga;
                        }
                        else
                        {
                            venda.StatusVenda = TypeStatusVenda.Parcial;
                        }

                        ctx.VendaDao.Update(venda);
                    }
                }
            }
            return(transation);
        }