protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.User.Identity.IsAuthenticated)
            {
                FormsAuthentication.RedirectToLoginPage();
            }

            new ApplicationClass().AdminAuthorityCheck(Response);

            //Allow Leave If Zero parameter
            if (AllowLeaveIfZeroDDL.Items.Count == 0)
            {
                var allowLeaveIfZero = new LeavePolicyClass().GetPolicyValueByKey("ALLOW_GET_LEAVE_IF_RESOURCE_NO_LEAVE");
                AllowLeaveIfZeroDDL.Items.Add(new ListItem(Resources.Global.DropdownValue_Yes, "1"));
                AllowLeaveIfZeroDDL.Items.Add(new ListItem(Resources.Global.DropdownValue_No, "0"));

                if (allowLeaveIfZero == "1" || allowLeaveIfZero == "0")
                {
                    AllowLeaveIfZeroDDL.Items.FindByValue(allowLeaveIfZero).Selected = true;
                }
            }
        }
Exemple #2
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            var std = DateTime.Now;
            var end = DateTime.Now;

            Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");
            var userId = _loginClass.User.Identity.Name;

            var stdate                     = Request.Form["stdate"];
            var enddate                    = Request.Form["enddate"];
            var description                = Request.Form["description"];
            var leaveTypeValue             = int.Parse(LeaveType.SelectedValue);
            var leaveSuitability           = false;
            var userLocation               = _userClass.GetUserLocation(userId);
            var allowLeaveIfZero           = new LeavePolicyClass().GetPolicyValueByKey("ALLOW_GET_LEAVE_IF_RESOURCE_NO_LEAVE");
            var allowGetLeaveIfNoLeftLeave = true;

            if (stdate != "")
            {
                std = Convert.ToDateTime(stdate);
            }
            if (enddate != "")
            {
                end = Convert.ToDateTime(enddate);
            }

            double dayDiff = new ApplicationClass().GetNumberOfWorkingDays(std, end);

            if (stdate == enddate)
            {
                dayDiff = 1;
            }

            if (Request.Form["halfday_add"] != null && Request.Form["halfday_add"] == "on")
            {
                dayDiff += 0.5;
            }

            if (Request.Form["halfday"] != null && Request.Form["halfday"] == "on")
            {
                dayDiff = 0.5;
            }


            var fieldControl = false;

            if (stdate == "" || enddate == "" || (description == "" || description.Trim().Length == 0))
            {
                Label1.Text = Login.Language == "tr" ? "Tüm alanları doldurunuz!" : "Fill in all fields!";
                LeaveType.Items.Clear();

                var command = Login.Language == "tr" ? "select LeaveTypeId,LeaveTypeTr from LeaveTypes" : "select LeaveTypeId,LeaveType from LeaveTypes";

                var subjects = new DataTable();

                using (var con = new SqlConnection(Constr))
                {
                    try
                    {
                        var adapter = new SqlDataAdapter(command, con);
                        adapter.Fill(subjects);

                        LeaveType.DataSource     = subjects;
                        LeaveType.DataValueField = "LeaveTypeId";
                        LeaveType.DataTextField  = Login.Language == "tr" ? "LeaveTypeTr" : "LeaveType";

                        LeaveType.DataBind();
                    }
                    catch (Exception)
                    {
                        // ignored
                    }
                }
            }
            else
            {
                fieldControl = true;
            }

            var result = _leaveClass.ContractFlag(_uid);

            if (result == false && chcSozlesme.Checked == false)
            {
                Label1.Text = Login.Language == "tr" ? "Yıllık izin taahütnamesini kabul etmeniz gerekiyor!" : "You must accept the annual leave notice!";

                LeaveType.Items.Clear();

                var command = Login.Language == "tr" ? "select LeaveTypeId,LeaveTypeTr from LeaveTypes" : "select LeaveTypeId,LeaveType from LeaveTypes";

                var subjects = new DataTable();

                using (var con = new SqlConnection(Constr))
                {
                    try
                    {
                        var adapter = new SqlDataAdapter(command, con);
                        adapter.Fill(subjects);
                        LeaveType.DataSource     = subjects;
                        LeaveType.DataValueField = "LeaveTypeId";
                        LeaveType.DataTextField  = Login.Language == "tr" ? "LeaveTypeTr" : "LeaveType";

                        LeaveType.DataBind();
                    }
                    catch (Exception)
                    {
                        // ignored
                    }
                }
            }

            //If User's location is not Turkey
            if (userLocation != "Turkey")
            {
                //If leave is smaller than 2 weeks...
                if (dayDiff < 15)
                {
                    //Mark leave suitablilty status as True
                    leaveSuitability = true;
                }
            }
            else //If location is Turkey
            {
                leaveSuitability = true;
            }

            //If getting leave when resource does not have leave left is not allowed
            if (allowLeaveIfZero == "0")
            {
                //If resource leave left day is equal zero or smaller than zero
                if (new UserClass().GetUserLeaveLeft(userId) <= 0)
                {
                    allowGetLeaveIfNoLeftLeave = false;
                }
            }

            //If leave is suitable to take
            if (leaveSuitability)
            {
                if (fieldControl && (result || (result == false && chcSozlesme.Checked)))
                {
                    if (_sayac1 < 100 && _sayac1 >= 0)
                    {
                        if (allowGetLeaveIfNoLeftLeave)
                        {
                            Label1.Text = "";
                            using (var con = new SqlConnection(Constr))
                            {
                                int reqId;
                                using (var cmd = new SqlCommand("Insert_DayOffRequests"))
                                {
                                    cmd.CommandType = CommandType.StoredProcedure;
                                    cmd.Parameters.AddWithValue("@StartDate", std);
                                    cmd.Parameters.AddWithValue("@EndDate", end);
                                    cmd.Parameters.AddWithValue("@userId", userId);
                                    cmd.Parameters.AddWithValue("@ReportImage", "");
                                    cmd.Parameters.AddWithValue("@Status", 0);
                                    cmd.Parameters.AddWithValue("@Description", description);
                                    cmd.Parameters.AddWithValue("@Day", dayDiff);
                                    cmd.Parameters.AddWithValue("@LeaveLanguage", Login.Language);
                                    cmd.Parameters.AddWithValue("@LeaveType", leaveTypeValue);
                                    cmd.Connection = con;
                                    con.Open();
                                    reqId = Convert.ToInt32(cmd.ExecuteScalar());
                                    con.Close();

                                    if (reqId != 0)
                                    {
                                        _add = userId;
                                        if (_add != "")
                                        {
                                            var contractFlag = _leaveClass.ContractFlag(_uid);
                                            if (contractFlag == false)
                                            {
                                                _leaveClass.ContractUpdate(_add, chcSozlesme.Checked);
                                            }
                                        }
                                    }

                                    //If leave has any file that uploaded
                                    if (fuResim.HasFile)
                                    {
                                        _leaveClass.AddAttachment(reqId.ToString(), fuResim.FileName);
                                        fuResim.SaveAs(_leaveClass.AttachmentPath + @"\" + reqId + @"\" + fuResim.FileName);
                                    }
                                    else //If there is no any file that uploaded
                                    {
                                        _leaveClass.NoAttachment(reqId.ToString());
                                    }
                                }

                                /* MAIL */
                                string mailTitle;
                                string mailDesc;
                                if (Login.Language == "tr")
                                {
                                    mailDesc  = "oluşturulmuştur";
                                    mailTitle = reqId + " Numaralı izin talebi oluşturulmuştur.";
                                }
                                else
                                {
                                    mailDesc  = " has been created";
                                    mailTitle = "Leave " + reqId + " has been created.";
                                }

                                _appClass.SendMail(mailTitle, mailDesc, reqId.ToString(), 0);
                                /* MAIL */

                                Response.Redirect("~/LeaveDetails?id=" + reqId + "");
                                accordion.Visible = false;
                            }
                        }
                        else
                        {
                            Response.Write(Login.Language == "tr"
                                ? "<script lang='Javascript'>alert('İzin hakkınız bulunmadığı için izin alınamaz.');</script>"
                                : "<script lang='Javascript'>alert('Cannot get leave because you do not have any leave right.'); </script>");
                        }
                    }
                }
            }
            else //If leave is not suitable to take
            {
                Response.Write(Login.Language == "tr"
                    ? "<script lang='Javascript'>alert('2 haftadan uzun izin alınamaz. Lütfen izin bilgilerini düzenleyiniz.');</script>"
                    : "<script lang='Javascript'>alert('More than 2 weeks leave can not be taken. Please edit the leave period.'); </script>");
            }
        }