4054 lines
209 KiB
C#
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
|
|
} |