public ActionResult <IEnumerable <string> > AddRewards([FromBody] OverTimeRewards form) { string currentUserId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; var _clientid = Guid.Parse(currentUserId); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var NewOverTimeRewards = new OverTimeRewards { OverTimeRewards_Price = form.OverTimeRewards_Price, Employees_Id = form.Employees_Id, OverTimeRewards_Date = form.OverTimeRewards_Date, OverTimeRewards_Enterid = _clientid, OverTimeRewards_Note = form.OverTimeRewards_Note, }; _context.OverTimeRewards.Add(NewOverTimeRewards); _context.SaveChanges(); return(Ok(new Response { Message = "Done !", Data = NewOverTimeRewards, Error = false })); }
public ActionResult <IEnumerable <string> > CloseTask([FromBody] CloseDto from, Guid TaskId) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var time = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now); var time1 = time.AddHours(3); string currentUserId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; var _clientid = Guid.Parse(currentUserId); var Task = _context.Tasks.Where(x => x.Id == TaskId).FirstOrDefault(); Task.Task_Employee_Close = _clientid; Task.Task_Done = time1; Task.Task_Status = 3; Task.Task_closed_Note = from.Task_closed_Note; _context.Entry(Task).State = Microsoft.EntityFrameworkCore.EntityState.Modified; var taskrewards = _context.RewardsTable.Where(x => x.Id == Task.Task_Price_rewards).FirstOrDefault(); var followers = _context.TaskFollowers.Where(x => x.TaskId == TaskId).ToList(); decimal num = taskrewards.RewardsPrice / (followers.Count + 1); var Rewards = new OverTimeRewards { Employees_Id = Task.Task_Employee_WorkOn, OverTimeRewards_Enterid = Task.Task_Employee_Open, OverTimeRewards_Date = Task.Task_Done, OverTimeRewards_Note = "مكافئة عمل" + " : " + Task.Task_Title, OverTimeRewards_Price = num }; _context.OverTimeRewards.Add(Rewards); _context.SaveChanges(); foreach (var i in followers) { var followesRewards = new OverTimeRewards { Employees_Id = i.EmployeeId, OverTimeRewards_Enterid = Task.Task_Employee_Open, OverTimeRewards_Date = Task.Task_Done, OverTimeRewards_Note = "مكافئة عمل" + " : " + Task.Task_Title, OverTimeRewards_Price = num }; _context.OverTimeRewards.Add(followesRewards); _context.SaveChanges(); } return(Ok(new Response { Message = "Done !", Data = Task, Error = false })); }
public ActionResult <IEnumerable <string> > AddOut([FromBody] AddInOut form) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var time = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now); var time1 = time.AddHours(3); string currentUserId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; var _clientid = Guid.Parse(currentUserId); var employeeinfo = _context.EmployessUsers.Where(x => x.Id == _clientid).FirstOrDefault(); var admininfo = _context.AdminUser.FirstOrDefault(); var inoutinfo = _context.InOut.Where(x => x.EmplyeeId == _clientid && x.In_Out_Status == form.In_Out_Status && x.In_Out_Date == time1.Date).ToList(); if (inoutinfo.Count != 0) { return(BadRequest(new Response { Message = "لقد قمت بالصمة سابقا", Data = "", Error = true })); } double sLatitude = Convert.ToDouble(admininfo.Company_Latitude); double sLongitude = Convert.ToDouble(admininfo.Company_Longitude); double eLatitude = Convert.ToDouble(form.Employee_Latitude); double eLongitude = Convert.ToDouble(form.Employee_Longitude); int distansm = 0; if ((sLatitude == eLatitude) && (sLongitude == eLongitude)) { distansm = 0; } else { double theta = sLongitude - eLongitude; double dist = Math.Sin(deg2rad(sLatitude)) * Math.Sin(deg2rad(eLatitude)) + Math.Cos(deg2rad(sLatitude)) * Math.Cos(deg2rad(eLatitude)) * Math.Cos(deg2rad(theta)); dist = Math.Acos(dist); dist = rad2deg(dist); dist = dist * 60 * 1.1515; var distans = ((dist * 1.609344).ToString()).Substring(0, 5); var ddistans = Convert.ToDouble(distans) * 1000; distansm = Convert.ToInt32(ddistans); } string time_fromDb = employeeinfo.Employee_Out_Time; string fromDb = time1.Date.ToString("yyyy-MM-dd") + " " + time_fromDb; DateTime FromDB = DateTime.Parse(fromDb); DateTime DCurrent = DateTime.Parse(time1.ToString("yyyy-MM-dd HH:mm:ss")); int xMinites = 0; TimeSpan diffResult = DCurrent.ToUniversalTime().Subtract(FromDB.ToUniversalTime()); if (diffResult < TimeSpan.Zero) { TimeSpan tidiffResult1 = (diffResult * (-1)); string x = tidiffResult1.ToString(); string nHour = x.Substring(0, 2); int xHour; if (!int.TryParse(nHour, out xHour)) { xHour = 0; } xMinites = xHour * 60; string ntime = x.Substring(3, 2); int xTime; if (!int.TryParse(ntime, out xTime)) { xTime = 0; } xMinites += xTime; } else { string x = diffResult.ToString(); string nHour = x.Substring(0, 2); int xHour; if (!int.TryParse(nHour, out xHour)) { xHour = 0; } xMinites = xHour * 60; string ntime = x.Substring(3, 2); int xTime; if (!int.TryParse(ntime, out xTime)) { xTime = 0; } xMinites += xTime; } if (DCurrent > FromDB) { var OverTime = _context.OverTime.ToList(); decimal OverTimePrice = 0; foreach (var i in OverTime) { if ((i.formtime) <= xMinites && xMinites <= i.totime) { OverTimePrice = i.OverTimePrice; var AddOverTimeRewards = new OverTimeRewards { OverTimeRewards_Date = DateTime.Now.Date, OverTimeRewards_Note = "اضافة فوق وقت انتهاء العمل" + xMinites + "دقيقة", OverTimeRewards_Price = i.OverTimePrice, Employees_Id = _clientid, OverTimeRewards_Enterid = Guid.Parse("3ef34045-bbbb-49e6-880e-7e7bcb9c9a16"), }; _context.OverTimeRewards.Add(AddOverTimeRewards); _context.SaveChanges(); } } } if (FromDB > DCurrent) { var late = _context.ScheduleDelayPenalties.ToList(); decimal PenaltiesPrice = 0; foreach (var i in late) { if ((i.formtime) <= xMinites && xMinites <= i.totime) { PenaltiesPrice = i.PenaltiesPrice; var AddPenalties = new Penalties { Penalties_Date = time1.Date, Penalties_Note = "خروج قبل الوقت بـ" + xMinites + "دقيقة", Penalties_Price = PenaltiesPrice, Employees_Id = _clientid, Penalties_Enterid = Guid.Parse("3ef34045-bbbb-49e6-880e-7e7bcb9c9a16"), }; _context.Penalties.Add(AddPenalties); _context.SaveChanges(); } } } var AddInOut = new InOut { distance = distansm, In_Out_Date = time1.Date, In_Out_Status = form.In_Out_Status, EmplyeeId = _clientid, Employee_Latitude = form.Employee_Latitude, Employee_Longitude = form.Employee_Longitude, In_Out_Time = time1.ToString("hh:mm tt"), }; _context.InOut.Add(AddInOut); _context.SaveChanges(); _context.SaveChanges(); return(Ok(new Response { Message = "Done !", Data = "Thanks", Error = false })); }