public ActionResult Pagar(PagarVM model) { if (ModelState.IsValid) { try { LogBLL.Insert(new LogDado("Pagar", "FolhaPagamento", _idUsuario)); using (var db = new Context()) { using (var trans = new RP.DataAccess.RPTransactionScope(db)) { var _bll = new BLL.FolhaPagamentoBLL(db, _idUsuario); var _folha = _bll.FindSingle(u => u.idFolhaPagamento == model.idFolha); _folha.situacao = FolhaPagamento.PAGO; _folha.total = model.totalReceber ?? 0; if (model.Movimentos != null) { _folha.comissao = model.Movimentos.Sum(u => u.comissao) ?? 0; _folha.vale = model.Movimentos.Sum(u => u.vale) ?? 0; } _folha.salario = model.salario ?? 0; _folha.bonificacao = model.bonificacao ?? 0; _folha.outrosDescontos = model.outrosDescontos ?? 0; _folha.dsBonificacao = string.IsNullOrEmpty(model.dsBonificacao) ? "Bonificação referente ao mês de " + model.dsMes : model.dsBonificacao; _folha.dsOutrosDescontos = string.IsNullOrEmpty(model.dsOutrosDescontos) ? "Descontos adicionais referente ao mês de " + model.dsMes : model.dsOutrosDescontos; _folha.inss = model.inss ?? 0; _folha.FGTS = model.FGTS ?? 0; _folha.horaExtra = model.horaExtra ?? 0; _bll.Update(_folha); //realizar pagamento e retirada do caixa var _caixaBLL = new BLL.CaixaBLL(db, _idUsuario); var _conta = new ContaPagar { descricao = "Pagamento realizado para " + model.Funcionario.nome + " referente ao mes " + model.dsMes + " de " + model.nrAno, valorConta = _folha.total, valorPago = _folha.total, vencimento = DateTime.Now, pagamento = DateTime.Now, parcela = 1, flFormaPagamento = "Dinheiro", situacao = ContaPagar.SITUACAO_PAGO, idUsuario = this._idUsuario, idFolhaPagamento = model.idFolha }; var _caixa = new Caixa { ContaPagar = _conta, situacao = Caixa.CORENTE, valor = (_folha.total * -1), descricao = "Pagamento realizado para " + model.Funcionario.nome + " referente ao mes " + model.dsMes + " de " + model.nrAno, dtLancamento = DateTime.Now }; _caixaBLL.Insert(_caixa); // atualiza os movimentos if (model.Movimentos != null) { var _movimentoBLL = new MovimentoProfissionalBLL(db, _idUsuario); foreach (var item in model.Movimentos) { _movimentoBLL.AtualizaMovimento(item.idMovimento, MovimentoProfissional.SITUACAO_PAGO, _folha); } } _bll.SaveChanges(); trans.Complete(); this.AddFlashMessage("Pagamento reaizado com sucesso, verifique contas a pagar!", FlashMessage.SUCCESS); return RedirectToAction("Index"); } } } catch (Exception ex) { Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario); return RedirectToAction("Index", "Erro", new { area = string.Empty }); } } return View(model); }
public ActionResult Pagar(int idFolha, int idFuncionario, int ano, int mes) { try { using (var db = new Context()) { var culture = new CultureInfo("pt-BR"); var dtfi = culture.DateTimeFormat; var _bll = new BLL.FuncionarioBLL(db, _idUsuario); var _movimentoBLL = new BLL.MovimentoProfissionalBLL(db, _idUsuario); var _funcionario = _bll.FindSingle(e => e.idFuncionario == idFuncionario); var _movimentos = _movimentoBLL.Find(e => e.idFuncionario == idFuncionario && ((e.situacao == MovimentoProfissional.SITUACAO_AGUARDANDO_PAGAMENTO && e.tipo == MovimentoProfissional.TIPO_COMISSAO )|| (e.situacao == MovimentoProfissional.SITUACAO_PENDENTE && e.tipo == MovimentoProfissional.TIPO_VALE))); var _result = new PagarVM { Funcionario = Models.Funcionario.Consultar.GetModel(_funcionario), Movimentos = PagarVM.Movimento.GetMovimentos(_movimentos.ToList()), nrAno = ano, nrMes = mes, dsMes = culture.TextInfo.ToTitleCase(dtfi.GetMonthName(mes)), salario = _funcionario.salario, mensalista = _funcionario.flMensalista, idFolha = idFolha }; return View(_result); } } catch (Exception ex) { Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario); return RedirectToAction("Index", "Erro", new { area = string.Empty }); } }