//OUTRAS FUNÇÕES public void MonthlySum(FaturacaoOperador faturacao) { //Código que vai buscar o ID do funcionário que tem login feito e atribui automaticamente ao contrato var funcionario = _context.Users.SingleOrDefault(c => c.Email == User.Identity.Name); //DateTime data = DateTime.Today.AddMonths(-1); //DateTime dia = DateTime.Today; DateTime data = DateTime.Today.AddMonths(-1); var FisrtDayMonth = new DateTime(data.Year, data.Month, 1); var LastDayMonth = FisrtDayMonth.AddMonths(1).AddMinutes(-1); DateTime dia = DateTime.Today; var dia1 = new DateTime(dia.Year, dia.Month, 1); DateTime finaldia = dia1.AddMonths(1).AddMinutes(-1); var fat = _context.FaturacaoOperadors.Where(d => d.Data >= dia1 && d.Data <= finaldia && d.FuncinarioId == funcionario.UsersId) .SingleOrDefault(c => c.Mes.MesId == data.Month); if (fat == null) { var contratos = _context.Contratos.Where(d => d.DataInicio >= FisrtDayMonth && d.DataInicio <= LastDayMonth && d.FuncionarioId == funcionario.UsersId) .Include(d => d.Funcionario) .Sum(d => d.PrecoContrato); faturacao.Data = DateTime.Today; faturacao.FuncinarioId = funcionario.UsersId; faturacao.MesId = data.Month; faturacao.ValorMensalFat = contratos; _context.Add(faturacao); _context.SaveChanges(); } return; }
public async Task <IActionResult> Edit(int id, [Bind("FatOpId,Data,valorMensalFat,MesId,FuncinarioId")] FaturacaoOperador faturacaoOperador) { if (id != faturacaoOperador.FatOpId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(faturacaoOperador); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FaturacaoOperadorExists(faturacaoOperador.FatOpId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["MesId"] = new SelectList(_context.Meses, "MesId", "MesId", faturacaoOperador.MesId); return(View(faturacaoOperador)); }
// GET: OperadorViewModel public async Task <IActionResult> Index(int?id, OperadorViewModel operador) { var userEmail = _gestorUtilizadores.GetUserName(HttpContext.User); Users infoOperador = await _context.Users.SingleOrDefaultAsync(x => x.Email == userEmail); List <Users> melhoresOperadores = await _context.Users.Where(p => p.Tipo.Tipo.Contains("Operador") && p.DistritoId == infoOperador.DistritoId) .Include(d => d.DistritoNome) .OrderByDescending(c => c.PrecoContratosFunc) .ToListAsync(); int x = 0; ListaCanaisViewModel modelo = new ListaCanaisViewModel { Users = melhoresOperadores, }; foreach (var item in modelo.Users) { x++; item.Posicao = x; } //var userEmail = _gestorUtilizadores.GetUserName(HttpContext.User); //Users infoOperador = await _context.Users.SingleOrDefaultAsync(x => x.Email == userEmail); FaturacaoOperador op = await _context.FaturacaoOperadors.SingleOrDefaultAsync(x => x.FuncinarioId == infoOperador.UsersId); operador = new OperadorViewModel { Id = infoOperador.UsersId, NomeOperador = infoOperador.Nome, DataNascimento = infoOperador.Data, CartaoCidadao = infoOperador.CartaoCidadao, NumeroContribuinte = infoOperador.Contribuinte, Morada = infoOperador.Morada, CodiogoPostal = infoOperador.CodigoPostal, ExtensaoCodigoPostal = infoOperador.CodigoPostalExt, Telefone = infoOperador.Telefone, Telemovel = infoOperador.Telemovel, Email = infoOperador.Email, DataRegisto = infoOperador.DataRegisto, DistritoNome = infoOperador.DistritoNome, PrecoContratosFunc = infoOperador.PrecoContratosFunc, Posicao = infoOperador.Posicao, ValorMensalFat = op.ValorMensalFat, Fotografia = infoOperador.Fotografia, }; return(View(operador)); }
public async Task <IActionResult> Create([Bind("FatOpId,Data,valorMensalFat,MesId,FuncinarioId")] FaturacaoOperador faturacaoOperador) { if (ModelState.IsValid) { _context.Add(faturacaoOperador); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["MesId"] = new SelectList(_context.Meses, "MesId", "MesId", faturacaoOperador.MesId); return(View(faturacaoOperador)); }
//Escolha de mês para ver a faturação public IActionResult Contabilizar(FaturacaoOperador faturacao) { MonthlySum(faturacao); return(RedirectToAction("Index", "OperadorViewModel")); }