public async Task <IActionResult> AtrelarEvento(GrupoEvento grupo) { //Recarrega os combos Util carregamentoCombo = ObtemComboGruposEventos(); if (!ModelState.IsValid) { ViewBag.ListaGrupos = carregamentoCombo.ListaGrupos; ViewBag.ListaEventos = carregamentoCombo.ListaEventos; return(View(grupo)); } var retorno = await _grupoAppService.AtrelarGrupoEvento(grupo); if (retorno != null) { ViewBag.Codigo = retorno.cdretorno; ViewBag.Mensagem = retorno.mensagem; ViewBag.ListaGrupos = carregamentoCombo.ListaGrupos; ViewBag.ListaEventos = carregamentoCombo.ListaEventos; TempData["Mensagem"] = retorno.mensagem; TempData["Codigo"] = retorno.cdretorno; if (retorno.cdretorno == 1) { return(View(grupo)); } } return(RedirectToAction("AtrelarEvento")); }
public GrupoEventoViewModel SortearEvento(GrupoEvento evento) { string url = _baseAppService.GetUrlApi() + "api/Sorteio/Sortear"; var stringContent = new StringContent(JsonConvert.SerializeObject(evento), UnicodeEncoding.UTF8, "application/json"); var response = _http.PostAsync(url, stringContent).Result; string json = response.Content.ReadAsStringAsync().Result; var retorno = JsonConvert.DeserializeObject <GrupoEventoViewModel>(json); return(retorno); }
public Retorno AtrelarGrupoEvento(GrupoEvento grupo) { string url = _baseAppService.GetUrlApi() + "api/Grupo/AtrelarGrupoEvento"; var stringContent = new StringContent(JsonConvert.SerializeObject(grupo), UnicodeEncoding.UTF8, "application/json"); var response = _http.PostAsync(url, stringContent).Result; var json = response.Content.ReadAsStringAsync(); var retorno = JsonConvert.DeserializeObject <Retorno>(json.Result); return(retorno); }
private void RemoveEventos(GrupoEvento grpEvento) { using (var ctx = new BalcaoContext()) { foreach (var evt in grpEvento.EventosGrupo.Where(e => e.Removed == true)) { var r = ctx.EventosGrupoDao.Find(evt.IdEvtGrupo); ctx.EventosGrupoDao.Delete(r); } } }
public IActionResult btnSorteio(GrupoViewModel grupoViewModel) { GrupoEvento grupoEvento = new GrupoEvento { IdGrupoEvento = 1 }; //Chamando API para cadastrar o usuário na base using (HttpClient client = new HttpClient()) { //Setando endereço da API client.BaseAddress = new System.Uri("http://localhost:51889/api/sorteio"); //Limpando header client.DefaultRequestHeaders.Accept.Clear(); //Adicionando um novo header do tipo JSON client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); //Transformando obj Usuario em uma string string stringData = JsonConvert.SerializeObject(grupoEvento); //Transformando string em um arquivo do tipo JSON var contentData = new StringContent(stringData, System.Text.Encoding.UTF8, "application/json"); //Chamando API passando o arquivo JSON HttpResponseMessage response = client.PostAsync("http://localhost:51889/api/sorteio", contentData).Result; //Passando retorno da API para uma string string retorno = response.Content.ReadAsStringAsync().Result; //Fragmentando retorno do arquivo json dynamic resultado = JsonConvert.DeserializeObject(retorno); //Enviando retorno para a tela ViewBag.grupoEvento = resultado.resultado[0].IdGrupoEvento; ViewBag.cdGrupo = resultado.resultado[0].CdGrupo; ViewBag.dtEvento = resultado.resultado[0].DtEvento; ViewBag.nmEvento = resultado.resultado[0].NmEvento; ViewBag.nmEndereco = resultado.resultado[0].NmEndereco; ViewBag.vlEvento = resultado.resultado[0].VlEvento; GrupoViewModel viewModel = new GrupoViewModel { IdGrupoEvento = resultado.resultado[0].IdGrupoEvento, cdGrupo = resultado.resultado[0].CdGrupo, dtEvento = resultado.resultado[0].DtEvento, nmEvento = resultado.resultado[0].NmEvento, nmEndereco = resultado.resultado[0].NmEndereco, vlEvento = resultado.resultado[0].VlEvento }; return(View(viewModel)); } }
public IActionResult SortearEvento(int CdGrupo, int IdGrupoEvento) { var evento = new GrupoEvento() { CdGrupo = CdGrupo, IdGrupoEvento = IdGrupoEvento }; var model = _eventoAppService.SortearEvento(evento); return(PartialView("_DetalheSorteio", model)); }
public int GeraSorteio(GrupoEvento grupoEvento, dbAlienContext dbContext) { int idGrupoEvento = 0, eventoSorteado = 0; idGrupoEvento = grupoEvento.IdGrupoEvento.Value; var varGrupoEvento = dbContext.GrupoEvento.FirstOrDefault(u => u.IdGrupoEvento == idGrupoEvento); var evento = ObtemEventosParaSortear(varGrupoEvento.CdGrupo, idGrupoEvento); eventoSorteado = ExecutaSorteio(evento); GravaSorteio(dbContext, varGrupoEvento, eventoSorteado); return(0); }
public JsonResult AtrelarGrupoEvento([FromBody] GrupoEvento group) { if (!ModelState.IsValid) { return(Json(new { cdretorno = 1, mensagem = "Chamada fora do padrão, favor verificar!" })); //return BadRequest(); } _dbcontext.Add(group); _dbcontext.SaveChanges(); //return Ok("Vinculação realizada com sucesso!"); return(Json(new { cdretorno = 0, mensagem = "Vinculação realizada com sucesso!" })); }
public IActionResult Sortear([FromBody] GrupoEvento grupoEvento) { Sorteio sorteio = new Sorteio(_configuration); int cdEvento = sorteio.GeraSorteio(grupoEvento, _dbcontext); var result = new List <GrupoEventoViewModel>(); if (cdEvento == 0) { return(Json(new { cdretorno = 1, mensagem = "O evento selecionado não está atrelado a este grupo!", data = result })); } result = sorteio.BuscaSorteio(_dbcontext, grupoEvento); return(Json(new { cdretorno = 0, mensagem = "Sucesso!", data = result })); }
private GrupoEvento indexarFormulario(GrupoEvento Grpevt) { if (Grpevt != null) { txtCodGrpEvento.Text = Grpevt.CodigoGrupo; txtDescricaoGrpEvento.Text = Grpevt.DescricaoGrupo; txtObservacoes.Text = Grpevt.Observacoes; var q = from e in Grpevt.EventosGrupo select new EventosGrupo() { Evento = e.Evento, IdEvento = e.IdEvento, ImprimirHolerite = e.ImprimirHolerite, IdEvtGrupo = e.IdEvtGrupo, IdGrupoEvento = e.IdGrupoEvento }; this.eventosGrupo = q.ToList(); gridControlEventosGrp.DataSource = this.eventosGrupo; } return(Grpevt); }
public IActionResult AtrelarEvento(GrupoEvento grupo) { if (!ModelState.IsValid) { return(View()); } var retorno = _grupoAppService.AtrelarGrupoEvento(grupo); if (retorno != null) { ViewBag.Codigo = retorno.cdretorno; ViewBag.Mensagem = retorno.mensagem; TempData["Mensagem"] = retorno.mensagem; TempData["Codigo"] = retorno.cdretorno; } return(RedirectToAction("AtrelarEvento")); }
private GrupoEvento indexarDados() { var codigo = txtCodGrpEvento.Text; var descricao = txtDescricaoGrpEvento.Text; var obs = txtObservacoes.Text; var grpEvento = new GrupoEvento() { CodigoGrupo = codigo, DescricaoGrupo = descricao, Observacoes = obs }; foreach (var ev in this.eventosGrupo) { grpEvento.EventosGrupo.Add(ev); } return(grpEvento); }
public List <GrupoEventoViewModel> BuscaSorteio(dbAlienContext dbContext, GrupoEvento grupoEvento) { int cdEvento = 0; cdEvento = (int)grupoEvento.CdEvento; var resultado = (from ge in dbContext.GrupoEvento.Where(w => w.IdGrupoEvento == grupoEvento.IdGrupoEvento) join e in dbContext.Evento on new { ge.CdEvento } equals new { e.CdEvento } select new GrupoEventoViewModel() { IdGrupoEvento = ge.IdGrupoEvento, CdGrupo = ge.CdGrupo, DtEvento = ge.DtEvento, NmEvento = e.NmEvento, NmEndereco = e.NmEndereco, VlEvento = e.VlEvento }).ToList(); return(resultado); }
public XFrmAddGrupoEvento(GrupoEvento grupoEvento) : this() { this.grpEventoAnt = indexarFormulario(grupoEvento); }
//Gerar ficha financeira de cada funcionario. private ICollection <FichaFinanceiraFuncionario> GerarFichaFinanceira(FuncionarioCompetencia funcionario, GrupoEvento grupo, TypeTipoFechamentoFolha p_tipoFechamento) { var dataRef = funcionario.Competencia.DataFinalCompetencia; foreach (var evento in grupo.EventosGrupo) { //salario contratual if (evento.Evento.CodigoCalculo == TypeCodigoCalculo.SalarioBase) { var qtd = obtemDiasFolha(p_tipoFechamento); var salario = GetSalarioCompetencia(p_tipoFechamento, funcionario); FichaFinanceiraFuncionario fichaFin = new FichaFinanceiraFuncionario(funcionario, evento.Evento, salario, evento.Evento.TipoReferencia, dataRef, qtd); fichaFin.Evento = evento.Evento; if (fichaFin.ValorMovimento > 0M) { funcionario.FichaFinanceiraFuncionario.Add(fichaFin); } } //calculo do INSS else if (evento.Evento.CodigoCalculo == TypeCodigoCalculo.INSS) { FichaFinanceiraFuncionario fichaFin = new FichaFinanceiraFuncionario( funcionarioComp: funcionario, evento: evento.Evento, valor: ValorInss(funcionario), tipoReferencia: evento.Evento.TipoReferencia, dataRef: dataRef, quantidade: GetAliquotaInss(funcionario)); fichaFin.Evento = evento.Evento; if (fichaFin.ValorMovimento > 0M) { funcionario.FichaFinanceiraFuncionario.Add(fichaFin); } } //valor do FGTS no mês. Aliquota sempre é 8% else if (evento.Evento.CodigoCalculo == TypeCodigoCalculo.FGTS) { decimal vlrFGTS = (funcionario.Funcionario.Salario * 8) / 100; funcionario.ValorFgts = vlrFGTS; FichaFinanceiraFuncionario fichaFin = new FichaFinanceiraFuncionario(funcionario, evento.Evento, vlrFGTS, evento.Evento.TipoReferencia, dataRef, 8); fichaFin.Evento = evento.Evento; if (fichaFin.ValorMovimento > 0M) { funcionario.FichaFinanceiraFuncionario.Add(fichaFin); } } //Valor do IRRF no mês, lanca o evento somente se aliquota for maior que 0 else if (evento.Evento.CodigoCalculo == TypeCodigoCalculo.IRRF) { var aliqIRRF = GetAliquotaIrrf(funcionario); if (aliqIRRF > 0) { decimal vlrIRRF = (funcionario.Funcionario.Salario - ValorInss(funcionario)) * aliqIRRF / 100; vlrIRRF -= GetDeducaoIrrf(funcionario); FichaFinanceiraFuncionario fichaFin = new FichaFinanceiraFuncionario(funcionario, evento.Evento, vlrIRRF, evento.Evento.TipoReferencia, dataRef, aliqIRRF); fichaFin.Evento = evento.Evento; funcionario.FichaFinanceiraFuncionario.Add(fichaFin); } } else //qualquer outro codigo de calculo não tratado especificamente igual os acima... { FichaFinanceiraFuncionario fichaFin = new FichaFinanceiraFuncionario( funcionarioComp: funcionario, evento: evento.Evento, valor: 0M, //valor eh 0 pq é pra ser editado na folha tipoReferencia: evento.Evento.TipoReferencia, dataRef: dataRef, quantidade: GetAliquotaInss(funcionario)); fichaFin.Evento = evento.Evento; funcionario.FichaFinanceiraFuncionario.Add(fichaFin); } } //percorrendo eventos cadastrados para o funcionario foreach (var eventoFunc in funcionario.Funcionario.Eventos) { FichaFinanceiraFuncionario fichaFin = new FichaFinanceiraFuncionario(funcionario, eventoFunc.Evento, eventoFunc.Valor, eventoFunc.Evento.TipoReferencia, dataRef, 0M); fichaFin.Evento = eventoFunc.Evento; funcionario.FichaFinanceiraFuncionario.Add(fichaFin); } return(funcionario.FichaFinanceiraFuncionario); }
public bool ExecutaCalculoFolha(DateTime periodo, object usuario, object tipoFechamento, object grupoEvento, bool considerGrpFunc, CancellationTokenSource cts) { using (var ctx = new BalcaoContext()) { Usuario p_usuario = usuario as Usuario; TypeTipoFechamentoFolha p_tipoFechamento = tipoFechamento != null ? (TypeTipoFechamentoFolha)tipoFechamento : TypeTipoFechamentoFolha.Mensal; GrupoEvento p_grupoEvento = grupoEvento as GrupoEvento; try { server.InsertLogTask(new LogIts(this.itsTask.IdTask, "Buscando funcionarios....")); //busca os funcionarios que irão entrar no calculo da folha var funcionariosFolha = ctx.FuncionarioDao.Where(f => (f.Situacao == TypeSituacaoFuncionario.Admitido || f.Situacao == TypeSituacaoFuncionario.Ferias) && f.DataAdmissao.Date <= periodo) .ToList(); //criando a competencia var competencia = new CompetenciaFolha(DataUtil.GetDataFinalDoMes(periodo), p_usuario, p_tipoFechamento); #region validacoes if (funcionariosFolha.Count == 0) { throw new Exception("Não foram encontrados funcionários ativos na competência selecionada."); } //verifica se ja existe competencia com o mesmo periodo e periodicidade criada. if (IsCompetenciaExistente(competencia)) { throw new Exception("Competencia ja existente!"); } if (p_grupoEvento.EventosGrupo.Count == 0) { throw new GrupoEventoVazio(); } #endregion //Adiciona um funcionario à competencia server.InsertLogTask(new LogIts(this.itsTask.IdTask, "Adicionando funcionarios na competencia em criacao...")); funcionariosFolha.ForEach(fu => { competencia.FuncionariosCompetencia.Add(new FuncionarioCompetencia(fu) { Competencia = competencia }); }); ICollection <FichaFinanceiraFuncionario> teste; foreach (var funcComp in competencia.FuncionariosCompetencia.ToList()) { //verifica se foi cancelada a cada passada no laço VerificaSuspensao(cts.IsCancellationRequested); GrupoEvento grupo; if (considerGrpFunc && funcComp.Funcionario.GrupoDefault != null) { grupo = funcComp.Funcionario.GrupoDefault; } else { grupo = p_grupoEvento; } teste = GerarFichaFinanceira(funcComp, grupo, p_tipoFechamento); teste.ToList().ForEach(ff => { funcComp.FichaFinanceiraFuncionario.Add(ff); }); } //manipulacao do funcionarioCompetencia, dentro do .ForEach foreach (var funcionario in competencia.FuncionariosCompetencia) { //verifica se foi cancelada a cada passada no laço VerificaSuspensao(cts.IsCancellationRequested); foreach (var ficha in funcionario.FichaFinanceiraFuncionario) { if (ficha.Evento.SomaBaseINSS) { funcionario.ValorBaseInss += ficha.ValorMovimento; } if (ficha.Evento.SomaBaseIRRF) { funcionario.ValorBaseIrrf += ficha.ValorMovimento; } funcionario.ValorAliquotaIrrf = GetAliquotaIrrf(funcionario); //zera a referencia ficha.Evento = null; } } server.InsertLogTask(new LogIts(this.itsTask.IdTask, "Gravando dados....")); var rt = ctx.CompetenciaFolhaDao.Save(competencia); server.InsertLogTask(new LogIts(this.itsTask.IdTask, "Finalizando processo...")); server.InsertLogTask(new LogIts(this.itsTask.IdTask, competencia.FuncionariosCompetencia.Count + " funcionarios na competencia criada..")); server.InsertLogTask(new LogIts(this.itsTask.IdTask, "Processo finalizado.")); return(rt); } catch (Exception ex) { throw ex; //XMessageIts.Advertencia(ex.Message); } } }
public void GravaSorteio(dbAlienContext dbContext, GrupoEvento vargrupoEvento, int cdEvento) { vargrupoEvento.CdEvento = cdEvento; dbContext.GrupoEvento.Update(vargrupoEvento); dbContext.SaveChanges(); }