CEL_Payroll/Payroll.Service/EmpRequisition/DA/EmployeeRequisitionDA.cs
2024-09-17 14:30:13 +06:00

333 lines
17 KiB
C#

using System;
using System.Data;
using Ease.CoreV35.DataAccess;
using Ease.CoreV35.Model;
using Payroll.BO;
namespace Payroll.Service
{
class EmployeeRequisitionDA
{
#region Get Functions
public static IDataReader Get(TransactionContext tc, int empRequisitionID)
{
return tc.ExecuteReader("SELECT * from EmployeeRequisition WHERE EmpRequisitionID=%n", empRequisitionID);
}
public static IDataReader Get(TransactionContext tc)
{
return tc.ExecuteReader("SELECT * from EmployeeRequisition");
}
public static IDataReader GetByDepartmentID(TransactionContext tc, int departmentID)
{
return tc.ExecuteReader("SELECT * from EmployeeRequisition WHERE DepartmentID=%n", departmentID);
}
public static IDataReader GetRequisitionUserByReqID(TransactionContext tc, int reqID)
{
return tc.ExecuteReader("SELECT * from RequisitionUser WHERE EmpRequisitionID=%n", reqID);
}
#endregion
#region Get Datasets
internal static DataSet GetEmployeeRequisitionsByDepartmentID(TransactionContext tc, int departmentID,EnumEmpReqStatus reqStatus)
{
DataSet empRequisitionDS = new DataSet();
try
{
string sql = string.Empty;
switch (reqStatus)
{
case EnumEmpReqStatus.RM:
sql = SQLParser.MakeSQL(@"select empR.EmpRequisitionID as ID,
'['+grd.Code+']-'+grd.[Description] GradeCodeName,empR.Position,
empR.MaxEmployee,
CONVERT(VARCHAR(30),empR.RequisitionDate,106) RequisitionDate,
CASE
When empR.Gender = 0
then 'Regardless'
When empR.Gender = 1
then 'Male'
ELSE 'Female'
END as Gender,
CASE
When empR.[Status] = 0
then 'Draft'
When empR.[Status] = 1
then 'Sent to Department Head'
When empR.[Status] = 2 and empR.IsCompleted = 0
then 'Sent to HR'
When empR.[Status] = 2 and empR.IsCompleted = 1
then 'Declined by HR'
When empR.[Status] = 3 and empR.IsCompleted = 0
then 'Send to CEO'
When empR.[Status] = 3 and empR.IsCompleted = 1
then 'Declined by CEO'
ELSE 'Approved by CEO'
END as [Status]
FROM EmployeeRequisition empR,Grades grd
WHERE empR.GradeID = grd.GradeID AND empR.DepartmentID=%n", departmentID);
break;
case EnumEmpReqStatus.DH:
sql = SQLParser.MakeSQL(@"select empR.EmpRequisitionID as ID,
'['+grd.Code+']-'+grd.[Description] GradeCodeName,empR.Position,
empR.MaxEmployee,
CONVERT(VARCHAR(30),empR.RequisitionDate,106) RequisitionDate,
CASE
When empR.Gender = 0
then 'Regardless'
When empR.Gender = 1
then 'Male'
ELSE 'Female'
END as Gender,
CASE
When empR.[Status] = 1
then ' '
When empR.[Status] = 2 and empR.IsCompleted = 0
then 'Sent to HR'
When empR.[Status] = 2 and empR.IsCompleted = 1
then 'Declined by HR'
When empR.[Status] = 3 and empR.IsCompleted = 0
then 'Send to CEO'
When empR.[Status] = 3 and empR.IsCompleted = 1
then 'Declined by CEO'
ELSE 'Approved by CEO'
END as [Status]
FROM EmployeeRequisition empR,Grades grd
WHERE empR.GradeID = grd.GradeID AND
empR.[Status]>0 And empR.DepartmentID=%n", departmentID);
break;
case EnumEmpReqStatus.Approved:
sql = SQLParser.MakeSQL(@"select empR.EmpRequisitionID as ID,
'['+grd.Code+']-'+grd.[Description] GradeCodeName,empR.Position,
empR.MaxEmployee,
CONVERT(VARCHAR(30),empR.RequisitionDate,106) RequisitionDate,
CASE
When empR.Gender = 0
then 'Regardless'
When empR.Gender = 1
then 'Male'
ELSE 'Female'
END as Gender,
CASE
When empR.[Status] = 1
then 'Draft'
When empR.[Status] = 2 and empR.IsCompleted = 0
then 'Sent to HR'
When empR.[Status] = 2 and empR.IsCompleted = 1
then 'Declined by HR'
When empR.[Status] = 3 and empR.IsCompleted = 0
then 'Send to CEO'
When empR.[Status] = 3 and empR.IsCompleted = 1
then 'Declined by CEO'
ELSE 'Approved by CEO'
END as [Status]
FROM EmployeeRequisition empR,Grades grd
WHERE empR.GradeID = grd.GradeID AND
empR.[Status]>0 And empR.[Status]=%n", (int)reqStatus);
break;
default:
break;
}
empRequisitionDS = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return empRequisitionDS;
}
internal static DataSet GetEmployeeRequisitionsForCEO(TransactionContext tc)
{
DataSet empRequisitionDS = new DataSet();
try
{
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"select empR.EmpRequisitionID as ID,empR.DepartmentID,
dpt.DESCRIPTION as [Department],
'['+grd.Code+']-'+grd.[Description] GradeCodeName,empR.Position,
empR.MaxEmployee,
CONVERT(VARCHAR(30),empR.RequisitionDate,106) RequisitionDate,
CASE
When empR.Gender = 0
then 'Regardless'
When empR.Gender = 1
then 'Male'
ELSE 'Female'
END as Gender,
CASE
When empR.[Status] = 3 and empR.IsCompleted = 0
then 'Sent by HR Head'
When empR.[Status] = 3 and empR.IsCompleted = 1
then 'Declined'
ELSE 'Approved'
END as [Status]
FROM EmployeeRequisition empR,Grades grd,Department dpt
WHERE empR.[Status]>2 And empR.GradeID = grd.GradeID
AND dpt.DEPARTMENTID = empR.DepartmentID
Order By empR.DepartmentID");
empRequisitionDS = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return empRequisitionDS;
}
internal static DataSet GetEmployeeRequisitionsForHR(TransactionContext tc)
{
DataSet empRequisitionDS = new DataSet();
try
{
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"select empR.EmpRequisitionID as ID,empR.DepartmentID,
dpt.DESCRIPTION as [Department],
'['+grd.Code+']-'+grd.[Description] GradeCodeName,empR.Position,
empR.MaxEmployee,
CONVERT(VARCHAR(30),empR.RequisitionDate,106) RequisitionDate,
CASE
When empR.Gender = 0
then 'Regardless'
When empR.Gender = 1
then 'Male'
ELSE 'Female'
END as Gender,
CASE
When empR.[Status] = 2 and empR.IsCompleted = 0
then 'Sent by Department Head'
When empR.[Status] = 2 and empR.IsCompleted = 1
then 'Declined'
When empR.[Status] = 3 and empR.IsCompleted = 0
then 'Send to CEO'
When empR.[Status] = 3 and empR.IsCompleted = 1
then 'Declined by CEO'
ELSE 'Approved by CEO'
END as [Status]
FROM EmployeeRequisition empR,Grades grd,Department dpt
WHERE empR.[Status]>1 And empR.GradeID = grd.GradeID
AND dpt.DEPARTMENTID = empR.DepartmentID
Order By empR.DepartmentID");
empRequisitionDS = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return empRequisitionDS;
}
#endregion
#region Insert Functions
public static void Insert(TransactionContext tc, EmployeeRequisition oItem)
{
string sql = SQLParser.MakeSQL(@"INSERT INTO EmployeeRequisition
(EmpRequisitionID,DepartmentID,RequisitionDate,Position,
GradeID,MaxEmployee,BasicPay,JobDescription,
Justification,Academic,Technical,Age,
Experience,Gender,Areas,OtherRequirements,
Status,IsCompleted,IsHeadCount,CreatedBy,CreationDate)" +
@" VALUES(%n,%n,%d,%s,
%n,%n,%s,%s,
%s,%s,%s,%s,
%s,%n,%s,%s,
%n,%b,%b,%n,%d)",
oItem.ID.Integer, oItem.DepartmentID.Integer, oItem.RequisitionDate, oItem.Position, oItem.GradeID.Integer, oItem.MaxEmployee, DataReader.GetNullValue(oItem.BasicPay), DataReader.GetNullValue(oItem.JobDescription),
DataReader.GetNullValue(oItem.Justification), DataReader.GetNullValue(oItem.Academic), DataReader.GetNullValue(oItem.Technical), DataReader.GetNullValue(oItem.Age),
DataReader.GetNullValue(oItem.Experience), (int)oItem.Gender, DataReader.GetNullValue(oItem.Areas), DataReader.GetNullValue(oItem.OtherRequirements),
(int)oItem.Status, oItem.IsCompleted, oItem.IsHeadCount, oItem.CreatedBy.Integer, oItem.CreatedDate);
tc.ExecuteNonQuery(sql);
}
public static void InsertRequisitionUser(TransactionContext tc, RequisitionUser oItem)
{
tc.ExecuteNonQuery("INSERT INTO RequisitionUser(RequisitionUserID,EmpRequisitionID,EmployeeID,Status,ChangeDate,ChangeString,Remarks)" +
" VALUES(%n,%n,%n,%n,%d,%s,%s)", oItem.ID.Integer, oItem.EmpRequisitionID.Integer, oItem.EmployeeID.Integer, oItem.Status, oItem.ChangeDate, DataReader.GetNullValue(oItem.ChangeString), DataReader.GetNullValue(oItem.Remarks));
}
#endregion
#region Update Functions
public static void Update(TransactionContext tc, EmployeeRequisition oItem)
{
string sql = SQLParser.MakeSQL(@"Update EmployeeRequisition SET DepartmentID=%n,RequisitionDate=%d,Position=%s,GradeID=%n, MaxEmployee=%n,BasicPay=%s,JobDescription=%s,Justification=%s,Academic=%s,Technical=%s,Age=%s,Experience=%s,Gender=%n,Areas=%s,OtherRequirements=%s,Status=%n,IsCompleted=%b,IsHeadCount=%b,CreatedBy=%n,CreationDate=%d" +
" Where EmpRequisitionID = %n", oItem.DepartmentID.Integer, oItem.RequisitionDate, oItem.Position, oItem.GradeID.Integer, oItem.MaxEmployee, DataReader.GetNullValue(oItem.BasicPay), DataReader.GetNullValue(oItem.JobDescription), DataReader.GetNullValue(oItem.Justification), DataReader.GetNullValue(oItem.Academic), DataReader.GetNullValue(oItem.Technical), DataReader.GetNullValue(oItem.Age), DataReader.GetNullValue(oItem.Experience), (int)oItem.Gender, DataReader.GetNullValue(oItem.Areas), DataReader.GetNullValue(oItem.OtherRequirements), (int)oItem.Status, oItem.IsCompleted, oItem.IsHeadCount, oItem.CreatedBy.Integer, oItem.CreatedDate, oItem.ID.Integer);
tc.ExecuteNonQuery(sql);
}
internal static void ChangeStatus(TransactionContext tc, int empReqID, EnumEmpReqStatus enumEmpReqStatus)
{
string sql;
if (enumEmpReqStatus == EnumEmpReqStatus.Approved)
{
sql = SQLParser.MakeSQL(@"Update EmployeeRequisition
Set Status =%n , IsCompleted = 1
Where EmpRequisitionID=%n", (int)enumEmpReqStatus, empReqID);
}
else
{
sql = SQLParser.MakeSQL(@"Update EmployeeRequisition
Set Status =%n
Where EmpRequisitionID=%n", (int)enumEmpReqStatus, empReqID);
}
tc.ExecuteNonQuery(sql);
}
internal static void RequisitionDeclinedByHR(TransactionContext tc, EmployeeRequisition employeeRequisition)
{
string sql;
sql = SQLParser.MakeSQL(@"Update EmployeeRequisition
Set Status =2 , IsCompleted = 1
Where EmpRequisitionID=%n",employeeRequisition.ID.Integer);
tc.ExecuteNonQuery(sql);
}
internal static void RequisitionDeclinedByCEO(TransactionContext tc, EmployeeRequisition employeeRequisition)
{
string sql;
sql = SQLParser.MakeSQL(@"Update EmployeeRequisition
Set Status =3 , IsCompleted = 1
Where EmpRequisitionID=%n", employeeRequisition.ID.Integer);
tc.ExecuteNonQuery(sql);
}
#endregion
#region Delete Functions
public static void Delete(TransactionContext tc, int id)
{
tc.ExecuteNonQuery("Delete from EmployeeRequisition where EmpRequisitionID=%n", id);
}
public static void DeleteRequisitionUsers(TransactionContext tc, int empRequisitionID)
{
tc.ExecuteNonQuery("Delete from RequisitionUser Where EmpRequisitionID = %n", empRequisitionID);
}
#endregion
}
}