Exemple #1
0
        public IActionResult LeaveWithdrawal()
        {
            try
            {
                LeaveWithdrawalViewModel modeldata;
                LeaveWithdrawalViewModel objNewModel = new LeaveWithdrawalViewModel();
                string EmployeeId   = HttpContext.Session.GetString(Constant.EmployeeID);
                string Approverid   = Convert.ToString(EmployeeId);
                var    EmployeeName = HttpContext.Session.GetString(Constant.SessionUserName);
                objNewModel.leavewithdrawal = new List <LeaveWithdrawalModel>();
                modeldata = Mapper.Map <LeaveWithdrawalViewModel>(_iLeavewithdrawalService.GetLeaveRequestForWithdrawal(EmployeeId));
                string Year  = DateTime.Now.Year.ToString();
                string param = "LeaveHistory?pernr=" + EmployeeId + "&year=" + Year;
                using (HttpClient client = new HttpClient())
                {
                    string apiUrl = _rfcconfig.GetSection("MySettings").GetSection("WebApiBaseUrl").Value + param;
                    client.BaseAddress = new Uri(apiUrl);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                    var response = client.GetAsync(apiUrl);
                    var data     = response.Result;
                    if (data.IsSuccessStatusCode)
                    {
                        var             readTask             = data.Content.ReadAsStringAsync();
                        EMPLEAVEHISTORY QuotaOverviewDetails = JsonConvert.DeserializeObject <EMPLEAVEHISTORY>(readTask.Result);
                        if (QuotaOverviewDetails != null && QuotaOverviewDetails.OUTPUT != null)
                        {
                            foreach (var item in QuotaOverviewDetails.OUTPUT)
                            {
                                LeaveWithdrawalModel objTempModel = new LeaveWithdrawalModel();
                                objTempModel.LeaveCode              = Convert.ToString(item.LEAVE_CODE);
                                objTempModel.EmployeeID             = EmployeeId;
                                objTempModel.LeaveAppliedDateString = "<span>" + item.APPLIED_DATE.ToString("yyyyMMdd", CultureInfo.InvariantCulture) + "</span>" + item.APPLIED_DATE.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');;
                                objTempModel.FromDateString         = item.BEGDA.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');;
                                objTempModel.ToDateString           = item.ENDDA.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');;
                                objTempModel.TotalLeaves            = Convert.ToDouble(item.TOT_LEAVES);
                                objTempModel.Status           = Convert.ToString(item.STATUS);
                                objTempModel.LeaveShift       = Convert.ToString(item.LEAVE_TYPE);
                                objTempModel.Indicator        = item.SAP_STATUS;
                                objTempModel.LeaveAppliedFrom = item.SUBMITTED_BY;
                                if (item.SAP_STATUS == "S")
                                {
                                    objTempModel.ErrorMsg = "SAP updated successfully";
                                }
                                else
                                {
                                    objTempModel.ErrorMsg = item.ERROR_MESSAGE;
                                }
                                objNewModel.leavewithdrawal.Add(objTempModel);
                            }
                        }
                    }
                }
                string PA                = HttpContext.Session.GetString(Constant.PersonalArea);
                string PSA               = HttpContext.Session.GetString(Constant.PersonalSubArea);
                string Category          = HttpContext.Session.GetString(Constant.Category);
                var    LeaveCategoryList = _ILeaveRequestViewService.GetLeaveRequest(PA, PSA, Category);
                LeaveCategoryList.RemoveAt(0);
                foreach (var subitem in objNewModel.leavewithdrawal)
                {
                    var urlNameExists = LeaveCategoryList.Any(s => s.Value.Split('~')[2] == subitem.LeaveCode);
                    if (urlNameExists)
                    {
                        subitem.LeaveCategory = LeaveCategoryList.FirstOrDefault(s => s.Value.Split('~')[2] == subitem.LeaveCode).Text;
                    }
                    else
                    {
                        subitem.LeaveCategory = subitem.LeaveCode;
                    }
                    LeaveWithdrawalModel model = modeldata.leavewithdrawal.FirstOrDefault(t =>
                                                                                          t.LeaveCode == subitem.LeaveCode &&
                                                                                          t.LeaveType == subitem.LeaveType &&
                                                                                          t.FromDateString == subitem.FromDateString &&
                                                                                          t.ToDateString == subitem.FromDateString);
                    if (model != null)
                    {
                        subitem.ApproverName     = model.ApproverName;
                        subitem.LeaveAppliedDate = model.LeaveAppliedDate;
                        modeldata.leavewithdrawal.Remove(model);
                    }
                }

                foreach (var subitem in modeldata.leavewithdrawal)
                {
                    if (subitem.LeaveShift == "F")
                    {
                        subitem.LeaveShift = "First Half";
                    }
                    else if (subitem.LeaveShift == "S")
                    {
                        subitem.LeaveShift = "Second Half";
                    }
                    else
                    {
                        subitem.LeaveShift = "Full Day";
                    }
                    string   date   = subitem.LeaveAppliedDateString.Replace('-', '/');
                    DateTime dtdate = DateTime.ParseExact(date, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                    subitem.LeaveAppliedDateString = "<span>" + dtdate.ToString("yyyyMMdd") + "</span>" + dtdate.ToString("dd/MM/yyyy");
                    subitem.LeaveAppliedFrom       = "EMP";
                    subitem.FromDateString         = subitem.FromDateString.Replace('-', '/');
                    subitem.ToDateString           = subitem.ToDateString.Replace('-', '/');
                    objNewModel.leavewithdrawal.Add(subitem);
                }
                return(View(objNewModel));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(View());
            }
        }
Exemple #2
0
        public JsonResult GetHolidayListByYear(string Year, string download, string email = null)
        {
            LeaveHistoryModelViewModel objModel    = new LeaveHistoryModelViewModel();
            LeaveHistoryModelViewModel objNewModel = new LeaveHistoryModelViewModel();

            objNewModel.LeaveHistory = new List <LeaveHistoryModelViewModel>();
            try
            {
                var    objEmployeeId = HttpContext.Session.GetString(Constant.EmployeeID);
                string year          = Year;
                var    EmployeeName  = HttpContext.Session.GetString(Constant.SessionUserName);
                objModel = Mapper.Map <LeaveHistoryModelViewModel>(_ILeaveHistoryService.GetLeaveHistoryDetails(objEmployeeId, year));
                string param = "LeaveHistory?pernr=" + objEmployeeId + "&year=" + year;
                using (HttpClient client = new HttpClient())
                {
                    string apiUrl = _rfcconfig.GetSection("MySettings").GetSection("WebApiBaseUrl").Value + param;
                    client.BaseAddress = new Uri(apiUrl);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                    var response = client.GetAsync(apiUrl);
                    var data     = response.Result;
                    if (data.IsSuccessStatusCode)
                    {
                        var             readTask             = data.Content.ReadAsStringAsync();
                        EMPLEAVEHISTORY QuotaOverviewDetails = JsonConvert.DeserializeObject <EMPLEAVEHISTORY>(readTask.Result);
                        if (QuotaOverviewDetails != null && QuotaOverviewDetails.OUTPUT != null)
                        {
                            foreach (var item in QuotaOverviewDetails.OUTPUT)
                            {
                                LeaveHistoryModelViewModel objTempModel = new LeaveHistoryModelViewModel();
                                objTempModel.LeaveCode        = Convert.ToString(item.LEAVE_CODE);
                                objTempModel.LeaveAppliedDate = "<span>" + item.APPLIED_DATE.ToString("yyyyMMdd", CultureInfo.InvariantCulture) + "</span>" + item.APPLIED_DATE.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');
                                objTempModel.FromDate         = item.BEGDA.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');;
                                objTempModel.ToDate           = item.ENDDA.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');;
                                objTempModel.TotalLeaves      = string.IsNullOrEmpty(item.TOT_LEAVES) ? 0 : Convert.ToDouble(item.TOT_LEAVES);
                                objTempModel.Status           = Convert.ToString(item.STATUS);
                                objTempModel.LeaveType        = Convert.ToString(item.LEAVE_TYPE);
                                objTempModel.Indicator        = item.SAP_STATUS;
                                if (item.SAP_STATUS == "S")
                                {
                                    objTempModel.ErrorMsg = "SAP updated successfully";
                                }
                                else
                                {
                                    objTempModel.ErrorMsg = item.ERROR_MESSAGE;
                                }
                                objNewModel.LeaveHistory.Add(objTempModel);
                            }
                        }
                    }
                }
                string PA                = HttpContext.Session.GetString(Constant.PersonalArea);
                string PSA               = HttpContext.Session.GetString(Constant.PersonalSubArea);
                string Category          = HttpContext.Session.GetString(Constant.Category);
                var    LeaveCategoryList = _ILeaveRequestViewService.GetLeaveRequest(PA, PSA, Category);
                LeaveCategoryList.RemoveAt(0);
                LeaveHistoryModelViewModel tempmodeladd = new LeaveHistoryModelViewModel();
                tempmodeladd.LeaveHistory = new List <LeaveHistoryModelViewModel>();
                foreach (var subitem in objNewModel.LeaveHistory)
                {
                    var urlNameExists = LeaveCategoryList.Any(s => s.Value.Split('~')[2] == subitem.LeaveCode);
                    if (urlNameExists)
                    {
                        subitem.LeaveCategory = LeaveCategoryList.FirstOrDefault(s => s.Value.Split('~')[2] == subitem.LeaveCode).Text;
                    }
                    else
                    {
                        subitem.LeaveCategory = subitem.LeaveCode;
                    }
                    LeaveHistoryModelViewModel model = objModel.LeaveHistory.FirstOrDefault(t =>
                                                                                            t.LeaveCode == subitem.LeaveCode &&
                                                                                            t.LeaveType == subitem.LeaveType &&
                                                                                            t.FromDate == subitem.FromDate &&
                                                                                            t.ToDate == subitem.ToDate);
                    if (model != null)
                    {
                        //record exists
                        subitem.ApproverName     = model.ApproverName;
                        subitem.LeaveAppliedDate = model.LeaveAppliedDate;
                        objModel.LeaveHistory.Remove(model);
                    }
                }

                foreach (var subitem in objModel.LeaveHistory)
                {
                    string   date   = subitem.LeaveAppliedDate.Replace('-', '/');
                    DateTime dtdate = DateTime.ParseExact(date, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                    subitem.LeaveAppliedDate = "<span>" + dtdate.ToString("yyyyMMdd") + "</span>" + dtdate.ToString("dd/MM/yyyy").Replace('-', '/');
                    subitem.FromDate         = subitem.FromDate.Replace('-', '/');
                    subitem.ToDate           = subitem.ToDate.Replace('-', '/');
                    objNewModel.LeaveHistory.Add(subitem);
                }
                if (download == "yes")
                {
                    string empname = HttpContext.Session.GetString("FirstName");
                    SendEmail(objNewModel.LeaveHistory.OrderByDescending(a => a.LeaveAppliedDate).ToList(), empname, email);
                }
                return(Json(new { result = true, data = objNewModel }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(Json(new { result = false, data = objNewModel }));
            }
        }