示例#1
0
        public bool DeleteLeaveFromSAP(LeaveWithdrawalModel model)
        {
            bool     noerror = true;
            DateTime Begda   = Convert.ToDateTime(model.FromDateString);

            model.FromDateString = Begda.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
            DateTime Endda = Convert.ToDateTime(model.ToDateString);

            model.ToDateString = Endda.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
            string param = "leaves?pernr_001=" + model.EmployeeID + "&subty_006=" + model.LeaveCode + "&begda_007=" + model.FromDateString + "&endda_008=" + model.ToDateString + "&full_first_sec=" + model.LeaveShift + "&simulation=" + "" + "&Deletion=" + "X";

            using (HttpClient client = new HttpClient())
            {
                string apiUrl = _rfcconfig.GetSection("MySettings").GetSection("WebApiBaseUrl").Value + param;
                client.BaseAddress = new Uri(apiUrl);
                client.Timeout     = TimeSpan.FromMinutes(5);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                var responsecli = client.GetAsync(apiUrl);
                var data        = responsecli.Result;
                if (data.IsSuccessStatusCode)
                {
                    var readTask = data.Content.ReadAsStringAsync();
                    LEAVEREQUESTDETAILS leaveRequestDetails = JsonConvert.DeserializeObject <LEAVEREQUESTDETAILS>(readTask.Result);
                    if (leaveRequestDetails != null && leaveRequestDetails.IT_ERROR_TEXT != null)
                    {
                        foreach (var detail in leaveRequestDetails.IT_ERROR_TEXT)
                        {
                            if (detail.IND == "E")
                            {
                                noerror = false;
                            }
                        }
                    }
                }
                else
                {
                    _logger.LogError("Gateway Timeout Error" + model.EmployeeID);
                }
            }
            return(noerror);
        }
示例#2
0
        public JsonResult LeaveWithdrawalPassData(LeaveWithdrawalModel model)
        {
            string ReturnUrl = Url.Action("CreateLeaveRequest", "Leave");

            try
            {
                if (model.Status.Trim() == "Pending" || model.Status.Trim() == "Approved")
                {
                    TempData["LeaveData"] = Convert.ToString(model.LeaveRequestId);
                    return(Json(ReturnUrl));
                }
                else
                {
                    ViewBag.Messages = new[] { new AlertModel("danger", "warning!", "Data not found..") };
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
            }
            return(Json(ReturnUrl));
        }
示例#3
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());
            }
        }
示例#4
0
        public IActionResult LeaveWithdrawal(LeaveWithdrawalModel model)
        {
            int  result    = 0;
            var  msgText   = "";
            bool returnres = false;

            try
            {
                if (ModelState.IsValid)
                {
                    if (model.LeaveAppliedFrom == "T" || model.LeaveAppliedFrom == "E")
                    {
                        if (model.LeaveShift == "First Half")
                        {
                            model.LeaveShift = "F";
                        }
                        else if (model.LeaveShift == "First Half")
                        {
                            model.LeaveShift = "S";
                        }
                        else
                        {
                            model.LeaveShift = "";
                        }
                        bool retresult = DeleteLeaveFromSAP(model);
                        return(Json(retresult));
                    }
                    string Approverid     = (HttpContext.Session.GetString(Constant.EmployeeID));
                    var    EmployeeName   = HttpContext.Session.GetString(Constant.SessionUserName);
                    string EmployeeId     = HttpContext.Session.GetString(Constant.EmployeeID);
                    string strmobileNo    = HttpContext.Session.GetString(Constant.MobileNo);
                    string strmobileNoapp = HttpContext.Session.GetString(Constant.ApproverMobileNo);
                    if (model.Status == "Pending" || model.Status == "Approved")
                    {
                        result = _iLeavewithdrawalService.SaveLeaveWithdrawal(Mapper.Map <LeaveWithdrawalServiceModel>(model));
                        if (result == 1)
                        {
                            returnres = true;
                            #region For Message to Employee
                            if (model.Status == "Approved")
                            {
                                msgText =
                                    //"Your Subordinate wants to cancel/ withdraw below leave/attendance requests which were approved in the system." + Environment.NewLine +
                                    "You have submitted a request for cancellation / withdrawal of below mentioned leaves / attendance.Your request has been sent to your superior for further action." + Environment.NewLine +
                                    "Employee No:-" + HttpContext.Session.GetString(Constant.EmployeeID) + Environment.NewLine +
                                    "Request:-" + model.LeaveCategory + Environment.NewLine +
                                    "From Date:-" + model.FromDateString + Environment.NewLine +
                                    "To Date:-" + model.ToDateString + Environment.NewLine +
                                    "Days:-" + model.TotalLeaves + " days";
                            }
                            else if (model.Status == "Pending")
                            {
                                msgText =
                                    "You have submitted a request for cancellation/ withdrawal of below non- approved leaves / attendance which has been processed and submitted entry has been deleted." + Environment.NewLine +
                                    "Employee No:-" + HttpContext.Session.GetString(Constant.EmployeeID) + Environment.NewLine +
                                    "Request:-" + model.LeaveCategory + Environment.NewLine +
                                    "From Date:-" + model.FromDateString + Environment.NewLine +
                                    "To Date:-" + model.ToDateString + Environment.NewLine +
                                    "Days:-" + model.TotalLeaves + " days";
                            }
                            try
                            {
                                _SMSUtility.SendSMS(strmobileNo, msgText);
                            }
                            catch (Exception)
                            {
                            }



                            #endregion
                            #region For Message to Approver(Supervisor)
                            //var msgTextApp = "";
                            //if (model.Status == "Pending")
                            //{
                            //    msgTextApp =
                            //         "Your Subordinate has cancelled below non-Approved leave/attendance requests. This is for your information." + Environment.NewLine +
                            //         "Employee No:-" + HttpContext.Session.GetString(Constant.EmployeeID) + Environment.NewLine +
                            //         "Request:-" + model.LeaveCategory + Environment.NewLine +
                            //         "From Date:-" + model.FromDate + Environment.NewLine +
                            //         "To Date:-" + model.ToDate + Environment.NewLine +
                            //         "Days:-" + model.TotalLeaves + "days";
                            //}

                            //var smsapp = _SMSUtility.SendSMS(strmobileNoapp, msgTextApp);

                            //if (smsapp == true)
                            //{
                            //    strmobileNoapp = Convert.ToString(1);
                            //}
                            //else
                            //{
                            //    strmobileNoapp = Convert.ToString(0);
                            //}
                            #endregion
                        }
                    }
                    else
                    {
                        returnres = false;
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
            }
            return(Json(returnres));
        }