Exemple #1
0
    protected void ApproveMisingpunch(long Missingpunchid, int status_flag)
    {
        manual_approve page_object = new manual_approve();
        DBConnection   db_connection = new DBConnection();
        Hashtable      hsh = new Hashtable();
        DataTable      manual_punch_data = new DataTable();
        string         query = string.Empty;
        bool           isHrflagApproved = false, isHrflagDeclined = false;

        if (status_flag == 0)
        {
            isHrflagDeclined = true;
            status_flag      = 1;
        }
        if (status_flag == 4)
        {
            isHrflagApproved = true;
            status_flag      = 2;
        }
        try
        {
            string employee_name = HttpContext.Current.Session["employee_name"].ToString();
            if (string.IsNullOrEmpty(employee_name))
            {
                employee_name = "Admin";
            }

            hsh.Add("piID", Missingpunchid);
            hsh.Add("piApprove", status_flag);
            hsh.Add("piApprovedBy", employee_name);
            hsh.Add("poRetVal", 0);
            db_connection.ExecuteStoredProcedureWithHashtable_WithoutReturn("SpApprovePunch1", hsh);

            //get the manul punch details by ID and save it in MailSender table
            query             = "select EmpCode,WorkDate,convert(varchar(5),InPunch,8) as InPunch,convert(varchar(5),OutPunch,108) as OutPunch,convert(varchar(5),BreakOut,108) as BreakOut,convert(varchar(5),BreakIn,108) as BreakIn, reasonformanualpunch from PunchForApproval where ID=" + Missingpunchid;
            manual_punch_data = db_connection.ReturnDataTable(query);
            if (status_flag == 1 && isHrflagDeclined == true)
            {
                status_flag = 0;
            }
            if (status_flag == 2 && isHrflagApproved == true)
            {
                status_flag = 5;
            }
            SendMail(manual_punch_data.Rows[0]["EmpCode"].ToString(), manual_punch_data.Rows[0]["WorkDate"].ToString(), manual_punch_data.Rows[0]["InPunch"].ToString(), manual_punch_data.Rows[0]["OutPunch"].ToString(), manual_punch_data.Rows[0]["reasonformanualpunch"].ToString(), status_flag);
        }
        catch (Exception ex)
        {
            Logger.LogException(ex, page, "APPROVE_MISSING_PUNCH");
        }
    }
Exemple #2
0
    public static ReturnObject DoAction(int action, string comments, string selected_rows)
    {
        manual_approve page_object = new manual_approve();
        DBConnection   db_connection = new DBConnection();
        ReturnObject   return_object = new ReturnObject();
        bool           isRecordApproved = false, allreadyApproved = false, alreadyDeclined = false;
        List <string>  selected_manual_punch = JsonConvert.DeserializeObject <List <string> >(selected_rows);

        string
            query = string.Empty, return_message = string.Empty,
            manual_punch_status = string.Empty, alternativehrincharge = string.Empty, hrincharge = string.Empty;

        long
            manual_punch_id = 0;
        int update_flag = 0, Existsing_Status = 0, count = 0, user_access_level = 0;

        user_access_level = Convert.ToInt32(HttpContext.Current.Session["access_level"]);
        try
        {
            string employee_name = HttpContext.Current.Session["employee_name"].ToString();
            if (string.IsNullOrEmpty(employee_name))
            {
                employee_name = "Admin";
            }

            switch (action)
            {
            case 2:
                manual_punch_status = "Approved";

                update_flag = 2;


                break;

            case 3:
                manual_punch_status = "Declined";
                update_flag         = 3;
                break;

            case 4:
                manual_punch_status = "Cancelled";
                update_flag         = 4;
                break;
            }
            //cheking record already approved or not

            for (int i = 0; i < selected_manual_punch.Count; i++)
            {
                switch (action)
                {
                case 2:
                    manual_punch_status = "Approved";

                    update_flag = 2;


                    break;

                case 3:
                    manual_punch_status = "Declined";
                    update_flag         = 3;
                    break;

                case 4:
                    manual_punch_status = "Cancelled";
                    update_flag         = 4;
                    break;
                }

                manual_punch_id = Convert.ToInt64(selected_manual_punch[i].ToString());

                query            = "select approve from PunchForApproval where ID='" + manual_punch_id + "' ";
                Existsing_Status = db_connection.ExecuteQuery_WithReturnValueInteger(query);

                int access_level = 0;
                access_level = Convert.ToInt32(HttpContext.Current.Session["access_level"]);
                // and ls.Leave_Status_id = pa.approve  "
                if (access_level == 3)//HR
                {
                    query            = "select Hr_approval from PunchForApproval where ID='" + manual_punch_id + "' ";
                    Existsing_Status = db_connection.ExecuteQuery_WithReturnValueInteger(query);
                }
                else if (access_level == 1)//manager
                {
                    query            = "select manager_approval from PunchForApproval where ID='" + manual_punch_id + "' ";
                    Existsing_Status = db_connection.ExecuteQuery_WithReturnValueInteger(query);
                }
                else
                {
                    query            = "select approve from PunchForApproval where ID='" + manual_punch_id + "' ";
                    Existsing_Status = db_connection.ExecuteQuery_WithReturnValueInteger(query);
                }


                if (Existsing_Status == 2)
                {
                    // return_message += "Manual punch is already approved" + Environment.NewLine;
                    isRecordApproved = true;
                    allreadyApproved = true;
                    // break;
                }
                else if (Existsing_Status == 3)
                {
                    // return_message += "Manual punch is already declined" + Environment.NewLine;
                    isRecordApproved = true;
                    alreadyDeclined  = true;
                    // break;
                }
            }
            //end of record already approved or not
            if (isRecordApproved == false)
            {
                for (int i = 0; i < selected_manual_punch.Count; i++)
                {
                    switch (action)
                    {
                    case 2:
                        manual_punch_status = "Approved";

                        update_flag = 2;


                        break;

                    case 3:
                        manual_punch_status = "Declined";
                        update_flag         = 3;
                        break;

                    case 4:
                        manual_punch_status = "Cancelled";
                        update_flag         = 4;
                        break;
                    }

                    manual_punch_id = Convert.ToInt64(selected_manual_punch[i].ToString());



                    //when hr approve record
                    if (user_access_level == 3 && update_flag == 2)
                    {
                        query = "update punchforapproval set Hr_approval=2,ModifiedBy='" + employee_name + "',Hr_remark='" + comments + "' where id='" + manual_punch_id + "'";
                        db_connection.ExecuteQuery_WithOutReturnValue(query);
                        update_flag = 4;
                    }
                    //when hr decline record
                    else if (user_access_level == 3 && update_flag == 3)
                    {
                        query = "update punchforapproval set Hr_approval=3,manager_approval=1 ,ModifiedBy='" + employee_name + "' ,Hr_remark='" + comments + "' where id='" + manual_punch_id + "'";
                        db_connection.ExecuteQuery_WithOutReturnValue(query);
                        update_flag = 0;
                    }
                    //when Manager decline record
                    else if (user_access_level == 1 && update_flag == 3)
                    {
                        query = "update punchforapproval set manager_approval=3,ModifiedBy='" + employee_name + "' ,Manager_remark='" + comments + "' where id='" + manual_punch_id + "'";
                        db_connection.ExecuteQuery_WithOutReturnValue(query);
                        // update_flag = 0;
                    }
                    //when Manager approve record
                    else if (user_access_level == 1 && update_flag == 2)
                    {
                        //if record already declined by Hr
                        query = "select count(*) from punchforapproval where Hr_approval=3 and  id='" + manual_punch_id + "'";

                        count = db_connection.ExecuteQuery_WithReturnValueInteger(query);
                        if (count > 0)
                        {
                            query = "update punchforapproval set manager_approval=2,ModifiedBy='" + employee_name + "', Manager_remark='" + comments + "' where id='" + manual_punch_id + "'";
                            db_connection.ExecuteQuery_WithOutReturnValue(query);
                            update_flag = 2;
                        }
                        //if record approved by manager & sending for Hr
                        else
                        {
                            query = "update punchforapproval set manager_approval=2,Hr_approval=1,ModifiedBy='" + employee_name + "',Manager_remark='" + comments + "' where id='" + manual_punch_id + "'";
                            db_connection.ExecuteQuery_WithOutReturnValue(query);
                            update_flag = 1;
                        }
                    }

                    page_object.ApproveMisingpunch(manual_punch_id, update_flag);
                }//end of for
                return_object.status = "success";
                return_message       = "ManualPunch " + manual_punch_status + " successfully!" + Environment.NewLine;
            }//end of main if
            else
            {
                return_object.status = "error";


                if (allreadyApproved == true && alreadyDeclined == false)
                {
                    return_message = "Manual punch is already approved" + Environment.NewLine;
                }
                else if (allreadyApproved == false && alreadyDeclined == true)
                {
                    return_message = "Manual punch is already Declined" + Environment.NewLine;
                }
                else
                {
                    return_message = "There is an approved or declined record in selection please check";
                }
                //return_message = "Manual punch is already approved" + Environment.NewLine;
                //return_message += "Manual punch is already declined" + Environment.NewLine;
            }


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

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

        return(return_object);
    }
Exemple #3
0
    public static ReturnObject GetManualPunchData(int page_number, bool is_filter, string filters)
    {
        manual_approve page_object             = new manual_approve();
        DBConnection   db_connection           = new DBConnection();
        ReturnObject   return_object           = new ReturnObject();
        DataTable      manual_punch_data_table = new DataTable();
        DataTable      branch_list_data        = new DataTable();
        DataTable      CoManagerID_data        = new DataTable();
        int            flag        = 0;
        string         user_name   = string.Empty,
                       employee_id = string.Empty,
                       query       = string.Empty,
                       CoManagerID = string.Empty,
                       BranchList  = string.Empty;

        int user_access_level   = 0,
            start_row           = 0,
            number_of_record    = 0,
            IsDelegationManager = 0;

        try
        {
            user_name         = HttpContext.Current.Session["username"].ToString();
            employee_id       = HttpContext.Current.Session["employee_id"].ToString();
            user_access_level = Convert.ToInt32(HttpContext.Current.Session["access_level"]);

            start_row        = (page_number - 1) * 30;
            number_of_record = page_number * 30 + 1;

            //check employee is Delegation Manager or not if so get his CoManagerID
            IsDelegationManager = Convert.ToInt32(db_connection.ExecuteQuery_WithReturnValueString("Select COUNT(DelidationManagerID) from TbAsignDelegation Where DelidationManagerID='" + employee_id + "' And DeliationStatus=1 and Convert(date,Getdate())>=Convert(date,Fromdate) And Convert(date,Getdate())<=Convert(date,Todate)"));
            if (IsDelegationManager > 0)
            {
                query            = "Select ManagerId from TbAsignDelegation Where DelidationManagerID='" + employee_id + "' And DeliationStatus=1 and Convert(date,Getdate())>=Convert(date,Fromdate) And Convert(date,Getdate())<=Convert(date,Todate)";
                CoManagerID_data = db_connection.ReturnDataTable(query);
                if (CoManagerID_data.Rows.Count > 0)
                {
                    foreach (DataRow dr in CoManagerID_data.Rows)
                    {
                        CoManagerID += "'" + dr["ManagerId"] + "',";
                    }

                    CoManagerID = CoManagerID.TrimEnd(',');
                }
            }

            //get list of branches assigned to logged in manager hr

            query            = "Select BranchCode From TbManagerHrBranchMapping Where ManagerID='" + employee_id + "'";
            branch_list_data = db_connection.ReturnDataTable(query);
            query            = string.Empty;

            query = page_object.GetBaseQuery(); //read main query

            if (branch_list_data.Rows.Count > 0)
            {
                foreach (DataRow dr in branch_list_data.Rows)
                {
                    BranchList += "'" + dr["BranchCode"] + "',";
                }

                BranchList = BranchList.TrimEnd(',');
            }
            else
            {
                BranchList = "'Empty'";
            }

            //Validate CoManagerID
            if (string.IsNullOrEmpty(CoManagerID))
            {
                CoManagerID = "'Empty'";
            }

            //modify query as per access level
            if (user_access_level == 0)//Admin
            {
                query += " ";
            }
            else if (user_access_level == 3)//HR
            {
                flag   = 1;
                query += " and e.Emp_Code in (select Emp_Code from EmployeeMaster where Emp_Branch In (" + BranchList + ")) ";
            }
            else if (user_access_level == 1 && !string.IsNullOrEmpty(CoManagerID) && CoManagerID != "'Empty'")//Manager and CoManager
            {
                flag   = 2;
                query += " and e.Emp_Code in ( select Emp_Code from EmployeeMaster where ((managerId in ('" + employee_id + "'," + CoManagerID + ")) and Emp_Status=1 )  or Emp_Branch in (" + BranchList + "))";
            }
            else if (user_access_level == 1 && CoManagerID == "'Empty'")//Only Manager
            {
                flag   = 2;
                query += " and e.Emp_Code in ( select Emp_Code from EmployeeMaster where (managerId='" + employee_id + "'  and Emp_Status=1 ) or Emp_Branch in (" + BranchList + "))";
            }
            else
            {
                query += " and 1=0 '" + employee_id + "'";// Only Employee but for approval employee don't have access to page
            }

            if (is_filter)
            {
                query = page_object.GetFilterQuery(filters, query);
                //if (flag == 1)
                //{
                //    query += "  and pa.Hr_approval=1 ";
                //}
                //else if (flag == 2)
                //{
                //    query += "  and pa.manager_approval=1 ";
                //}
                //else
                //{
                //    query += " ";
                //}
            }
            else
            {
                if (flag == 1)
                {
                    query += " and pa.approve=1 and pa.Hr_approval=1 ";
                }
                else if (flag == 2)
                {
                    query += " and pa.approve=1 and pa.manager_approval=1 ";
                }
                else
                {
                    query += " and pa.approve=1";
                }
            }
            //manager_approval=0,Hr_approval=1
            query += " ) a where row > " + start_row + " and row < " + number_of_record;
            query += "  order by a.workdate desc";

            manual_punch_data_table = db_connection.ReturnDataTable(query);

            return_object.status      = "success";
            return_object.return_data = JsonConvert.SerializeObject(manual_punch_data_table, Formatting.Indented);
        }
        catch (Exception ex)
        {
            Logger.LogException(ex, page, "GET_MANUAL_PUNCHES");

            return_object.status      = "error";
            return_object.return_data = "An error occurred while performing this operation. Please try again. If the error persists, please contact Support.";
        }
        return(return_object);
    }