簡體   English   中英

允許員工每天標記一次出勤率 ASP.NET MVC

[英]Allow Employee to mark attendance once per day ASP.NET MVC

我是 ASP.NET MVC 的新手。 在我的考勤管理系統中,沒有。 的員工每天記錄他們的出勤情況。 我想限制員工每天只能標記一次出勤。 我做了很多搜索,但沒有找到任何准確的東西。

這是我創建出勤的控制器代碼

  DateTime todayDate = Convert.ToDateTime(DateTime.Now.ToString("dd MM yyyy"));

        [Authorize]
        public ActionResult Create()
        {
            Employee employee = JsonConvert.DeserializeObject<Employee>(User.Identity.Name);

            return View(new Attendance() { Emp_Id = employee.Emp_Id });
        }

        [HttpPost]
        public ActionResult Create(Attendance attendance)
        {
            if (ModelState.IsValid)
            {
              if (attendance.Date =! todayDate)
               {

                  try
                  {
                      db.Attendance.Add(attendance);
                      db.SaveChanges();
                  }
                  catch (Exception ex)
                  {
                    throw;
                  }
               }
            }
            return RedirectToAction("Index", "Attendance");
        }

這是我的查看代碼

@model AttendancePortal2.Models.Attendance

@{
    ViewBag.Title = "Index";
}

<div class="container">
    <div class="navbar-header">
        <h2>Add New Entry</h2>
    </div>
    <div class="navbar-collapse collapse">
        <ul class="nav navbar-nav">
            <li>@Html.ActionLink("Log out", "LogOff", "Account")</li>
        </ul>
    </div>
    <hr />

    @using (Html.BeginForm("Create", "Attendance", FormMethod.Post))
    {
        <div class="row">

            @Html.HiddenFor(model => model.Emp_Id)

            <div class="col-md-3">
                <label>Date <span class="text-danger">*</span></label>
                <div class="input-group date form_date" data-date="" data-date-format="dd MM yyyy" data-link-field="dtp_input2" data-link-format="yyyy-mm-dd">
                    @Html.TextBoxFor(model => model.Date, new { @class = "form-control" })
                    <span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
                    <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
                </div>
                <input type="hidden" id="dtp_input2" value="" /><br />
            </div>

            <div class="col-md-3">
                <label>Check In <span class="text-danger">*</span></label>
                <div class="input-group date form_time" data-date="" data-date-format="hh:ii" data-link-field="dtp_input3" data-link-format="hh:ii">
                    @Html.TextBoxFor(model => model.CheckIn, new { @class = "form-control" })
                    <span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
                    <span class="input-group-addon"><span class="glyphicon glyphicon-time"></span></span>
                </div>
                <input type="hidden" id="dtp_input1" value="" /><br />
            </div>

            <div class="col-md-3">
                <label>Check Out</label>
                <div class="input-group date form_time" data-date="" data-date-format="hh:ii" data-link-field="dtp_input3" data-link-format="hh:ii">
                    @Html.TextBoxFor(model => model.CheckOut, new { @class = "form-control" })
                    <span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
                    <span class="input-group-addon"><span class="glyphicon glyphicon-time"></span></span>
                </div>
                <input type="hidden" id="dtp_input3" value="" /><br />
            </div>

            <div class="col-md-3">
                <label>Short Leave (Hours)</label>
                @Html.TextBoxFor(model => model.ShortLeave, new { @class = "form-control", Type = "number" })
            </div>
        </div>

        <div class="row">
            <div class="col-md-12">
                <input type="submit" class="btn btn-primary" value="Mark Attendance" />
                @Html.ActionLink("My Attendance", "Index", "Attendance")
            </div>
        </div>
    }
</div>

嘗試這個:

          [HttpPost]
        public ActionResult Create(Attendance attendance)
        {
   if (!ModelState.IsValid) return BadRequest("Not valid error");
  if (attendance.Date =! todayDate)return BadRequest("Too late or too early");

var hasAttendance=  db.Attendance.Any(i=> i.Emp_Id=attendance.EmpId
                                       && i.Date==todayDate);
  if (hasAttendance) return BadRequest("It is done already");
 
                  try
                  {
                      db.Attendance.Add(attendance);
                      db.SaveChanges();
                  }
                  catch (Exception ex)
                  {
                   return BadRequest(ex.Message);
                  }
          
       
            return RedirectToAction("Index", "Attendance");
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM