EchoTex_Payroll/HRM.DA/Service/SearchReport/SearchEmployeeService.cs
2024-10-14 10:01:49 +06:00

828 lines
34 KiB
C#

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