2016-06-29 85 views
-1

我正在創建一個與離開缺席相關的項目。根據不同的類別操作,將保留&。DB上的更新與Asp.net中的不同類別MVC

概念的每個流程正在工作,除了計算假期天數&顯示餘額。

我已經創建了一個名爲型號, LeaveReq.CS

public class LeaveReq 
{ 
    public int ID {get; set; } 

    [Display(Name = "Employee Name")] 
    public string emp_name { get; set; } 

    [Display(Name = "Requested Day")] 
    public string day_ctg { get; set; } 

    [Display(Name = "Start Date")] 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)] 
    public DateTime startdt { get; set; } 

    [Display(Name = "End Date")] 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)] 
    public DateTime enddt { get; set; } 

    [Display(Name = "Time-Off Category")] 
    public string category { get; set; } 

    [Display(Name = "Applied On")] 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)] 
    public DateTime apply { get; set; } 

    [Display(Name = "Balance")] 
    public string bal { get; set; } 

} 

和屏幕想,

Apply Leave

我已經創建了一個名爲,TimeOffSettigs.CS模型

public class TimeOffSettigs 
{ 
    public int ID { get; set; } 

    [Display(Name = "Time-Off Type")] 
    [StringLength(30, MinimumLength = 3)] 
    public string type { get; set; } 

    [Display(Name = "Time-Off Category")] 
    public string category { get; set; } 

    [Display(Name = "Maximum Allowance")] 
    public int allowance { get; set; } 
} 

屏幕上將,看起來像 TimeOffSettings

基本概念是,當員工申請休假的一類。他的平衡假應顯示。申請時,應從餘額中扣除某些津貼。

例如。如果我正在假期&全天(8小時)申請假期。 休假津貼80小時。 第一次申請假期。我的餘額保存爲(80-8)72小時。 在下次申請半天(4小時)。我的餘額應存放爲(72-4)68Hrs在DB

我在Controller.CS寫的代碼,這個概念

[HttpPost, ActionName("Approve")] 
    [ValidateAntiForgeryToken] 
    public ActionResult LvDetailsConfirmed(int id) 
    { 
     LeaveReq levreq = dblv.Leave_Dts.Find(id); 
     TimeOffSettigs timesettings = dbts.policy_tbl.Find(id); 

     if (levreq.bal == null) 
     { 
      if (levreq.day_ctg == "Full Day") 
      { 
       var bal_full = 8; 
       levreq.bal = (timesettings.allowance - bal_full).ToString(); 
      } 
      else if (levreq.day_ctg == "Partial Day") 
      { 
       var bal_par = 4; 
       levreq.bal = (timesettings.allowance - bal_par).ToString(); 
      } 
      else 
      { 
       var timespan = levreq.enddt.Subtract(levreq.startdt); 
       var dayscalc = timespan.Days; 
       var bal_mul = 8 * dayscalc; 
       levreq.bal = (timesettings.allowance - bal_mul).ToString(); 
      } 
     } 

     else 
     { 
      if (levreq.day_ctg == "Full Day") 
      { 
       var bal_full = 8; 
       levreq.bal = (Convert.ToInt32(levreq.bal) - bal_full).ToString(); 
      } 
      else if (levreq.day_ctg == "Partial Day") 
      { 
       var bal_par = 4; 
       levreq.bal = (Convert.ToInt32(levreq.bal) - bal_par).ToString(); 
      } 
      else 
      { 
       var timespan = levreq.enddt.Subtract(levreq.startdt); 
       var dayscalc = timespan.Days; 
       var bal_mul = 8 * dayscalc; 
       levreq.bal = (Convert.ToInt32(levreq.bal) - bal_mul).ToString(); 
      } 
     } 

     if (ModelState.IsValid) 
     { 
      dblv.Entry(levreq).State = EntityState.Modified; 
      dblv.SaveChanges(); 
      return RedirectToAction("ELeave"); 
     } 
     return View(levreq); 

批准/請求屏幕會看起來像,

Approve/Reject

點擊批准後,應平衡餘額。 點擊拒絕時,不應扣除餘額。

不知道,我在控制器中做了什麼錯誤。每當我按批准時,數據庫中都沒有發生變化。

這是承認按鈕代碼

@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 

    <div class="form-actions no-color"> 
     <input type="submit" value="Approve" class="btn btn-default" name="aprbtn" /> | 
     <input type="submit" value="Reject" class="btn btn-default" name="rejbtn"/> 
     @Html.ActionLink("Back to List", "ELeave") 
    </div> 
} 
+0

此按鈕點擊控制器操作?或調試代碼 –

+0

@Nazir是的,它擊中控制器動作 –

+0

[HttpPost,ActionName(「批准」) [ValidateAntiForgeryToken] 公衆的ActionResult LvDetailsConfirmed(INT ID) –

回答

0

給名稱按鈕,然後檢查。

<input type="submit" value="Approve" class="btn btn-default" name="Approve" /> 
+0

仍然沒有變化:-( –

+0

什麼是「dblv」? –

+0

db參考爲類 –