EchoTex_Payroll/HRM.DA/DA/Employee/EmployeeDA.cs
2024-10-29 14:51:13 +06:00

4054 lines
209 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Ease.Core.DataAccess;
using Ease.Core.DataAccess.SQL;
using HRM.BO;
using iTextSharp.text.pdf.qrcode;
using Microsoft.Data.SqlClient;
using NPOI.SS.Formula.Functions;
namespace HRM.DA
{
#region EmployeeDA
public class EmployeeDA
{
#region Constructor
private EmployeeDA()
{
}
#endregion
#region Insert function
internal static void Insert(TransactionContext tc, Employee item)
{
string sSql = SQLParser.MakeSQL(@"INSERT INTO Employee(EmployeeID, globalID, employeeNo,
name, lastchangedate, gender, birthDate,
joiningDate, endOfContractDate, emailAddress, mobileNo, tinNo, categoryID,
foreignExPat, taxCircle, isConfirmed, status,
pFMemberType, pfMemberShipDt, branchID, accountNo, outPayBranchID, outPayAccountNo,
departmentID, locationID, religionID, maritalStatusID, designationID, gradeID,
basicSalary, EmpHistoryID, prevBasic, paymentMode, fatherName, isEligibleOT,
desigDescription, desktopUserPass, payrollTypeID, cardID, grossSalary,
payScaleId, taxAmount, dateOfConfirmation,VendorCode, CreatedBy,OutPayPaymentMode,
CreationDate,MonthStatusUpdate,PersonType, LineManagerID, SecondLineManagerID,ProfileStatus, geid, extrafield1, extrafield2,
extrafield3, extrafield4, extrafield5, InsuranceId, InclusionDate,nationalID, NATIONALITYID)
VALUES(%n, %s, %s, %s, %d, %n, %d,
%d, %d, %s, %s, %s, %n,
%n, %n, %b, %n,
%n, %d, %n, %s, %n, %s,
%n, %n, %n, %n, %n, %n,
%n, %n, %n, %n, %s, %n,
%s, %s, %n, %n, %n,
%n, %n, %d, %s, %n,%n,
%d,%n,%n,%n,%n,%n, %s, %s, %n, %s, %s, %s, %s, %d,%s, %n)", item.ID, item.GlobalID, item.EmployeeNo, item.Name, DateTime.Today, item.Gender,
DataReader.GetNullValue(item.BirthDate),
DataReader.GetNullValue(item.JoiningDate), DataReader.GetNullValue(item.EndOfContractDate),
item.EmailAddress, item.MobileNo, item.TinNo, DataReader.GetNullValue(item.CategoryID, 0),
item.ForeignExPat, (int)item.TaxCircle, item.IsConfirmed, item.Status,
item.PFMemberType, DataReader.GetNullValue(item.PFMemberShiptDate),
item.BranchID, item.AccountNo,
item.OutPayBranchID, item.OutPayAccountNo,
item.DepartmentID, item.LocationID,
item.ReligionID, item.MaritalStatus,
item.DesignationID, item.GradeID,
item.BasicSalary, item.CurrentHistoryID, item.PrevBasic, item.PaymentMode,
item.FatherName, item.IsEligibleOT,
item.DescriptionText, item.DesktopUserPass, DataReader.GetNullValue(item.PayrollTypeID, 0),
item.CardID, item.GrossSalary,
item.PayScaleId, item.TaxAmount, item.ConfirDate,
DataReader.GetNullValue(item.VendorCode), item.CreatedBy,
(int)item.OutPayPaymentMode, item.CreatedDate, item.MonthStatusUpdate,
(int)item.PersonType, item.LineManagerID,
item.SecondLineManagerID, item.ProfileStatus, item.GeId, item.ExtraField1, item.ExtraField2, item.ExtraField3,
item.ExtraField4, item.ExtraField5, item.InsuranceId, item.InclusionDate, item.NationalId, item.NationalityID);
tc.ExecuteNonQuery(sSql);
}
#endregion
#region Update function
internal static void Update(TransactionContext tc, Employee item)
{
string sSQL = SQLParser.MakeSQL("UPDATE Employee SET "
+ "globalID=%s, employeeNo=%s, name=%s, gender=%n, birthDate=%d, joiningDate=%d, "
+ "endOfContractDate=%d, emailAddress=%s, mobileNo=%s, tinNo=%s, categoryID=%n, foreignExPat=%n, "
+ "taxCircle=%s, isConfirmed=%b, status=%n, pFMemberType=%n, "
+ "pfMemberShipDt=%d, branchID=%n, accountNo=%s, OUTPAYBRANCHID=%n, outPayAccountNo=%s, departmentID=%n, "
+ "locationID=%n, religionID=%n, MARITALSTATUSID=%n, designationID=%n, gradeID=%n, basicSalary=%n, "
+ "EmpHistoryID=%n, prevBasic=%n, paymentMode=%n, fatherName=%s, isEligibleOT=%n, desigDescription=%s, "
+ "DESKTOPUSERPASS=%s, payrollTypeID=%n, cardID=%n, grossSalary=%n,"
+ "payScaleId=%n, taxAmount=%n, dateOfConfirmation=%d,VendorCode=%s, ModifiedBy=%n, ModifiedDate=%d, "
+ "MonthStatusUpdate=%n,OutPayPaymentMode=%n ,PersonType=%n, LineManagerID=%n, SecondLineManagerID=%n,ProfileStatus = %n, geid=%s, extrafield1=%s, extrafield2=%n, "
+ "extrafield3=%s, extrafield4=%s, extrafield5=%s, InsuranceId=%s, InclusionDate=%d, IsFixedLocation=%b,nationalId=%s, NATIONALITYID =%n "
+ " WHERE EmployeeID=%n", item.GlobalID, item.EmployeeNo,
DataReader.GetNullValue(item.Name), item.Gender, DataReader.GetNullValue(item.BirthDate),
DataReader.GetNullValue(item.JoiningDate),
item.EndOfContractDate, item.EmailAddress, item.MobileNo, item.TinNo,
DataReader.GetNullValue(item.CategoryID, 0), item.ForeignExPat,
(int)item.TaxCircle, item.IsConfirmed, item.Status, item.PFMemberType,
item.PFMemberShiptDate, item.BranchID, item.AccountNo,
item.OutPayBranchID, item.OutPayAccountNo,
item.DepartmentID,
item.LocationID, item.ReligionID,
item.MaritalStatus, item.DesignationID,
item.GradeID, item.BasicSalary,
item.CurrentHistoryID, item.PrevBasic, item.PaymentMode, item.FatherName,
item.IsEligibleOT, item.DescriptionText,
DataReader.GetNullValue(item.DesktopUserPass), item.PayrollTypeID,
item.CardID, item.GrossSalary,
item.PayScaleId, item.TaxAmount, item.ConfirDate,
item.VendorCode, item.ModifiedBy, item.ModifiedDate,
item.MonthStatusUpdate, (int)item.OutPayPaymentMode, (int)item.PersonType,
item.LineManagerID, item.SecondLineManagerID,
item.ProfileStatus, item.GeId, item.ExtraField1, item.ExtraField2, item.ExtraField3,
item.ExtraField4, item.ExtraField5, item.InsuranceId, item.InclusionDate, item.IsFixedLocation, item.NationalId, item.NationalityID, item.ID);
tc.ExecuteNonQuery(sSQL);
}
internal static void InsertEmpContact(TransactionContext tc, EmpContact item)
{
tc.ExecuteNonQuery("INSERT INTO EMPCONTACT(ContactID, EmployeeID, PARMANENTADDRESS, PARMANENTTELEPHONE, PRESENTADDRESS, Mobile, PERSONALEMAIL,OFFICIALEMAIL,FAX,EMERGENCYCONTACTADDRESS,EMERGENCYCONTACTPERSON,EMERGENCYTELEPHONE)" +
" VALUES(%n, %n, %s, %s,%s, %s, %s, %s, %s, %s, %s,%s)",
item.ID, item.EmployeeID, item.PermanentAddress, item.PermanentTelephone,
item.PresentAddress, item.Mobile, item.PersonalEmail, item.OfficalEmail, item.Fax, item.EmergencyContactAddress,
item.EmergencyContactPerson, item.EmergencyTelephone);
}
internal static void UpdateDepartment(TransactionContext tc, Employee item)
{
string sSQL = SQLParser.MakeSQL("UPDATE Employee SET departmentID=%n WHERE EmployeeID=%n",
item.DepartmentID, item.ID);
tc.ExecuteNonQuery(sSQL);
}
internal static void UpdateProfile(TransactionContext tc, Employee item)
{
string sSQL = SQLParser.MakeSQL("UPDATE Employee SET ProfileStatus=%n WHERE EmployeeID=%n",
item.ProfileStatus, item.ID);
tc.ExecuteNonQuery(sSQL);
}
public static void UpdateGross(TransactionContext tc, int EmployeeID, double? dGross)
{
if (dGross == null)
dGross = 0;
tc.ExecuteNonQuery("UPDATE Employee SET grossSalary=%n " +
" WHERE EmployeeID=%n", dGross, EmployeeID);
}
public static void UpdateGradeSalary(TransactionContext tc, int employeeid, int gradeId,
double basicSalary, double grossSalary)
{
tc.ExecuteNonQuery("UPDATE Employee SET gradeid=%n, BasicSalary=%n, GrossSalary=%n " +
" WHERE EmployeeID=%n", DataReader.GetNullValue(gradeId), basicSalary, grossSalary,
employeeid);
}
public static void UpdateSalary(TransactionContext tc, int employeeid,
double basicSalary, double grossSalary)
{
tc.ExecuteNonQuery("UPDATE Employee SET BasicSalary=%n, GrossSalary=%n " +
" WHERE EmployeeID=%n", basicSalary, grossSalary, employeeid);
}
internal static void UpdatePayrollType(TransactionContext tc, int employeeID, int payrollTypeID)
{
tc.ExecuteNonQuery("UPDATE Employee SET PAYROLLTYPEID = %n,LINEMANAGERID = null WHERE EMPLOYEEID = %n", payrollTypeID, employeeID);
}
public static void UpdateStatus(TransactionContext tc, int employeeID, int employeeHistoryId,
DateTime endofContactDate, EnumEmployeeStatus status)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET Status= %n, EmpHistoryID=%n, endOfContractDate=%d WHERE EMPLOYEEID=%n",
(int)status, employeeHistoryId, endofContactDate, employeeID);
}
public static void salaryWithHeld(TransactionContext tc, int employeeID, bool status)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET IsSalaryWithHeld= %n WHERE EMPLOYEEID=%n",
status, employeeID);
}
internal static IDataReader GetEmployeeByCoordinator(TransactionContext tc, int corID)
{
return tc.ExecuteReader(@"SELECT * FROM EMPLOYEE E JOIN employeeCordinator ECID ON
E.EMPLOYEEID = ECID.EmployeeID
WHERE ECID.CordinatorID = %n", corID);
}
internal static DataTable GetNameAndMail(TransactionContext tc, int empid)
{
return tc.ExecuteDataTable(@"SELECT EmployeeID, EmployeeNo employeeno, name name , EmailAddress emailaddress, lineManagerid linemanagerid FROM EMPLOYEE E
WHERE E.EmployeeID = %n", empid);
}
internal static DataTable GetNameAndMailWithNoLock(TransactionContext tc, int empid)
{
return tc.ExecuteDataTable(@"SELECT EmployeeID, EmployeeNo employeeno, name name, EmailAddress emailaddress, lineManagerid linemanagerid FROM EMPLOYEE With(NoLock)
WHERE EmployeeID = %n", empid);
}
internal static IDataReader GetAbsentEmployees(TransactionContext tc, DateTime fromDate, DateTime toDate)
{
string sql = SQLParser.MakeSQL(@"
SELECT e.* FROM EMPLOYEE e
LEFT JOIN DAILYATTNPROCESS d ON e.EMPLOYEEID = d.EMPLOYEEID
WHERE d.AttenType = %n AND e.STATUS = %n AND e.EMAILADDRESS IS NOT NULL AND
d.AttnDate BETWEEN %D AND %D",
EnumAttendanceType.Absent, EnumEmployeeStatus.Live, fromDate, toDate);
return tc.ExecuteReader(sql);
}
public static void UpdatemiddleOfMonthDiscontinue(TransactionContext tc, int employeeID,
EnumEmployeeStatus status, DateTime endofContactDate)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET status=%n, MonthStatusUpdate= %n, endOfContractDate=%d WHERE EMPLOYEEID=%n",
EnumEmployeeStatus.Live, (int)status, endofContactDate, employeeID);
}
public static void UpdateOTFlag(TransactionContext tc, int nEmployeeID)
{
tc.ExecuteNonQuery("UPDATE Employee SET isEligibleOT= %b where EmployeeID=%n", true, nEmployeeID);
}
//for employee continue
public static void DoContinue(TransactionContext tc, int employeeID)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET Status= %n, MonthStatusUpdate= %n, EmpHistoryID=null, endOfContractDate=null WHERE EMPLOYEEID=%n",
(int)EnumEmployeeStatus.Live, (int)EnumEmployeeStatus.Live, employeeID);
}
public static void DoContinueForLifeCycle(TransactionContext tc, int employeeID, DateTime dtEffectDate)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET Status= %n, MonthStatusUpdate= %n, EmpHistoryID=null, endOfContractDate=null WHERE EMPLOYEEID=%n",
(int)EnumEmployeeStatus.Live, (int)EnumEmployeeStatus.Live, employeeID);
}
internal static IDataReader GetByEmpNos(TransactionContext tc, string sEmpIDs)
{
string sql = SQLParser.MakeSQL(@"SELECT * FROM EMPLOYEE WHERE EMPLOYEEID IN (%q)", sEmpIDs);
return tc.ExecuteReader(sql);
}
public static void DoContinueForLifeCycleForOldEmployee(TransactionContext tc, int employeeID)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET Status= %n, MonthStatusUpdate= %n, EmpHistoryID=null, endOfContractDate=null WHERE EMPLOYEEID=%n",
(int)EnumEmployeeStatus.Live, (int)EnumEmployeeStatus.Live, employeeID);
}
//added by Hasib 04.05.10
internal static void UpdateCardInformation(TransactionContext tc, int employeeID, int CardID,
bool IsAutoProcess)
{
//tc.ExecuteNonQuery("UPDATE Employee SET CardID= %n, IsAutoProcess=%b WHERE EMPLOYEEID=%n",
// DataReader.GetNullValue(CardID, 0), IsAutoProcess, employeeID);
tc.ExecuteNonQuery("UPDATE Employee SET CardID= %n, IsAutoProcess=%b WHERE EMPLOYEEID=%n",
CardID, IsAutoProcess, employeeID);
}
internal static void UpdateEmpCardHistory(TransactionContext tc, int employeeID, int CardID, DateTime cardDate,
string cardNumber)
{
if (CardID == 0)
{
tc.ExecuteNonQuery(
@"Update EmpCardHistory Set TillDate = %d Where EmployeeID = %n and TillDate is Null", cardDate,
employeeID);
}
else
{
tc.ExecuteNonQuery("INSERT INTO EmpCardHistory(EmployeeID,CardID,CardNumber,AssignDate)" +
" VALUES(%n, %n, %s,%d)", employeeID, CardID, cardNumber, cardDate);
}
}
internal static DataSet GetAbsentEmployeesForLM(TransactionContext tc, DateTime fromDate, DateTime toDate, EnumAttendanceType attnType)
{
string sql = SQLParser.MakeSQL(@"
SELECT
lm.EMPLOYEENO LMNO, lm.NAME LMNAME, lm.EMAILADDRESS LMEMAILADDRESS,
e.EMPLOYEENO EMPLOYEEID, e.NAME EMPNAME, d.NAME EMPDESIGNATION, e.JOININGDATE, e.MOBILENO, e.EMAILADDRESS EMPEMAILADDRESS
FROM EMPLOYEE e
LEFT JOIN DESIGNATION d ON e.DESIGNATIONID = d.DESIGNATIONID
LEFT JOIN DAILYATTNPROCESS dap ON e.EMPLOYEEID = dap.EMPLOYEEID
LEFT JOIN EMPLOYEE lm ON lm.EMPLOYEEID = e.LINEMANAGERID
WHERE dap.AttenType = %n AND e.STATUS = %n AND lm.EMAILADDRESS IS NOT NULL AND dap.AttnDate BETWEEN %d AND %d
GROUP BY lm.EMPLOYEENO, lm.NAME, lm.EMAILADDRESS, e.EMPLOYEENO, e.NAME, d.NAME, e.JOININGDATE, e.MOBILENO, e.EMAILADDRESS",
attnType, EnumEmpStatus.Live, fromDate, toDate);
return tc.ExecuteDataSet(sql);
}
internal static IDataReader GetAllHREmpsWorkAniversary(TransactionContext tc, string payrollTypeId)
{
string sql = SQLParser.MakeSQL(@"
SELECT EMPLOYEEID, EMPLOYEENO, NAME, PAYROLLTYPEID, STATUS, LINEMANAGERID, SecondLineManagerID FROM EMPLOYEE e
WHERE MONTH(e.JOININGDATE) = MONTH(GETDATE()) AND
DAY(e.JOININGDATE) = DAY(GETDATE()) AND
e.PAYROLLTYPEID in (%s) AND
e.STATUS = 1", payrollTypeId);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetAllHREmpsBirthday(TransactionContext tc, string payrollTypeId)
{
string sql = SQLParser.MakeSQL(@"
SELECT EMPLOYEEID, EMPLOYEENO, NAME, PAYROLLTYPEID, STATUS, LINEMANAGERID, SecondLineManagerID FROM EMPLOYEE e
WHERE MONTH(e.BIRTHDATE) = MONTH(GETDATE()) AND
DAY(e.BIRTHDATE) = DAY(GETDATE()) AND
e.PAYROLLTYPEID in (%s) AND
e.STATUS = 1", payrollTypeId);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetAllAbsentOnYesterdayEmps(TransactionContext tc, string payrollTypeId)
{
//string sql = SQLParser.MakeSQL(@"
//SELECT e.EMPLOYEEID, e.EMPLOYEENO, e.NAME, e.PAYROLLTYPEID, e.STATUS, e.LINEMANAGERID, e.SecondLineManagerID, e.EMAILADDRESS FROM EMPLOYEE e
//LEFT JOIN DAILYATTNPROCESS d ON e.EMPLOYEEID = d.EMPLOYEEID
//WHERE d.AttenType = %n AND e.STATUS = %n AND e.EMAILADDRESS IS NOT NULL AND e.PAYROLLTYPEID = %n AND
//d.AttnDate = %d", EnumAttendanceType.Absent, EnumEmployeeStatus.Live, payrollTypeId, DateTime.Today.AddDays(-1));
string sql = SQLParser.MakeSQL(@"
SELECT e.* FROM EMPLOYEE e
LEFT JOIN DAILYATTNPROCESS d ON e.EMPLOYEEID = d.EMPLOYEEID
WHERE d.AttenType = %n AND e.STATUS = %n AND e.EMAILADDRESS IS NOT NULL AND e.PAYROLLTYPEID IN ( %q ) AND
d.AttnDate = %d", EnumAttendanceType.Absent, EnumEmployeeStatus.Live, payrollTypeId, DateTime.Today.AddDays(-1));
return tc.ExecuteReader(sql);
}
internal static IDataReader GetAllAbsentOnYesterdayEmpLM(TransactionContext tc, int empId, int payrollTypeId)
{
string sql = SQLParser.MakeSQL(@"
SELECT e.* FROM EMPLOYEE e
WHERE e.EMPLOYEEID=%n AND e.STATUS = %n AND e.EMAILADDRESS IS NOT NULL
AND e.PAYROLLTYPEID = %n", empId, EnumEmployeeStatus.Live, payrollTypeId);
return tc.ExecuteReader(sql);
}
internal static DataSet GetLinemanagerPendingList(TransactionContext tc)
{
string sql = SQLParser.MakeSQL(@"
WITH cte AS (
SELECT TOEMPLOYEEID EMPLOYEEID, 4 TYPE, count(*) TOTLALCOUNT
FROM DELEGATERESPONSIBILITY
WHERE ISACCEPTED=0
AND Status=1
GROUP BY TOEMPLOYEEID
HAVING count(*) > 0
UNION
SELECT LINEMANAGERID EMPLOYEEID, 3 TYPE, count(*) TOTLALCOUNT
FROM GATEPASS
WHERE CLAIMWFSTATUS=1
GROUP BY LINEMANAGERID
HAVING count(*) > 0
UNION
SELECT e.LINEMANAGERID EMPLOYEEID, 2 TYPE, count(*) TOTLALCOUNT
FROM DAILYATTNPROCESS d
JOIN EMPLOYEE e ON d.EMPLOYEEID = e.EMPLOYEEID
WHERE d.WFStatus = 1
GROUP BY e.LINEMANAGERID
HAVING count(*) > 0
UNION
SELECT WN.EmployeeId EMPLOYEEID, 1 TYPE, count(*) TOTLALCOUNT
FROM WFMovementTran WT, WFMovementNext WN, Employee emp
WHERE WN.Status=1
AND Emp.EMPLOYEEID=WT.FROMEMPLOYEEID
AND WT.WFMovementTranID = WN.WFMovementTranID
GROUP BY WN.EmployeeId
HAVING count(*) > 0
)
SELECT e.EMPLOYEENO, e.NAME, e.EMAILADDRESS, c.* FROM EMPLOYEE e
INNER JOIN cte c ON e.EMPLOYEEID = c.EMPLOYEEID
WHERE e.EMAILADDRESS IS NOT NULL AND e.EMAILADDRESS != ''");
return tc.ExecuteDataSet(sql);
}
//For PF
internal static void UpdatePFMemship(TransactionContext tc, int empID, EnumPFMembershipType PFType,
DateTime dPFEffectDate)
{
tc.ExecuteNonQuery("UPDATE Employee SET PFMEMBERTYPE= %n, PFMEMBERSHIPDT=%d WHERE EMPLOYEEID=%n", PFType,
dPFEffectDate, empID);
}
internal static void UpdateGratuityContinuation(TransactionContext tc, int empID, bool GratuityContinue,
DateTime dPFEffectDate)
{
tc.ExecuteNonQuery("UPDATE Employee SET CONTINUEGRATUITY= %b WHERE EMPLOYEEID=%n", GratuityContinue, empID);
}
// For Confirm Employee
//internal static void UpdateConfirmation(TransactionContext tc, int empID, EnumEmployeeOtherStatus confirmation, DateTime dConfirmEffectDate,bool confirmEmpPF)
//{
// tc.ExecuteNonQuery("UPDATE Employee SET pFMemberType=%b,pfMemberShipDt=%d,IsConfirmed= %b,DateOfConfirmation=%d WHERE EMPLOYEEID=%n",confirmEmpPF,dConfirmEffectDate,confirmation,dConfirmEffectDate);
//}
// For Update Employee Posting
internal static void UpdateEmpPosting(TransactionContext tc, EmployeePosting oEmpPosting)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET DEPARTMENTID= %n,LocationID=%n,DESIGNATIONID=%n WHERE EMPLOYEEID=%n",
DataReader.GetNullValue(oEmpPosting.DepartmentID, 0),
DataReader.GetNullValue(oEmpPosting.LocationID, 0),
DataReader.GetNullValue(oEmpPosting.DesignationID, 0), oEmpPosting.EmployeeID);
}
// For Tax Amount
public static void UpdateTaxAmount(TransactionContext tc, int employeeID, double TaxAmount)
{
tc.ExecuteNonQuery("UPDATE Employee SET TAXAMOUNT= %n WHERE EMPLOYEEID=%n",
TaxAmount, employeeID);
}
// For Employee Role
public static void UpdateEmpRole(TransactionContext tc, Employee oEmp)
{
tc.ExecuteNonQuery("UPDATE Employee SET Role= %n WHERE EMPLOYEEID=%n",
oEmp.Role, oEmp.ID);
}
// For Employee Confirm
public static void DoConfirm(TransactionContext tc, int employeeID, DateTime confirmDate, DateTime pfMShipDate,
bool IsConfirm, bool IsPFMember)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET ISCONFIRMED= %b,DateOfConfirmation=%d,PFMEMBERTYPE=%b,PFMEMBERSHIPDT=%d WHERE EMPLOYEEID=%n",
IsConfirm, confirmDate, IsPFMember, pfMShipDate, employeeID);
}
public static void DoConfirm(TransactionContext tc, int employeeID, DateTime confirmDate, bool IsConfirm)
{
tc.ExecuteNonQuery("UPDATE Employee SET ISCONFIRMED= %b,DateOfConfirmation=%d WHERE EMPLOYEEID=%n",
IsConfirm, confirmDate, employeeID);
}
//For Undo Employee
public static void UndoConfirm(TransactionContext tc, int employeeID, bool IsConfirm)
{
tc.ExecuteNonQuery("UPDATE Employee SET ISCONFIRMED= %b,DateOfConfirmation=null WHERE EMPLOYEEID=%n",
IsConfirm, employeeID);
}
//For Transfer Employee
public static void UpdatePayrollType(TransactionContext tc, int employeeID, int payrollTypeID,
DateTime dEffectDate)
{
tc.ExecuteNonQuery("UPDATE Employee SET PAYROLLTYPEID=%n,JoiningDate=%d,categoryID=%n WHERE EMPLOYEEID=%n",
payrollTypeID, dEffectDate, payrollTypeID, employeeID);
tc.ExecuteNonQuery("DELETE FROM IncomeTaxTemp WHERE EMPLOYEEID=%n", employeeID);
}
// For Employee Bank Accoutn
public static void UpdateBankAcc(TransactionContext tc, int employeeID, int branchID, string accountNo,
EnumPaymentMode paymentMode)
{
tc.ExecuteNonQuery("UPDATE Employee SET paymentMode=%n, branchID=%n, accountNo=%s WHERE EMPLOYEEID=%n",
paymentMode, DataReader.GetNullValue(branchID, 0), accountNo, employeeID);
}
public static void UpdateOPIBankAcc(TransactionContext tc, int employeeID, int branchID, string accountNo,
EnumPaymentMode paymentMode)
{
tc.ExecuteNonQuery(
"UPDATE Employee SET OutPayPaymentMode=%n, OutPayBranchID=%n, OutPayAccountNo=%s WHERE EMPLOYEEID=%n",
paymentMode, DataReader.GetNullValue(branchID, 0), accountNo, employeeID);
}
internal static void UpdateContinueGratuity(TransactionContext tc, int employeeID, double continueGratuity)
{
tc.ExecuteNonQuery("UPDATE Employee SET ContinueGratuity=%n " + " WHERE EmployeeID=%n", continueGratuity,
employeeID);
}
public static void UpdateLineManager(TransactionContext tc, Employee employee)
{
tc.ExecuteNonQuery("UPDATE Employee SET LineManagerID= %n WHERE EMPLOYEEID=%n",
employee.LineManagerID, employee.ID);
}
public static void UpdateLineManager(TransactionContext tc, int EmployeeID, string LineManagerEmpNo)
{
tc.ExecuteNonQuery(@"UPDATE Employee SET LineManagerID= (select EmployeeID from Employee
where EmployeeNo=%s) WHERE EMPLOYEEID=%n", LineManagerEmpNo, EmployeeID);
}
#endregion
#region Get Function
internal static IDataReader GetForSuperUser(TransactionContext tc)
{
string sql = SQLParser.MakeSQL("SELECT * FROM Employee WHERE Status=%n order by EmployeeNo",
EnumEmployeeStatus.Live);
return tc.ExecuteReader(sql);
}
internal static DataSet GetDepartmentName(TransactionContext tc, int empID, bool banglaDescriptionExits)
{
string sql = "";
if (banglaDescriptionExits)
{
sql = SQLParser.MakeSQL(@"select
E.Employeeid,
'Department' = case
when dept5.tire = 5 THEN ISNULL(dept2.[DESCRIPTION],'')
when dept5.tire = 4 then ISNULL(dept3.[DESCRIPTION],'')
when dept5.tire = 3 then ISNULL(dept4.[DESCRIPTION],'')
when dept5.tire = 2 then ISNULL(dept5.[DESCRIPTION],'')
END,
'DepartmentBangla' = case
when dept5.tire = 5 then ISNULL(dept2.BanglaDescription,'')
when dept5.tire = 4 then ISNULL(dept3.BanglaDescription,'')
when dept5.tire = 3 then ISNULL(dept4.BanglaDescription,'')
when dept5.tire = 2 then ISNULL(dept5.BanglaDescription,'')
END,
'DepartmentID' = case
when dept5.tire = 5 then dept2.DepartmentID
when dept5.tire = 4 then dept3.DepartmentID
when dept5.tire = 3 then dept4.DepartmentID
when dept5.tire = 2 then dept5.DepartmentID
END
from
Employee E
Left JOIN DEPARTMENT dept5 ON dept5.DEPARTMENTID = E.DEPARTMENTID
LEFT JOIN DEPARTMENT dept4 ON dept4.DEPARTMENTID = dept5.PARENTID
LEFT JOIN DEPARTMENT dept3 ON dept3.DEPARTMENTID = dept4.PARENTID
LEFT JOIN DEPARTMENT dept2 ON dept2.DEPARTMENTID = dept3.PARENTID
LEFT JOIN DEPARTMENT dept1 ON dept1.DEPARTMENTID = dept2.PARENTID
WHERE E.EmployeeID = %n
Group BY
E.EmployeeID
,dept1.TIRE,dept1.[DESCRIPTION],dept1.BANGLADescription,dept1.DepartmentID
,dept2.TIRE,dept2.[DESCRIPTION],dept2.BANGLADescription,dept2.DepartmentID
,dept3.TIRE,dept3.[DESCRIPTION],dept3.BANGLADescription,dept3.DepartmentID
,dept4.TIRE,dept4.[DESCRIPTION],dept4.BANGLADescription,dept4.DepartmentID
,dept5.TIRE,dept5.[DESCRIPTION],dept5.BANGLADescription,dept5.DepartmentID", empID);
}
else
{
sql = SQLParser.MakeSQL(@"select
E.Employeeid,
'Department' = case
when dept5.tire = 5 THEN ISNULL(dept2.[DESCRIPTION],'')
when dept5.tire = 4 then ISNULL(dept3.[DESCRIPTION],'')
when dept5.tire = 3 then ISNULL(dept4.[DESCRIPTION],'')
when dept5.tire = 2 then ISNULL(dept5.[DESCRIPTION],'')
END,
'DepartmentID' = case
when dept5.tire = 5 then dept2.DepartmentID
when dept5.tire = 4 then dept3.DepartmentID
when dept5.tire = 3 then dept4.DepartmentID
when dept5.tire = 2 then dept5.DepartmentID
END
from
Employee E
Left JOIN DEPARTMENT dept5 ON dept5.DEPARTMENTID = E.DEPARTMENTID
LEFT JOIN DEPARTMENT dept4 ON dept4.DEPARTMENTID = dept5.PARENTID
LEFT JOIN DEPARTMENT dept3 ON dept3.DEPARTMENTID = dept4.PARENTID
LEFT JOIN DEPARTMENT dept2 ON dept2.DEPARTMENTID = dept3.PARENTID
LEFT JOIN DEPARTMENT dept1 ON dept1.DEPARTMENTID = dept2.PARENTID
WHERE E.EmployeeID = %n
Group BY
E.EmployeeID
,dept1.TIRE,dept1.[DESCRIPTION],dept1.DepartmentID
,dept2.TIRE,dept2.[DESCRIPTION],dept2.DepartmentID
,dept3.TIRE,dept3.[DESCRIPTION],dept3.DepartmentID
,dept4.TIRE,dept4.[DESCRIPTION],dept4.DepartmentID
,dept5.TIRE,dept5.[DESCRIPTION],dept5.DepartmentID", empID);
}
return tc.ExecuteDataSet(sql);
}
//previoslyGet
internal static IDataReader GetWithPayrollType(TransactionContext tc, int payrollTypeID)
{
string sql = SQLParser.MakeSQL(
"SELECT * FROM Employee WHERE Status=%n and PAYROLLTYPEID = %n order by EmployeeNo",
EnumEmployeeStatus.Live, payrollTypeID);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetWithDiscontinue(TransactionContext tc, int payrollTypeID)
{
string sql = SQLParser.MakeSQL("SELECT * FROM Employee WHERE PAYROLLTYPEID = %n order by EmployeeNo",
payrollTypeID);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetAllSubordinatesNew(TransactionContext tc, int employeeID)
{
//For Oracle
// string sql = SQLParser.MakeSQL(@"SELECT emp.* FROM EMPLOYEE emp,
// (SELECT t1.ORGANOGRAMID
// FROM ORGANOGRAM t1
// LEFT JOIN ORGANOGRAM t2 ON t2.ORGANOGRAMID = t1.parentid
// START WITH t1.ORGANOGRAMID = (SELECT nodeid FROM ORGANEMPLOYEE WHERE EMPLOYEEID=%n)
// CONNECT BY PRIOR t1.ORGANOGRAMID = t1.parentid) nodes,
// ORGANEMPLOYEE orgemp
// WHERE emp.employeeid=orgemp.EMPLOYEEID
// AND nodes.ORGANOGRAMID=orgemp.NODEID",employeeID);
// return tc.ExecuteReader(sql);
//For SqlServer
string sql = SQLParser.MakeSQL(@"with cte as
(
select 1 lvl, ParentId, organogramid from organogram where Parentid = (SELECT nodeid FROM organemployee WHERE employeeid=%n)
union all
select cte.lvl + 1, organogram.ParentId, organogram.organogramid from organogram join cte on cte.organogramid = organogram.ParentId
)
select emp.* from cte,organemployee oe,employee emp
WHERE cte.organogramid=oe.NodeID
AND oe.EmployeeID=emp.EMPLOYEEID ",
employeeID);
return tc.ExecuteReader(sql);
}
public static IDataReader GetAllSubordinates(TransactionContext tc, string sql)
{
return tc.ExecuteReader(sql);
}
//for Attendance Process
internal static IDataReader GetAbsentEmp(TransactionContext tc, DateTime attnDate, EnumWorkPlanGroup wpGroup,
int payrollTypeID)
{
string sql = SQLParser.MakeSQL(
"SELECT * FROM Employee WHERE Status=%n and PAYROLLTYPEID = %n AND JOININGDATE <=%d"
+ "AND EMPLOYEEID IN(SELECT EMPLOYEEID FROM EmployeeWorkPlanSetup WHERE WorkPlanGroupID = %n) "
+ "AND EMPLOYEEID NOT IN(SELECT EMPLOYEEID FROM DailyAttnProcess WHERE AttnDate = %d) order by EmployeeNo",
EnumEmployeeStatus.Live, payrollTypeID, attnDate, wpGroup, attnDate);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetAttendaceEmp(TransactionContext tc, EnumWorkPlanGroup wpGroup, int payrollTypeID)
{
string sql = SQLParser.MakeSQL("SELECT * FROM Employee WHERE Status=%n and PAYROLLTYPEID = %n "
+ "AND EMPLOYEEID IN(SELECT EMPLOYEEID FROM EmployeeWorkPlanSetup WHERE WorkPlanGroupID = %n) order by EmployeeNo ",
EnumEmployeeStatus.Live, payrollTypeID, wpGroup);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetMonthlyAttnEmployee(TransactionContext tc, DateTime fromDate, DateTime toDate,
int payrollTypeID)
{
string sql = SQLParser.MakeSQL(@"SELECT DISTINCT e.* FROM EMPLOYEE e
INNER JOIN DAILYATTNPROCESS dap ON dap.EMPLOYEEID=e.EMPLOYEEID
WHERE dap.ATTNDATE BETWEEN %d AND %d AND e.PAYROLLTYPEID=%n AND e.STATUS=%n Order By e.EmployeeNo asc",
fromDate, toDate, payrollTypeID, EnumEmployeeStatus.Live);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetEmpExceptAutoWP(TransactionContext tc, DateTime attnDate, int payrollTypeID)
{
string sql = SQLParser.MakeSQL(
"SELECT * FROM Employee WHERE Status=%n and PAYROLLTYPEID = %n AND JOININGDATE <=%d"
+ "AND EMPLOYEEID IN(SELECT EMPLOYEEID FROM EmployeeWorkPlanSetup WHERE WorkPlanGroupID NOT IN(%n)) order by EmployeeNo ",
EnumEmployeeStatus.Live, payrollTypeID, attnDate, EnumWorkPlanGroup.Counter_Clock_1);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetDiscontinueEmp(TransactionContext tc, DateTime attnDate, DateTime currentDate,
int payrollTypeID)
{
tc.CommandTimeOut = 6000;
string sql = SQLParser.MakeSQL(
"SELECT * FROM Employee WHERE ENDOFCONTRACTDATE BETWEEN %d AND %d and PAYROLLTYPEID = %n "
+ "AND EMPLOYEEID IN(SELECT EMPLOYEEID FROM EmployeeWorkPlanSetup WHERE WorkPlanGroupID NOT IN(%n)) order by EmployeeNo ",
attnDate, currentDate, payrollTypeID, EnumWorkPlanGroup.Counter_Clock_1);
return tc.ExecuteReader(sql);
}
//
internal static IDataReader GetEmpsWithDiscontinue(TransactionContext tc, string empIDs, int payrollTypeID)
{
string sTableName;
empIDs = IDHelper.GetIDs(tc, empIDs, out sTableName);
IDataReader dr =
tc.ExecuteReader(
"SELECT * FROM Employee WHERE EMPLOYEEID IN(%q) AND PAYROLLTYPEID = %n order by EmployeeNo",
empIDs, payrollTypeID);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
return dr;
}
internal static IDataReader GetByEmpIDs(TransactionContext tc, string empIDs, int payrollTypeID)
{
string sTableName;
empIDs = IDHelper.GetIDs(tc, empIDs, out sTableName);
IDataReader dr =
tc.ExecuteReader(
"SELECT * FROM Employee WHERE PAYROLLTYPEID = %n AND EMPLOYEEID IN(%q) order by EmployeeNo",
payrollTypeID, empIDs);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
return dr;
}
internal static void UpdateBanglaInformation(TransactionContext tc, List<object> employeBanglaInfo)
{
tc.ExecuteNonQuery("UPDATE EMPLOYEE SET BANGLANAME = %s, SPOUSENAMEBANGLA = %s, FatherNameBangla = %s, MotherNameBangla =%s, ModifiedDate =%s, ModifiedBy=%n WHERE EMPLOYEENO = %s", employeBanglaInfo[1], employeBanglaInfo[2], employeBanglaInfo[3], employeBanglaInfo[4], employeBanglaInfo[5], employeBanglaInfo[6], employeBanglaInfo[0]);
}
internal static void UpdateBanglaContactInformation(TransactionContext tc, List<object> employeBanglaInfo)
{
tc.ExecuteNonQuery("UPDATE EMPCONTACT SET presentPOInBangla = %s, presentAddressInBangla = %s, parmanentPOInBangla = %s, permanentAddressInBangla =%s WHERE EMPLOYEEID = %s", employeBanglaInfo[1], employeBanglaInfo[2], employeBanglaInfo[3], employeBanglaInfo[4], employeBanglaInfo[0]);
}
internal static IDataReader GetByEmpIDs(TransactionContext tc, string empIDs)
{
string sTableName;
empIDs = IDHelper.GetIDs(tc, empIDs, out sTableName);
IDataReader dr =
tc.ExecuteReader(
"SELECT * FROM Employee WHERE EMPLOYEEID IN(%q) order by EmployeeNo", empIDs);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
return dr;
}
internal static IDataReader GetFssEmp(TransactionContext tc, string empIDs, int payrollTypeID)
{
string sTableName;
empIDs = IDHelper.GetIDs(tc, empIDs, out sTableName);
IDataReader dr =
tc.ExecuteReader(
"SELECT * FROM Employee WHERE PAYROLLTYPEID = %n AND EMPLOYEEID IN(%q) order by EmployeeNo",
payrollTypeID, empIDs);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
return dr;
}
internal static IDataReader GetByDeptIDs(TransactionContext tc, string sIDs, int payrollTypeID)
{
string sTableName;
sIDs = IDHelper.GetIDs(tc, sIDs, out sTableName);
IDataReader dr =
tc.ExecuteReader(
"SELECT * FROM Employee WHERE Status=%n and PAYROLLTYPEID = %n AND DEPARTMENTID IN(%q) order by EmployeeNo",
EnumEmployeeStatus.Live, payrollTypeID, sIDs);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
return dr;
}
internal static IDataReader GetSubordinates(TransactionContext tc, int employeeID)
{
return tc.ExecuteReader(@"Select * From Employee Where EmployeeID IN(
Select EmployeeID from OrganEmployee Where NodeID IN(
Select OrganogramID From Organogram Where ParentID=(
Select NodeID from OrganEmployee Where EmployeeID=%n)))", employeeID);
}
internal static IDataReader GetTopMostEmployees(TransactionContext tc)
{
return tc.ExecuteReader(@"Select * From Employee Where EmployeeID IN(
Select EmployeeID from OrganEmployee Where NodeID IN(
Select OrganogramID From Organogram Where Tier=1))order by Employeeno");
}
public static IDataReader GetSubordinates(TransactionContext tc, string sql)
{
return tc.ExecuteReader(sql);
}
internal static IDataReader GetbyInSQL(TransactionContext tc, string EmpIds, int payrollTypeID)
{
if (EmpIds == "")
{
string sql = SQLParser.MakeSQL("SELECT * FROM Employee WHERE PAYROLLTYPEID = %n ",
payrollTypeID);
return tc.ExecuteReader(sql);
}
else
{
string sTableName;
EmpIds = IDHelper.GetIDs(tc, EmpIds, out sTableName);
IDataReader dr = tc.ExecuteReader(
"SELECT * FROM Employee WHERE PAYROLLTYPEID = %n AND EmployeeID IN ( %q )",
payrollTypeID, EmpIds);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
return dr;
}
}
internal static IDataReader Get(TransactionContext tc, int status, DateTime lastDateOfYear)
{
string strSQLQuery = SQLParser.MakeSQL("SELECT * FROM Employee WHERE Status = %n AND JoiningDate <= %d ",
status, lastDateOfYear);
return tc.ExecuteReader(strSQLQuery);
}
internal static IDataReader GetbyEmail(TransactionContext tc, string Email)
{
string strSQLQuery = SQLParser.MakeSQL("SELECT * FROM Employee WHERE emailAddress = %s ", Email);
return tc.ExecuteReader(strSQLQuery);
}
internal static IDataReader Get(TransactionContext tc, EnumEmployeeStatus status, int payrollTypeID)
{
string strSQLQuery = string.Empty;
if (status == EnumEmployeeStatus.Regardless)
{
strSQLQuery = SQLParser.MakeSQL("SELECT * FROM Employee WHERE PAYROLLTYPEID = %n ", payrollTypeID);
}
else
{
strSQLQuery = SQLParser.MakeSQL("SELECT * FROM Employee WHERE Status = %n AND PAYROLLTYPEID = %n ",
(int)status, payrollTypeID);
}
return tc.ExecuteReader(strSQLQuery);
}
internal static DataSet GetEmpIDsOfManager(TransactionContext tc, int status, DateTime lastDateOfYear)
{
string strSQLQuery =
SQLParser.MakeSQL(
"SELECT EMPLOYEEID FROM Employee WHERE IsManager = 1 AND Status = %n AND JoiningDate <= %d ",
status, lastDateOfYear);
return tc.ExecuteDataSet(strSQLQuery);
}
internal static DataSet GetEncashmentReport(TransactionContext tc, string sEmpIDs, string leaveYear)
{
DataSet oEmpDetails = new DataSet();
string sql = string.Empty;
try
{
sql = SQLParser.MakeSQL(@" SELECT e.EMPLOYEEID,e.EMPLOYEENO,e.[NAME] NAME,d2.[NAME] Designation,d.[DESCRIPTION] Department, ct.[DESCRIPTION] Category,g.[DESCRIPTION] Grade,c.[DESCRIPTION] CC,e.JOININGDATE, lc.[DESCRIPTION] Location,e2.GrossSalary, e2.LeaveBalance,
e2.EncashmentDays ENCASHDAYS, e2.AMOUNT ENCASHAMOUNT, l.[DESCRIPTION] LeaveType, l2.[NAME] LeaveYear
FROM EMPLOYEE e
LEFT JOIN LeaveEncashment e2 ON e.EMPLOYEEID = e2.EMPLOYEEID
LEFT JOIN LEAVE l on l.LEAVEID = e2.LEAVEID
LEFT JOIN LEAVEYEAR l2 on l2.LEAVEYEARID = e2.LEAVEYEARID
LEFT JOIN DEPARTMENT d on e.DEPARTMENTID=d.DEPARTMENTID
LEFT JOIN DESIGNATION d2 on e.DESIGNATIONID=d2.DESIGNATIONID
LEFT JOIN GRADES g on e.GRADEID=g.GRADEID
LEFT JOIN LOCATION lc on e.LOCATIONID=lc.LOCATIONID
LEFT JOIN EMPCOSTCENTER ec on e.EMPLOYEEID=ec.EMPLOYEEID
LEFT JOIN CRG c ON ec.COSTCENTERID=c.CRGID
LEFT JOIN CATEGORY ct ON ct.CATEGORYID=e.CATEGORYID
WHERE e.EMPLOYEEID IN(%q) AND l2.[NAME] = '%q' AND e2.AMOUNT!=0 AND ec.CurrentCC=1
ORDER BY c.[DESCRIPTION],e.EMPLOYEENO", sEmpIDs, leaveYear);
// sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID,e.EMPLOYEENO,e.[NAME] NAME, e2.EncashmentDays ENCASHDAYS, e2.AMOUNT ENCASHAMOUNT, l.[DESCRIPTION] LeaveType, l2.[NAME] LeaveYear
// FROM EMPLOYEE e, LeaveEncashment e2, LEAVE l, LEAVEYEAR l2
// WHERE e.EMPLOYEEID = e2.EMPLOYEEID AND l.LEAVEID = e2.LEAVEID AND l2.LEAVEYEARID = e2.LEAVEYEARID
// AND e.EMPLOYEEID IN(%q) AND l2.[NAME] = '%q' AND e2.AMOUNT!=0
// ORDER BY e.EMPLOYEEID", sEmpIDs, leaveYear);
oEmpDetails = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
internal static IDataReader Get(TransactionContext tc, int ID)
{
return tc.ExecuteReader("SELECT * FROM Employee WHERE EmployeeID=%n ", ID);
}
internal static bool GetIsFixedPositionForMobile(TransactionContext tc, int ID)
{
object IsFixedLocation = tc.ExecuteScalar("SELECT IsFixedLocation FROM Employee With(NoLock) WHERE EmployeeID=%n ", ID);
if (IsFixedLocation == DBNull.Value)
{
return false;
}
else
{
return Convert.ToBoolean(IsFixedLocation);
}
}
internal static IDataReader GetEmployeeByIDs(TransactionContext tc, string ID)
{
string str = SQLParser.MakeSQL("SELECT * FROM Employee WHERE EmployeeID in (%q) ", ID);
return tc.ExecuteReader("SELECT * FROM Employee WHERE EmployeeID in (%q) ", ID);
}
internal static DataTable GetEmployeeForDashboard(TransactionContext tc, int ID)
{
string str = SQLParser.MakeSQL(
@"SELECT e.EmployeeId Id, e.EmployeeNo, e.name, lm.employeeNo+'-'+lm.NAME lineManager , e.JoiningDate, dept.DESCRIPTION Department, des.NAME Designation, e.ProfileComplitionPercent profileCompletionPercent
FROM EMPLOYEE e
LEFT JOIN DEPARTMENT dept ON e.DEPARTMENTID = dept.DEPARTMENTID
LEFT JOIN DESIGNATION des ON e.DESIGNATIONID = des.DESIGNATIONID
LEFT JOIN EMPLOYEE lm ON lm.EMPLOYEEID = e.LinemanagerId
WHERE e.employeeId = %n", ID);
return tc.ExecuteDataTable(str);
}
internal static DataTable GetUserForLandingPage(TransactionContext tc, int userId)
{
string str = SQLParser.MakeSQL(
@"SELECT u.LoginId, u.UserName, e.name, lm.employeeNo+'-'+lm.NAME lineManager , e.JoiningDate, dept.DESCRIPTION Department, des.NAME Designation
FROM USERS u
LEFT JOIN EMPLOYEE e ON isnull(u.EMPLOYEEID, 0) = e.EmployeeId
LEFT JOIN DEPARTMENT dept ON e.DEPARTMENTID = dept.DEPARTMENTID
LEFT JOIN DESIGNATION des ON e.DESIGNATIONID = des.DESIGNATIONID
LEFT JOIN EMPLOYEE lm ON lm.EMPLOYEEID = e.LinemanagerId
WHERE u.userId = %n", userId);
return tc.ExecuteDataTable(str);
}
internal static IDataReader GetAllLive(TransactionContext tc)
{
// get live employee
tc.CommandTimeOut = 10000;
return tc.ExecuteReader("SELECT * FROM Employee WHERE STATUS=1");
}
internal static IDataReader GetByCardID(TransactionContext tc, int ID)
{
return tc.ExecuteReader("SELECT * FROM Employee WHERE CardID=%n ", ID);
}
internal static IDataReader GetParentEmployee(TransactionContext tc, int ID)
{
return tc.ExecuteReader(@"Select * From Employee Where EmployeeID IN(
Select EMPLOYEEID from OrganEmployee Where NodeID IN(
Select OrganogramID From Organogram where OrganogramID in(
Select ParentID From Organogram where OrganogramID in(
Select nodeid from OrganEmployee Where EmployeeID=%n))))", ID);
}
internal static IDataReader GetLineManager(TransactionContext tc, int empId)
{
string sql = SQLParser.MakeSQL(@"select * from employee where employeeId =
(select linemanagerId from employee where employeeid = %n)", empId);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetWithOutcheckPayrollType(TransactionContext tc, string employeeNo)
{
return tc.ExecuteReader("SELECT * FROM Employee WHERE EmployeeNo=%s AND status=%n ", employeeNo,
(int)EnumEmployeeStatus.Live);
}
internal static IDataReader Get(TransactionContext tc, string employeeNo, int payrollTypeID)
{
return tc.ExecuteReader("SELECT * FROM Employee WHERE employeeNo=%s AND PayrollTypeID=%n AND status=%n ",
employeeNo, payrollTypeID, (int)EnumEmployeeStatus.Live);
}
internal static IDataReader Get(TransactionContext tc, string employeeNo)
{
return tc.ExecuteReader("SELECT * FROM Employee WHERE employeeNo= %s AND status= %n ", employeeNo,
(int)EnumEmployeeStatus.Live);
}
internal static IDataReader GetFromAll(TransactionContext tc, string employeeNo, int payrollTypeID)
{
return tc.ExecuteReader("SELECT * FROM Employee WHERE employeeNo=%s AND PayrollTypeID=%n ", employeeNo,
payrollTypeID);
}
internal static DataSet GetEmpBasicInfo(TransactionContext tc, string sEmpID)
{
DataSet oEmpBasicInfos = new DataSet();
try
{
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
oEmpBasicInfos = tc.ExecuteDataSet(
"SELECT Emp.EMPLOYEENO,Emp.NAME,Emp.GENDER,RE.NAME RName,Emp.BIRTHDATE,EMp.JOININGDATE,Emp.DATEOFCONFIRMATION,Emp.MARITALSTATUSID"
+ " FROM EMPLOYEE Emp,Religion RE"
+ " WHERE Emp.EMPLOYEEID IN(%q) AND emp.RELIGIONID=RE.RELIGIONID order by Emp.EmployeeNo", sEmpID);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpBasicInfos;
}
internal static IDataReader GetCurrentHeadCount(TransactionContext tc, int departmentId, int designationId, int gradeId)
{
string sSearch = string.Empty;
if (departmentId > 0)
{
sSearch = SQLParser.TagSQL(sSearch) + SQLParser.MakeSQL("em.DEPARTMENTID=%n", departmentId);
}
if (designationId > 0)
{
sSearch = SQLParser.TagSQL(sSearch) + SQLParser.MakeSQL("em.DESIGNATIONID=%n", designationId);
}
if (gradeId > 0)
{
sSearch = SQLParser.TagSQL(sSearch) + SQLParser.MakeSQL("em.GRADEID=%n", gradeId);
}
return tc.ExecuteReader("SELECT COUNT(*) FROM Employee em %q", sSearch);
}
internal static IDataReader GetEmpForHNM(TransactionContext tc, int sEmpID)
{
string sql = SQLParser.MakeSQL(
@"SELECT e.*,e2.PARMANENTADDRESS Address FROM Employee e
LEFT JOIN EMPCONTACT AS e2 ON e2.EMPLOYEEID = e.EMPLOYEEID
WHERE e.EMPLOYEEID=%n", sEmpID);
return tc.ExecuteReader(sql);
}
internal static DataSet GetEmpBasicInfoForReport(TransactionContext tc, string sEmpID)
{
DataSet oEmpBasicInfos = new DataSet();
try
{
string sql = SQLParser.MakeSQL(
@"Select e.EMPLOYEENO, e.NAME, e.JOININGDATE JOININGDATE, CASE WHEN e.PAYMENTMODE = 1 THEN 'Cash Payment'
WHEN e.PAYMENTMODE = 2 THEN 'Bank Transfer'
WHEN e.PAYMENTMODE = 3 THEN 'Cash Payment'
END
PaymentMode , e.BASICSALARY, e.GROSSSALARY, dept.DESCRIPTION Department,
g.DESCRIPTION Grade, desig.NAME Designation, cc.CODE CostCenter, e.ACCOUNTNO, br.NAME BranchName, b.NAME BankName, '' PaymentDate, '' PayPeriodFrom, '' PayPeriodTo, '' TotalDays, '' PayableDays, '' SalaryMonth
FROM EMPLOYEE e
LEFT JOIN Department dept ON dept.DEPARTMENTID=e.DEPARTMENTID
LEFT JOIN GRADES g ON g.GRADEID=e.GRADEID
LEFT JOIN DESIGNATION desig ON desig.DESIGNATIONID = e.DESIGNATIONID
LEFT JOIN EMPCOSTCENTER empcc ON empcc.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN CRG cc ON cc.CRGID = empcc.COSTCENTERID
LEFT JOIN BRANCHES br ON br.BRANCHID=e.BRANCHID
LEFT JOIN BANKS b ON b.BANKID = br.BANKID
WHERE e.EMPLOYEEID in (%q)", sEmpID);
oEmpBasicInfos = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpBasicInfos;
}
internal static DataSet GetDivision(TransactionContext tc, int nEmpID)
{
DataSet oEmpBasicInfos = new DataSet();
try
{
oEmpBasicInfos = tc.ExecuteDataSet("SELECT * from vw_EmpDivision Where EmployeeID=%n", nEmpID);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpBasicInfos;
}
internal static DataSet GetEmpDetails(TransactionContext tc, string sEmpID)
{
DataSet oEmpDetails = new DataSet();
try
{
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
//oEmpDetails = tc.ExecuteDataSet("SELECT Emp.EMPLOYEENO,Emp.Name,DG.NAME DegName,Dep.DESCRIPTION DepDes,GD.DESCRIPTION GDDes,"
// + " Emp.BIRTHDATE,Emp.JOININGDATE,Emp.DATEOFCONFIRMATION,Emp.GENDER,"
// + " Emp.MARITALSTATUSID,Emp.MOBILENO,Emp.EMAILADDRESS,BK.NAME Bank,BR.NAME Branch,"
// + " Emp.ACCOUNTNO,RG.NAME RegName,Emp.BASICSALARY,Emp.TAXAMOUNT"
// + " FROM"
// + " Employee Emp,Designation DG,Department Dep,Grades GD,"
// + " Religion RG,Banks BK,Branches BR"
// + " WHERE Emp.DESIGNATIONID=DG.DESIGNATIONID"
// + " AND Emp.DEPARTMENTID=Dep.DEPARTMENTID"
// + " AND Emp.GRADEID=GD.GRADEID"
// + " AND Emp.RELIGIONID=RG.RELIGIONID"
// + " AND Emp.BRANCHID=BR.BRANCHID"
// + " AND BK.BANKID=Br.BANKID"
// + " AND Emp.EMPLOYEEID IN(%q) order by Emp.EMPLOYEENO ", sEmpID);
string sql =
SQLParser.MakeSQL(
@"SELECT Emp.EMPLOYEENO,Emp.Name,Emp.BIRTHDATE,Emp.JOININGDATE,Emp.DATEOFCONFIRMATION,
Emp.GENDER,Emp.MARITALSTATUSID,Emp.MOBILENO,Emp.EMAILADDRESS,Emp.ACCOUNTNO,Emp.OutPayAccountNo,
Emp.BASICSALARY,Emp.GrossSalary,Emp.VendorCode,Emp.TAXAMOUNT,Deg.NAME DegName,Dep.DESCRIPTION DepDes,
GD.DESCRIPTION GDDes,BK.NAME Bank,BR.NAME Branch,BKOUT.NAME OUTPayBank,BROUT.NAME OUTPayBranch, RG.NAME RegName,Loc.Description Locdes
FROM EMPLOYEE Emp
LEFT Outer JOIN DESIGNATION Deg ON Emp.DESIGNATIONID=Deg.DESIGNATIONID
LEFT OUTER JOIN Department Dep ON Emp.DEPARTMENTID=Dep.DEPARTMENTID
LEFT OUTER JOIN Grades GD ON Emp.GRADEID=GD.GRADEID
LEFT OUTER JOIN Religion RG ON Emp.RELIGIONID=RG.RELIGIONID
LEFT OUTER JOIN Branches BR ON Emp.BRANCHID=BR.BRANCHID
LEFT OUTER JOIN BANKS BK ON BK.BANKID=BR.BANKID
LEFT OUTER JOIN Branches BROUT ON Emp.OUTPayBRANCHID=BROUT.BRANCHID
LEFT OUTER JOIN BANKS BKOUT ON BKOUT.BANKID=BROUT.BANKID
LEFT OUTER JOIN Location Loc ON Emp.LocationID=Loc.LocationID
WHERE Emp.EMPLOYEEID IN(%q) ORDER BY Emp.EMPLOYEENO", sEmpID);
oEmpDetails = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
//oEmpDetails = tc.ExecuteDataSet("SELECT Emp.EMPLOYEENO,Emp.Name,Emp.BIRTHDATE,Emp.JOININGDATE,Emp.DATEOFCONFIRMATION, "
// + " Emp.GENDER,Emp.MARITALSTATUSID,Emp.MOBILENO,Emp.EMAILADDRESS,Emp.ACCOUNTNO,"
// + " Emp.BASICSALARY,Emp.GrossSalary,Emp.VendorCode,Emp.TAXAMOUNT,Deg.NAME DegName,Dep.DESCRIPTION DepDes,"
// + " GD.DESCRIPTION GDDes,BK.NAME Bank,BR.NAME Branch,RG.NAME RegName,Loc.Description Locdes"
// + " FROM EMPLOYEE Emp "
// + " LEFT Outer JOIN DESIGNATION Deg ON Emp.DESIGNATIONID=Deg.DESIGNATIONID"
// + " LEFT OUTER JOIN Department Dep ON Emp.DEPARTMENTID=Dep.DEPARTMENTID "
// + " LEFT OUTER JOIN Grades GD ON Emp.GRADEID=GD.GRADEID "
// + " LEFT OUTER JOIN Religion RG ON Emp.RELIGIONID=RG.RELIGIONID"
// + " LEFT OUTER JOIN Branches BR ON Emp.BRANCHID=BR.BRANCHID"
// + " LEFT OUTER JOIN BANKS BK ON BK.BANKID=BR.BANKID"
// + " LEFT OUTER JOIN Location Loc ON Emp.LocationID=Loc.LocationID"
// + " WHERE Emp.EMPLOYEEID IN(%q) ORDER BY Emp.EMPLOYEENO", sEmpID);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
internal static DataSet GetEmployeeGeneralData(TransactionContext tc)
{
//string sqlClause = string.Empty;
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID = %n", payrollTypeID);
//if (EnumStatus.Active == status || EnumStatus.Inactive == status)
//{
// sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("status = %n", status);
//}
//if (onlyActive == true)
//{
// sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL(" status = %s", EnumEmployeeStatus.Live);
//}
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EmployeeGeneralData");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeContactData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EmployeeContactInfo");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeSpouseData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EmployeeSpouseInfo");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeChildrenData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EmployeeChildrenInfo");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeAcademicData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EmployeeAcademicInfo");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeTrainingData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EmployeeTrainingInfo");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeExperienceData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EmployeeExperienceData");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeNomineeData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EmployeeNomineeDetails");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetListOfPromotion(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID EmployeeId, e.EMPLOYEENO EmployeeNo, e.NAME EmployeeName, dept.DESCRIPTION Department, desg.NAME Designation,
e.JOININGDATE JoiningDate, e.GROSSSALARY GrossSalary, e.BASICSALARY BasicSalary, g.DESCRIPTION Grade,
t.effectDate EffectDate
FROM EMPLOYEE e
LEFT JOIN DEPARTMENT dept ON e.DEPARTMENTID = dept.DEPARTMENTID
LEFT JOIN DESIGNATION desg ON e.DESIGNATIONID = desg.DESIGNATIONID
LEFT JOIN GRADES g ON e.GRADEID = g.GRADEID
INNER JOIN (SELECT * FROM EMPLIFECYCLE WHERE STATUS = (SELECT statusId FROM EMPLOYEESTATUS WHERE isPromotion = 1)) t
ON t.employeeId = e.employeeId");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetListOfTransfer(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID EmployeeId, e.EMPLOYEENO EmployeeNo, e.NAME EmployeeName, dept.DESCRIPTION Department, desg.NAME Designation,
e.JOININGDATE JoiningDate, e.GROSSSALARY GrossSalary, e.BASICSALARY BasicSalary, g.DESCRIPTION Grade,
t.effectDate EffectDate, l.DESCRIPTION Location
FROM EMPLOYEE e
LEFT JOIN DEPARTMENT dept ON e.DEPARTMENTID = dept.DEPARTMENTID
LEFT JOIN DESIGNATION desg ON e.DESIGNATIONID = desg.DESIGNATIONID
LEFT JOIN GRADES g ON e.GRADEID = g.GRADEID
LEFT JOIN LOCATION l ON e.LOCATIONID = l.LOCATIONID
INNER JOIN (SELECT * FROM EMPLIFECYCLE WHERE LOCATIONID IS NOT NULL OR DEPARTMENTID IS NOT NULL) t
ON t.employeeId = e.employeeId");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetJobSeparationList(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID EmployeeId, e.EMPLOYEENO EmployeeNo, e.NAME EmployeeName, dept.DESCRIPTION Department, desg.NAME Designation,
e.JOININGDATE JoiningDate, e.ENDOFCONTRACTDATE DiscontinueDate
FROM EMPLOYEE e
LEFT JOIN DEPARTMENT dept ON e.DEPARTMENTID = dept.DEPARTMENTID
LEFT JOIN DESIGNATION desg ON e.DESIGNATIONID = desg.DESIGNATIONID
LEFT JOIN GRADES g ON e.GRADEID = g.GRADEID
WHERE e.STATUS <> 1 ");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetConfirmedEmployeeList(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID EmployeeId, e.EMPLOYEENO EmployeeNo, e.NAME EmployeeName, dept.DESCRIPTION Department, desg.NAME Designation,
e.JOININGDATE JoiningDate, e.DATEOFCONFIRMATION ConfirmDate
FROM EMPLOYEE e
LEFT JOIN DEPARTMENT dept ON e.DEPARTMENTID = dept.DEPARTMENTID
LEFT JOIN DESIGNATION desg ON e.DESIGNATIONID = desg.DESIGNATIONID
LEFT JOIN GRADES g ON e.GRADEID = g.GRADEID
WHERE e.DATEOFCONFIRMATION IS NOT NULL ");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmpDetailsView(TransactionContext tc, string sEmpID)
{
DataSet oEmpDetails = new DataSet();
try
{
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
string sql =
SQLParser.MakeSQL(@"Select * from VW_EMPLOYEEBASIC
WHERE EMPLOYEEID IN(%q) ORDER BY EMPLOYEENO", sEmpID);
oEmpDetails = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
internal static DataSet GetEmpDetailsView(TransactionContext tc)
{
DataSet oEmpDetails = new DataSet();
try
{
string sql =
SQLParser.MakeSQL(@"Select * from VW_EMPLOYEEBASIC ORDER BY EMPLOYEENO");
oEmpDetails = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
// internal static DataSet GetEmployeeCV(TransactionContext tc, string sEmpID)
// {
// DataSet oEmpCV = new DataSet();
// try
// {
// string sql = SQLParser.MakeSQL(@"SELECT e.[NAME], e.EMPLOYEENO, e.FATHERNAME, e.MOTHERNAME, e.NationalID,n.[DESCRIPTION] Nationality, e.BIRTHDATE,e.GENDER,
// e.MARITALSTATUSID,r.[NAME] Religion,e2.PARMANENTTELEPHONE Telephone1, e2.PRESENTTELEPHONE Telephone2, e2.FAX, e.MOBILENO,
// e.EMAILADDRESS,e2.PARMANENTADDRESS, t.name Thana, d.[NAME] District,e2.PRESENTADDRESS, t.name Thana, d.[NAME] District,
// c.[DESCRIPTION] Company, dpt.[DESCRIPTION] Department, dg.[NAME] designation, e.JOININGDATE Appointment,
// e.[STATUS], g.[DESCRIPTION] Grade
// FROM EMPLOYEE e
// LEFT JOIN EMPCONTACT e2 ON e2.EMPLOYEEID= e.EMPLOYEEID
// INNER JOIN RELIGION r ON r.RELIGIONID = e.RELIGIONID
// INNER JOIN NATIONALITY n ON n.NATIONALITYID=e.NATIONALITYID
// INNER JOIN DISTRICT d ON d.DISTRICTID= e2.PARMANENTDISTRICTID
// INNER JOIN THANA t ON t.THANAID=e2.PARMANENTTHANAID
// LEFT JOIN COMPANY c ON c.COMPANYID=e.CompanyID
// INNER JOIN Department dpt ON dpt.DEPARTMENTID= e.DEPARTMENTID
// LEFT JOIN Designation dg ON dg.DESIGNATIONID= e.DESIGNATIONID
// LEFT JOIN GRADES g ON g.GRADEID= e.GRADEID
// WHERE e.EMPLOYEEID=%q",sEmpID);
// oEmpCV = tc.ExecuteDataSet(sql);
// }
// catch(Exception ex)
// {
// throw new Exception(ex.Message);
// }
// return oEmpCV;
// }
internal static DataSet GetEmpForLetterOfIntroduction(TransactionContext tc, string sEmpID, DateTime month)
{
DataSet oEmpDetails = new DataSet();
try
{
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
string sql =
SQLParser.MakeSQL(
@"SELECT ISNULL(c.DESCRIPTION,'') CompanyName,ISNULL(ctry.Description,'') Country,e.EMPLOYEENO EmpNo,
e.NAME EmpName,e.BIRTHDATE DOB, ISNULL(ec.PRESENTADDRESS,'') Address,
e.JOININGDATE DOJ,ISNULL(des.NAME,'') Designation, '' EmpType, ISNULL(s.CHANGEDAMOUNT,0) Salary
FROM
(SELECT * from Employee
WHERE EmployeeID IN (%q))
e
LEFT JOIN COMPANY c
ON e.CompanyID = c.COMPANYID
LEFT JOIN NATIONALITY ctry
ON ctry.NATIONALITYID = e.NATIONALITYID
LEFT JOIN EMPCONTACT ec
ON e.EMPLOYEEID = ec.EMPLOYEEID
LEFT JOIN DESIGNATION des
ON des.DESIGNATIONID = e.DESIGNATIONID
LEFT JOIN
(SELECT sm.EmployeeID,sm.SalaryMonth,smd.CHANGEDAMOUNT FROM
SALARYMONTHLY sm, SALARYMONTHLYDETAIL smd
WHERE sm.SALARYMONTHLYID = smd.SALARYMONTHLYID
AND smd.ITEMID = -101 AND smd.ItemGroup = 1
AND sm.SalaryMonth = %d) s
on e.EMPLOYEEID = s.EMPLOYEEID", sEmpID, month);
oEmpDetails = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
internal static IDataReader GetGrandChilds(TransactionContext tc, int employeeID)
{
return tc.ExecuteReader(@"Select * From Employee Where EmployeeID IN(
Select EmployeeID from OrganEmployee Where NodeID IN(
Select OrganogramID From Organogram Where ParentID in(
Select NodeID from OrganEmployee Where EmployeeID in(
Select EmployeeID from OrganEmployee Where NodeID IN(
Select OrganogramID From Organogram Where ParentID in(
Select NodeID from OrganEmployee Where EmployeeID=%n))))))", employeeID);
}
internal static IDataReader GetGrandChilds(TransactionContext tc, string sEmpNos)
{
return tc.ExecuteReader(@"SELECT * FROM EMPLOYEE e WHERE Status=%n AND e.EMPLOYEENO IN(
SELECT o.PositionNo FROM Organogram o WHERE o.ParentID IN(SELECT OrganogramID FROM organogram WHERE ParentID IN(
SELECT OrganogramID FROM organogram WHERE PositionNo=%s)))",
(int)EnumEmployeeStatus.Live, sEmpNos);
}
internal static IDataReader GetAssignedEmployees(TransactionContext tc, int PMPYearID, int EmpID)
{
return tc.ExecuteReader(
"select * from employee where employeeid in(SELECT AssignedForEmployeeID FROM AssignProxyObjectiveSetting where PMPYearID=%n AND AssignedToEmployeeID=%n AND IsApproved=%b)",
PMPYearID, EmpID, true);
}
internal static DataSet GetEmpPosting(TransactionContext tc, string sEmpID)
{
DataSet oEmpPostings = new DataSet();
try
{
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
//oEmpPostings = tc.ExecuteDataSet("Select Emp.EMPLOYEENO,Emp.NAME,Dept.DESCRIPTION Department,Loc.DESCRIPTION Location,Desg.NAME Designation,HREmp.EFFECTIVEDATE from EMPLOYEE Emp,DEPARTMENT Dept,LOCATION Loc,DESIGNATION Desg, HREMPPOSTING HREmp"
// + " where Emp.EMPLOYEEID=HREmp.EMPLOYEEID "
// + " and Desg.DESIGNATIONID=HREmp.DESIGNATIONID"
// + " and Dept.DEPARTMENTID=HREmp.FUNCTIONID "
// + " and Loc.LOCATIONID=HREmp.FUNCTIONID "
// + " and HREmp.EMPLOYEEID in(%q) "
// + " order By Emp.EMPLOYEENO ", sEmpID);
string sql = SQLParser.MakeSQL(
@"SELECT e.EmployeeNo, e.Name, d.DESCRIPTION Department,l.DESCRIPTION Location, d2.Name Designation,h.EFFECTIVEDATE, u.UserName CommitedBy, e.CreationDate CommitedOn
FROM employee e
INNER JOIN DEPARTMENT d ON d.DEPARTMENTID= e.DepartmentID
INNER JOIN Designation d2 ON d2.DesignationID=e.DesignationID
INNER JOIN LOCATION l ON l.LOCATIONID = e.LocationID
INNER JOIN users u ON u.UserID=e.CreatedBy
LEFT JOIN HREMPPOSTING h ON h.EMPLOYEEID=e.EmployeeID
WHERE e.EmployeeID IN (%q)", sEmpID);
oEmpPostings = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpPostings;
}
internal static DataSet GetLineManagerFromOrg(TransactionContext tc, int sEmpID)
{
DataSet oLineManager = new DataSet();
try
{
string sql = SQLParser.MakeSQL(@"SELECT Employee.Name FROM Employee,
(SELECT EmployeeID FROM OrganEmployee oe WHERE oe.NodeID =
(
SELECT ParentID FROM Organogram o WHERE o.OrganogramID=
(SELECT NodeID FROM OrganEmployee oe WHERE EmployeeID=%n))) tab1
WHERE Employee.EMPLOYEEID=tab1.EmployeeID", sEmpID);
oLineManager = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oLineManager;
}
internal static DataSet GetEmpConfirmHis(TransactionContext tc, DateTime dEffectDate, DateTime dEffectDate2,
int payrollTypeID)
{
DataSet oEmpConfirms = new DataSet();
try
{
oEmpConfirms = tc.ExecuteDataSet(
"Select Emp.Employeeid,eh.emplifecycleid,Eh.status, Emp.EMPLOYEENO,Emp.NAME,Deg.NAME DESIGNATION,G.DESCRIPTION Grade, Emp.JOININGDATE,"
+ " Emp.DATEOFCONFIRMATION DATEOFCONFIRMATION,EH.SalaryMonth EFFECTDATE,EH.REMARKS Comments,US.LoginID CommitedBy,EH.CreationDate"
+ " from EmpLifeCycle EH, EMPLOYEE Emp ,USERS US,DESIGNATION Deg,GRADES G "
+ " WHERE Emp.DESIGNATIONID=Deg.DESIGNATIONID AND Emp.GRADEID=G.GRADEID AND US.USERID=EH.CreatedBy AND "
+ " Emp.DATEOFCONFIRMATION between %d and %d AND eh.isconfirm=1 AND"
+ " Emp.EMPLOYEEID=EH.EMPLOYEEID AND Emp.PayrollTypeID=%n order by Emp.EMPLOYEENO", dEffectDate,
dEffectDate2, payrollTypeID);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpConfirms;
}
internal static DataSet GetEmpPFHis(TransactionContext tc, DateTime dEffectDate)
{
DataSet oEmpConfirms = new DataSet();
try
{
oEmpConfirms = tc.ExecuteDataSet(
"Select Emp.EMPLOYEENO,Emp.NAME,G.DESCRIPTION,Emp.PFMEMBERSHIPDT,US.UserID,Emp.CreationDate "
+ " from EMPLOYEE Emp,GRADES G,Users US"
+ " Where Emp.GRADEID=G.GRADEID "
+ " and US.UserID=Emp.CreatedBy "
+ " and Emp.DATEOFCONFIRMATION between %d and %d"
+ " order by Emp.EMPLOYEENO", PayrollGlobalFunctions.PayrollFirstDateOfMonth(dEffectDate),
PayrollGlobalFunctions.PayrollLastDateOfMonth(dEffectDate));
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpConfirms;
}
internal static DataSet GetEmpJoining(TransactionContext tc, DateTime dEffectDate, DateTime dEffectDate2)
{
DataSet oEmpConfirms = new DataSet();
try
{
string sQL = SQLParser.MakeSQL(
@"Select emp.basicsalary,emp.maritalstatusid,emp.religionid,Users.UserName createduser,emp.creationdate,
emp.employeeid,Emp.EMPLOYEENO,Emp.Gender,Emp.NAME,G.DESCRIPTION,Dg.Name DegName,Emp.JoiningDate,Emp.Grosssalary,Emp.BIRTHDATE
from EMPLOYEE Emp,GRADES G,Designation Dg, Users
Where Emp.GRADEID=G.GRADEID and emp.DesignationID=Dg.DesignationID
and Emp.JoiningDate between %d and %d and Users.UserID=emp.createdby
AND Emp.JOININGDATE <= (SELECT MIN(elc.EffectDate) FROM EmpLifeCycle elc WHERE Emp.EMPLOYEEID = elc.EmployeeID)
order by Emp.EMPLOYEENO", dEffectDate, dEffectDate2);
#region OldCode
//string sQL = SQLParser.MakeSQL("Select emp.basicsalary,emp.maritalstatusid,emp.religionid,lc.emplifecycleid,emp.createdby createduser,lc.effectdate,emp.creationdate,emp.employeeid,Emp.EMPLOYEENO,Emp.Gender,Emp.NAME,G.DESCRIPTION,Dg.Name DegName,Emp.JoiningDate,Emp.Grosssalary,Emp.BIRTHDATE,lc.createdby "
// + " from EMPLOYEE Emp,GRADES G,Designation Dg ,emplifecycle lc"
// + " Where Emp.GRADEID=G.GRADEID and emp.DesignationID=Dg.DesignationID and "
// + " Emp.JoiningDate between %d and %d AND"
// + " Emp.status=1 AND"
// + " emp.employeeid=lc.employeeID AND"
// + " lc.iscontinue=1 AND"
// + " Emp.JoiningDate=lc.effectdate"
// + " order by Emp.EMPLOYEENO", PayrollGlobalFunctions.PayrollFirstDateOfMonth(dEffectDate), PayrollGlobalFunctions.PayrollLastDateOfMonth(dEffectDate));
#endregion
oEmpConfirms = tc.ExecuteDataSet(sQL);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpConfirms;
}
internal static DataSet GetEmpJoining4Novartis(TransactionContext tc, DateTime dEffectDate, int payrollTypeID)
{
DataSet oEmpJoining = new DataSet();
try
{
oEmpJoining = tc.ExecuteDataSet(
"Select Emp.EMPLOYEENO,Emp.NAME,Dg.Name Designation,Emp.JoiningDate DOJ,G.DESCRIPTION Grade ,"
+ " Emp.Basicsalary Basic,Emp.BIRTHDATE DOB,Emp.Gender Sex,Emp.MaritalStatusID,Rel.Name Religion,US.LoginID CommitedBy,Emp.creationdate CommitedOn "
+ " from Employee Emp"
+ " left outer JOIN Grades G ON Emp.GradeID=G.GradeID"
+ " left outer Join Designation Dg on emp.DesignationID=Dg.DesignationID"
//+ " left outer Join EmpCostcenter EmpCC on EmpCC.EmployeeID=Emp.EmployeeID"
//+ " left outer Join CRG CC on CC.CRGID=EmpCC.CostCenterID"
+ " INNER Join Religion Rel on Emp.ReligionId=Rel.ReligionId "
+ " INNER Join USERS US on US.USERID=Emp.CreatedBy "
+ " and Emp.creationdate between %d and %d ANd Emp.PayrollTypeID=%n"
+ " order by Emp.EMPLOYEENO", PayrollGlobalFunctions.PayrollFirstDateOfMonth(dEffectDate),
PayrollGlobalFunctions.PayrollLastDateOfMonth(dEffectDate), payrollTypeID);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpJoining;
}
internal static DataSet GetDesignationWiseEmployeeCountsByDepartmentID(TransactionContext tc, int departmentID)
{
DataSet designationWiseCountDS = new DataSet();
try
{
designationWiseCountDS =
tc.ExecuteDataSet(@"Select '['+de.Code+']-'+de.Name GradeOrDesignation,empC.Count
From
(
Select DesignationID,COUNT(*) Count
From Employee
Where DepartmentID=%n
AND [Status] = %n
Group by DesignationID
)empC ,Designation de
Where empC.DesignationID = de.DesignationID", departmentID,
(int)EnumEmployeeStatus.Live);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return designationWiseCountDS;
}
internal static DataSet GetGradeWiseEmployeeCountsByDepartmentID(TransactionContext tc, int departmentID)
{
DataSet designationWiseCountDS = new DataSet();
try
{
designationWiseCountDS =
tc.ExecuteDataSet(@"Select '['+gd.Code+']-'+gd.[Description] GradeOrDesignation,empC.Count
From
(
Select GradeID,COUNT(*) Count
From Employee
Where DepartmentID=%n
AND [Status] = %n
Group by GradeID
)empC ,Grades gd
where empC.GradeID = gd.GradeID", departmentID, (int)EnumEmployeeStatus.Live);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return designationWiseCountDS;
}
internal static int GetDays(TransactionContext tc, int nPayrollTypeID)
{
int nDays = 0;
object obj = tc.ExecuteScalar("Select Days from EarnedLeaveDays where PayrollType=%n", nPayrollTypeID);
if (obj != null)
{
nDays = Convert.ToInt32(obj);
}
else
{
nDays = 0;
}
return nDays;
}
internal static IDataReader GetEmployeesYetNotAssigned(TransactionContext tc)
{
//string sql = SQLParser.MakeSQL(@"SELECT * FROM Employee WHERE EmployeeNo NOT IN (select LOGINID From Users where UserType=%n) Order By EmployeeNo",
// EnumSystemType.Web);
string SQL = SQLParser.MakeSQL(
"SELECT * FROM Employee WHERE EmployeeNo NOT IN (select LOGINID From Users where UserType=%n) Order By EmployeeNo",
EnumSystemType.Admin);
//string no = "23";
//string SQL = SQLParser.MakeSQL("SELECT * FROM Employee WHERE EmployeeNo = %s AND EmployeeNo NOT IN (select LOGINID From Users where UserType=%n)",
// no,EnumSystemType.Web);
return tc.ExecuteReader(SQL);
}
public static IDataReader GetEmployeesByJoiningMonth(TransactionContext tc, DateTime fromDate, DateTime toDate)
{
string SQL = SQLParser.MakeSQL(
"SELECT * FROM EMPLOYEE Where JoiningDate Between %d and %d order by EMPLOYEEID",
fromDate, toDate);
return tc.ExecuteReader(SQL);
}
internal static DataSet GetCashAdvice(TransactionContext tc, string sEmpIDs, string dSalDate)
{
DataSet FinallSet = new DataSet();
#region Old Code
// string ssql = SQLParser.MakeSQL(@"SELECT a.*,l.Employeeno,l.name,loc.description location
// FROM
// (select tab1.Employeeid,'Gross' description,sum(changedamount) Amount from(
// select smd.*,sm.Employeeid from salarymonthlydetail smd,salarymonthly sm where salarymonth=%d
// AND sm.salarymonthlyid=smd.salarymonthlyid AND sm.EMPLOYEEID IN(%q) AND sm.branchid is null)tab1
// where tab1.itemgroup=1
// group by tab1.Employeeid
// union
// select tab1.Employeeid,description,sum(changedamount) Amount from(
// select smd.*,sm.Employeeid from salarymonthlydetail smd,salarymonthly sm where salarymonth=%d
// AND sm.salarymonthlyid=smd.salarymonthlyid AND sm.EMPLOYEEID IN(%q) AND sm.branchid is null)tab1
// where tab1.itemgroup=3
// group by tab1.Employeeid,tab1.itemid,tab1.description
// union
// select tab1.Employeeid,'Signature' description,0 Amount from(
// select smd.*,sm.Employeeid from salarymonthlydetail smd,salarymonthly sm where salarymonth=%d
// AND sm.salarymonthlyid=smd.salarymonthlyid AND sm.EMPLOYEEID IN(%q) AND sm.branchid is null)tab1
// where tab1.itemgroup=1 AND itemcode=-101 AND itemid=-101
// group by tab1.Employeeid,tab1.itemid,tab1.description) a
// JOIN
// Employee l
// ON l.Employeeid = a.Employeeid
// join Location loc ON l.locationid=loc.locationid order by Employeeid", dSalDate, sEmpIDs, dSalDate, sEmpIDs, dSalDate, sEmpIDs);
#endregion
#region Old Code
// string sql = SQLParser.MakeSQL(@"SELECT a.*,l.Employeeno,l.name,loc.description location
// FROM
// (
// select tt.Employeeid,'Gross' description,(tt.Amount-ISNULL(ot.amount,0)) Amount FROM(
// (select ott.Employeeid,'Gross' description,sum(changedamount) Amount from(
// select smd.*,sm.Employeeid from salarymonthlydetail smd,salarymonthly sm where salarymonth=%d
// AND sm.salarymonthlyid=smd.salarymonthlyid AND sm.EMPLOYEEID IN(%q) AND sm.branchid is null
// )ott
// where ott.itemgroup in(1,8)
// group by ott.Employeeid) tt
// Left Outer join
// ( select Sum(A.amount) amount,E.EmployeeID from
// ( select S.EmployeeID, Sum(sd.changedamount) Amount
// from SALARYMONTHLY S,SalaryMonthlyDetail Sd
// where S.SalaryMonthlyID=Sd.SalaryMonthlyID
// AND S.SalaryMonth=%d and Sd.ItemGroup IN (2) AND S.EmployeeID IN(%q)
// group by S.EmployeeID
// ) A, Employee E where A.EmployeeID = E.EmployeeID group by E.EmployeeID)as ot on tt.Employeeid=ot.EmployeeID)
// union
// select tab1.Employeeid,description,sum(changedamount) Amount from(
// select smd.*,sm.Employeeid from salarymonthlydetail smd,salarymonthly sm where salarymonth=%d
// AND sm.salarymonthlyid=smd.salarymonthlyid AND sm.EMPLOYEEID IN(%q) AND sm.branchid is null)tab1
// where tab1.itemgroup=3
// group by tab1.Employeeid,tab1.itemid,tab1.description
// union
// select tab1.Employeeid,'Signature' description,0 Amount from(
// select smd.*,sm.Employeeid from salarymonthlydetail smd,salarymonthly sm where salarymonth=%d
// AND sm.salarymonthlyid=smd.salarymonthlyid AND sm.EMPLOYEEID IN(%q) AND sm.branchid is null)tab1
// where tab1.itemgroup=1 AND itemcode=-101 AND itemid=-101
// group by tab1.Employeeid,tab1.itemid,tab1.description) a
// JOIN
// Employee l
// ON l.Employeeid = a.Employeeid
// join Location loc ON l.locationid=loc.locationid order by Employeeid", dSalDate, sEmpIDs, dSalDate, sEmpIDs, dSalDate, sEmpIDs, dSalDate, sEmpIDs);
//union
// select tab1.Employeeid,'Signature' description,0 Amount,tab1.CostCenter from(
// select smd.*,sm.Employeeid,(CC.[DESCRIPTION])as CostCenter
// from salarymonthlydetail smd,salarymonthly sm ,CRG CC,SALARYEMPCOSTCENTER empcc
// where salarymonth=%d
// AND sm.salarymonthlyid=smd.salarymonthlyid
// AND sm.EMPLOYEEID IN(%q)
// AND sm.branchid is NULL
// AND CC.CrgID=empcc.CostCenterID AND sm.EmployeeID=empcc.EmployeeID
// AND smd.SALARYMONTHLYID=empcc.SALARYMONTHLYID
// )tab1
// where tab1.itemgroup=1 AND itemcode=-101 AND itemid=-101
// group by tab1.Employeeid,tab1.itemid,tab1.description,tab1.CostCenter
#endregion
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = SQLParser.MakeSQL(@"SELECT a.*,l.Employeeno,l.name,loc.description location
FROM
(
select tt.Employeeid,'Gross' description,(tt.Amount-ISNULL(ot.amount,0)) Amount,tt.CostCenter FROM(
(select ott.Employeeid,'Gross' description,sum(changedamount) Amount,ott.CostCenter from(
select smd.*,sm.Employeeid,(CC.[DESCRIPTION])as CostCenter
from salarymonthlydetail smd,salarymonthly sm,CRG CC,SALARYEMPCOSTCENTER empcc
where salarymonth=%d
AND sm.salarymonthlyid=smd.salarymonthlyid AND sm.EMPLOYEEID IN(%q)
AND sm.branchid is NULL AND CC.CrgID=empcc.CostCenterID AND sm.EmployeeID=empcc.EmployeeID
AND smd.SALARYMONTHLYID=empcc.SALARYMONTHLYID
)ott
where ott.itemgroup in(1,8)
group by ott.Employeeid,ott.CostCenter) tt
Left Outer join
( select Sum(A.amount) amount,E.EmployeeID,A.CostCenter from
( select S.EmployeeID, Sum(sd.changedamount) Amount,(CC.[DESCRIPTION])as CostCenter
from SALARYMONTHLY S,SalaryMonthlyDetail Sd,CRG CC,SALARYEMPCOSTCENTER empcc
where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (2)
AND S.EmployeeID IN(%q)
AND CC.CrgID=empcc.CostCenterID AND S.EmployeeID=empcc.EmployeeID
AND sd.SALARYMONTHLYID=empcc.SALARYMONTHLYID
group by S.EmployeeID,CC.[DESCRIPTION]
) A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeID,A.CostCenter)as ot on tt.Employeeid=ot.EmployeeID)
union
select tab1.Employeeid,description,sum(changedamount) Amount,tab1.CostCenter from(
select smd.*,sm.Employeeid,(CC.[DESCRIPTION])as CostCenter
from salarymonthlydetail smd,salarymonthly sm ,CRG CC,SALARYEMPCOSTCENTER empcc
where salarymonth=%d
AND sm.salarymonthlyid=smd.salarymonthlyid
AND sm.EMPLOYEEID IN(%q)
AND sm.branchid is NULL
AND CC.CrgID=empcc.CostCenterID AND sm.EmployeeID=empcc.EmployeeID
AND smd.SALARYMONTHLYID=empcc.SALARYMONTHLYID
)tab1
where tab1.itemgroup=3
group by tab1.Employeeid,tab1.itemid,tab1.description,tab1.CostCenter
UNION
SELECT tab1.Employeeid,'Net Pay' description,sum(changedamount) Amount,tab1.CostCenter FROM (
select smd.*,sm.Employeeid,(CC.[DESCRIPTION])as CostCenter
from salarymonthlydetail smd,salarymonthly sm ,CRG CC,SALARYEMPCOSTCENTER empcc
where salarymonth=%d
AND sm.salarymonthlyid=smd.salarymonthlyid
AND sm.EMPLOYEEID IN(%q)
AND sm.branchid is NULL
AND CC.CrgID=empcc.CostCenterID AND sm.EmployeeID=empcc.EmployeeID
AND smd.SALARYMONTHLYID=empcc.SALARYMONTHLYID
)tab1
where tab1.itemgroup=5 AND tab1.ITEMCODE=-132 AND tab1.ITEMID=-132
group by tab1.Employeeid,tab1.itemid,tab1.description,tab1.CostCenter
) a
JOIN
Employee l
ON l.Employeeid = a.Employeeid
join Location loc ON l.locationid=loc.locationid
order by Employeeid", dSalDate, sEmpIDs, dSalDate, sEmpIDs,
dSalDate, sEmpIDs, dSalDate, sEmpIDs, dSalDate, sEmpIDs);
FinallSet = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
return FinallSet;
}
#endregion
#region Delete function
internal static void Delete(TransactionContext tc, int ID, int userID)
{
tc.ExecuteNonQuery("UPDATE Employee SET CreatedBy=%n,ModifiedBy=%n Where EmployeeID=%n", userID, userID,
ID);
tc.ExecuteNonQuery("DELETE FROM Employee WHERE EmployeeID=%n", ID);
}
internal static void DeleteAll(TransactionContext tc, int userID)
{
tc.ExecuteNonQuery("UPDATE Employee SET CreatedBy=%n,ModifiedBy=%n", userID, userID);
tc.ExecuteNonQuery("DELETE FROM Employee");
}
internal static void DeleteEmpContact(TransactionContext tc, int employeeId)
{
tc.ExecuteNonQuery("DELETE FROM EmpContact where employeeID=%n", employeeId);
}
#endregion
internal static IDataReader Get(TransactionContext tc)
{
return tc.ExecuteReader("SELECT * FROM Employee");
}
internal static DataSet GetMaternityLeaveEmployeeBasicInfo(TransactionContext tc, int empId)
{
DataSet ds = new DataSet();
string sql = string.Empty;
try
{
sql = SQLParser.MakeSQL(@"SELECT v.EmployeeNo EmpNo,
v.Name EmpName,
v.Section Section,
v.JoiningDate JoiningDate,
v.[Designation],
v.GROSSSALARY GrossSalary, v.BasicSalary BasicSalary, l.APRFROMDATE LeavePeriodFrom, l.APRTODATE LeavePeriodTo, l.APRTODATE +1 AfterLeaveNextDate FROM vw_EmployeeImportantInfo v
LEFT JOIN LEAVEENTRY l ON v.EmployeeID = l.EMPID
WHERE v.EmployeeID = %n AND l.APRPARAMID = 3 ORDER BY l.APRFROMDATE DESC
", empId);
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static IDataReader GetMaternityLeaveEmployee(TransactionContext tc, DateTime formDate, DateTime toDate)
{
string sSQL = SQLParser.MakeSQL(@"SELECT * FROM EMPLOYEE e
LEFT JOIN LEAVEENTRY l ON e.EMPLOYEEID = l.EMPID
WHERE l.APRPARAMID = 3
AND (l.APRFROMDATE BETWEEN %d AND %d
OR l.APRTODATE BETWEEN %d AND %d
OR %d BETWEEN l.APRFROMDATE AND l.APRTODATE
OR %d BETWEEN l.APRFROMDATE AND l.APRTODATE) ORDER BY l.APRFROMDATE, l.APRTODATE DESC, e.EMPLOYEENO ASC"
, formDate, toDate,
formDate, toDate,
formDate, toDate
);
return tc.ExecuteReader(sSQL);
}
internal static IDataReader GetEmployeesForPicker(TransactionContext tc, string employeeCode,
string employeeName)
{
string sqlClause = string.Empty;
if (!string.IsNullOrWhiteSpace(employeeCode))
{
sqlClause = SQLParser.TagSQL(sqlClause) +
SQLParser.MakeSQL("em.Code LIKE %s", ("%" + employeeCode + "%"));
}
if (!string.IsNullOrWhiteSpace(employeeName))
{
sqlClause = SQLParser.TagSQL(sqlClause) +
SQLParser.MakeSQL("em.Name LIKE %s", ("%" + employeeName + "%"));
}
return tc.ExecuteReader("SELECT * FROM Employee em %q", sqlClause);
}
internal static DataSet GetByMonthStartMonthEndForContinueFromDiscontinue(TransactionContext tc,
DateTime startmonth, DateTime endmonth, int payrollTypeID)
{
// string sql = SQLParser.MakeSQL(@"select (Select Name From Employee Where Employee.EMPLOYEEID = TargetData.EmployeeId) EmployeeName,
// (Select EmployeeNo From Employee Where Employee.EMPLOYEEID = TargetData.EmployeeId) EmployeeNo,
// TargetData.EffectDate ContinueDate,
// (Select LOGINID From Users Where Users.UserID = TargetData.CreatedBy) UserIdWhoChangedIt,
// TargetData.creationDate ChangedDate
// from
// (select * from employeehistory where (creationDate >= %d And creationDate <= %d) AND (employeehistory.EMPLOYEEID in
// (select Em.EMPLOYEEID from Employee Em Where Em.EMPLOYEEID = employeehistory.EMPLOYEEID And
// Em.STATUS = 1 And Em.MonthStatusUpdate = 1))) TargetData
// ", startmonth, endmonth);
string sql = SQLParser.MakeSQL(
"Select Emp.Employeeid,eh.emplifecycleid,Emp.EMPLOYEENO,Emp.NAME EmployeeName,eh.effectdate ContinueDate,"
+ " US.LoginID UserIdWhoChangedIt,EH.CreationDate ChangedDate"
+ " from EmpLifeCycle EH,EMPLOYEE Emp ,USERS US"
+ " WHERE US.USERID=EH.CreatedBy AND "
+ " eh.effectdate between %d and %d AND eh.iscontinue=1 AND"
+ " Emp.EMPLOYEEID=EH.EMPLOYEEID AND Emp.PayrollTypeID=%n AND eh.EmployeeID IN (SELECT EMPLOYEEID FROM EmpLifeCycle elc WHERE elc.IsDiscontinue=1 AND elc.EffectDate<%d) order by Emp.EMPLOYEENO",
startmonth, endmonth, payrollTypeID, startmonth);
return
tc.ExecuteDataSet(sql);
}
internal static IDataReader GetByDeptShiftGFType(TransactionContext tc, string deptIDs, int shiftID,
string GFType, int payrollTypeID)
{
string subQuery = string.Empty;
if (deptIDs != string.Empty)
{
subQuery = SQLParser.TagSQL(subQuery) + SQLParser.MakeSQL("e.DepartmentID in (%q)", deptIDs);
}
if (shiftID != 0)
{
subQuery = SQLParser.TagSQL(subQuery) + SQLParser.MakeSQL("ews.WorkPlanGroupID =%n", shiftID);
}
if (GFType != string.Empty)
{
subQuery = SQLParser.TagSQL(subQuery) + SQLParser.MakeSQL("b." + "%q =%n", GFType, 1);
}
subQuery = SQLParser.TagSQL(subQuery) +
SQLParser.MakeSQL("e.PayrollTypeID =%n AND e.Status=1", payrollTypeID);
return tc.ExecuteReader(
"SELECT Distinct e.* FROM EMPLOYEE e Inner join EMPLOYEEWORKPLANSETUP ews on E.EmployeeID= ews.Employeeid INNER JOIN DEPARTMENT d ON d.DEPARTMENTID=e.DEPARTMENTID %q Order by e.Employeeno asc",
subQuery);
}
internal static DataSet GetITAndBasic(TransactionContext tc, DateTime startmonth, DateTime endmonth)
{
string sql = SQLParser.MakeSQL(
@"select (Select Employee.Name From Employee Where Employee.EmployeeID = TEmp.empId) Name,
(Select Employee.EMPLOYEENO From Employee Where Employee.EmployeeID = TEmp.empId) EmpNo,
(select DESIGNATION.NAME from DESIGNATION Where Designation.DESIGNATIONID in (select Employee.DESIGNATIONID From Employee Where Employee.EMPLOYEEID = Temp.empId)) Designation,
(select Grades.DESCRIPTION from Grades Where Grades.GRADEID in (select Employee.GRADEID From Employee Where Employee.EMPLOYEEID = Temp.empId)) Grade,
(select Employee.GENDER From Employee Where Employee.EMPLOYEEID = Temp.empId) Gander,
TEmp.Amount From
(select EMPLOYEEID empId, CHANGEDAMOUNT Amount from SALARYMONTHLY ,SALARYMONTHLYDETAIL where SALARYMONTHLY.SALARYMONTHLYID =SALARYMONTHLYDETAIL.SALARYMONTHLYID
and SALARYMONTHLY.salarymonth >= %d And SALARYMONTHLY.salarymonth <= %d and SALARYMONTHLYDETAIL.ITEMCODE =-129
and SALARYMONTHLY.PAYROLLTYPEID =1) Temp", startmonth, endmonth);
return tc.ExecuteDataSet(sql);
}
internal static DataSet GetEmployeeIncrement(TransactionContext tc, string empIDs)
{
string sql = string.Empty;
sql = SQLParser.MakeSQL(@" SELECT Sl,s.EmployeeID,SUM(Amount) Amount,MAX(EffectDate) EffectDate
FROM
(SELECT Row_number() OVER (PARTITION BY gs.EmployeeID order by EffectDate) Sl,gs.EmployeeID, -(gs.BASICSALARY) AS Amount,EffectDate
from GRADESALARYASSIGNMENT AS gs
WHERE gs.EMPLOYEEID IN (%q)
AND ARREARINFO = 1
AND gs.BASICSALARY IS NOT NULL AND gs.BASICSALARY <> 0
UNION
SELECT (Row_number() OVER (PARTITION BY gs.EmployeeID order by EffectDate))-1 Sl,gs.EmployeeID, gs.BASICSALARY AS Amount,EffectDate
from GRADESALARYASSIGNMENT AS gs
WHERE gs.EMPLOYEEID IN (%q)
AND ARREARINFO = 1
AND gs.BASICSALARY IS NOT NULL AND gs.BASICSALARY <> 0
) s
WHERE EffectDate > '31 Dec 2018'
GROUP BY SL,s.EmployeeID
HAVING Sum(Amount) > 0
ORDER BY s.EmployeeID
", empIDs, empIDs);
return tc.ExecuteDataSet(sql);
}
internal static IDataReader GetAllEmps(TransactionContext tc)
{
return tc.ExecuteReader("Select * From Employee");
}
internal static IDataReader GetAllEmps(TransactionContext tc, int payrollTypeid)
{
return tc.ExecuteReader("Select * From Employee where payrolltypeid=%n", payrollTypeid);
}
internal static void UpdateCardInformation(TransactionContext tc, int employeeID, int CardID, DateTime cardDate,
EnumCardStatus cardStatus, bool IsAutoProcess)
{
string sql =
SQLParser.MakeSQL(
"UPDATE Employee SET CardID= %n,CardDate=%D,CardStatus=%n,IsAutoProcess=%b WHERE EMPLOYEEID=%n",
DataReader.GetNullValue(CardID), cardDate, (int)cardStatus, IsAutoProcess, employeeID);
tc.ExecuteNonQuery(sql);
}
internal static IDataReader GetJoiningData(TransactionContext tc, DateTime formDate)
{
string sSQL = SQLParser.MakeSQL(
"Select * From Employee where JOININGDATE between %d and %d order by EMPLOYEEID",
PayrollGlobalFunctions.PayrollFirstDateOfMonth(formDate),
PayrollGlobalFunctions.PayrollLastDateOfMonth(formDate));
return tc.ExecuteReader(sSQL);
}
internal static DataSet GetShortInformation(TransactionContext tc, string empIDs)
{
return tc.ExecuteDataSet(@"select EmployeeID,EmployeeNo,NAME,
(SELECT [NAME] FROM DESIGNATION d WHERE d.DESIGNATIONID=emp.DESIGNATIONID) Designation,
(SELECT DESCRIPTION FROM DEPARTMENT d WHERE d.DEPARTMENTID=emp.DEPARTMENTID) Project ,
(SELECT DESCRIPTION FROM DEPARTMENT d WHERE d.DEPARTMENTID=(SELECT Parentid FROM DEPARTMENT d WHERE d.DEPARTMENTID=emp.DEPARTMENTID)) Department,
(SELECT DESCRIPTION FROM Location d WHERE d.LOCATIONID=emp.LOCATIONID) Location ,
(SELECT DESCRIPTION FROM Grades d WHERE d.gradeid=emp.gradeid) Grade ,
(SELECT DESCRIPTION FROM Category d WHERE d.categoryid=emp.categoryid) Category ,
(SELECT Code FROM Grades d WHERE d.gradeid=emp.gradeid) GradeCode ,
ISNULL((SELECT el.[DESCRIPTION] +ea.INSTITUTENAME FROM EMPACADEMIC ea,EducationLevel el WHERE el.EDUCATIONLEVELID=ea.EDUCATIONLEVELID
AND ea.EMPLOYEEID=emp.EMPLOYEEID AND ea.LASTLEVEL=1),'') LastAcademic ,
CONVERT(NVARCHAR,CAST(emp.JOININGDATE AS DATETIME), 106)JOININGDATE,emp.LastPromotionDate,
CONVERT(NVARCHAR,CAST(emp.BIRTHDATE AS DATETIME), 106)BIRTHDATE,emp.MOBILENO,emp.EMAILADDRESS,
datediff(yy,emp.BIRTHDATE,GETDATE()) AGE,
CONVERT(NVARCHAR,CAST(emp.JOININGDATE AS DATETIME), 106)+' To '+CONVERT(NVARCHAR,CAST(GETDATE() AS DATETIME), 106) ServiceLength
from employee emp
WHERE emp.EMPLOYEENO=%s", empIDs);
}
internal static IDataReader Get4Web(TransactionContext tc, string employeeNo)
{
return tc.ExecuteReader("SELECT * FROM Employee WHERE employeeNo=%s", employeeNo);
}
internal static IDataReader GetDepartmentHead(TransactionContext tc, EnumOGPositionType positionType,
int DepartmentID)
{
return tc.ExecuteReader(
@"select * from OrganEmployee, Employee where OrganEmployee.EmployeeID= Employee.EmployeeID
and NodeID IN (select organogramID from organogram where departmentid=%n and organogramid in (
select nodeid from OrganPosition where positionTypeid=%n ))", DepartmentID, positionType);
}
internal static IDataReader GetNew(TransactionContext tc, DateTime dt, int payrollTypeID)
{
string sql = SQLParser.MakeSQL(
"SELECT * FROM Employee WHERE Status=%n and PAYROLLTYPEID = %n AND joiningdate<=%d order by EmployeeNo",
EnumEmployeeStatus.Live, payrollTypeID, dt);
return tc.ExecuteReader(sql);
}
internal static DataSet GetGradeWiseEmployeeCounts(TransactionContext tc)
{
DataSet designationWiseCountDS = new DataSet();
try
{
designationWiseCountDS =
tc.ExecuteDataSet(@"Select '['+gd.Code+']-'+gd.[Description] GradeOrDesignation,empC.Count
From
(
Select GradeID,COUNT(*) Count
From Employee
Where Status = %n
Group by GradeID
)empC ,Grades gd
where empC.GradeID = gd.GradeID", (int)EnumEmployeeStatus.Live);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return designationWiseCountDS;
}
internal static DataSet GetAllGeneralInfo(TransactionContext tc, string sEmpIDs)
{
try
{
#region Gender Value Construction
StringBuilder sbGender = new StringBuilder();
sbGender.Append("Case e.Gender ");
foreach (EnumGender enmGender in Enum.GetValues(typeof(EnumGender)).Cast<EnumGender>())
{
sbGender.AppendFormat("when {0} Then '{1}' ", (int)enmGender, enmGender.ToString());
}
sbGender.Append("Else '' End ");
#endregion
#region BloodGroup Value Construction
StringBuilder sbBloodGroup = new StringBuilder();
sbBloodGroup.Append("Case e.BloodGroup ");
foreach (EnumBloodGroup enmBG in Enum.GetValues(typeof(EnumBloodGroup)).Cast<EnumBloodGroup>())
{
sbBloodGroup.AppendFormat("when {0} Then '{1}' ", (int)enmBG, enmBG.BloodGroupToFriendlyName());
}
sbBloodGroup.Append("Else '' End ");
#endregion
#region Marital Value Construction
StringBuilder sbMaritalStatus = new StringBuilder();
sbMaritalStatus.Append("Case e.MARITALSTATUSID ");
foreach (EnumMaritalStatus enmMaritalStatus in Enum.GetValues(typeof(EnumMaritalStatus))
.Cast<EnumMaritalStatus>().Where(x => x != EnumMaritalStatus.None))
{
sbMaritalStatus.AppendFormat("when {0} Then '{1}' ", (int)enmMaritalStatus,
enmMaritalStatus.ToString());
}
sbMaritalStatus.Append("Else '' End ");
#endregion
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(
@"Select e.EmployeeNo, ISNULL(e.FIRSTNAME,e.NAME) FIRSTNAME, e.MIDDLENAME,e.LASTNAME,
%q Gender, ISNULL(r.NAME,'') Religion,%q BloodGroup, %q MaritalStatus, PassportNo, TINNO TaxIdeentificationNO,
ISNULL(n.DESCRIPTION,'') Nationality, e.NATIONALID,CONVERT(VARCHAR(11),e.JOININGDATE,106) JOININGDATE,
CONVERT(VARCHAR(11),e.BIRTHDATE,106) BIRTHDATE, ISNULL(c.DESCRIPTION,'') CATEGORY,e.FATHERNAME,
e.MOTHERNAME, ISNULL(ftr.DESCRIPTION,'') FatherOccupation,
ISNULL(mtr.DESCRIPTION,'') MotherOccupation,e.BIRTHPLACE
from Employee e
LEFT JOIN RELIGION r ON e.RELIGIONID = r.RELIGIONID
LEFT JOIN NATIONALITY n ON e.NATIONALITYID = n.NATIONALITYID
LEFT JOIN CATEGORY c ON e.CATEGORYID = c.CATEGORYID
LEFT JOIN OCCUPATION ftr ON e.FATHEROCCUPATIONID = ftr.OCCUPATIONID
LEFT JOIN OCCUPATION mtr ON e.MOTHEROCCUPATIONID = mtr.OCCUPATIONID "
, sbGender.ToString(), sbBloodGroup.ToString(), sbMaritalStatus.ToString());
}
else
{
sql = SQLParser.MakeSQL(
@"Select e.EmployeeNo, ISNULL(e.FIRSTNAME,e.NAME) FIRSTNAME, e.MIDDLENAME,e.LASTNAME,
%q Gender, ISNULL(r.NAME,'') Religion,%q BloodGroup, %q MaritalStatus, PassportNo, TINNO TaxIdeentificationNO,
ISNULL(n.DESCRIPTION,'') Nationality, e.NATIONALID,CONVERT(VARCHAR(11),e.JOININGDATE,106) JOININGDATE,
CONVERT(VARCHAR(11),e.BIRTHDATE,106) BIRTHDATE, ISNULL(c.DESCRIPTION,'') CATEGORY,e.FATHERNAME,
e.MOTHERNAME, ISNULL(ftr.DESCRIPTION,'') FatherOccupation,
ISNULL(mtr.DESCRIPTION,'') MotherOccupation,e.BIRTHPLACE
from Employee e
LEFT JOIN RELIGION r ON e.RELIGIONID = r.RELIGIONID
LEFT JOIN NATIONALITY n ON e.NATIONALITYID = n.NATIONALITYID
LEFT JOIN CATEGORY c ON e.CATEGORYID = c.CATEGORYID
LEFT JOIN OCCUPATION ftr ON e.FATHEROCCUPATIONID = ftr.OCCUPATIONID
LEFT JOIN OCCUPATION mtr ON e.MOTHEROCCUPATIONID = mtr.OCCUPATIONID
where e.Employeeid in(%q) "
, sbGender.ToString(), sbBloodGroup.ToString(), sbMaritalStatus.ToString(), sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetAllContactInfo(TransactionContext tc, string sEmpIDs)
{
try
{
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, ec.PARMANENTADDRESS PermanentAddress, d.NAME PermanentDistrict, t.NAME PermanentThana, ec.PARMANENTTELEPHONE PermanentTelephoneNo,
ec.parmanentmobile PermanentMobileNo, ec.PRESENTADDRESS, pd.NAME PresentDistrict, pt.NAME PresentThana, ec.PRESENTTELEPHONE PresentTelephoneNo,
ec.PresentMobile, ec.PERSONALTELEPHONE PersonalTelephoneNo, ec.mobile PersonalMobileNo, ec.PERSONALEMAIL, ec.OFFICIALEMAIL, ec.FAX,
ec.EMERGENCYCONTACTADDRESS, ec.EMERGENCYCONTACTPERSON, ec.EMERGENCYMOBILE EmergencyMobileNo, pr.DESCRIPTION Relation
FROM EMPCONTACT ec
LEFT JOIN EMPLOYEE e ON ec.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN DISTRICT d ON ec.PARMANENTDISTRICTID = d.DISTRICTID
LEFT JOIN THANA t ON ec.PARMANENTTHANAID = t.THANAID
LEFT JOIN DISTRICT pd ON ec.PRESENTDISTRICTID = pd.DISTRICTID
LEFT JOIN THANA pt ON ec.PRESENTTHANAID = pt.THANAID
LEFT JOIN PERSONRELATION pr ON ec.CPRELATIONID = pr.RELATIONID");
}
else
{
sql = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, ec.PARMANENTADDRESS PermanentAddress, d.NAME PermanentDistrict, t.NAME PermanentThana, ec.PARMANENTTELEPHONE PermanentTelephoneNo,
ec.parmanentmobile PermanentMobileNo, ec.PRESENTADDRESS, pd.NAME PresentDistrict, pt.NAME PresentThana, ec.PRESENTTELEPHONE PresentTelephoneNo,
ec.PresentMobile, ec.PERSONALTELEPHONE PersonalTelephoneNo, ec.mobile PersonalMobileNo, ec.PERSONALEMAIL, ec.OFFICIALEMAIL, ec.FAX,
ec.EMERGENCYCONTACTADDRESS, ec.EMERGENCYCONTACTPERSON, ec.EMERGENCYMOBILE EmergencyMobileNo, pr.DESCRIPTION Relation
FROM EMPCONTACT ec
LEFT JOIN EMPLOYEE e ON ec.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN DISTRICT d ON ec.PARMANENTDISTRICTID = d.DISTRICTID
LEFT JOIN THANA t ON ec.PARMANENTTHANAID = t.THANAID
LEFT JOIN DISTRICT pd ON ec.PRESENTDISTRICTID = pd.DISTRICTID
LEFT JOIN THANA pt ON ec.PRESENTTHANAID = pt.THANAID
LEFT JOIN PERSONRELATION pr ON ec.CPRELATIONID = pr.RELATIONID where e.Employeeid in(%q)",
sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetSpouseInfo(TransactionContext tc, string sEmpIDs)
{
try
{
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(@"Select e.EMPLOYEENO, es.NAME SpouseName, el.DESCRIPTION SpouseEducation,
o.DESCRIPTION SpouseOccupation, CONVERT(VARCHAR(11),es.MARRIAGEDATE,106) MarriageDate
FROM EMPSPOUSE es
LEFT JOIN EMPLOYEE e ON es.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN EDUCATIONLEVEL el ON es.EDUCATIONLEVELID = el.EDUCATIONLEVELID
LEFT JOIN OCCUPATION o ON es.OCCUPATIONID = o.OCCUPATIONID");
}
else
{
sql = SQLParser.MakeSQL(@"Select e.EMPLOYEENO, es.NAME SpouseName, el.DESCRIPTION SpouseEducation,
o.DESCRIPTION SpouseOccupation, CONVERT(VARCHAR(11),es.MARRIAGEDATE,106) MarriageDate
FROM EMPSPOUSE es
LEFT JOIN EMPLOYEE e ON es.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN EDUCATIONLEVEL el ON es.EDUCATIONLEVELID = el.EDUCATIONLEVELID
LEFT JOIN OCCUPATION o ON es.OCCUPATIONID = o.OCCUPATIONID where e.Employeeid in(%q)",
sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetChildInfo(TransactionContext tc, string sEmpIDs)
{
try
{
#region Gender Value Construction
StringBuilder sbGender = new StringBuilder();
sbGender.Append("Case ec.Gender ");
foreach (EnumGender enmGender in Enum.GetValues(typeof(EnumGender)).Cast<EnumGender>())
{
sbGender.AppendFormat("when {0} Then '{1}' ", (int)enmGender, enmGender.ToString());
}
sbGender.Append("Else '' End ");
#endregion
#region Marital Value Construction
StringBuilder sbMaritalStatus = new StringBuilder();
sbMaritalStatus.Append("Case ec.MARITALSTATUS ");
foreach (EnumMaritalStatus enmMaritalStatus in Enum.GetValues(typeof(EnumMaritalStatus))
.Cast<EnumMaritalStatus>().Where(x => x != EnumMaritalStatus.None))
{
sbMaritalStatus.AppendFormat("when {0} Then '{1}' ", (int)enmMaritalStatus,
enmMaritalStatus.ToString());
}
sbMaritalStatus.Append("Else '' End ");
#endregion
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, ec.NAME ChildName, %q ChildGender, CONVERT(VARCHAR(11),e.BIRTHDATE,106) ChildBirthDate,
o.DESCRIPTION ChildOccupation, %q ChildMaritalStatus
FROM EMPCHILDREN ec
LEFT JOIN EMPLOYEE e ON ec.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN OCCUPATION o ON ec.OCCUPATIONID = o.OCCUPATIONID", sbGender.ToString(),
sbMaritalStatus.ToString());
}
else
{
sql = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, ec.NAME ChildName, %q ChildGender, CONVERT(VARCHAR(11),e.BIRTHDATE,106) ChildBirthDate,
o.DESCRIPTION ChildOccupation, %q ChildMaritalStatus
FROM EMPCHILDREN ec
LEFT JOIN EMPLOYEE e ON ec.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN OCCUPATION o ON ec.OCCUPATIONID = o.OCCUPATIONID where e.Employeeid in(%q)",
sbGender.ToString(), sbMaritalStatus.ToString(), sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetEmpExperienceInfo(TransactionContext tc, string sEmpIDs)
{
try
{
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, eex.EMPLOYER Employer, eex.CONTACTPERSON, eex.ADDRESS, eex.TELEPHONE TelephoneNo, eex.EMPLOYERACTIVITY BussinessType,
eex.DESIGNATION, eex.JOBDESCRIPTION RoleDescription,
CONVERT(VARCHAR(11),eex.FROMDATE,106) EmployesFromDate,
CONVERT(VARCHAR(11),eex.TODATE,106) EmployesToDate
FROM EMPEXPERIENCE eex
LEFT JOIN EMPLOYEE e ON eex.EMPLOYEEID = e.EMPLOYEEID");
}
else
{
sql = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, eex.EMPLOYER Employer, eex.CONTACTPERSON, eex.ADDRESS, eex.TELEPHONE TelephoneNo, eex.EMPLOYERACTIVITY BussinessType,
eex.DESIGNATION, eex.JOBDESCRIPTION RoleDescription,
CONVERT(VARCHAR(11),eex.FROMDATE,106) EmployesFromDate,
CONVERT(VARCHAR(11),eex.TODATE,106) EmployesToDate
FROM EMPEXPERIENCE eex
LEFT JOIN EMPLOYEE e ON eex.EMPLOYEEID = e.EMPLOYEEID where e.Employeeid in(%q)", sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetEmpTrainingInfo(TransactionContext tc, string sEmpIDs)
{
try
{
#region EnumTrainingCompletedFrom Construction
StringBuilder sbSponsorType = new StringBuilder();
sbSponsorType.Append("Case et.SPONSOREDTYPE ");
foreach (EnumTrainingCompletedFrom enmGender in Enum.GetValues(typeof(EnumTrainingCompletedFrom))
.Cast<EnumTrainingCompletedFrom>())
{
sbSponsorType.AppendFormat("when {0} Then '{1}' ", (int)enmGender, enmGender.ToString());
}
sbSponsorType.Append("Else '' End ");
#endregion
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO,
t.NAME TrainingType,
et.NAME TrainingTitle,
nt.NAME NatureOfTraining,
et.DESCRIPTION,
i.NAME Institution,
et.TRAININGPLACE TrainingPlace,
c.NAME Country,
et.ACHIEVEMENT Achievements,
%q SponsorType,
et.FEES TrainingFees, et.OTHERCOST OtherCost,
CONVERT(VARCHAR(11),et.FROMDATE,106) FromDate,
CONVERT(VARCHAR(11),et.TODATE,106) ToDate
FROM EMPTRAINING et
LEFT JOIN EMPLOYEE e ON et.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN TRAINING t ON et.TRAININGTYPEID = t.TRAININGTYPEID
LEFT JOIN NATUREOFTRAINING nt ON et.NATUREOFTRAININGID = nt.NATUREOFTRAININGID
LEFT JOIN INSTITUTION i ON et.INSTITUTIONID = i.INSTITUTIONID
LEFT JOIN COUNTRY c ON et.COUNTRYID = c.COUNTRYID", sbSponsorType.ToString());
}
else
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO,
t.NAME TrainingType,
et.NAME TrainingTitle,
nt.NAME NatureOfTraining,
et.DESCRIPTION,
i.NAME Institution,
et.TRAININGPLACE TrainingPlace,
c.NAME Country,
et.ACHIEVEMENT Achievements,
%q SponsorType,
et.FEES TrainingFees, et.OTHERCOST OtherCost,
CONVERT(VARCHAR(11),et.FROMDATE,106) FromDate,
CONVERT(VARCHAR(11),et.TODATE,106) ToDate
FROM EMPTRAINING et
LEFT JOIN EMPLOYEE e ON et.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN TRAINING t ON et.TRAININGTYPEID = t.TRAININGTYPEID
LEFT JOIN NATUREOFTRAINING nt ON et.NATUREOFTRAININGID = nt.NATUREOFTRAININGID
LEFT JOIN INSTITUTION i ON et.INSTITUTIONID = i.INSTITUTIONID
LEFT JOIN COUNTRY c ON et.COUNTRYID = c.COUNTRYID where e.Employeeid in(%q)",
sbSponsorType.ToString(), sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetEmpAcademicInfo(TransactionContext tc, string sEmpIDs)
{
try
{
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, et.DESCRIPTION EducationType, el.DESCRIPTION DegreeTitle,
d.DESCRIPTION Discipline_Department, i.NAME Institution, ea.INSTITUTENAME InstitutionName,
r.DESCRIPTION Result, ea.PASSINGYEAR, ea.GPAORMARKS,
CASE ea.LASTLEVEL
WHEN 1 THEN 'Yes'
ELSE 'No' END HighestEducation
FROM EMPACADEMIC ea
LEFT JOIN EMPLOYEE e ON ea.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN EDUCATIONTYPE et ON ea.EDUCATIONTYPEID = et.EDUCATIONTYPEID
LEFT JOIN EDUCATIONLEVEL el ON ea.EDUCATIONLEVELID = el.EDUCATIONLEVELID
LEFT JOIN DISCIPLINE d ON ea.DISCIPLINEID = d.DISCIPLINEID
LEFT JOIN INSTITUTION i ON ea.INSTITUTIONID = i.INSTITUTIONID
LEFT JOIN RESULTTYPE r ON ea.RESULTTYPEID = r.RESULTTYPEID");
}
else
{
sql = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, et.DESCRIPTION EducationType, el.DESCRIPTION DegreeTitle,
d.DESCRIPTION Discipline_Department, i.NAME Institution, ea.INSTITUTENAME InstitutionName,
r.DESCRIPTION Result, ea.PASSINGYEAR, ea.GPAORMARKS,
CASE ea.LASTLEVEL
WHEN 1 THEN 'Yes'
ELSE 'No' END HighestEducation
FROM EMPACADEMIC ea
LEFT JOIN EMPLOYEE e ON ea.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN EDUCATIONTYPE et ON ea.EDUCATIONTYPEID = et.EDUCATIONTYPEID
LEFT JOIN EDUCATIONLEVEL el ON ea.EDUCATIONLEVELID = el.EDUCATIONLEVELID
LEFT JOIN DISCIPLINE d ON ea.DISCIPLINEID = d.DISCIPLINEID
LEFT JOIN INSTITUTION i ON ea.INSTITUTIONID = i.INSTITUTIONID
LEFT JOIN RESULTTYPE r ON ea.RESULTTYPEID = r.RESULTTYPEID where e.Employeeid in(%q)",
sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetEmpReferenceInfo(TransactionContext tc, string sEmpIDs)
{
try
{
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO,
er.NAME RefereeName,
pr.DESCRIPTION Relation,
o.DESCRIPTION RefereeOccupation,
er.ADDRESS Address, er.EMAILADDRESS EmailAddress, er.TELEPHONE TelephoneNo, er.REFERENCEMOBILE MobileNo
FROM EMPREFERENCE er
LEFT JOIN EMPLOYEE e ON er.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN PERSONRELATION pr ON er.RELATIONID = pr.RELATIONID
LEFT JOIN OCCUPATION o ON er.OCCUPATIONID = o.OCCUPATIONID");
}
else
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO,
er.NAME RefereeName,
pr.DESCRIPTION Relation,
o.DESCRIPTION RefereeOccupation,
er.ADDRESS Address, er.EMAILADDRESS EmailAddress, er.TELEPHONE TelephoneNo, er.REFERENCEMOBILE MobileNo
FROM EMPREFERENCE er
LEFT JOIN EMPLOYEE e ON er.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN PERSONRELATION pr ON er.RELATIONID = pr.RELATIONID
LEFT JOIN OCCUPATION o ON er.OCCUPATIONID = o.OCCUPATIONID where e.Employeeid in(%q)",
sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetEmpPublicationInfo(TransactionContext tc, string sEmpIDs)
{
try
{
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO EmployeeNo, ep.TITLE PublicationTitle,
ep.PUBLICATIONTYPE PublicationType, ep.PUBLISHERSNAME PublicationName,
ep.DESCRIPTION Description, ep.REMARKS Remarks,
CONVERT(VARCHAR(11),ep.PUBLICATIONDATE,106) DateOfPublication
FROM EMPPUBLICATION ep
LEFT JOIN EMPLOYEE e ON ep.EMPLOYEEID = e.EMPLOYEEID");
}
else
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO EmployeeNo, ep.TITLE PublicationTitle,
ep.PUBLICATIONTYPE PublicationType, ep.PUBLISHERSNAME PublicationName,
ep.DESCRIPTION Description, ep.REMARKS Remarks,
CONVERT(VARCHAR(11),ep.PUBLICATIONDATE,106) DateOfPublication
FROM EMPPUBLICATION ep
LEFT JOIN EMPLOYEE e ON ep.EMPLOYEEID = e.EMPLOYEEID where e.Employeeid in(%q)", sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataTable GetBasicSalary(TransactionContext tc)
{
try
{
string sql = SQLParser.MakeSQL(@"SELECT EMPLOYEEID, BASICSALARY from employee where status =1");
DataTable ds = tc.ExecuteDataTable(sql);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataTable GetBasicSalaryWithDiscontinue(TransactionContext tc, DateTime salaryMonth)
{
try
{
string sql = SQLParser.MakeSQL(@"SELECT EMPLOYEEID, BASICSALARY, ENDOFCONTRACTDATE from employee where status =1
Union
select EMPLOYEEID, BASICSALARY, ENDOFCONTRACTDATE from employee where status = 2 and ENDOFCONTRACTDATE between %d and %d"
, GlobalExtensions.FirstDateOfMonth(salaryMonth), GlobalExtensions.LastDateOfMonth(salaryMonth));
DataTable ds = tc.ExecuteDataTable(sql);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataTable GetBasicSalary(TransactionContext tc, int id)
{
try
{
string sql = SQLParser.MakeSQL(@"SELECT BASICSALARY from employee where EmployeeID = %n", id);
DataTable ds = tc.ExecuteDataTable(sql);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetEmpNomineeInfo(TransactionContext tc, string sEmpIDs)
{
try
{
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
string sql = "";
if (sEmpIDs == "")
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO EmployeeNo,
np.DESCRIPTION NominationPurpose,
CONVERT(VARCHAR(11),en.NOMINATIONDATE,106) DateOfNomination, en.NAME NomineeName, en.PERCENTAGE,
CONVERT(VARCHAR(11),en.BIRTHDATE,106) NomineesDateofBirth,
o.DESCRIPTION NomineesOccupation, en.ADDRESS Adderess, en.TELEPHONE TelephoneNo, pr.DESCRIPTION Relation, en.EMAILADDRESS EmailAddress
FROM EMPNOMINEE en
LEFT JOIN EMPLOYEE e ON en.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN NOMINATIONPURPOSE np ON en.NOMINATIONPURPOSEID = np.NOMINATIONPURPOSEID
LEFT JOIN OCCUPATION o ON en.OCCUPATIONID = o.OCCUPATIONID
LEFT JOIN PERSONRELATION pr ON en.RELATIONID = pr.RELATIONID");
}
else
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO EmployeeNo,
np.DESCRIPTION NominationPurpose,
CONVERT(VARCHAR(11),en.NOMINATIONDATE,106) DateOfNomination, en.NAME NomineeName, en.PERCENTAGE,
CONVERT(VARCHAR(11),en.BIRTHDATE,106) NomineesDateofBirth,
o.DESCRIPTION NomineesOccupation, en.ADDRESS Adderess, en.TELEPHONE TelephoneNo, pr.DESCRIPTION Relation, en.EMAILADDRESS EmailAddress
FROM EMPNOMINEE en
LEFT JOIN EMPLOYEE e ON en.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN NOMINATIONPURPOSE np ON en.NOMINATIONPURPOSEID = np.NOMINATIONPURPOSEID
LEFT JOIN OCCUPATION o ON en.OCCUPATIONID = o.OCCUPATIONID
LEFT JOIN PERSONRELATION pr ON en.RELATIONID = pr.RELATIONID where e.Employeeid in(%q)",
sEmpIDs);
}
DataSet ds = tc.ExecuteDataSet(sql);
if (sTableName != "")
tc.ExecuteNonQuery("Drop Table %q", sTableName);
return ds;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
internal static DataSet GetEmpFromView(TransactionContext tc, string empNo)
{
string sql = SQLParser.MakeSQL("SELECT * FROM VW_EMPLOYEEBASIC WHERE EMPLOYEENO = %s", empNo);
return tc.ExecuteDataSet(sql);
}
internal static DataSet GetDFSL(TransactionContext tc)
{
DataSet designationWiseCountDS = new DataSet();
try
{
tc.ExecuteNonQuery(@"DECLARE @CurrentLevel INT
SET @CurrentLevel = 0
DELETE FROM Department2
INSERT INTO Department2
(ID, Parent_ID, Level, Hierarchy)
SELECT DepartmentID,
ParentID,
0 AS Level,
[DESCRIPTION] AS Hierarchy
FROM Department
WHERE ParentID IS NULL
WHILE @@ROWCOUNT > 0
BEGIN
SET @CurrentLevel = @CurrentLevel + 1 --Started at 0
INSERT INTO Department2
(ID, Parent_ID, Level, Hierarchy)
SELECT p.DEPARTMENTID,
p.PARENTID,
@CurrentLevel AS Level,
h.Hierarchy + ',' + p.[DESCRIPTION]
FROM Department p
INNER JOIN Department2 h
ON p.PARENTID = h.ID
AND h.Level = @CurrentLevel - 1
END");
designationWiseCountDS =
tc.ExecuteDataSet(@"SELECT * FROM Department2");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return designationWiseCountDS;
}
internal static IDataReader GetbyDepartment(TransactionContext tc, int deptId)
{
string sql = SQLParser.MakeSQL(
"SELECT * FROM Employee WHERE Status=%n and DepartmentID = %n order by EmployeeNo",
EnumEmployeeStatus.Live, deptId);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetByPrimaryLMID(TransactionContext tc, int employeeID)
{
string strSQLQuery = SQLParser.MakeSQL(
@"SELECT * FROM Employee WHERE (LINEMANAGERID=%n OR SecondLineManagerID=%n) and Status = %n",
employeeID, employeeID, (int)EnumEmployeeStatus.Live);
return tc.ExecuteReader(strSQLQuery);
}
internal static DataSet GetEmpBasicInfoForPSlip(TransactionContext tc, string empIDs, DateTime dMonth)
{
string sql = SQLParser.MakeSQL(
@"SELECT Distinct E.NAME Name,E.EMPLOYEENO employeeNo,G.CODE Grade, DG.Name Designation,L.Description LName,
D.DESCRIPTION Department,B.NAME BName, SM.thismonthGross Gross, SM.THISMONTHBASIC ActualBasic,
CASE WHEN E.PAYMENTMODE = 1 THEN 'Cash Payment' WHEN E.PAYMENTMODE = 2 THEN 'Bank Transfer'
WHEN E.PAYMENTMODE = 3 THEN 'Provision' ELSE '' END AS PaymentMode,
SM.ACCOUNTNO,SM.SalaryMonth, cat.DESCRIPTION Category,E.JOININGDATE,E.TINNo,
E.DEPARTMENTID FROM SALARYMONTHLY SM
Inner Join EMPLOYEE E on SM.EMPLOYEEID=E.EMPLOYEEID
Inner Join Grades G on Sm.GRADEID=G.GRADEID
Inner Join DEPARTMENT D on SM.DEPARTMENTID=D.DEPARTMENTID
Inner Join DESIGNATION DG on SM.DESIGNATIONID =DG.DESIGNATIONID
Inner Join LOCATION L on SM.LOCATIONID=L.LOCATIONID
Left Outer Join BRANCHES Br on SM.BRANCHID=Br.BRANCHID
Left Outer Join BANKS B on Br.BANKID=B.BANKID
Inner Join CATEGORY cat on E.CATEGORYID=cat.CATEGORYID
Inner Join SALARYMONTHLYDETAIL SMD on SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND SM.SalaryMonth=%d AND SMD.ITEMGROUP IN(1,2,8)
AND SM.EmployeeID IN(%q) ORDER BY E.EmployeeNo", dMonth, empIDs);
return tc.ExecuteDataSet(sql);
}
internal static DataSet GetEmpDashBoardInfo(TransactionContext tc, int empID)
{
DataSet rootDataset = new DataSet();
DataSet tempdataset = new DataSet();
try
{
string query1 = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, e.joiningDate, e.NAME, dept.DESCRIPTION DEPARTMENT,
desig.NAME DESIGNATION, g.DESCRIPTION GRADE, e.PHOTOPATH Photo
FROM EMPLOYEE e
Left JOIN DEPARTMENT dept ON e.DEPARTMENTID=dept.DEPARTMENTID
Left JOIN DESIGNATION desig ON e.DESIGNATIONID = desig.DESIGNATIONID
Left JOIN GRADES g ON g.GRADEID=e.GRADEID
WHERE e.employeeid=%n", empID);
tempdataset = tc.ExecuteDataSet(query1);
tempdataset.Tables[0].TableName = "EmployeeInfo";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
string query2 = SQLParser.MakeSQL(
@"SELECT a.ATTNNATIONALHOLIDAYID, a.DESCRIPTION HolidayType, a.FROMDATE, a.TODATE
FROM AttnNationalHoliday a WHERE a.FromDate between %d and %d Order By a.FromDate asc",
DateTime.Today.Date, PayrollGlobalFunctions.LastDateOfYear(DateTime.Today));
tempdataset = tc.ExecuteDataSet(query2);
tempdataset.Tables[0].TableName = "HolidayInfo";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
DateTime fromDate = DateTime.Today.AddMonths(-1);
DateTime toDate = DateTime.Today;
string query3 = SQLParser.MakeSQL(
@"SELECT dap.DAILYATTNPROCESSID, dap.ATTNDATE, dap.INTIME, dap.OUTTIME
FROM DAILYATTNPROCESS dap WHERE ATTNDATE BETWEEN %d and %d AND dap.EMPLOYEEID=%n Order By dap.ATTNDATE DESC",
fromDate, toDate, empID);
tempdataset = tc.ExecuteDataSet(query3);
tempdataset.Tables[0].TableName = "AttendanceInfo";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
string query4 = SQLParser.MakeSQL(@" SELECT NULL as SentTime, E.Name, E.NAME +'['+ E.EMPLOYEENO +']
has delegated some responsibility to you.' Description, d.DELEGATERESPONSIBILITYID
TranID, '/work-flow/pending-delegation/'+ Cast(d.DELEGATERESPONSIBILITYID as VarChar(500)) Link FROM DELEGATERESPONSIBILITY d
LEFT JOIN EMPLOYEE e ON e.EMPLOYEEID = d.FROMEMPLOYEEID
WHERE d.TOEMPLOYEEID = %n AND d.ISACCEPTED=0 AND d.Status=1
union
SELECT WT.SENTTIME, emp.Name, ObjectDescription Description,WT.WFMovementTranId TranId,'/work-flow/pending-job/'+
Cast(WT.WFMovementTranId as VarChar(500)) Link FROM WFMovementTran WT, WFMovementNext WN, Employee emp
WHERE WN.Status=1 AND WN.EmployeeId=%n AND Emp.EMPLOYEEID=WT.FROMEMPLOYEEID
AND WT.WFMovementTranID = WN.WFMovementTranID
Union
SELECT NULL as SentTime, E.Name NAME, E.NAME +'['+
E.EMPLOYEENO+'] has reverted your objective' Description, OBJECTIVESET.employeeid TranID,
'/work-flow/submitted-objective' Link FROM OBJECTIVESET
LEFT JOIN EMPLOYEE e ON e.EMPLOYEEID = OBJECTIVESET.LMID
WHERE OBJECTIVESET.employeeid = %n and (OBLMComplete=3 AND OBEmpComplete=0)
Union
SELECT NULL as SentTime, E.Name NAME, E.NAME +'['+
E.EMPLOYEENO +'] has submitted his objective' Description,
E.EmployeeID TranID,'/work-flow/team-submitted-objective' Link FROM OBJECTIVESET OS,
Employee E WHERE OS.EMPLOYEEID IN (
Select oe.EmployeeID from OrganEmployee oe Where oe.NodeID IN(
Select OrganogramID From Organogram Where ParentID=(
Select NodeID from OrganEmployee Where EmployeeID=%n)))
AND OS.EmployeeID=E.EmployeeID and (OS.OBLMComplete=2 AND OS.OBEmpComplete=1)
Union
SELECT NULL as SentTime, E.Name NAME,'Your line manager has assessed your mid-year appraisal.
Please confirm if mid-year discussion has taken place.' Description, OBJECTIVESET.employeeid TranID,
'/pms/mid-year-review' Link FROM OBJECTIVESET
LEFT JOIN EMPLOYEE e ON e.EMPLOYEEID = OBJECTIVESET.LMID
WHERE OBJECTIVESET.employeeid = %n and (MYLMCOMPLETE=5 AND MYEMPCOMPLETE=5 AND (MYEMPAGREED=0 OR MYEMPAGREED IS null))
Union
SELECT NULL as SentTime, E.Name NAME, 'Your line manager has reverted your mid year assessment'
Description, OBJECTIVESET.employeeid TranID,
'/pms/mid-year-review' Link FROM OBJECTIVESET
LEFT JOIN EMPLOYEE e ON e.EMPLOYEEID = OBJECTIVESET.LMID
WHERE OBJECTIVESET.employeeid = %n and (MYLMCOMPLETE=3 AND MYEMPCOMPLETE=0)
Union
SELECT NULL as SentTime, E.Name NAME, 'Your line manager has drafted your mid year assessment' Description,
OBJECTIVESET.employeeid TranID,
'/pms/mid-year-review' Link FROM OBJECTIVESET
LEFT JOIN EMPLOYEE e ON e.EMPLOYEEID = OBJECTIVESET.LMID
WHERE OBJECTIVESET.employeeid = %n and (MYLMCOMPLETE=6 AND MYEMPCOMPLETE=5)
Union
SELECT SentTime,Name, Description, TranID,Link FROM (
SELECT NULL as SentTime,'' Name, 'You have ' + cast ( count(*) as VarChar) + ' mid year approval pending' Description,
0 TranID,'/pms/team-mid-year-review' Link ,count(*) count
,(select datepart (dw,getdate()) AS Day) AS c
FROM OBJECTIVESET OS,
Employee E WHERE OS.EMPLOYEEID IN (
Select oe.EmployeeID from OrganEmployee oe Where oe.NodeID IN(
Select OrganogramID From Organogram Where ParentID=(
Select NodeID from OrganEmployee Where EmployeeID=%n)))
AND OS.EmployeeID=E.EmployeeID and (OS.MYEMPCOMPLETE=5 AND OS.MYLMCOMPLETE=0) ) T WHERE count>0
", empID, empID, empID, empID, empID, empID, empID, empID);
tempdataset = tc.ExecuteDataSet(query4);
tempdataset.Tables[0].TableName = "PendingJob";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
string query5 = SQLParser.MakeSQL(
@"SELECT w.DESCRIPTION NotificationType, w.SENTTIME NotificationDate FROM WFMOVEMENTTASK w
WHERE w.EMPLOYEEID=%n AND w.Status=%b AND w.TasksType=%n", empID,
false, EnumWFNotifyType.SysNotification);
tempdataset = tc.ExecuteDataSet(query5);
tempdataset.Tables[0].TableName = "PendingNotifications";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static bool IsCCApplicable(TransactionContext tc, int empid, string companyCode, string salesEmail)
{
object obj = null;
string sql = SQLParser.MakeSQL(@"
WITH cte AS (
SELECT EMPLOYEEID
FROM EMPLOYEE
WHERE LINEMANAGERID IN (SELECT EMPLOYEEID FROM EMPLOYEE WHERE EMAILADDRESS = %s)
UNION ALL
SELECT e.EMPLOYEEID
FROM EMPLOYEE e
INNER JOIN cte c
ON e.LINEMANAGERID = c.EMPLOYEEID
),
cte2 AS (
SELECT CAST(EMPLOYEEID AS VARCHAR(10)) AS STR FROM cte WHERE EMPLOYEEID = %n
UNION ALL
SELECT CompanyCode AS STR FROM SYSTEMINFORMATION WHERE CompanyCode = %s
)
SELECT COUNT(*) FROM cte2",
salesEmail, empid, companyCode);
obj = tc.ExecuteScalar(sql);
return (obj != null && Convert.ToInt32(obj) > 1);
}
internal static DataSet GetBasic(TransactionContext tc, string sEmpIDs)
{
string sql = SQLParser.MakeSQL(@"SELECT e.employeeid, e.Name,a.EmployeeID approverID, a.Name approverName
FROM EMPLOYEE e
LEFT JOIN OrganEmployee oe ON oe.EmployeeID = e.EMPLOYEEID
LEFT JOIN Organogram o ON oe.NodeID = o.OrganogramID
LEFT JOIN OrganEmployee oep ON oep.NodeID = o.ParentID
LEFT JOIN EMPLOYEE a ON a.EMPLOYEEID = oep.EmployeeID
WHERE e.EMPLOYEEID IN (%q)", sEmpIDs);
return tc.ExecuteDataSet(sql);
}
public static void UpdateLM(TransactionContext tc, int employeeID, int linemanagerId, int? SecondLineManagerId)
{
tc.ExecuteNonQuery("UPDATE Employee SET linemanagerId= %n , SecondLineManagerID=%n WHERE EMPLOYEEID=%n",
DataReader.GetNullValue(linemanagerId, 0), SecondLineManagerId, employeeID);
}
internal static DataSet GetEmployeeGenderRatio(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT CASE WHEN gender=1 THEN 'Male' WHEN gender=2 THEN 'Female' ELSE" +
" 'Other' END Gender, count(1) Count FROM EMPLOYEE GROUP BY GENDER");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeSummaryData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("select * from VW_EmployeeSummaryData;");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeSummaryDataByDepartment(TransactionContext tc, Employee emp)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("select * from VW_EmployeeSummaryData where department = (select description from department where departmentid = %n)", emp.DepartmentID);
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetEmployeeAttritionData(TransactionContext tc)
{
DataSet ds = new DataSet();
try
{
string sql = SQLParser.MakeSQL("SELECT employeeId, joiningDate, endOfContractDate FROM EMPLOYEE;");
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetDashBoardGraphData(TransactionContext tc)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
DataTable dt4 = new DataTable();
try
{
string sql = SQLParser.MakeSQL("select count(*) HeadCount from employee;");
dt = tc.ExecuteDataTable(sql);
string sql2 = SQLParser.MakeSQL("select religion.NAME Religion, count(religion.NAME) Count" +
" from employee emp LEFT JOIN RELIGION religion " +
"ON emp.RELIGIONID = RELIGION.RELIGIONID group by religion.NAME");
dt2 = tc.ExecuteDataTable(sql2);
string sql3 = SQLParser.MakeSQL(@"select (
CASE WHEN BLOODGROUP = 1 THEN 'A+'
WHEN BLOODGROUP = 2 THEN 'A-'
WHEN BLOODGROUP = 3 THEN 'B+'
WHEN BLOODGROUP = 4 THEN 'B-'
WHEN BLOODGROUP = 5 THEN 'O+'
WHEN BLOODGROUP = 6 THEN 'O-'
WHEN BLOODGROUP = 7 THEN 'AB+'
WHEN BLOODGROUP = 8 THEN 'AB-'
ELSE ''
END
) 'BloodGroup', count(BLOODGROUP) Count from employee group by BLOODGROUP");
dt3 = tc.ExecuteDataTable(sql3);
string sql4 = SQLParser.MakeSQL(@"select Y.RangeName, count(1) CountAge
from
(
select
(
case
when X.age >= 20 and X.age <= 30 then '20 - 30'
when X.age >= 31 and X.age <= 40 then '31 - 40'
when X.age >= 41 and X.age <= 50 then '41 - 50'
when X.age >= 51 then '50+'
else 'Others'
end
) RangeName
from
(select DATEDIFF(MONTH, e.birthdate, GETDATE())/12 age from employee e) X
) Y
group by Y.RangeName");
dt4 = tc.ExecuteDataTable(sql4);
ds.Tables.Add(dt);
ds.Tables.Add(dt2);
ds.Tables.Add(dt3);
ds.Tables.Add(dt4);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataTable GetOtEligibleEmployees(TransactionContext tc, int payrolltypeid)
{
return tc.ExecuteDataTable(
"SELECT e.employeeId, e.employeeNo, e.name FROM employee e WHERE e.status= %n and e.ISELIGIBLEOT = 1 and e.payrolltypeid=%n"
, EnumEmployeeStatus.Live, payrolltypeid);
}
internal static DataSet GetEstimatedConfirmationReport(TransactionContext tc)
{
return tc.ExecuteDataSet("SELECT EmployeeId, EmployeeNo, Name, JoiningDate, CAST (DateDIFF(Month, JoiningDate, GetDate()) AS VARCHAR) + ' Months' ServiceLength, DateAdd(month, 6, joiningDate) EstimatedConfirmationDate FROM employee WHERE DATEOFCONFIRMATION IS NULL");
}
internal static DataSet GetEstimatedRetirementReport(TransactionContext tc)
{
return tc.ExecuteDataSet("SELECT EmployeeId, EmployeeNo, Name, JoiningDate, CAST (DateDIFF(Month, JoiningDate, GetDate())/12 AS VARCHAR) + ' Years' ServiceLength, DateAdd(year, 59, BIRTHDATE) EstimatedRetirementDate FROM employee WHERE DATEOFCONFIRMATION IS NOT NULL");
}
internal static DataSet GetSelfServiceBasicData(TransactionContext tc, int employeeId)
{
string sql = SQLParser.MakeSQL(@"SELECT TOP 1 e.EmployeeId, e.EmployeeNo, e.FirstName, e.LastName, e.name AS 'FullName',
e.ProfileComplitionPercent,
e.ExtraField1 AS 'EmployeeDName', e.JoiningDate, e.dateofconfirmation ConfirmationDate,
e.BirthDate, e.InsuranceId, e.InclusionDate,
(SELECT name FROM DESIGNATION WHERE DESIGNATIONID = e.designationId) AS 'Designation',
(SELECT DESCRIPTION FROM Department WHERE departmentId = e.departmentId) AS 'Department',
(SELECT DESCRIPTION FROM Location WHERE locationId = e.locationId) AS 'Location',
STUFF((SELECT ',' + DESCRIPTION FROM Crg WHERE crgId IN (SELECT costcenterId from EMPCOSTCENTER where employeeId = e.EMPLOYEEID) FOR XML PATH('')), 1, 1, '') as CostCenter,
(SELECT DESCRIPTION FROM GRADES WHERE GRADEID = e.gradeId) AS 'Grade',e.GradeId,e.BasicSalary,e.GrossSalary,
(
CASE WHEN e.MARITALSTATUSID = 1 THEN 'Married'
WHEN e.MARITALSTATUSID = 2 THEN 'Unmarried'
WHEN e.MARITALSTATUSID = 3 THEN 'Divorced'
WHEN e.MARITALSTATUSID = 4 THEN 'Widow'
ELSE ''
END
) 'MaritalStatus',
(
CASE WHEN e.gender = 1 THEN 'Male'
WHEN e.gender = 2 THEN 'Female'
WHEN e.gender = 3 THEN 'Other'
ELSE ''
END
) 'Gender',
(
CASE WHEN e.BLOODGROUP = 1 THEN 'A+'
WHEN e.BLOODGROUP = 2 THEN 'A-'
WHEN e.BLOODGROUP = 3 THEN 'B+'
WHEN e.BLOODGROUP = 4 THEN 'B-'
WHEN e.BLOODGROUP = 5 THEN 'O+'
WHEN e.BLOODGROUP = 6 THEN 'O-'
WHEN e.BLOODGROUP = 7 THEN 'AB+'
WHEN e.BLOODGROUP = 8 THEN 'AB-'
ELSE ''
END
) 'BloodGroup',
(
CASE WHEN e.STATUS = 1 THEN 'Live'
WHEN e.STATUS = 2 THEN 'Discontinued'
WHEN e.STATUS = 3 THEN 'Secondy'
WHEN e.STATUS = 4 THEN 'Suspend'
WHEN e.STATUS = 5 THEN 'Withheld'
WHEN e.STATUS = 6 THEN 'Waiting for join'
WHEN e.STATUS = 7 THEN 'Did not join'
WHEN e.STATUS = 8 THEN 'IA'
WHEN e.STATUS = 8 THEN 'Regardless'
ELSE ''
END
) 'Status',
(SELECT description FROM CATEGORY c WHERE c.CATEGORYID = e.categoryid ) AS 'Category',
(SELECT employeeNo+'-'+name FROM EMPLOYEE WHERE employeeid = e.lineManagerId) AS 'LineManager',
e.emailAddress, e.mobileNo,
(SELECT name FROM RELIGION WHERE RELIGIONID = e.religionId) AS 'Religion',
(SELECT description FROM NATIONALITY WHERE NATIONALITYID = e.nationalityId) AS Nationality,
e.geid AS 'EmpCode', e.NATIONALID AS 'NID', e.TINNO AS 'TIN', e.DRIVINGLICENCENO AS 'DrivingLicenceNo', e.BirthPlace AS 'BirthPlace',
e.passportNo AS 'PassportNo', e.PASSPORTISSUEDATE AS 'PassportIssueDate', e.PASSPORTEXPDATE AS 'PassportExpireDate',
(
CASE WHEN e.extraField2 = 1 THEN 'Dhaka'
WHEN e.extraField2 = 2 THEN 'Other'
ELSE ''
END
) 'BaseStation',
e.insuranceId AS 'InsuranceId', e.fatherName AS 'FatherName',
(SELECT description FROM OCCUPATION WHERE OCCUPATIONID = e.fatherOccupationId) AS 'FatherOccupation',
e.motherName AS 'MotherName',
(SELECT description FROM OCCUPATION WHERE OCCUPATIONID = e.motherOccupationId) AS 'MotherOccupation',
e.extraField3 AS 'TypeName', e.vendorCode AS 'VendorCode', e.extrafield4 AS 'MinValue', e.extrafield5 AS 'MaxValue',
bah.AccountNo, es.NAME SpouseName, so.DESCRIPTION SpouseOccupation
FROM EMPLOYEE e
LEFT JOIN BANKACCOUNTHISTORY bah ON bah.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN EMPSPOUSE es ON es.EMPLOYEEID = e.EMPLOYEEID
LEFT JOIN OCCUPATION so ON so.OCCUPATIONID = es.OCCUPATIONID
Where e.EmployeeID = %n", employeeId);
return tc.ExecuteDataSet(sql);
}
internal static DataSet GetSelfServiceContactData(TransactionContext tc, int employeeId)
{
string sql = SQLParser.MakeSQL(@" SELECT e.EMPLOYEEID AS EmployeeId, e.EMPLOYEENO AS EmployeeNo, e.Name, c.PARMANENTADDRESS PermanentAddress, e.emailAddress, e.MobileNo, c.fax,
permD.name PermanentDistrict, permT.name PermanentThana, presD.name PresentDistrict, presT.name PresentThana,
c.PARMANENTTELEPHONE AS 'PermanentTelephone',
c.PARMANENTMOBILE AS 'PermanentMobile',
c.PRESENTADDRESS AS 'PresentAddress',
c.PresentTELEPHONE AS 'PresentTelephone',
c.PRESENTMOBILE AS 'PresentMobile',
c.EMERGENCYCONTACTADDRESS AS 'EmergencyContactAddress',
c.EMERGENCYCONTACTPERSON AS 'EmergencyContactPerson',
c.EMERGENCYTELEPHONE AS 'EmergencyTelephone',
c.emergencyMobile,PR.DESCRIPTION AS 'RelationDescription'
FROM EMPCONTACT c
INNER JOIN EMPLOYEE e ON e.EMPLOYEEID = c.EMPLOYEEID
Inner Join District permD on permD.DISTRICTID = c.PARMANENTDISTRICTID
Left Join District presD on presD.DISTRICTID = c.PresentDISTRICTID
Left Join Thana presT on presT.ThanaId = c.PresentTHANAID
Inner Join Thana permT on permT.ThanaId = c.PARMANENTTHANAID
Left Join PERSONRELATION PR on c.CPRELATIONID = PR.RELATIONID
where c.EMPLOYEEID = %n", employeeId);
return tc.ExecuteDataSet(sql);
}
internal static void CreateEmpBasicView(TransactionContext tc, string machineName)
{
string sql = SQLParser.MakeSQL(@"CREATE OR REPLACE VIEW VW_EMPLOYEEBASIC_%q AS Select E.EmployeeId,sg.get(E.EMPLOYEENO) EMPLOYEENO,sg.get(E.NAME) Name,E.BASICSALARY,E.GrossSalary,E.TAXAMOUNT, E.Fathername, occf.Description AS FatherOccupation, occm.Description AS MotherOccupation, E.MotherName, E.PhotoPath AS Photo,
( case E.GENDER
When 1 Then 'Male'
When 2 Then 'Female'
When 3 Then 'Both'
Else 'None'
End)As Gender,
E.BIRTHDATE, E.BIRTHPlace, E.TINNO,E.JOININGDATE,E.LASTPROMOTIONDATE,sg.get(E.EMAILADDRESS) EMAILADDRESS, Ca.DESCRIPTION as Category,L.DESCRIPTION as Location,
(Case E.STATUS
When 1 Then 'Active'
When 2 Then 'InActive'
Else 'Regardless'
End) As Status,
(case DEp.tire
when 4 then dept1.DESCRIPTION
when 3 then dept2.DESCRIPTION
when 2 then dept3.DESCRIPTION
when 1 then DEp.DESCRIPTION
Else ''
End) As Division,
(case DEp.tire
when 4 THEN dept1.DEPARTMENTID
when 3 then dept2.DEPARTMENTID
when 2 THEN dept3.DEPARTMENTID
when 1 then DEp.DEPARTMENTID
End) As DivisionID,
case DEp.tire
when 4 THEN dept2.DESCRIPTION
when 3 then dept3.DESCRIPTION
when 2 then DEp.DESCRIPTION
Else ''
End As Department,
(case DEp.tire
when 4 then dept2.DepartmentID
when 3 then dept3.DepartmentID
when 2 then DEp.DepartmentID
End) As DepartmentID,
(case DEp.tire
when 4 then dept3.DESCRIPTION
when 3 then DEp.DESCRIPTION
when 2 then ''
Else ''
End) As Unit,
(case DEp.tire
when 4 then dept3.DepartmentID
when 3 then DEp.DepartmentID
End) As UnitID,
(case DEp.tire
when 4 then DEp.DESCRIPTION
when 3 then ''
when 2 then ''
Else ''
End) As SubUnit,
(case DEp.tire
when 4 then DEp.DepartmentID
End) As SubUnitID,
sg.get(Deg.NAME) as DESIGNATION,sg.get(Gr.DESCRIPTION) as GRADE, R.Name AS RELIGION,
(case E.MARITALSTATUSID
When 1 Then 'Married'
When 2 Then 'Unmarried'
When 3 Then 'Divorced'
When 4 Then 'Widow'
Else 'None'
End) As MaritalStatus ,
sg.get(E.MOBILENO) MOBILENO,E.VendorCode,E.DATEOFCONFIRMATION,E.NATIONALID,E.PassPortNo,E.PhotoPath,E.bloodgroup,
CASE WHEN orgel.EMPLOYEEID IS NULL THEN authEmp.EmployeeID ELSE orgel.EMPLOYEEID END LineManagerID,
CASE WHEN orgel.EMPLOYEEID IS NULL THEN sg.get(authEmp.EmployeeNo) ELSE sg.get(em.EmployeeNo) END LineManagerNo,
CASE WHEN orgel.EMPLOYEEID IS NULL THEN sg.get(authEmp.Name) ELSE sg.get(em.Name) END LineManagerName,
CASE WHEN orgel.EMPLOYEEID IS NULL THEN sg.get(authLmDeg.Name) ELSE sg.get(lmDeg.Name) END LineManagerDes,
CASE WHEN orgel.EMPLOYEEID IS NULL THEN sg.get(authEmp.EMAILADDRESS) ELSE sg.get(em.EMAILADDRESS) END LMEMAILADDRESS,
(case lmDEp.tire
when 4 then lmdept1.DESCRIPTION
when 3 then lmdept2.DESCRIPTION
when 2 then lmdept3.DESCRIPTION
when 1 then lmDEp.DESCRIPTION
Else ''
End) As lmDivision,
(case lmDEp.tire
when 4 THEN lmdept1.DEPARTMENTID
when 3 then lmdept2.DEPARTMENTID
when 2 THEN lmdept3.DEPARTMENTID
when 1 then lmDEp.DEPARTMENTID
End) As lmDivisionID,
case lmDEp.tire
when 4 THEN lmdept2.DESCRIPTION
when 3 then lmdept3.DESCRIPTION
when 2 then lmDEp.DESCRIPTION
Else ''
End As lmDepartment,
(case lmDEp.tire
when 4 then lmdept2.DepartmentID
when 3 then lmdept3.DepartmentID
when 2 then lmDEp.DepartmentID
End) As lmDepartmentID,
(case lmDEp.tire
when 4 then lmdept3.DESCRIPTION
when 3 then lmDEp.DESCRIPTION
when 2 then ''
Else ''
End) As lmUnit,
(case lmDEp.tire
when 4 then lmdept3.DepartmentID
when 3 then lmDEp.DepartmentID
End) As lmUnitID,
(case lmDEp.tire
when 4 then lmDEp.DESCRIPTION
when 3 then ''
when 2 then ''
Else ''
End) As lmSubUnit,
(case lmDEp.tire
when 4 then lmDEp.DepartmentID
End) As lmSubUnitID,
(case E.IsConfirmed
When 0 Then 'Probetionary'
When 1 Then 'Confirmed'
Else 'Regardless'
End)As EmpStatus,
cg.Code AS costcenter, nt.DESCRIPTION AS NATIONALITY,BK.NAME Bank,BR.NAME Branch,BKOUT.NAME OUTPayBank,BROUT.NAME OUTPayBranch, E.ACCOUNTNO,E.OutPayAccountNo
from Employee E
Left outer join CATEGORY Ca on E.CATEGORYID = Ca.CATEGORYID
Left JOIN DEPARTMENT DEp ON DEp.DEPARTMENTID = E.DEPARTMENTID
LEFT JOIN DEPARTMENT dept3 ON dept3.DEPARTMENTID = DEp.PARENTID
LEFT JOIN DEPARTMENT dept2 ON dept2.DEPARTMENTID = dept3.PARENTID
LEFT JOIN DEPARTMENT dept1 ON dept1.DEPARTMENTID = dept2.PARENTID
Left outer join DESIGNATION Deg on E.DESIGNATIONID = Deg.DESIGNATIONID
Left outer join GRADES Gr on E.GRADEID = Gr.GRADEID
Left Outer Join LOCATION L on E.LOCATIONID = L.LOCATIONID
Left Outer Join RELIGION R on E.RELIGIONID = R.RELIGIONID
LEFT OUTER JOIN EMPCOSTCENTER ec ON ec.EMPLOYEEID = e.EMPLOYEEID AND ec.CURRENTCC = 1
LEFT OUTER JOIN CRG cg ON cg.CRGID = ec.COSTCENTERID
LEFT OUTER JOIN NATIONALITY nt ON nt.NATIONALITYID = e.NATIONALITYID
LEFT OUTER JOIN OCCUPATION occf ON occf.OCCUPATIONID = e.FATHEROCCUPATIONID
LEFT OUTER JOIN OCCUPATION occm ON occm.OCCUPATIONID = e.MOTHEROCCUPATIONID
LEFT OUTER JOIN ORGANEMPLOYEE orge ON orge.EMPLOYEEID = e.EMPLOYEEID
LEFT OUTER JOIN ORGANOGRAM org ON org.ORGANOGRAMID = orge.NODEID
LEFT OUTER JOIN ORGANEMPLOYEE orgel ON orgel.NODEID = org.PARENTID
LEFT OUTER JOIN EMPLOYEE em ON em.EMPLOYEEID = orgel.EMPLOYEEID
LEFT OUTER JOIN ORGANAUTHORITY oAuth ON oAuth.NODEID = org.PARENTID
LEFT OUTER JOIN ORGANEMPLOYEE oAuthOrgEmp ON oAuthOrgEmp.NODEID = oAuth.CHILDNODEID
LEFT OUTER JOIN EMPLOYEE authEmp ON authEmp.EMPLOYEEID = oAuthOrgEmp.EMPLOYEEID
Left outer join DESIGNATION lmDeg on em.DESIGNATIONID = lmDeg.DESIGNATIONID
Left outer join DESIGNATION authLmDeg on authEmp.DESIGNATIONID = authLmDeg.DESIGNATIONID
Left JOIN DEPARTMENT lmDEp ON lmDEp.DEPARTMENTID = em.DEPARTMENTID
LEFT JOIN DEPARTMENT lmdept3 ON lmdept3.DEPARTMENTID = lmDEp.PARENTID
LEFT JOIN DEPARTMENT lmdept2 ON lmdept2.DEPARTMENTID = lmdept3.PARENTID
LEFT JOIN DEPARTMENT lmdept1 ON lmdept1.DEPARTMENTID = lmdept2.PARENTID
LEFT OUTER JOIN Branches BR ON E.BRANCHID=BR.BRANCHID
LEFT OUTER JOIN BANKS BK ON BK.BANKID=BR.BANKID
LEFT OUTER JOIN Branches BROUT ON E.OUTPayBRANCHID=BROUT.BRANCHID
LEFT OUTER JOIN BANKS BKOUT ON BKOUT.BANKID=BROUT.BANKID", machineName);
tc.ExecuteNonQuery(sql);
}
internal static void DropEmpBasicView(TransactionContext tc, string machineName)
{
string sql = SQLParser.MakeSQL(@"declare
c int;
begin
select count(*) into c from user_views where view_name = upper('VW_EMPLOYEEBASIC_%q');
if c = 1 then
execute immediate 'Drop VIEW VW_EMPLOYEEBASIC_%q';
end if;
end;", machineName.ToUpper(), machineName.ToUpper());
tc.ExecuteNonQuery(sql);
}
internal static IDataReader GetByName(TransactionContext tc, string EmpName)
{
return tc.ExecuteReader("SELECT * FROM Employee WHERE Name=%s ", EmpName);
}
internal static IDataReader GetFirstLMTeamMembers(TransactionContext tc, int employeeID)
{
string sql = SQLParser.MakeSQL("SELECT * FROM Employee WHERE LineManagerID = %n order by EmployeeNo", employeeID);
return tc.ExecuteReader(sql);
}
internal static DataTable GetsubordinateforMobile(TransactionContext tc, int empId)
{
string sql = SQLParser.MakeSQL(@"select EmployeeID employeeid, EmployeeNo employeeno, name name from employee where linemanagerid = %n", empId);
return tc.ExecuteDataTable(sql);
}
internal static DataTable GetSubordinatesByLineManagerForMobileWithNoLock(TransactionContext tc, int empId)
{
string sql = SQLParser.MakeSQL(@"select EmployeeID employeeid, EmployeeNo employeeno, name name from employee With(NoLock) where linemanagerid = %n", empId);
return tc.ExecuteDataTable(sql);
}
internal static IDataReader GetSubordinatesByLineManager(TransactionContext tc, int employeeID)
{
return tc.ExecuteReader("Select * From Employee Where LINEMANAGERID = %n", employeeID);
}
internal static DataSet GetLandingPageData(TransactionContext tc, int isEmployee, int isLeave, int isAttendance, int payrollTypeId)
{
List<SqlParameter> p = new List<SqlParameter>
{
SqlHelperExtension.CreateInParam("@ModEmployee", SqlDbType.Int, isEmployee),
SqlHelperExtension.CreateInParam("@ModLeave", SqlDbType.Int, isLeave),
SqlHelperExtension.CreateInParam("@ModAttendance", SqlDbType.Int, isAttendance),
SqlHelperExtension.CreateInParam("@PayrollTypeID", SqlDbType.Int, payrollTypeId)
};
return tc.ExecuteDataSet(CommandType.StoredProcedure, "sp_DashboardInformation", p.ToArray());
}
//Mobile Profile
internal static DataSet GetMobileProfile(TransactionContext tc, int employeeID)
{
string query = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID EmployeeId, e.EMPLOYEENO EmployeeNo, e.NAME Name, e.JOININGDATE JoiningDate, e.IsFixedLocation,
dp.DESCRIPTION Department, ds.NAME Designation, l.DESCRIPTION Location, l.LATITUDE Latitude, l.LONGITUDE Longitude
FROM EMPLOYEE e With(NoLock)
LEFT JOIN DEPARTMENT dp With(NoLock) ON e.DEPARTMENTID = dp.DEPARTMENTID
LEFT JOIN DESIGNATION ds With(NoLock) ON e.DESIGNATIONID = ds.DESIGNATIONID
LEFT JOIN LOCATION l With(NoLock) ON l.LOCATIONID = e.LOCATIONID
WHERE e.EMPLOYEEID = %n", employeeID);
return tc.ExecuteDataSet(query);
}
internal static DataSet GetMobileProfileNew(TransactionContext tc, int employeeID)
{
string query = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID EmployeeId, e.EMPLOYEENO EmployeeNo, e.NAME Name,e.emailaddress EmailAddress, e.JOININGDATE JoiningDate, e.IsFixedLocation,
dp.DESCRIPTION Department, ds.NAME Designation, l.DESCRIPTION Location, l.LATITUDE Latitude, l.LONGITUDE Longitude
FROM EMPLOYEE e
LEFT JOIN DEPARTMENT dp ON e.DEPARTMENTID = dp.DEPARTMENTID
LEFT JOIN DESIGNATION ds ON e.DESIGNATIONID = ds.DESIGNATIONID
LEFT JOIN LOCATION l ON l.LOCATIONID = e.LOCATIONID
WHERE e.EMPLOYEEID = %n", employeeID);
return tc.ExecuteDataSet(query);
}
//Mobile Profile Dashboard
internal static DataSet GetMobileDashboardInfo(TransactionContext tc, int EmployeeID, DateTime FromDate, DateTime ToDate)
{
List<SqlParameter> p = new List<SqlParameter>
{
SqlHelperExtension.CreateInParam("@EmployeeId", SqlDbType.Int, EmployeeID),
SqlHelperExtension.CreateInParam("@FromDate", SqlDbType.DateTime, FromDate),
SqlHelperExtension.CreateInParam("@ToDate", SqlDbType.DateTime, ToDate)
};
return tc.ExecuteDataSet(CommandType.StoredProcedure, "sp_MobileDashboardInformation", p.ToArray());
}
internal static DataSet GetHolidayInfoForDashboard(TransactionContext tc)
{
string query = SQLParser.MakeSQL(@"SELECT a.ATTNNATIONALHOLIDAYID, a.DESCRIPTION HolidayType, FORMAT (a.FROMDATE, 'dd MMM yyyy') FROMDATE, FORMAT (a.TODATE , 'dd MMM yyyy') TODATE
FROM AttnNationalHoliday a WHERE a.FromDate between %d and %d Order By a.FromDate desc", new DateTime(DateTime.Today.Date.Year, 1, 1), new DateTime(DateTime.Today.Date.Year, 12, 31));
return tc.ExecuteDataSet(query);
}
internal static DataSet GetBankAdviceReport(TransactionContext tc, string sEmpIDs, string leaveYear)
{
DataSet oEmpDetails = new DataSet();
string sql = string.Empty;
try
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID,e.EMPLOYEENO, e.[NAME] NAME, e.ACCOUNTNO, e2.AMOUNT ENCASHAMOUNT
FROM EMPLOYEE e, LeaveEncashment e2, LEAVEYEAR l
WHERE e.EMPLOYEEID = e2.EMPLOYEEID AND e.EMPLOYEEID IN(%q) AND l.LEAVEYEARID = e2.LEAVEYEARID
AND e2.AMOUNT!=0 AND l.[NAME] = '%q'
GROUP BY e.EMPLOYEEID, e.[NAME], e.ACCOUNTNO, e2.AMOUNT,e.EMPLOYEENO
ORDER BY e.EMPLOYEEID", sEmpIDs, leaveYear);
oEmpDetails = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
internal static DataSet GetLeaveCashAdvice(TransactionContext tc, string sEmpIDs, string leaveYear)
{
DataSet oEmpDetails = new DataSet();
string sql = string.Empty;
try
{
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID,e.EMPLOYEENO, e.NAME,e.GROSSSALARY, eLS.AMOUNT ENCASHAMOUNT
FROM EMPLOYEE e, LeaveEncashment eLS, LEAVEYEAR l
WHERE e.EMPLOYEEID = eLS.EMPLOYEEID AND e.EMPLOYEEID IN(%q) AND l.LEAVEYEARID = eLS.LEAVEYEARID
AND eLS.AMOUNT!=0 AND l.[NAME] = '%q' And e.PAYMENTMODE=%n
GROUP BY e.EMPLOYEEID, e.[NAME], eLS.AMOUNT,e.GROSSSALARY,e.EMPLOYEENO
ORDER BY e.EMPLOYEEID", sEmpIDs, leaveYear, (int)EnumPaymentMode.CashPayment);
oEmpDetails = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
internal static DataSet GetEncashPayslip(TransactionContext tc, string sEmpIDs, string leaveYear)
{
DataSet oEmpDetails = new DataSet();
string sql = string.Empty;
try
{
sql = SQLParser.MakeSQL(@"select e.EMPLOYEENO, e.[NAME] NAME,e2.grosssalary, '' PAYMENTMODE,Dept.DESCRIPTION as Department,Degs.NAME as Designation, e.BasicSalary, e2.AMOUNT ENCASHAMOUNT,e2.EncashmentDays TaxAmount
FROM EMPLOYEE e, LeaveEncashment e2, LEAVEYEAR l,DEPARTMENT as Dept,DESIGNATION as Degs
WHERE e.EMPLOYEEID = e2.EMPLOYEEID AND e.EMPLOYEEID IN(%q) AND l.LEAVEYEARID = e2.LEAVEYEARID
AND e2.AMOUNT!=0 AND l.[NAME] = '%q'
AND e.DEPARTMENTID =Dept.DEPARTMENTID AND e.DESIGNATIONID =Degs.DESIGNATIONID
ORDER BY e.EMPLOYEENO", sEmpIDs, leaveYear);
oEmpDetails = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
internal static DataTable GetRegularizableEmail(TransactionContext tc, string regularizableEmployeeIds)
{
string sql = SQLParser.MakeSQL(@"
SELECT emp.EMPLOYEEID AS EMPEMPLOYEEID, emp.EMPLOYEENO AS EMPEMPLOYEENO, emp.NAME AS EMPNAME, emp.EMAILADDRESS AS EMPEMAILADDRESS, lm.EMPLOYEEID AS LMEMPLOYEEID, lm.EMPLOYEENO AS LMEMPLOYEENO, lm.NAME AS LMNAME, lm.EMAILADDRESS AS LMEMAILADDRESS
FROM EMPLOYEE emp
LEFT JOIN EMPLOYEE lm ON lm.EMPLOYEEID = emp.LINEMANAGERID
WHERE emp.EMPLOYEEID IN (%q) AND
emp.EMAILADDRESS IS NOT NULL AND emp.EMAILADDRESS <> ''
AND lm.EMAILADDRESS IS NOT NULL AND lm.EMAILADDRESS <> ''",
regularizableEmployeeIds);
return tc.ExecuteDataTable(sql);
}
internal static DataSet GetEmpDigitalServiceBook(TransactionContext tc, int empID)
{
tc.CommandTimeOut = 60;
string sSQL = SQLParser.MakeSQL(@"SELECT EMPLOYEEID, EMPLOYEENO, NAME, FATHERNAME, MOTHERNAME, SPOUSENAME, JOININGDATE,
DESIGNATION, BIRTHDATE, NIDNO, HEIGHT, BLOODGROUP, PARMANENTADDRESS, PARMANENTDISTRICT,
PARMANENTTHANA, PRESENTADDRESS, LMDESIGNATION, PHOTO, EDUCATIONLEVEL
FROM dbo.VW_EMPDIGITALSERVICEBOOK
WHERE EMPLOYEEID = %n", empID);
return tc.ExecuteDataSet(sSQL);
}
internal static DataTable GetCordinatorTeam(TransactionContext tc, Employee oEmp)
{
string sSQL = SQLParser.MakeSQL(@"DECLARE @lmid int;
SET @lmid = %n
SELECT E.EMPLOYEEID as EmployeeID,
E.EMPLOYEENO AS EmpNo,
E.NAME AS EmpName,
E.GENDER AS EmpGender,
COUNT(CASE WHEN E.Gender = 1 THEN 1 END) OVER () AS Male,
COUNT(CASE WHEN E.Gender = 2 THEN 1 END) OVER () AS Female,
E.LINEMANAGERID AS LinemanagerID,
COUNT(CASE WHEN E.LinemanagerID = @lmid THEN 1 END) OVER () as EmpCount,
D.DESCRIPTION AS Department,DG.NAME AS Designation,
DG.NAME AS Designation,
G.DESCRIPTION AS Grade,
E.JOININGDATE AS EmpDOJ,
L.DESCRIPTION AS EmpLoc,
E.MOBILENO AS EmpMobileNo,
E.EMAILADDRESS AS EmpEmail
FROM EmployeeCordinator EC
JOIN Employee E ON EC.EmployeeID = E.EMPLOYEEID
JOIN DEPARTMENT D ON E.DEPARTMENTID = D.DEPARTMENTID
JOIN DESIGNATION DG ON E.DESIGNATIONID = DG.DESIGNATIONID
JOIN GRADES G ON E.GRADEID = G.GRADEID
JOIN LOCATION L ON L.LOCATIONID = E.LOCATIONID
WHERE EC.CordinatorID = @lmid --AND E.status = %n
group by E.EMPLOYEEID, E.EMPLOYEENO, E.NAME, E.GENDER, E.LINEMANAGERID, D.DESCRIPTION, DG.NAME, G.DESCRIPTION, E.JOININGDATE,
L.DESCRIPTION,E.MOBILENO, E.EMAILADDRESS", oEmp.ID, EnumEmpStatus.Live);
return tc.ExecuteDataTable(sSQL);
}
internal static DataTable GetMyTeam(TransactionContext tc, Employee oEmp)
{
string sSQL = SQLParser.MakeSQL(@"DECLARE @lmid int;
SET @lmid = %n
SELECT
E.EMPLOYEEID as EmployeeID,
E.EMPLOYEENO AS EmpNo,
E.NAME AS EmpName,
E.GENDER AS EmpGender,
COUNT(CASE WHEN E.Gender = 1 THEN 1 END) OVER () AS Male,
COUNT(CASE WHEN E.Gender = 2 THEN 1 END) OVER () AS Female,
E.LINEMANAGERID AS LinemanagerID,
COUNT(CASE WHEN E.LinemanagerID = @lmid THEN 1 END) OVER () as EmpCount,
D.DESCRIPTION AS Department,
DG.NAME AS Designation,
G.DESCRIPTION AS Grade,
E.JOININGDATE AS EmpDOJ,
L.DESCRIPTION AS EmpLoc,
E.MOBILENO AS EmpMobileNo,
E.EMAILADDRESS AS EmpEmail
--,EP.FILEDATA AS EmpPhoto
FROM
EMPLOYEE E
LEFT JOIN
DEPARTMENT D ON E.DEPARTMENTID = D.DEPARTMENTID
LEFT JOIN
DESIGNATION DG ON E.DESIGNATIONID = DG.DESIGNATIONID
LEFT JOIN
GRADES G ON E.GRADEID = G.GRADEID
LEFT JOIN
LOCATION L ON L.LOCATIONID = E.LOCATIONID
--LEFT JOIN(
--SELECT FILEDATA,EMPID FROM EMPLOYEE EE
--JOIN EMPFILEUPLOAD EF ON EE.EMPLOYEEID = EF.EMPID WHERE EF.FILETYPE = 1
--) EP ON E.EMPLOYEEID = EP.EMPID
--WHERE E.EmployeeID IN(
--Select EmployeeID from OrganEmployee
--Where NodeID IN(
--Select OrganogramID From Organogram
--Where ParentID=(
--Select NodeID from OrganEmployee
--Where EmployeeID = @lmid)))
Where E.LINEMANAGERID = @lmid
AND E.status = %n
group by E.EMPLOYEEID, E.EMPLOYEENO, E.NAME, E.GENDER, E.LINEMANAGERID, D.DESCRIPTION, DG.NAME, G.DESCRIPTION, E.JOININGDATE,
L.DESCRIPTION,E.MOBILENO, E.EMAILADDRESS --, EP.FILEDATA", oEmp.ID, EnumEmpStatus.Live);
return tc.ExecuteDataTable(sSQL);
}
internal static DataTable GetEmployeeCount(TransactionContext tc, Employee emp)
{
string subSQL = "";
string deptSQL = "";
if (emp != null && emp.LineManagerID != null)
{
subSQL = SQLParser.MakeSQL(" and departmentid = %n", emp.DepartmentID);
deptSQL = SQLParser.MakeSQL(", (select DESCRIPTION from DEPARTMENT where departmentid = %n) as department", emp.DepartmentID);
}
if (emp != null && emp.LineManagerID == null)
{
deptSQL = SQLParser.MakeSQL(", (select DESCRIPTION from DEPARTMENT where departmentid = %n) as department", emp.DepartmentID);
}
string sSQL = SQLParser.MakeSQL(@"DECLARE @status int;
SET @status = %n
select
(select COUNT(*) from EMPLOYEE where STATUS = @status %q) as TotalEmployee,
(select COUNT(*) from EMPLOYEE where STATUS = @status and GENDER = 1 %q) as Male,
(select COUNT(*) from EMPLOYEE where STATUS = @status and GENDER = 2 %q) as Female
%q"
, EnumEmployeeStatus.Live, subSQL, subSQL, subSQL, deptSQL);
return tc.ExecuteDataTable(sSQL);
}
internal static DataTable GetEmpOrganogramInfo(TransactionContext tc, Employee emp)
{
string subSQL = "";
if (emp != null && emp.LineManagerID != null)
{
subSQL = SQLParser.MakeSQL("AND e.Departmentid = %n", emp.DepartmentID);
}
string sSQL = SQLParser.MakeSQL(@"
WITH EmployeeCTE AS (
SELECT
employeeid,
designationid,
gradeid,
departmentid,
linemanagerid,
locationid,
employeeno,
name,
joiningdate,
mobileno,
emailaddress,
status
FROM EMPLOYEE
)
SELECT
E.employeeid as employeeid,
Lm.employeeid as linemanagerid,
E.employeeno as employeeno,
--EP.filedata AS photo,
E.name as name,
DG.name as designation,
G.description as grade,
D.description as department,
L.DESCRIPTION as location,
E.JOININGDATE as doj,
E.MOBILENO as mobile,
E.EMAILADDRESS as email
FROM EmployeeCTE E
LEFT JOIN
DESIGNATION DG ON E.DESIGNATIONID = DG.DESIGNATIONID
LEFT JOIN
GRADES G ON E.GRADEID = G.GRADEID
LEFT JOIN
DEPARTMENT D ON E.DEPARTMENTID = D.DEPARTMENTID
LEFT JOIN
LOCATION L ON L.LOCATIONID = E.LOCATIONID
--LEFT JOIN(
--SELECT FILEDATA,EMPID FROM EMPLOYEE EE
--JOIN EMPFILEUPLOAD EF ON EE.EMPLOYEEID = EF.EMPID WHERE EF.FILETYPE = 1
--) EP ON E.EMPLOYEEID = EP.EMPID
LEFT JOIN EMPLOYEE Lm ON e.linemanagerid = Lm.EmployeeID
where e.status = %n %q
order by e.linemanagerid, e.employeeid ", EnumEmployeeStatus.Live, subSQL);
return tc.ExecuteDataTable(sSQL);
}
internal static DataTable getEmpInfoForGateman(TransactionContext tc, int empid)
{
string sql = SQLParser.MakeSQL(@"select e.EMPLOYEEID as employeeID, e.EMPLOYEENO, e.NAME, d.NAME as designation, dep.DESCRIPTION as department,
l.DESCRIPTION as location from EMPLOYEE e
left join DESIGNATION d on d.DESIGNATIONID = e.DESIGNATIONID
left join DEPARTMENT dep on dep.DEPARTMENTID = e.DEPARTMENTID
left join LOCATION l on l.LOCATIONID = e.LOCATIONID
WHERE e.EMPLOYEEID = %n", empid);
DataTable dt = tc.ExecuteDataTable(sql);
string sSQL = SQLParser.MakeSQL(@"select e.EMPLOYEEID as employeeID, e.EMPLOYEENO, e.NAME, d.NAME as designation, dep.DESCRIPTION as department,
l.DESCRIPTION as location, ef.fileData as photo from EMPLOYEE e
left join DESIGNATION d on d.DESIGNATIONID = e.DESIGNATIONID
left join DEPARTMENT dep on dep.DEPARTMENTID = e.DEPARTMENTID
left join LOCATION l on l.LOCATIONID = e.LOCATIONID
left join empFileupload ef on ef.empid = e.EMPLOYEEID
WHERE ef.fileType = %n and e.EMPLOYEEID = %n", enumEmpFileUploadType.photo, empid);
DataTable dtwp = tc.ExecuteDataTable(sSQL);
if (dtwp.Rows.Count > 0)
return dtwp;
else
return dt;
}
internal static DataSet GetAllEmpBasicInfo(TransactionContext tc, string empIDs)
{
string sql = string.Empty;
if (GlobalExtensions.IsNullOrWhiteSpace(empIDs))
{
sql = SQLParser.MakeSQL(@"select * from vw_EmployeeImportantInfo
ORDER BY EmployeeID");
}
else
{
sql = SQLParser.MakeSQL(@"select * from vw_EmployeeImportantInfo
WHERE EmployeeID IN (%q)
ORDER BY EmployeeID", empIDs);
}
return tc.ExecuteDataSet(sql);
}
internal static DataSet GetCostCenterInfo(TransactionContext tc, string empId)
{
DataSet ds = new DataSet();
string sql = string.Empty;
try
{
sql = SQLParser.MakeSQL(@"SELECT EMPLOYEE.EMPLOYEEID, EmpView.DEPARTMENT AS CostCenter, dept.CODE as DepartmentCode, crg.Code as CostCenterCode
FROM EMPLOYEE
INNER JOIN vw_EmployeeImportantInfo as EmpView
ON EMPLOYEE.EMPLOYEEID = EmpView.EMPLOYEEID
INNER JOIN Department as Dept
ON EMPLOYEE.DepartmentID = Dept.DepartmentID
Left JOIN EmpCostCenter empCC
ON EmpView.employeeID = empCC.employeeID
LEFT join CRG
on empCC.CostCenterID = CRG.CRGID
where EMPLOYEE.EMPLOYEEID in (%q)
", empId);
ds = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
internal static DataSet GetPFLedger(TransactionContext tc, string sEmpID, DateTime FromDate, DateTime toDate)
{
DataSet rootDataset = new DataSet();
DataSet tempdataset = new DataSet();
try
{
string query1 = SQLParser.MakeSQL(@"Select A.Description,A.PFAmount,B.CPFAmount from
(Select 'Opening' Description,ISNULL(sum(TranAmount),0) PFAmount
from PFTransaction PFT where TranDate < %d
And TranType in(%n) and EmployeeID in (%q)) A
,
(
Select 'Opening' Description, ISNULL(sum(TranAmount),0) CPFAmount
from PFTransaction PFT where TranDate < %d
And TranType in(%n) and EmployeeID in (%q)) B
Where A.Description = B.Description",
FromDate, (int)EnumPFTranType.PFAmount, sEmpID,
FromDate, (int)EnumPFTranType.CPFAmount, sEmpID);
// string query1 = SQLParser.MakeSQL(@"Select 'Opening' Description,sum(TranAmount)as PFAmount,sum(TranAmount)as CPFAmount
// from PFTransaction PFT where TranDate < %d
// And TranType in(1,2) and EmployeeID in (%q)",FromDate,sEmpID);
tempdataset = tc.ExecuteDataSet(query1);
tempdataset.Tables[0].TableName = "Opening";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
string query2 = SQLParser.MakeSQL(@"Select A.TranDate Description,A.PFAmount,B.CPFAmount from
(Select TranDate,ISNULL(sum(TranAmount),0)as PFAmount
from PFTransaction PFT where TranDate between %d and %d
And TranType in(%n) and EmployeeID in (%q)
group by TranDate) A
,
(
Select TranDate, ISNULL(sum(TranAmount),0) CPFAmount
from PFTransaction PFT where TranDate between %d and %d
And TranType in(%n) and EmployeeID in (%q)
group by TranDate) B
Where A.TranDate = B.TranDate",
FromDate, toDate, (int)EnumPFTranType.PFAmount, sEmpID,
FromDate, toDate, (int)EnumPFTranType.CPFAmount, sEmpID);
// string query2 = SQLParser.MakeSQL(@"Select distinct TranDate Description,TranAmount PFAmount,TranAmount CPFAmount
// from PFTransaction PFT where TranDate between %d and %d
// And TranType in(1,2) and EmployeeID in (%q)
// order by TranDate",FromDate,toDate,sEmpID);
tempdataset = tc.ExecuteDataSet(query2);
tempdataset.Tables[0].TableName = "TranDate";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static void IntegrationUpdate(TransactionContext tc, Employee item)
{
string sSQL = SQLParser.MakeSQL("UPDATE Employee SET Name=%s,"
+ " gender=%n, "
+ "emailAddress=%s, mobileNo=%s, tinNo=%s"
+ " WHERE EmployeeID=%n", item.Name, item.Gender,
item.EmailAddress, item.MobileNo, item.TinNo,
item.ID);
tc.ExecuteNonQuery(sSQL);
}
internal static IDataReader GetEmployeeDataUsingExceptionType(TransactionContext tc, string ExceptionType)
{
string sql = "";
if (ExceptionType == "Disable")
{
sql = SQLParser.MakeSQL(@"Select EMPLOYEEID,EMPLOYEENO,NAME,1 as ITEMVALUE,1 as TYPE From Employee where PersonType=1");
}
if (ExceptionType == "FreedomFighter")
{
sql = SQLParser.MakeSQL(@"Select EMPLOYEEID,EMPLOYEENO,NAME,1 as ITEMVALUE,2 as TYPE From Employee where PersonType=2");
}
if (ExceptionType == "OverAge")
{
sql = SQLParser.MakeSQL(@"Select EMPLOYEEID,EMPLOYEENO,NAME,1 as ITEMVALUE,3 as TYPE From Employee where FLOOR((CAST (GetDate() AS INTEGER) - CAST(birthDate AS INTEGER)) / 365.25) > 65");
};
return tc.ExecuteReader(sql);
}
internal static IDataReader GetEmployeeDataUsingPersonType(TransactionContext tc, int PersonType)
{
string sql = SQLParser.MakeSQL(@"Select EMPLOYEEID,EMPLOYEENO,NAME,1 as ITEMVALUE,%n as TYPE From Employee where PersonType=%n", PersonType, PersonType);
return tc.ExecuteReader(sql);
}
internal static IDataReader GetEmployeeDataUsingTaxCircle(TransactionContext tc, int TaxCircleType)
{
string sql = SQLParser.MakeSQL(@"Select EMPLOYEEID,EMPLOYEENO,NAME,1 as ITEMVALUE,%n as TYPE From Employee where TAXCIRCLE=%n", TaxCircleType, TaxCircleType);
return tc.ExecuteReader(sql);
}
internal static void UpdateEmployeeByPersonType(TransactionContext tc, EmployeeTaxException item)
{
string sSQL;
if (item.ItemValue == true)
{
sSQL = SQLParser.MakeSQL("UPDATE Employee SET PERSONTYPE=%n WHERE EMPLOYEEID =%n", item.Type, item.EmployeeID);
}
else
{
sSQL = SQLParser.MakeSQL("UPDATE Employee SET PERSONTYPE=%n WHERE EMPLOYEEID =%n", 0, item.EmployeeID);
}
tc.ExecuteNonQuery(sSQL);
}
internal static void UpdateEmployeeByTaxCircle(TransactionContext tc, EmployeeTaxException item)
{
string sSQL;
if (item.ItemValue == true)
{
sSQL = SQLParser.MakeSQL("UPDATE Employee SET TAXCIRCLE=%n WHERE EMPLOYEEID =%n", item.Type, item.EmployeeID);
}
else
{
sSQL = SQLParser.MakeSQL("UPDATE Employee SET TAXCIRCLE=%n WHERE EMPLOYEEID =%n", 0, item.EmployeeID);
}
tc.ExecuteNonQuery(sSQL);
}
internal static DataTable GetEmployeeNameAndNo(TransactionContext tc, int payrolltypeid)
{
return tc.ExecuteDataTable(
"SELECT e.employeeId as id, e.employeeNo, e.name FROM employee e WHERE e.payrolltypeid=%n", payrolltypeid);
}
}
#endregion
}