public ActionResult Create(int idFuncionario, int ano, int mes) { try { using (var db = new Context()) { CultureInfo culture = new CultureInfo("pt-BR"); DateTimeFormatInfo dtfi = culture.DateTimeFormat; var _feriadoBLL = new BLL.FeriadoBLL(db, _idUsuario); var _bll = new BLL.FuncionarioBLL(db, _idUsuario); var _movimentoBLL = new BLL.MovimentoProfissionalBLL(db, _idUsuario); var empresa = db.Entidades.FirstOrDefault(); var data = new DateTime(ano, mes, 1).AddMonths(1).AddDays(-1); var feriados = _feriadoBLL.Find(u => u.nrMes == mes); var _funcionario = _bll.FindSingle(e => e.idFuncionario == idFuncionario); var _movimentos = _movimentoBLL.Find(e => e.idFuncionario == idFuncionario && e.situacao == MovimentoProfissional.SITUACAO_PENDENTE && e.tipo == MovimentoProfissional.TIPO_COMISSAO); var _result = new FolhaVM { Funcionario = Models.Funcionario.Consultar.GetModel(_funcionario), Pontos = FolhaVM.Ponto.GetPontos(ano, mes, idFuncionario, feriados.ToList(), empresa), Proximos = FolhaVM.Comissao.GetComicoes(_movimentos.Where(u => u.dtVencimento > data).ToList()), Comissoes = FolhaVM.Comissao.GetComicoes(_movimentos.Where(u => u.dtVencimento <= data).ToList()), nrAno = ano, nrMes = mes, dsMes = culture.TextInfo.ToTitleCase(dtfi.GetMonthName(mes)) }; return View(_result); } } catch (Exception ex) { RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario); return RedirectToAction("Index"); } }
public ActionResult Create(FolhaVM model) { if (ModelState.IsValid) { try { LogBLL.Insert(new LogDado("Create", "FolhaPagamento", _idUsuario)); using (var db = new Context()) { using (var trans = new RP.DataAccess.RPTransactionScope(db)) { var _bll = new CartaoPontoBLL(db, _idUsuario); var _movimentoBLL = new MovimentoProfissionalBLL(db, _idUsuario); var _folhaBLL = new FolhaPagamentoBLL(db, _idUsuario); foreach (var item in model.Pontos) { var cartao = new CartaoPonto { dsObservacao = item.dsObservacao, entradaExtra = string.IsNullOrEmpty(item.entradaExtra) ? null : (TimeSpan?)TimeSpan.Parse(item.entradaExtra + ":00"), entradaManha = string.IsNullOrEmpty(item.entradaManha) ? null : (TimeSpan?)TimeSpan.Parse(item.entradaManha + ":00"), entraTarde = string.IsNullOrEmpty(item.entraTarde) ? null : (TimeSpan?)TimeSpan.Parse(item.entraTarde + ":00"), saidaExtra = string.IsNullOrEmpty(item.saidaExtra) ? null : (TimeSpan?)TimeSpan.Parse(item.saidaExtra + ":00"), saidaManha = string.IsNullOrEmpty(item.saidaManha) ? null : (TimeSpan?)TimeSpan.Parse(item.saidaManha + ":00"), saidaTarde = string.IsNullOrEmpty(item.saidaTarde) ? null : (TimeSpan?)TimeSpan.Parse(item.saidaTarde + ":00"), flSituacao = item.flSituacao, idFuncionario = model.Funcionario.idFuncionario ?? 0, dtPonto = new DateTime(model.nrAno, item.nrMes, item.nrDia), }; _bll.Insert(cartao); } if (model.Comissoes != null) { foreach (var item in model.Comissoes) { _movimentoBLL.AtualizaMovimento(item.idMovimento, MovimentoProfissional.SITUACAO_AGUARDANDO_PAGAMENTO); } } var folha = new FolhaPagamento { idFuncionario = model.Funcionario.idFuncionario ?? 0, nrAno = model.nrAno, nrMes = model.nrMes, situacao = FolhaPagamento.AGUARDANDO_PAGAMENTO }; _folhaBLL.Insert(folha); _bll.SaveChanges(); trans.Complete(); this.AddFlashMessage("Folha de pagamento gerada com sucesso!", 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); }