2024-10-14 10:01:49 +06:00
using System ;
using System.Data ;
using Ease.Core.DataAccess ;
using HRM.BO ;
namespace HRM.DA
{
#region EmpLifeCycleDA
public class EmpLifeCycleDA
{
#region Constructor
private EmpLifeCycleDA ( )
{
}
#endregion
#region Insert function
public static void Insert ( TransactionContext tc , EmpLifeCycle item )
{
tc . ExecuteNonQuery (
"INSERT INTO EmpLifeCycle(EmpLifeCycleID,EffectDate,NodeID,GrossSalary,BasicSalary,GradeID,CategoryID,CompanyID,FunctionID,DesignationID,LocationID,DepartmentID,IsConfirm,pFMemberType,IsDiscontinue,IsContinue,EmployeeID,StatusDetailID,Remarks,Description,Status,CreatedBy, CreationDate, SequenceNo,SalaryMonth,IsCurrentMonthIncluded,CostCenterID,GradeSalaryAssesmentID,EmployeeCCID,IncrementNo,PayrollTypeID,ComplainID,PunishmentID)" +
" VALUES( %n , %D , %n , %n , %n , %n , %n , %n , %n , %n , %n , %n , %b , %n , %b , %b , %n , %n , %s , %s , %n , %n , %D , %n , %D , %b , %n , %n , %n ,%n, %n,%n,%n )" ,
item . ID , item . EffectDate , item . NodeID , item . GrossSalary , item . BasicSalary ,
item . GradeID , item . CategoryID ,
item . CompanyID , item . FunctionID ,
item . DesignationID , item . LocationID ,
item . DepartmentID , item . IsConfirm , item . PFMemberType , item . IsDiscontinue ,
item . IsContinue , item . EmployeeID , item . StatusDetailID , item . Remarks ,
item . Description , item . EmployeeStatus , DataReader . GetNullValue ( item . CreatedBy , 0 ) ,
item . CreatedDate , item . Sequence , item . SalaryMonth , item . IsCurrentMonthIncluded ,
item . CostCenterID , item . GradeSalaryAssesmentID ,
item . EmployeeCCID , item . IncrementNo , DataReader . GetNullValue ( item . PayrollTypeID , 0 ) , DataReader . GetNullValue ( item . ComplainID , 0 ) , DataReader . GetNullValue ( item . PunishmentID , 0 ) ) ;
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13 //14 //15 //16 //17 //18 //19 //20 //21 //21 //22 //23 //24 //25
}
#endregion
#region Update function
public static void Update ( TransactionContext tc , EmpLifeCycle item )
{
//tc.ExecuteNonQuery("UPDATE EmpLifeCycle SET Code=%s, Name=%s, ACCOUNTNOFORMAT=%s, ModifiedBy=%n, ModifiedDate=%d, SequenceNo=%n, Status=%n" +
//"WHERE EmpLifeCycleID=%n", item.Code, item.Name, item.Accountingformat, item.ModifiedBy, item.ModifiedDate, item.Sequence, item.Status,item.ID);
}
#endregion
#region Get Function
internal static IDataReader GetNotYetProcessUptoToday ( TransactionContext tc )
{
string sql = SQLParser . MakeSQL ( "Select * from EmpLifeCycle where IsProcessed =%b and EffectDate <=%d" ,
false , DateTime . Today ) ;
return tc . ExecuteReader ( sql ) ;
}
internal static IDataReader Get ( TransactionContext tc , int lifecycleID )
{
return tc . ExecuteReader ( "SELECT * FROM EmpLifeCycle where EmpLifeCycleID=%n order by SequenceNo" ,
lifecycleID ) ;
}
internal static IDataReader GetEmpID ( TransactionContext tc , int nEmpID , DateTime effectDate )
{
return tc . ExecuteReader (
"SELECT * FROM EmpLifeCycle where employeeid=%n AND EffectDate<=%d order by SequenceNo" , nEmpID ,
effectDate ) ;
}
internal static IDataReader GetLastPosition ( TransactionContext tc , int nEmpID )
{
return tc . ExecuteReader (
"select * from EmpLifeCycle where employeeid=%n and sequenceno=(select max(sequenceno) from EmpLifeCycle where employeeid=%n AND EffectDate<=%d)" ,
nEmpID , nEmpID , DateTime . Today ) ;
}
internal static IDataReader Get ( TransactionContext tc , EnumStatus status , int payrollTypeID )
{
if ( EnumStatus . Active = = status )
{
return tc . ExecuteReader ( "SELECT * FROM EmpLifeCycle where Status=%n order by CreationDate" , status ) ;
}
else
{
return tc . ExecuteReader (
"SELECT * FROM EmpLifeCycle where EmployeeID in(select EmployeeID from EMPLOYEE where PAYROLLTYPEID=%n) order by CreationDate" ,
payrollTypeID ) ;
}
}
internal static IDataReader Get ( TransactionContext tc , string empIds , int statusDetailsId , DateTime fromDate ,
DateTime toDate , int payrollTypeId )
{
return tc . ExecuteReader (
"SELECT * FROM EmpLifeCycle Where EmployeeID in (%q) And STATUSDETAILID=%n AND EffectDate Between %d ANd %d order by EffectDate desc" ,
empIds , statusDetailsId , fromDate , toDate ) ;
}
internal static IDataReader GetEmpID ( TransactionContext tc , int employeeID )
{
return tc . ExecuteReader ( "SELECT * FROM EmpLifeCycle Where EmployeeID=%n order by EffectDate desc" ,
employeeID ) ;
}
internal static DataSet GetDesignationChange ( TransactionContext tc , DateTime fromDate , DateTime toDate , int payrollTypeId )
{
return tc . ExecuteDataSet ( @ "SELECT distinct e.EMPLOYEEID, e.EMPLOYEENO,e.NAME,el.EFFECTDATE,d.NAME Designation, u.LOGINID,el.CREATEDBY,el.CREATIONDATE,el.emplifecycleID , uf.LOGINID AuthorizeBy,f.APPROVEDDATE FROM emplifecycle el
INNER JOIN EMPLOYEE e ON e . EMPLOYEEID = el . EMPLOYEEID
LEFT JOIN DESIGNATION d ON d . DESIGNATIONID = el . DESIGNATIONID
LEFT JOIN USERS u ON u . USERID = el . CREATEDBY
LEFT JOIN ApproveFinantialData f ON e . EMPLOYEEID = f . EMPLOYEEID AND el . EMPLIFECYCLEID = f . OBJECTID AND f . FINANATIALDATATYPE = 3 AND Year ( f . SALARYMONTH ) = Year ( el . EFFECTDATE ) AND MONTH ( f . SALARYMONTH ) = MONTH ( el . EFFECTDATE )
LEFT JOIN Users uf ON uf . USERID = f . Approvedby
INNER JOIN ( SELECT DISTINCT els . EMPLOYEEID , effectdate FROM emplifecycle els , EMPLOYEE es WHERE els . EMPLOYEEID = es . EMPLOYEEID AND CAST ( els . EFFECTDATE AS DATE ) < > es . joiningdate and EFFECTDATE between % d and % d AND els . DESIGNATIONID IS NOT NULL
) A ON A . Employeeid = el . EMPLOYEEID
WHERE el . DESIGNATIONID IS NOT NULL And e . payrollTypeId = % n
ORDER BY e . EMPLOYEENO , el . EFFECTDATE desc ", fromDate, toDate, payrollTypeId);
}
//internal static IDataReader Get(TransactionContext tc, DateTime fromEffectDate, DateTime toEffectDate, int eventID)
//{
// string sql = string.Empty;
// sql = SQLParser.MakeSQL("Select * from EmpLifeCycle Where EffectDate between %d and %d AND StatusDetailID =%n order by EffectDate",fromEffectDate,toEffectDate, eventID);
// return tc.ExecuteReader(sql);
//}
internal static DataSet GetEmpLifecycleServiceRecord ( TransactionContext tc , int empId )
{
string sql = SQLParser . MakeSQL ( @ "
WITH CTE AS (
SELECT
EMPLIFECYCLEID ,
BASICSALARY ,
GRADEID ,
DESIGNATIONID ,
EFFECTDATE ,
ROW_NUMBER ( ) OVER ( ORDER BY EFFECTDATE ) AS rn
FROM
EMPLIFECYCLE
WHERE
EMPLOYEEID = % n AND ( BASICSALARY < > 0 and BASICSALARY IS NOT NULL )
AND ( GRADEID IS NOT NULL OR DESIGNATIONID IS NOT NULL )
) , RecursiveCTE AS (
SELECT
EMPLIFECYCLEID ,
BASICSALARY ,
GRADEID ,
DESIGNATIONID ,
EFFECTDATE ,
rn ,
BASICSALARY AS PrevBASICSALARY ,
GRADEID AS PrevGRADEID ,
DESIGNATIONID AS PrevDESIGNATIONID
FROM
CTE
WHERE
rn = 1
UNION ALL
SELECT
CTE . EMPLIFECYCLEID ,
CTE . BASICSALARY ,
CTE . GRADEID ,
CTE . DESIGNATIONID ,
CTE . EFFECTDATE ,
CTE . rn ,
CASE
WHEN CTE . BASICSALARY IS NOT NULL THEN CTE . BASICSALARY
ELSE RecursiveCTE . PrevBASICSALARY
END AS PrevBASICSALARY ,
CASE
WHEN CTE . GRADEID IS NOT NULL THEN CTE . GRADEID
ELSE RecursiveCTE . PrevGRADEID
END AS PrevGRADEID ,
CASE
WHEN CTE . DESIGNATIONID IS NOT NULL THEN CTE . DESIGNATIONID
ELSE RecursiveCTE . PrevDESIGNATIONID
END AS PrevDESIGNATIONID
FROM
CTE
INNER JOIN RecursiveCTE ON CTE . rn = RecursiveCTE . rn + 1
)
SELECT
EMPLIFECYCLEID ,
- - BASICSALARY AS ORG_BASICSALARY ,
PrevBASICSALARY AS BASICSALARY ,
- - GRADEID AS ORG_GRADEID ,
- - PrevGRADEID AS GRADEID ,
- - DESIGNATIONID AS ORG_DESIGNATIONID ,
PrevDESIGNATIONID AS DESIGNATIONID ,
EFFECTDATE
FROM
RecursiveCTE
ORDER BY
EFFECTDATE DESC ", empId);
DataSet excquery = tc . ExecuteDataSet ( sql ) ;
//int countDesId = 0;
//int countBasicSal = 0;
//int countGradeId = 0;
//if (excquery.Tables.Count > 0 && excquery.Tables[0].Rows.Count > 0)
//{
// // Iterate through each row in the DataTable
// foreach (DataRow row in excquery.Tables[0].Rows)
// {
// if (row["DESIGNATIONID"] is DBNull || row["BASICSALARY"] is DBNull || row["BASICSALARY"] is DBNull)
// {
// if (row["DESIGNATIONID"] is DBNull)
// {
// countDesId++;
// }
// if (row["BASICSALARY"] is DBNull)
// {
// countBasicSal++;
// }
// if (row["GRADEID"] is DBNull)
// {
// countGradeId++;
// }
// }
// else
// {
// int tempDesId = Convert.ToInt32(row["DESIGNATIONID"]);
// int tempGradeId = Convert.ToInt32(row["GRADEID"]);
// decimal tempSalary = Convert.ToDecimal(row["BASICSALARY"]);
// foreach (DataRow nrow in excquery.Tables[0].Rows)
// {
// // Check the condition and update the DESIGNATIONID if required
// if ((nrow["DESIGNATIONID"] is DBNull) && countDesId > 0)
// {
// // Set the new value for DESIGNATIONID
// nrow["DESIGNATIONID"] = tempDesId;
// countDesId--;
// }
// if ((nrow["BASICSALARY"] is DBNull) && countBasicSal > 0)
// {
// // Set the new value for DESIGNATIONID
// nrow["BASICSALARY"] = tempSalary;
// countBasicSal--;
// }
// if ((nrow["GRADEID"] is DBNull) && countGradeId > 0)
// {
// // Set the new value for DESIGNATIONID
// nrow["GRADEID"] = tempGradeId;
// countGradeId--;
// }
// if (countDesId == 0 && countBasicSal == 0 && countGradeId == 0)
// {
// break;
// }
// }
// }
// }
//}
// Iterate through each DataRow and update DESIGNATIONID with the last non-null DESIGNATIONID value
DataTable dataTable = excquery . Tables [ 0 ] ;
int lastNonNullIndex = - 1 ;
for ( int i = dataTable . Rows . Count - 1 ; i > = 0 ; i - - )
{
if ( ! ( dataTable . Rows [ i ] [ "DESIGNATIONID" ] is DBNull ) )
{
lastNonNullIndex = i ;
break ;
}
}
if ( lastNonNullIndex > = 0 )
{
string lastNonNullDesignationID = dataTable . Rows [ lastNonNullIndex ] [ "DESIGNATIONID" ] . ToString ( ) ;
foreach ( DataRow row in dataTable . Rows )
{
if ( row [ "DESIGNATIONID" ] is DBNull )
{
row [ "DESIGNATIONID" ] = lastNonNullDesignationID ;
}
}
}
return excquery ;
}
#endregion
#region Delete function
internal static void Delete ( TransactionContext tc , EmpLifeCycle oEmpLifeCycle )
{
tc . ExecuteNonQuery ( "DELETE FROM EmpLifeCycle Where EmpLifeCycleID=%n" , oEmpLifeCycle . ID ) ;
}
internal static object GetNodeId ( TransactionContext tc , int EmployeeId )
{
object ovalue = tc . ExecuteScalar ( "select NodeID from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and NodeID is Not Null)" ,
EmployeeId ) ;
if ( ovalue ! = DBNull . Value & & ovalue ! = null )
return Convert . ToInt32 ( ovalue ) ;
else return null ;
}
public static void UpdateEmployee ( TransactionContext tc , EmpLifeCycle oItem )
{
// Gross Salary
object ovalue ;
if ( oItem . GrossSalary ! = null & & oItem . GrossSalary ! = 0 )
{
ovalue = tc . ExecuteScalar ( "select GrossSalary from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and GrossSalary is Not Null)" ,
oItem . EmployeeID ) ;
if ( ovalue ! = DBNull . Value )
{
if ( ovalue ! = null & & ovalue ! = null )
tc . ExecuteNonQuery ( "UPDATE Employee SET GrossSalary= %n WHERE EMPLOYEEID=%n" ,
Convert . ToDouble ( ovalue ) , oItem . EmployeeID ) ;
}
}
if ( oItem . BasicSalary ! = null & & oItem . BasicSalary ! = 0 )
{
//Basic Salary
ovalue = tc . ExecuteScalar ( "select BasicSalary from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and BasicSalary is Not Null)" ,
oItem . EmployeeID ) ;
if ( ovalue ! = DBNull . Value )
{
if ( ovalue ! = null & & ovalue ! = null )
tc . ExecuteNonQuery ( "UPDATE Employee SET BasicSalary= %n WHERE EMPLOYEEID=%n" ,
Convert . ToDouble ( ovalue ) , oItem . EmployeeID ) ;
}
}
////Category
//tc.ExecuteNonQuery("Update Employee Set Employee.BasicSalary =(select BasicSalary from EmpLifeCycle where EmpLifeCycleID=( "
// + " select Max(BasicSalary) from EmpLifeCycle where employeeid=%n and BasicSalary is Not Null))", oItem.EmployeeID);
//GradeID
if ( oItem . GradeID ! = null & & oItem . GradeID ! = 0 )
tc . ExecuteNonQuery (
"Update Employee Set Employee.GradeID =(select GradeID from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and GradeID is Not Null)) WHERE Employee.EmployeeID=%n" ,
oItem . EmployeeID , oItem . EmployeeID ) ;
//Company
if ( oItem . CompanyID ! = null & & oItem . CompanyID ! = 0 )
tc . ExecuteNonQuery (
"Update Employee Set Employee.Companyid =(select Companyid from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and Companyid is Not Null)) WHERE Employee.EmployeeID=%n" ,
oItem . EmployeeID , oItem . EmployeeID ) ;
//Functionid
if ( oItem . FunctionID ! = null & & oItem . FunctionID ! = 0 )
tc . ExecuteNonQuery (
"Update Employee Set Employee.Functionid =(select Functionid from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and Functionid is Not Null)) WHERE Employee.EmployeeID=%n" ,
oItem . EmployeeID , oItem . EmployeeID ) ;
//Designationid
if ( oItem . DesignationID ! = null & & oItem . DesignationID ! = 0 )
tc . ExecuteNonQuery (
"Update Employee Set Employee.DesignationId =(select DesignationId from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and DesignationId is Not Null)) WHERE Employee.EmployeeID=%n" ,
oItem . EmployeeID , oItem . EmployeeID ) ;
//LocationID
if ( oItem . LocationID ! = null & & oItem . LocationID ! = 0 )
tc . ExecuteNonQuery (
"Update Employee Set Employee.LocationID =(select LocationID from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and LocationID is Not Null)) WHERE Employee.EmployeeID=%n" ,
oItem . EmployeeID , oItem . EmployeeID ) ;
//Departmentid
if ( oItem . DepartmentID ! = null & & oItem . DepartmentID ! = 0 )
tc . ExecuteNonQuery (
"Update Employee Set Employee.Departmentid =(select Departmentid from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and Departmentid is Not Null)) WHERE Employee.EmployeeID=%n" ,
oItem . EmployeeID , oItem . EmployeeID ) ;
//Category
if ( oItem . CategoryID ! = null & & oItem . CategoryID ! = 0 )
{
var catItem = tc . ExecuteScalar (
@" select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and CategoryID is Not Null " +
" " , oItem . EmployeeID ) ;
if ( catItem ! = DBNull . Value ) // this is special checking for not null update in employee category table
{
tc . ExecuteNonQuery (
"Update Employee Set Employee.CategoryID =(select CategoryID from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and CategoryID is Not Null)) " +
" WHERE Employee.EmployeeID=%n" ,
oItem . EmployeeID , oItem . EmployeeID ) ;
}
}
//IsConfirmed
if ( oItem . IsConfirm ! = null )
{
ovalue = tc . ExecuteScalar ( "select IsConfirm from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and IsConfirm is Not Null)" ,
oItem . EmployeeID ) ;
if ( ovalue ! = DBNull . Value & & ovalue ! = null )
{
bool isconfirm = Convert . ToBoolean ( ovalue ) ;
tc . ExecuteNonQuery ( "UPDATE Employee SET ISCONFIRMED= %b WHERE EMPLOYEEID=%n" ,
isconfirm , oItem . EmployeeID ) ;
}
else
tc . ExecuteNonQuery (
"UPDATE Employee SET ISCONFIRMED= %b, dateOfConfirmation=null WHERE EMPLOYEEID=%n" ,
false , oItem . EmployeeID ) ;
}
if ( oItem . PFMemberType ! = null )
{
ovalue = tc . ExecuteScalar ( "select pFMemberType from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and PFMemberType is Not Null)" ,
oItem . EmployeeID ) ;
if ( ovalue ! = DBNull . Value & & ovalue ! = null )
tc . ExecuteNonQuery ( "UPDATE Employee SET PFMemberType=1 WHERE EMPLOYEEID=%n" , oItem . EmployeeID ) ;
}
if ( oItem . CostCenterID ! = null & & oItem . CostCenterID ! = 0 )
{
var empccid = tc . ExecuteScalar (
"select EmployeeCCID from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n " +
"and CostCenterID is Not Null)" ,
oItem . EmployeeID ) ;
tc . ExecuteNonQuery ( @"Update EMPCOSTCENTER Set CurrentCC =%n where ID=%n" ,
true , Convert . ToInt32 ( empccid ) ) ;
tc . ExecuteNonQuery (
"Update Employee Set Employee.crgid =(select CostCenterID from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and CostCenterID is Not Null)) WHERE Employee.EmployeeID=%n" ,
oItem . EmployeeID , oItem . EmployeeID ) ;
}
if ( oItem . IsContinue ! = null | | oItem . IsDiscontinue ! = null )
{
int nContinue = 0 ;
int nDiscontinue = 0 ;
ovalue = tc . ExecuteScalar (
" select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and IsContinue is Not Null" ,
oItem . EmployeeID ) ;
if ( ovalue ! = DBNull . Value & & ovalue ! = null )
nContinue = Convert . ToInt32 ( ovalue ) ;
ovalue = tc . ExecuteScalar (
" select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and IsDiscontinue is Not Null" ,
oItem . EmployeeID ) ;
if ( ovalue ! = DBNull . Value & & ovalue ! = null )
nDiscontinue = Convert . ToInt32 ( ovalue ) ;
if ( nContinue > 0 | | nDiscontinue > 0 )
{
if ( nContinue > nDiscontinue )
{
EmployeeDA . DoContinue ( tc , oItem . EmployeeID ) ;
}
else
{
ovalue = tc . ExecuteScalar ( " select effectDate from EmpLifeCycle where EmpLifeCycleId=%n " ,
nDiscontinue ) ;
DateTime effectDate = Convert . ToDateTime ( ovalue ) ;
HREmployeeDA . UpdateEndofContact ( tc , oItem . EmployeeID , effectDate ) ;
ovalue = tc . ExecuteScalar (
" select IsCurrentMonthIncluded from EmpLifeCycle where EmpLifeCycleId=%n " , nDiscontinue ) ;
bool iscurrMonth = false ;
if ( ovalue ! = DBNull . Value ) iscurrMonth = Convert . ToBoolean ( ovalue ) ;
ovalue = tc . ExecuteScalar ( " select Status from EmpLifeCycle where EmpLifeCycleId=%n " ,
nDiscontinue ) ;
int nStatus = Convert . ToInt32 ( ovalue ) ;
if ( iscurrMonth = = true )
HREmployeeDA . UpdatemiddleOfMonthDiscontinue ( tc ,
oItem . EmployeeID , ( EnumEmployeeStatus ) nStatus , effectDate ) ;
}
}
else
{
tc . ExecuteNonQuery ( "UPDATE Employee SET Status=%n, ENDOFCONTRACTDATE=null WHERE EMPLOYEEID=%n" ,
EnumEmployeeStatus . Waitingforjoin , oItem . EmployeeID ) ;
}
}
}
internal static object GetNodeAssignDate ( TransactionContext tc , int EmployeeId )
{
object ovalue = tc . ExecuteScalar ( "select EffectDate from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and NodeID is Not Null)" ,
EmployeeId ) ;
if ( ovalue ! = DBNull . Value )
return Convert . ToDateTime ( ovalue ) ;
else return null ;
}
internal static object GetCrgId ( TransactionContext tc , int EmployeeId )
{
object ovalue = tc . ExecuteScalar ( "select CostCenterID from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and CostCenterID is Not Null)" ,
EmployeeId ) ;
if ( ovalue ! = DBNull . Value )
if ( ovalue = = null ) return null ;
else return Convert . ToInt32 ( ovalue ) ;
else return null ;
}
internal static int GetPrvRCId ( TransactionContext tc , int EmployeeId )
{
//object ovalue = tc.ExecuteScalar("select CostCenterID from EmpLifeCycle where EmpLifeCycleID=( "
// + " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and CostCenterID is Not Null)", EmployeeId);
//if (ovalue != DBNull.Value)
// if (ovalue == null) return 0;
// else return Convert.ToInt32(ovalue);
//else return 0;
string sql = SQLParser . MakeSQL ( @ "select CostCenterID from EmpLifeCycle where
sequenceno = ( select Max ( sequenceno ) from EmpLifeCycle where employeeid = % n ) - 1
AND employeeid = % n ", EmployeeId, EmployeeId);
object ovalue = tc . ExecuteScalar ( sql ) ;
if ( ovalue ! = DBNull . Value )
{
if ( ovalue = = null ) return 0 ;
else return Convert . ToInt32 ( ovalue ) ;
}
else return 0 ;
}
internal static int GetPrvGradeId ( TransactionContext tc , int EmployeeId , int gradeID )
{
//object ovalue = tc.ExecuteScalar("select GradeID from EmpLifeCycle where EmpLifeCycleID=( "
// + " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and GradeID=%n)", EmployeeId,gradeID);
//if (ovalue != DBNull.Value)
// if (ovalue == null) return 0;
// else return Convert.ToInt32(ovalue);
//else return 0;
string sql = SQLParser . MakeSQL ( @ "select GradeID from EmpLifeCycle where
sequenceno = ( select Max ( sequenceno ) from EmpLifeCycle where employeeid = % n ) - 1
AND employeeid = % n ", EmployeeId, EmployeeId);
object ovalue = tc . ExecuteScalar ( sql ) ;
if ( ovalue ! = DBNull . Value )
{
if ( ovalue = = null ) return 0 ;
else return Convert . ToInt32 ( ovalue ) ;
}
else return 0 ;
}
internal static int GetPrvLocationId ( TransactionContext tc , int EmployeeId , int locationID )
{
//object ovalue = tc.ExecuteScalar("select LocationID from EmpLifeCycle where EmpLifeCycleID=( "
// + " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and LocationID=%n)", EmployeeId, locationID);
//if (ovalue != DBNull.Value)
// if (ovalue == null) return 0;
// else return Convert.ToInt32(ovalue);
//else return 0;
string sql = SQLParser . MakeSQL ( @ "select LocationID from EmpLifeCycle where
sequenceno = ( select Max ( sequenceno ) from EmpLifeCycle where employeeid = % n ) - 1
AND employeeid = % n ", EmployeeId, EmployeeId);
object ovalue = tc . ExecuteScalar ( sql ) ;
if ( ovalue ! = DBNull . Value )
{
if ( ovalue = = null ) return 0 ;
else return Convert . ToInt32 ( ovalue ) ;
}
else return 0 ;
}
internal static int GetPrvDesigId ( TransactionContext tc , int EmployeeId , int designationID )
{
object ovalue = tc . ExecuteScalar ( "select LocationID from EmpLifeCycle where EmpLifeCycleID=( "
+ " select Max(EmpLifeCycleId) from EmpLifeCycle where employeeid=%n and LocationID=%n)" ,
EmployeeId , designationID ) ;
if ( ovalue ! = DBNull . Value )
if ( ovalue = = null ) return 0 ;
else return Convert . ToInt32 ( ovalue ) ;
else return 0 ;
}
#endregion
internal static IDataReader Get ( TransactionContext tc , int p , DateTime startDate , DateTime endDate )
{
string sql =
SQLParser . MakeSQL (
"Select * from EmpLifeCycle where StatusDetailID =%n and EffectDate between %d and %d " , p ,
startDate , endDate ) ;
return tc . ExecuteReader ( sql ) ;
}
internal static IDataReader GetByDate ( TransactionContext tc , DateTime startDate , DateTime endDate ,
int payrollTypeID )
{
string sql =
SQLParser . MakeSQL (
"Select * from EmpLifeCycle where Effectdate between %d and %d AND EmployeeID in(select EmployeeID from EMPLOYEE where PAYROLLTYPEID=%n) order by CreationDate DESC" ,
startDate , endDate , payrollTypeID ) ;
return tc . ExecuteReader ( sql ) ;
}
internal static IDataReader GetByCreateDate ( TransactionContext tc , DateTime startDate , DateTime endDate ,
int payrollTypeID )
{
string sql =
SQLParser . MakeSQL (
"Select * from EmpLifeCycle where CREATIONDATE between %d and %d AND EmployeeID in(select EmployeeID from EMPLOYEE where PAYROLLTYPEID=%n) order by EffectDate " ,
startDate , DateTime . Today , payrollTypeID ) ;
return tc . ExecuteReader ( sql ) ;
}
internal static int? EmpPrevDesg ( TransactionContext tc , int employeeID )
{
string sql = SQLParser . MakeSQL ( @ "select DesignationID from EmpLifeCycle where
sequenceno = ( select Max ( sequenceno ) from EmpLifeCycle where employeeid = % n ) - 1
AND employeeid = % n ", employeeID, employeeID);
object ovalue = tc . ExecuteScalar ( sql ) ;
if ( ovalue ! = DBNull . Value )
{
if ( ovalue = = null ) return null ;
else return Convert . ToInt32 ( ovalue ) ;
}
else return null ;
}
2024-12-12 16:44:47 +06:00
internal static void SaveDeletedData ( TransactionContext tc , EmpLifeCycle item )
{
string sql = SQLParser . MakeSQL ( "INSERT INTO EmpLifeCycleDeleted(EmpLifeCycleDeletedID,EffectDate,NodeID,GrossSalary,BasicSalary,GradeID,CategoryID,CompanyID,FunctionID,DesignationID,LocationID,DepartmentID,IsConfirm,pFMemberType,IsDiscontinue,IsContinue,EmployeeID,StatusDetailID,Remarks,Description,Status,DeletedBy, DeletdDate, SequenceNo,SalaryMonth,IsCurrentMonthIncluded,CostCenterID,GradeSalaryAssesmentID,EmployeeCCID,Role) VALUES( %n, %D , %n, %n, %n , %n, %n, %n, %n, %n, %n, %n, %b, %n, %b, %b, %n, %n, %s, %s, %n, %n, %D, %n, %D, %b, %n, %n, %n,%n)" , item . ID , item . EffectDate , DataReader . GetNullValue ( item . NodeID ) , item . GrossSalary , item . BasicSalary , DataReader . GetNullValue ( item . GradeID ) , DataReader . GetNullValue ( item . CategoryID ) , DataReader . GetNullValue ( item . CompanyID ) , DataReader . GetNullValue ( item . FunctionID ) , DataReader . GetNullValue ( item . DesignationID ) , DataReader . GetNullValue ( item . LocationID ) , DataReader . GetNullValue ( item . DepartmentID ) , item . IsConfirm , item . PFMemberType , item . IsDiscontinue , item . IsContinue , item . EmployeeID , DataReader . GetNullValue ( item . StatusDetailID ) , item . Remarks , item . Description , ( int ) item . Status , DataReader . GetNullValue ( item . CreatedBy , 0 ) , DataReader . GetNullValue ( item . CreatedDate ) , item . Sequence , item . SalaryMonth , item . IsCurrentMonthIncluded , DataReader . GetNullValue ( item . CostCenterID ) , DataReader . GetNullValue ( item . GradeSalaryAssesmentID ) , DataReader . GetNullValue ( item . EmployeeCCID ) , 3 ) ;
tc . ExecuteNonQuery ( sql ) ;
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13 //14 //15 //16 //17 //18 //19 //20 //21 //21 //22 //23 //24 //25
}
2024-10-14 10:01:49 +06:00
}
#endregion
}