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")); } }
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"); }
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")); } }
public void Salva(Baixa baixa) { contexto.Add(baixa); contexto.SaveChanges(); }
/// <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); }