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"); } }
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); }
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); }