2024-10-14 10:01:49 +06:00
using System ;
using System.Data ;
using Ease.Core.Model ;
using Ease.Core.DataAccess ;
using Ease.Core ;
using System.Collections.Generic ;
using Ease.Core.Utility ;
using System.IO ;
using System.Data.SqlClient ;
using HRM.BO ;
using static HRM . BO . SearchManager ;
namespace HRM.DA
{
#region SearchEmployee Service
public class SearchEmployeeService : ServiceTemplate , ISearchEmployeeService
{
private int _serial ;
public SearchEmployeeService ( )
{
_serial = 0 ;
}
private void MapObject ( SearchEmployee oSearchEmployee , DataReader oReader )
{
oSearchEmployee . EmployeeID = oReader . GetInt32 ( "EmployeeID" ) . Value ;
_serial = _serial + 1 ;
base . SetObjectID ( oSearchEmployee , ( oSearchEmployee . EmployeeID ) ) ;
oSearchEmployee . Name = oReader . GetString ( "name" ) ;
oSearchEmployee . EmployeeNo = oReader . GetString ( "employeeNo" ) ;
oSearchEmployee . LocationID = oReader . GetInt32 ( "locationID" , 0 ) ;
oSearchEmployee . CategoryID = oReader . GetInt32 ( "categoryID" , 0 ) ;
oSearchEmployee . DepartmentID = oReader . GetInt32 ( "departmentID" , true , 0 ) ;
oSearchEmployee . designationID = oReader . GetInt32 ( "designationID" , true , 0 ) ;
oSearchEmployee . designationName = oReader . GetString ( "DesignationName" , true , string . Empty ) ;
oSearchEmployee . departmentName = oReader . GetString ( "DepartmentName" , true , string . Empty ) ;
oSearchEmployee . gradeName = oReader . GetString ( "GradeName" , true , string . Empty ) ;
oSearchEmployee . GradeID = oReader . GetInt32 ( "GradeID" , 0 ) ;
oSearchEmployee . EmployeeEmail = oReader . GetString ( "Emailaddress" , true , string . Empty ) ;
this . SetObjectState ( oSearchEmployee , Ease . Core . ObjectState . Saved ) ;
}
protected override T CreateObject < T > ( DataReader oReader )
{
SearchEmployee oSearchEmployee = new SearchEmployee ( ) ;
MapObject ( oSearchEmployee , oReader ) ;
return oSearchEmployee as T ;
}
protected SearchEmployee CreateObject ( DataReader oReader )
{
SearchEmployee oSearchEmployee = new SearchEmployee ( ) ;
MapObject ( oSearchEmployee , oReader ) ;
return oSearchEmployee ;
}
#region Service implementation
public List < SearchEmployee > Search ( string sql , bool withName )
{
List < SearchEmployee > searchEmployees = null ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . Search ( tc , sql , withName ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > Search ( string sql , int userid , int payrolltypeid )
{
List < SearchEmployee > searchEmployees = null ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . Search ( tc , sql , userid , payrolltypeid ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public SearchEmployee get ( int empid )
{
SearchEmployee searchEmployees = null ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . get ( tc , empid ) ) ;
if ( dr . Read ( ) )
{
searchEmployees = this . CreateObject < SearchEmployee > ( dr ) ;
}
dr . Close ( ) ;
//while (dr.Read())
//{
// SearchEmployee item = new SearchEmployee();
// item.Name = dr.GetString("name");
// item.EmployeeNo = dr.GetString("employeeNo");
// searchEmployees.Add(item);
//}
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public SearchEmployee Get ( int id , TransactionContext tc )
{
SearchEmployee searchEmployees = null ;
try
{
DataReader oreader = new DataReader ( SearchEmployeeDA . get ( tc , id ) ) ;
if ( oreader . Read ( ) )
{
searchEmployees = this . CreateObject < SearchEmployee > ( oreader ) ;
}
oreader . Close ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
//if (tc != null)
// tc.HandleError();
//ExceptionLog.Write(e);
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > GetSelectedSearchEmployee ( List < int > empids )
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
string combinedString = string . Join ( "," , empids ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
//tc = TransactionContext.Begin();
DataReader dr = new DataReader ( SearchEmployeeDA . GetByEmpIDIn ( tc , combinedString ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > GetByEmpIDIn ( string empids )
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . GetByEmpIDIn ( tc , empids ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > FindEmpCodeName ( int payrollTypeID , string code , string name )
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . Search ( tc , payrollTypeID , code , name ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
//while (dr.Read())
//{
// SearchEmployee item = new SearchEmployee();
// item.Name = dr.GetString("name");
// item.EmployeeNo = dr.GetString("employeeNo");
// searchEmployees.Add(item);
//}
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
2024-12-17 18:22:20 +06:00
public List < SearchEmployee > FindEmpCodeNameForEmployeePicker ( int userID , int payrollTypeID , string code , string name )
2024-12-11 11:49:15 +06:00
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
2024-12-17 18:22:20 +06:00
DataReader dr = new DataReader ( SearchEmployeeDA . SearchForEmployeePicker ( tc , userID , payrollTypeID , code , name ) ) ;
2024-12-11 11:49:15 +06:00
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
//while (dr.Read())
//{
// SearchEmployee item = new SearchEmployee();
// item.Name = dr.GetString("name");
// item.EmployeeNo = dr.GetString("employeeNo");
// searchEmployees.Add(item);
//}
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
2024-10-14 10:01:49 +06:00
public List < SearchEmployee > GetEmployeeNotYetUser ( int payrollTypeID )
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . GetEmployeeNotYetUser ( tc , payrollTypeID ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > GetTeam ( int employeeid )
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . GetTeam ( tc , employeeid ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > GetTeam ( int employeeid , EnumStatus enumStatus )
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . GetTeam ( tc , employeeid , enumStatus ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > GetTeamForAttnReguApprove ( int employeeid , EnumStatus enumStatus )
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . GetTeamForAttenReguApprove ( tc , employeeid , enumStatus ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > FindCordinator ( int? id , int? payrollTypeID )
{
List < SearchEmployee > searchEmployees = new List < SearchEmployee > ( ) ;
TransactionContext tc = null ;
try
{
tc = TransactionContext . Begin ( ) ;
DataReader dr = new DataReader ( SearchEmployeeDA . FindCordinator ( tc , id , payrollTypeID ) ) ;
searchEmployees = this . CreateObjects < SearchEmployee > ( dr ) ;
dr . Close ( ) ;
tc . End ( ) ;
}
catch ( Exception e )
{
#region Handle Exception
if ( tc ! = null )
tc . HandleError ( ) ;
ExceptionLog . Write ( e ) ;
throw new ServiceException ( e . Message , e ) ;
#endregion
}
return searchEmployees ;
}
public List < SearchEmployee > Find ( SearchManager omanager )
{
string sql = "" ;
this . ParametersValidation ( omanager ) ;
this . FindRootTable ( omanager ) ;
sql = this . GetSubQuery ( omanager ) ;
bool FromEmployee = ( omanager . RootTable = = "EMPLOYEE" ) ;
string withnametempqry = @", ' ' GradeName "
+ ", ' ' DepartmentName "
+ ", ' ' DesignationName " ;
string tempTableName = " INTO #tmpEmpSrc " ;
if ( omanager . withName = = false )
{
withnametempqry = "" ;
tempTableName = "" ;
}
if ( ! FromEmployee )
{
sql = SQLParser . MakeSQL (
"SELECT EmployeeID, LocationID, CategoryID, DepartmentID, GradeID, EmployeeNo, Name "
+ " %q %q "
+ " FROM Employee Where EmployeeID IN "
+ " (Select %q.EmployeeID From %q) ORDER BY employeeno" , withnametempqry , tempTableName , omanager . RootTable , sql ) ;
}
else
{
if ( omanager . SearchFrom = = EnumSearchFrom . Attendance )
{
tempTableName = " " ;
sql = SQLParser . MakeSQL (
"SELECT distinct %q.EmployeeID, %q.LocationID, %q.CategoryID, %q.DesignationID, %q.DepartmentID, %q.GradeID, EmployeeNo, Name "
+ " "
+ " %q %q "
+ "FROM Employee %q ORDER BY employeeno" ,
omanager . RootTable , omanager . RootTable ,
omanager . RootTable , omanager . RootTable , omanager . RootTable , omanager . RootTable , withnametempqry , tempTableName , sql ) ;
}
else
{
//sql = SQLParser.MakeSQL(
// "SELECT %q.EmployeeID, %q.LocationID, %q.CategoryID, %q.DesignationID, %q.DepartmentID, %q.GradeID, Employee.EmployeeNo, Employee.Name,Employee.Emailaddress "
// + "FROM Employee %q ORDER BY employeeno",
// omanager.RootTable, omanager.RootTable, omanager.RootTable, omanager.RootTable, omanager.RootTable,
// omanager.RootTable, sql);
sql = SQLParser . MakeSQL (
"SELECT DISTINCT %q.EmployeeID, %q.LocationID, %q.CategoryID, %q.DesignationID, %q.DepartmentID, %q.GradeID, Employee.EmployeeNo, Employee.Name,Employee.Emailaddress "
+ " %q %q FROM Employee %q ORDER BY employeeno" ,
omanager . RootTable , omanager . RootTable , omanager . RootTable , omanager . RootTable , omanager . RootTable ,
omanager . RootTable , withnametempqry , tempTableName , sql ) ;
}
}
List < SearchEmployee > searchItems = new List < SearchEmployee > ( ) ;
if ( omanager . checkDataPermission = = false )
searchItems = this . Search ( sql , omanager . withName ) ;
else
{
searchItems = this . Search ( sql , ( int ) omanager . userid , ( int ) omanager . payrolltypeID ) ;
}
return searchItems ;
}
private string getCCSql ( SearchManager omanager )
{
bool FromEmployee = ( omanager . RootTable = = "EMPLOYEE" ) ;
string sql = "" ;
SearchManager . SearchParameter op = omanager . Parameter . GetByParamer ( EnumSearchParameter . CostCenterID ) ;
if ( op = = null ) return "" ;
if ( ! FromEmployee )
{
string dateTimeSyntax = omanager . Parameter . GetFromAndToDateSyntax ( ) ;
sql = SQLParser . MakeSQL (
" %q.EmployeeID IN (select distinct SALARYMONTHLY.EMPLOYEEID from SALARYEMPCOSTCENTER, SALARYMONTHLY where "
+ " SALARYEMPCOSTCENTER.SALARYMONTHLYID =SALARYMONTHLY.SALARYMONTHLYID and SALARYMONTHLY.SalaryMonth =%q AND"
+ " COSTCENTERID in(%q)) " , omanager . RootTable , dateTimeSyntax , op . ParameterValue . ToString ( ) ) ;
}
else
{
sql = SQLParser . MakeSQL (
" %q.EmployeeID IN (select distinct empCostcenter.EMPLOYEEID from empCostcenter where CurrentCC=1 AND COSTCENTERID in(%q))" ,
omanager . RootTable , op . ParameterValue . ToString ( ) ) ;
}
return sql ;
}
private void ParametersValidation ( SearchManager omanager )
{
SearchManager . SearchParameter parameter = null ;
//if serach from is not Employee, From date must have in the paramer collection
if ( omanager . SearchFrom ! = EnumSearchFrom . Employee )
{
parameter = omanager . Parameter . GetByParamer ( EnumSearchParameter . FromDate ) ;
if ( parameter = = null ) throw new ServiceException ( "From date/Month not found in the parameter" ) ;
}
//if To-date is in the parameter collection, From-date must be in the paramer collection
parameter = omanager . Parameter . GetByParamer ( EnumSearchParameter . ToDate ) ;
if ( parameter ! = null )
{
parameter = omanager . Parameter . GetByParamer ( EnumSearchParameter . FromDate ) ;
if ( parameter = = null )
throw new ServiceException (
"To-Date/month is in the collection but From date/Month not found in the parameter" ) ;
}
}
private void FindRootTable ( SearchManager omanager )
{
omanager . RootTable = "EMPLOYEE" ;
switch ( omanager . SearchFrom )
{
case EnumSearchFrom . Employee :
omanager . RootTable = "EMPLOYEE" ;
break ;
case EnumSearchFrom . Salary :
omanager . RootTable = "SALARYMONTHLY" ;
break ;
case EnumSearchFrom . Bonus :
SearchManager . SearchParameter fromdateParamBonus =
omanager . Parameter . GetByParamer ( EnumSearchParameter . FromDate ) ;
if ( fromdateParamBonus = = null ) return ;
if ( Convert . ToDateTime ( fromdateParamBonus . ParameterValue ) < = omanager . LastPayProcessMonth )
omanager . RootTable = "SALARYMONTHLY" ;
break ;
case EnumSearchFrom . OutSidePayroll :
SearchManager . SearchParameter fromdateParamOPI =
omanager . Parameter . GetByParamer ( EnumSearchParameter . FromDate ) ;
if ( fromdateParamOPI = = null ) return ;
//if ((DateTime)fromdateParamOPI.ParameterValue <= SystemInformation.CurrentSysInfo.LastPayProcessDate)
omanager . RootTable = "OPIProcessDetail" ;
break ;
case EnumSearchFrom . PFTran :
case EnumSearchFrom . OverTime :
case EnumSearchFrom . IT :
SearchManager . SearchParameter taxParamid =
omanager . Parameter . GetByParamer ( EnumSearchParameter . TaxParameterID ) ;
if ( taxParamid = = null ) break ;
;
if ( taxParamid . ParameterValue . ToString ( ) = = omanager . TaxParamID . ToString ( ) )
{
SearchManager . SearchParameter fromdateParamit =
omanager . Parameter . GetByParamer ( EnumSearchParameter . FromDate ) ;
if ( fromdateParamit = = null ) return ;
if ( Convert . ToDateTime ( fromdateParamit . ParameterValue ) < = omanager . LastPayProcessMonth )
omanager . RootTable = "SALARYMONTHLY" ;
}
break ;
case EnumSearchFrom . Loan :
SearchManager . SearchParameter fromdateParam =
omanager . Parameter . GetByParamer ( EnumSearchParameter . FromDate ) ;
if ( fromdateParam = = null ) return ;
if ( Convert . ToDateTime ( fromdateParam . ParameterValue ) < = omanager . LastPayProcessMonth )
omanager . RootTable = "SALARYMONTHLY" ;
break ;
default :
omanager . RootTable = "EMPLOYEE" ;
break ;
}
}
//private bool FromEmployee
//{
// get
// {
// if (_rootTable == "EMPLOYEE") return true;
// else return false;
// }
//}
private string GetSubQuery ( SearchManager omanager )
{
string subqsl = "" ;
string dateTimeSyntax = "" ;
dateTimeSyntax = omanager . Parameter . GetFromAndToDateSyntax ( ) ;
bool FromEmployee = ( omanager . RootTable = = "EMPLOYEE" ) ;
switch ( omanager . SearchFrom )
{
case EnumSearchFrom . Salary :
subqsl = SQLParser . MakeSQL ( "SalaryMonthly Where Employee.EmployeeID = SalaryMonthly.EmployeeID "
+ " AND SalaryMonth %q " , dateTimeSyntax ) ;
SearchManager . SearchParameter tempSearchParam = omanager . Parameter . GetByParamer ( EnumSearchParameter . BankID ) ;
if ( tempSearchParam ! = null )
{
subqsl + = SQLParser . MakeSQL ( @" AND Employee.BRANCHID IN (SELECT BRANCHID FROM BRANCHES WHERE BANKID IN (%q)) " , tempSearchParam . ParameterValue ) ;
}
break ;
case EnumSearchFrom . Bonus :
string CompanyCode =
ConfigurationManager . GetStringValue ( "system" , "companycode" , EnumConfigurationType . Logic ) ;
string [ ] s = dateTimeSyntax . Split ( '=' ) ;
string [ ] s1 = s [ 1 ] . Split ( '\'' ) ;
DateTime d = GlobalFunctions . FirstDateOfMonth ( Convert . ToDateTime ( s1 [ 1 ] ) ) ;
DateTime d1 = GlobalFunctions . LastDateOfMonth ( Convert . ToDateTime ( s1 [ 1 ] ) ) ;
SearchManager . SearchParameter param = omanager . Parameter . GetByParamer ( EnumSearchParameter . BonusId ) ;
if ( param = = null ) throw new ServiceException ( "Bonus(Id) not found while searching from bonus" ) ;
SearchManager . SearchParameter paramBatch = null ;
if ( CompanyCode = = "011" )
{
paramBatch = omanager . Parameter . GetByParamer ( EnumSearchParameter . BonusProcessID ) ;
if ( paramBatch = = null )
throw new ServiceException ( "Batch No not found while searching from bonus" ) ;
}
if ( ! FromEmployee )
subqsl = SQLParser . MakeSQL (
"SalaryMonthly,BONUSPROCESSDETAIL Where SalaryMonthly.EmployeeId=Employee.EmployeeID AND "
+ " SalaryMonthly.EmployeeID = BONUSPROCESSDETAIL.EmployeeID"
+ " AND BonusID=%n AND SalaryMonth=%d AND disburseDate between %d and %d" ,
Convert . ToInt32 ( param . ParameterValue ) , d1 , d , d1 ) ;
else
{
string Scode =
ConfigurationManager . GetStringValue ( "system" , "companycode" , EnumConfigurationType . Logic ) ;
if ( Scode = = "011" )
{
subqsl = SQLParser . MakeSQL (
",BONUSPROCESSDETAIL Where Employee.EmployeeID = BONUSPROCESSDETAIL.EmployeeID "
+ " AND BonusID=%n AND BonusProcessID=%n AND disburseDate between %d and %d " ,
Convert . ToInt32 ( param . ParameterValue ) , Convert . ToInt32 ( paramBatch . ParameterValue ) , d , d1 ) ;
}
else
{
subqsl = SQLParser . MakeSQL (
",BONUSPROCESSDETAIL Where Employee.EmployeeID = BONUSPROCESSDETAIL.EmployeeID "
+ " AND BonusID=%n AND disburseDate between %d and %d " , Convert . ToInt32 ( param . ParameterValue ) , d ,
d1 ) ;
}
}
SearchManager . SearchParameter tempSearchParamForBonus = omanager . Parameter . GetByParamer ( EnumSearchParameter . BankID ) ;
if ( tempSearchParamForBonus ! = null )
{
subqsl + = SQLParser . MakeSQL ( @" AND Employee.BRANCHID IN (SELECT BRANCHID FROM BRANCHES WHERE BANKID IN (%q)) " , tempSearchParamForBonus . ParameterValue ) ;
}
break ;
case EnumSearchFrom . OutSidePayroll :
string opiID = "" ;
string opiBranchID = "" ;
SearchManager . SearchParameter paramOpi = omanager . Parameter . GetByParamer ( EnumSearchParameter . OPIID ) ;
if ( ! FromEmployee )
{
if ( paramOpi ! = null )
{
subqsl = SQLParser . MakeSQL (
" OPIProcessDetail WHERE OPIProcessDetail.EmployeeID IN (SELECT DISTINCT opd.EmployeeID FROM OPIProcess op, OPIProcessDetail opd, OPIProcessDetailItem odi WHERE "
+ " OPIMonth %q AND op.OPIProcessID = opd.OPIProcessID "
+ " AND odi.OPIProcessDetailID = opd.OPIProcessDetailID AND odi.OPIItemID = %n)" ,
dateTimeSyntax , ( int ) paramOpi . ParameterValue ) ;
}
else
{
//subqsl = SQLParser.MakeSQL(" SalaryMonthly WHERE SalaryMonthly.EmployeeID IN (SELECT DISTINCT opd.EmployeeID FROM OPIProcess op, OPIProcessDetail opd WHERE "
// + " OPIMonth %q AND op.OPIProcessID = opd.OPIProcessID) ",
// dateTimeSyntax);
subqsl = SQLParser . MakeSQL (
" OPIProcessDetail WHERE OPIProcessDetail.EmployeeID IN (SELECT DISTINCT opd.EmployeeID FROM OPIProcess op, OPIProcessDetail opd WHERE "
+ " OPIMonth %q AND op.OPIProcessID = opd.OPIProcessID) " ,
dateTimeSyntax ) ;
}
}
else
subqsl = SQLParser . MakeSQL ( " ,OPIProcess op, OPIProcessDetail opd WHERE "
+ " op.OPIMonth %q AND op.OPIProcessID = opd.OPIProcessID AND opd.EmployeeId=Employee.EmployeeID" ,
dateTimeSyntax ) ;
break ;
case EnumSearchFrom . PFTran :
//if (!this.FromEmployee)
// subqsl = SQLParser.MakeSQL(" %q WHERE %q.EmployeeID IN (SELECT DISTINCT OPIPayment.EmployeeID FROM OPIPayment WHERE "
// + " ForTheMonth=%d %q %q )", _rootTable, _rootTable, fromMonth, opiID, opiBranchID);
//else
// subqsl = SQLParser.MakeSQL(" Employee.EmployeeID IN (SELECT DISTINCT PF.EmployeeID FROM PFTransaction PF WHERE "
// + " TranDate BETWEEN %d AND %d )", _rootTable, fromMonth, opiID, opiBranchID);
//break;
case EnumSearchFrom . OverTime :
string termID = "" ;
if ( ! FromEmployee )
subqsl = SQLParser . MakeSQL (
" SalaryMonthly WHERE SalaryMonthly.EmployeeID IN (SELECT DISTINCT OTProcess.EmpID FROM OTProcess WHERE"
+ " SalaryMonth=%q AND ProcessMonth=%q )" , dateTimeSyntax , dateTimeSyntax ) ;
else
subqsl = SQLParser . MakeSQL (
" Where Employee.EmployeeID IN (SELECT DISTINCT OTProcess.EmpID FROM OTProcess WHERE "
+ "ProcessMonth=%q)" , dateTimeSyntax ) ;
break ;
case EnumSearchFrom . Loan :
if ( ! FromEmployee )
subqsl = SQLParser . MakeSQL (
" SalaryMonthly WHERE SalaryMonth =%q AND SalaryMonthly.EmployeeID IN (SELECT DISTINCT LOANISSUE.EmployeeID FROM LOANISSUE, LOANSCHEDULE WHERE "
+ " LOANISSUE.LOANISSUEID= LOANSCHEDULE.LOANISSUEID AND DUEINSTALLMENTDATE=%q )" ,
dateTimeSyntax , dateTimeSyntax ) ;
else
subqsl = SQLParser . MakeSQL (
" WHERE Employee.EmployeeID IN (SELECT DISTINCT LOANISSUE.EmployeeID FROM LOANISSUE, LOANSCHEDULE WHERE "
+ " LOANISSUE.LOANISSUEID= LOANSCHEDULE.LOANISSUEID AND DUEINSTALLMENTDATE=%q)" ,
dateTimeSyntax ) ;
break ;
case EnumSearchFrom . IT :
// if selected fiscal year is current fiscal year, get data from incometaxtemp
// if selected fiscal year is not current fs year, get data from incometaxyearly
SearchManager . SearchParameter taxParamid =
omanager . Parameter . GetByParamer ( EnumSearchParameter . TaxParameterID ) ;
if ( taxParamid = = null ) return "" ;
//#####
if ( taxParamid . ParameterValue . ToString ( ) = = omanager . TaxParamID . ToString ( ) )
{
subqsl = SQLParser . MakeSQL ( " SalaryMonthly WHERE SalaryMonth %q AND SalaryMonthly.EmployeeID IN (SELECT DISTINCT INCOMETAXTEMP.EmployeeID FROM INCOMETAXTEMP)" ,
dateTimeSyntax ) ;
break ;
}
else
{
//subqsl = SQLParser.MakeSQL(" SalaryMonthly WHERE SalaryMonth %q AND SalaryMonthly.EmployeeID IN (SELECT DISTINCT INCOMETAXYEARLY.EmployeeID FROM INCOMETAXYEARLY WHERE "
// + " INCOMETAXYEARLY.TAXPARAMID In(%q))",
// dateTimeSyntax, taxParamid.ParameterValue.ToString());
subqsl = SQLParser . MakeSQL ( ", SalaryMonthly WHERE SalaryMonth %q AND SalaryMonthly.EmployeeID IN (SELECT DISTINCT INCOMETAXYEARLY.EmployeeID FROM INCOMETAXYEARLY WHERE "
+ " INCOMETAXYEARLY.TAXPARAMID In(%q)) AND %q.Employeeid = SalaryMonthly.EmployeeID" ,
dateTimeSyntax , taxParamid . ParameterValue . ToString ( ) , omanager . RootTable ) ;
break ;
}
case EnumSearchFrom . Attendance :
subqsl = SQLParser . MakeSQL (
",DAILYATTNPROCESS WHERE Employee.EmployeeID = DAILYATTNPROCESS.EmployeeID "
+ " AND ATTNDATE %q " , dateTimeSyntax ) ;
break ;
default :
//{
// SearchParameter workPlanGroupID = this.Parameter.GetByParamer(EnumSearchParameter.WorkPlanGroupID);
// if (workPlanGroupID == null) return "";
// else
// {
// subqsl = SQLParser.MakeSQL(",WorkPlanGroup, EmployeeWorkPlanSetup WHERE Employee.EmployeeID = EmployeeWorkPlanSetUp.EmployeeID AND EmployeeWorkPlanSetUp.WorkPlanGroupID=WorkPlanGroup.WorkPlanGroupID AND "
// + " WorkPlanGroup.WorkPlanGroupID= %n ", workPlanGroupID.ParameterValue);
// }
// break;
//}
break ;
}
//this.Parameter.AddDefaultParameter();
subqsl = ( subqsl = = "" )
? omanager . Parameter . GetParameterSQL ( omanager . RootTable , true )
: subqsl + " " + omanager . Parameter . GetParameterSQL ( omanager . RootTable , false ) ;
string sqlcc = getCCSql ( omanager ) ;
if ( sqlcc ! = "" )
subqsl = subqsl + ( ( subqsl = = "" ) ? " WHERE " + getCCSql ( omanager ) : " AND " + getCCSql ( omanager ) ) ;
if ( omanager . SearchFrom = = EnumSearchFrom . Salary & & omanager . IsNegletWithheld )
subqsl = subqsl + ( ( subqsl = = "" ) ? " WHERE " + omanager . RootTable + ".salaryWithHeld=0" : " AND " + omanager . RootTable + ".salaryWithHeld=0" ) ;
else if ( omanager . SearchFrom = = EnumSearchFrom . Salary & & ! omanager . IsNegletWithheld )
subqsl = subqsl + ( ( subqsl = = "" ) ? " WHERE " + omanager . RootTable + ".salaryWithHeld=1" : " AND " + omanager . RootTable + ".salaryWithHeld=1" ) ;
return subqsl ;
}
#endregion
}
#endregion
}