예제 #1
0
    public static ReturnObject DoAction(int action, string comments, string selected_rows)
    {
        compoff_approve page_object = new compoff_approve();
        DBConnection    db_connection = new DBConnection();
        DataTable       Compoff_data = new DataTable();
        ReturnObject    return_object = new ReturnObject();
        string          empid = string.Empty, Query = string.Empty, From = string.Empty, Todate = string.Empty, Remarks = string.Empty;
        int             No_of_days = 0, last_flag = 0;

        List <string> selected_manual_punch = JsonConvert.DeserializeObject <List <string> >(selected_rows);

        string
            query = string.Empty, retrn_message = string.Empty,
            Comp_Off_status = string.Empty;

        long
            Comp_Off_id = 0;

        if (HttpContext.Current.Session["username"] == null)
        {
            return_object = page_object.DoLogout();
        }
        else
        {
            try
            {
                switch (action)
                {
                case 2:
                    Comp_Off_status = "Approved";
                    break;

                case 3:
                    Comp_Off_status = "Declined";
                    break;

                case 4:
                    Comp_Off_status = "Cancelled";
                    break;
                }

                for (int i = 0; i < selected_manual_punch.Count; i++)
                {
                    Comp_Off_id  = Convert.ToInt64(selected_manual_punch[i].ToString());
                    Query        = "select * From compoffdetails where compoff_id='" + Comp_Off_id + "'";
                    Compoff_data = db_connection.ReturnDataTable(Query);
                    empid        = Compoff_data.Rows[0]["EMPID"].ToString();
                    From         = Compoff_data.Rows[0]["FromDate"].ToString();
                    Todate       = Compoff_data.Rows[0]["ToDate"].ToString();
                    Remarks      = Compoff_data.Rows[0]["Remarks"].ToString();
                    last_flag    = Convert.ToInt32(Compoff_data.Rows[0]["Flag"].ToString());

                    if (last_flag == 2 && action == 3)
                    {
                        retrn_message += "Comp Off already Approved, you can't decline it.";
                    }
                    else if (last_flag == 3 && action == 2)
                    {
                        retrn_message += "Comp Off already Declined, you can't approve it.";
                    }
                    else if (last_flag == action)
                    {
                        retrn_message += "Comp Off already " + Comp_Off_status;
                    }
                    else
                    {
                        page_object.updatecompoff(empid, action, Comp_Off_id, No_of_days, comments);
                        page_object.sendMail(empid, From, Todate, Remarks, Comp_Off_status);
                        retrn_message = "Comp off status updated successfully!";
                    }
                }

                return_object.status = "success";

                return_object.return_data = retrn_message;
            }
            catch (Exception ex)
            {
                Logger.LogException(ex, page, "UPDATE_COMPOFF_APPROVAL_STATUS");

                return_object.status      = "error";
                return_object.return_data = "An error occurred while updating Leave Approval Status. Please try again. If the error persists, please contact Support.";
            }
            finally
            {
                page_object.Dispose();
            }
        }

        return(return_object);
    }