EchoTex_Payroll/HRM.DA/DA/Budget/MiscellaneousDatasetDA.cs
2024-10-14 10:01:49 +06:00

9781 lines
249 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using HRM.BO;
using Ease.Core.DataAccess;
using System;
using System.Data;
namespace HRM.DA
{
public class MiscellaneousDatasetDA
{
internal static DataSet GetItemWiseSalary(TransactionContext tc, string sEmpID, DateTime _SalaryMonth, DateTime toDate, string sSQL)
{
DataSet rootDataset = new DataSet();
DataSet tempdataset = new DataSet();
try
{
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
string SSalary = SQLParser.MakeSQL(@"select E.EmployeeNo,E.Name,S.SalaryMonth,sum(smd.ChangedAmount) Amount
from SalaryMonthly s
inner join Employee E on S.EmployeeID=E.EmployeeID
inner join SalaryMonthlyDetail smd on S.SalaryMonthlyID=smd.SalaryMonthlyID
where S.EmployeeID in(%q) %q
And S.SalaryMonth between %d and %d
group by E.EmployeeNo,E.Name,S.SalaryMonth
order by E.EmployeeNo,S.SalaryMonth", sEmpID, sSQL, _SalaryMonth, toDate);
tempdataset = tc.ExecuteDataSet(SSalary);
tempdataset.Tables[0].TableName = "ItemWiseSalary";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmployeesPF(TransactionContext tc, DateTime dateTime, int locationID, string empIds)
{
DataSet rootDataset = new DataSet();
DataSet tempdataset = new DataSet();
string sTranType = Convert.ToString((int)EnumPFTranType.PFAmount) + "," + Convert.ToString((int)EnumPFTranType.CPFAmount);
try
{
if (empIds != string.Empty)
{
string sexpEmps = SQLParser.MakeSQL(@"SELECT t.EmployeeNo, t.[Name], SUM(t.EPF) EPF,t.CRGID,
SUM(t.CPF) CPF,t.CostCenter,t.Designation,t.Department,t.JOININGDATE,t.Location
FROM
(
SELECT e.EmployeeID,e.EmployeeNo,e.Name,e.JOININGDATE,D.NAME AS Designation,
Dep.DESCRIPTION AS Department,lc.[DESCRIPTION] Location,CC.CRGID,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END AS EPF,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END AS CPF,
CC.DESCRIPTION AS CostCenter
FROM PFTRANSACTION pt
LEFT JOIN Employee e ON pt.EMPLOYEEID = e.EMPLOYEEID AND pt.TRANDATE = %d
LEFT JOIN DESIGNATION D ON e.DESIGNATIONID = D.DESIGNATIONID
LEFT JOIN DEPARTMENT Dep ON e.DEPARTMENTID = Dep.DEPARTMENTID
LEFT JOIN EMPCOSTCENTER cmpcc ON e.EMPLOYEEID=cmpcc.EMPLOYEEID AND cmpcc.CurrentCC=1
INNER JOIN CRG CC ON cmpcc.CostCenterID = CC.CRGID
Inner JOIN LOCATION lc ON e.LOCATIONID = lc.LOCATIONID
AND e.LOCATIONID = %n
AND e.EMPLOYEEID IN (%q)
)t
GROUP BY t.EmployeeNo, t.[Name], t.CostCenter,
t.JOININGDATE,t.Designation,t.Department,t.Location,t.CRGID
ORDER BY t.CostCenter", (int)EnumPFTranType.PFAmount, (int)EnumPFTranType.CPFAmount, dateTime,
locationID, empIds);
tempdataset = tc.ExecuteDataSet(sexpEmps);
tempdataset.Tables[0].TableName = "MonthlyPFExp";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
string sSQLMonthlyPF = SQLParser.MakeSQL(@"SELECT t.EmployeeNo, t.[Name], t.THISMONTHBASIC, t.TotalGross, SUM(t.EPF) EPF,t.CRGID,
SUM(t.CPF) CPF,t.CostCenter,t.Designation,t.Department,t.JOININGDATE,t.Location
FROM
(
SELECT e.EmployeeNo,e.Name,e.JOININGDATE,D.NAME AS Designation,Dep.DESCRIPTION AS Department,
ISNULL(sm.THISMONTHBASIC,0) THISMONTHBASIC,lc.[DESCRIPTION] Location,
IsNull(sm.ThisMonthGross,0) as TotalGross,CC.CRGID,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END AS EPF,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END AS CPF,
CC.DESCRIPTION AS CostCenter
FROM PFTRANSACTION pt
LEFT JOIN Employee e ON pt.EMPLOYEEID = e.EMPLOYEEID AND pt.TRANDATE = %d
LEFT JOIN DESIGNATION D ON e.DESIGNATIONID = D.DESIGNATIONID
LEFT JOIN DEPARTMENT Dep ON e.DEPARTMENTID = Dep.DEPARTMENTID
LEFT JOIN EMPCOSTCENTER cmpcc ON e.EMPLOYEEID=cmpcc.EMPLOYEEID AND cmpcc.CurrentCC=1
INNER JOIN CRG CC ON cmpcc.CostCenterID = CC.CRGID
LEFT JOIN SALARYMONTHLY sm ON sm.EMPLOYEEID = e.EMPLOYEEID
Inner JOIN LOCATION lc ON sm.LOCATIONID = lc.LOCATIONID
AND sm.SalaryMonth = %d AND sm.LOCATIONID = %n
)t
GROUP BY t.EmployeeNo, t.[Name], t.THISMONTHBASIC, t.TotalGross, t.CostCenter,
t.JOININGDATE,t.Designation,t.Department,t.Location,t.CRGID
ORDER BY t.CostCenter"
, (int)EnumPFTranType.PFAmount, (int)EnumPFTranType.CPFAmount, dateTime, dateTime, locationID);
tempdataset = tc.ExecuteDataSet(sSQLMonthlyPF);
tempdataset.Tables[0].TableName = "MonthlyPF";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetDataSetBySQL(TransactionContext tc, string sSQL)
{
DataSet tempdataset = new DataSet();
try
{
tempdataset = tc.ExecuteDataSet(sSQL);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return tempdataset;
}
internal static DataSet GetFor177Data(TransactionContext tc, DateTime dSalarymonth, string sEmpID, int payrollTypeId)
{
DataSet rootDataset = new DataSet();
DataSet tempdataset = new DataSet();
try
{
string sSQL = SQLParser.MakeSQL(@"
select e.EMPLOYEEID,e.EmployeeNo,sd.ITEMGROUP,sd.ITEMCODE,sd.ITEMID,sd.Description,SUM(sd.changedamount) Amount
from SALARYMONTHLYDETAIL sd,SALARYMONTHLY S ,Employee e
Where sd.SALARYMONTHLYID=S.SALARYMONTHLYID And S.EmployeeID = e.EmployeeId
AND S.SalaryMonth = %d and sd.ITEMGROUP in(1,3,8)
AND sd.ItemCode not in(-102) AND S.EmployeeID IN(%q) AND S.payrolltypeid = %n
group by e.EMPLOYEEID,e.EmployeeNo,sd.ITEMGROUP,sd.ITEMCODE,sd.ITEMID,sd.DESCRIPTION
ORDER BY e.EmployeeNo ", dSalarymonth, sEmpID, payrollTypeId, sEmpID);
tempdataset = tc.ExecuteDataSet(sSQL);
tempdataset.Tables[0].TableName = "EmpWiseSalary";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
//sSQL = SQLParser.MakeSQL(@"
// select e.EMPLOYEEID,e.EmployeeNo,sd.ITEMGROUP,sd.ITEMCODE,sd.ITEMID,sd.Description,SUM(sd.changedamount) Amount
// from SALARYMONTHLYDETAIL sd,SALARYMONTHLY S ,Employee e
// Where sd.SALARYMONTHLYID = S.SALARYMONTHLYID And S.EmployeeID = e.EmployeeId
// AND S.SalaryMonth between %d and %d and sd.ITEMGROUP in(3)
// AND sd.ItemCode in(-128) AND S.EmployeeID IN (%q) AND S.payrolltypeid = %n
// group by e.EMPLOYEEID,e.EmployeeNo,sd.ITEMGROUP,sd.ITEMCODE,sd.ITEMID,sd.DESCRIPTION
// ORDER BY e.EmployeeNo ",
// dSStartMonthDate, dSEndMonthDate, sEmpID, payrollTypeId, sEmpID);
//tempdataset = tc.ExecuteDataSet(sSQL);
//tempdataset.Tables[0].TableName = "EmpWisePF";
//rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
sSQL = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID,e.EmployeeNo,bpd.BONUSID,b.NAME Description,Sum(bpd.CHANGEBONUSAMOUNT) Amount
FROM BONUSPROCESSDETAIL bpd
INNER JOIN BONUS b ON bpd.BONUSID = b.BONUSID
inner join Employee e on bpd.EMPLOYEEID = e.EmployeeId
LEFT JOIN BONUSPROCESS bp ON bpd.BONUSPROCESSID = bp.BONUSPROCESSID
WHERE bp.BONUSMONTH=%d AND bpd.EMPLOYEEID IN (%q)
AND bp.ISDISBURSEWITHSALARY = %n AND bp.PAYROLLTYPEID = %n
GROUP BY e.EMPLOYEEID,e.EmployeeNo,bpd.BONUSID,b.NAME
ORDER BY e.EmployeeNo", dSalarymonth, sEmpID, false, payrollTypeId);
tempdataset = tc.ExecuteDataSet(sSQL);
tempdataset.Tables[0].TableName = "EmpWiseBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmployeesPFNew(TransactionContext tc, DateTime Fromdate, DateTime Todate, string sEmpIDs)
{
DataSet rootDataset = new DataSet();
DataSet tempdataset = new DataSet();
string sTranType = Convert.ToString((int)EnumPFTranType.PFAmount) + "," + Convert.ToString((int)EnumPFTranType.CPFAmount);
try
{
// string sqlPFexception = SQLParser.MakeSQL(@"SELECT t.[Name],t.EmployeeNo,t.JOININGDATE, t.Designation,t.Department, t.TotalGross GrossSalary,ROUND (SUM(t.EPF),0)as EPF, Round(SUM(t.CPF),0) CPF, t.BIRTHDATE
// FROM
// (
// SELECT e.EmployeeNo,e.Name,e.JOININGDATE,e.BIRTHDATE, D.NAME Designation,Dep.DESCRIPTION Department,
// NVL(sm.THISMONTHBASIC,0) THISMONTHBASIC,
// NVL(sm.ThisMonthBasic,0) TotalGross,
// CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END EPF,
// CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END CPF,
//
// CC.DESCRIPTION CostCenter
// FROM PFTRANSACTION pt
// LEFT JOIN Employee e ON pt.EMPLOYEEID = e.EMPLOYEEID AND pt.TRANDATE BETWEEN %d AND %d
// LEFT JOIN DESIGNATION D ON e.DESIGNATIONID = D.DESIGNATIONID
// LEFT JOIN DEPARTMENT Dep ON e.DEPARTMENTID = Dep.DEPARTMENTID
// LEFT JOIN EMPCOSTCENTER cmpcc ON e.EMPLOYEEID=cmpcc.EMPLOYEEID AND cmpcc.CurrentCC=1
// INNER JOIN CRG CC ON cmpcc.CostCenterID = CC.CRGID
// LEFT JOIN SALARYMONTHLY sm ON sm.EMPLOYEEID = e.EMPLOYEEID AND sm.SalaryMonth = %d
// Left JOIN SALARYMONTHLYDETAIL smd ON sm.SALARYMONTHLYID = smd.SALARYMONTHLYID AND smd.ITEMGROUP IN(1,8)
//
// )t
// GROUP BY t.EmployeeNo, t.[Name], t.THISMONTHBASIC, t.TotalGross, t.CostCenter,
// t.JOININGDATE,t.Designation,t.Department,t.BirthDate", (int)EnumPFTranType.PFAmount, (int)EnumPFTranType.CPFAmount, Fromdate, Todate, Todate);
string sqlPfException = "";
if (sEmpIDs == "")
{
sqlPfException = SQLParser.MakeSQL(@" SELECT t.Name,t.EmployeeNo,t.JOININGDATE, t.Designation,t.Department, t.TotalGross GrossSalary,ROUND (SUM(t.EPF),0)as EPF, Round(SUM(t.CPF),0) CPF, t.BIRTHDATE
FROM
(SELECT e.EmployeeNo,e.Name,e.BIRTHDATE, e.JOININGDATE, D.NAME Designation,Dept.DESCRIPTION Department,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END EPF,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END CPF,
ISNULL(s.THISMONTHBASIC,0) THISMONTHBASIC,
ISNULL(s.ThisMonthBasic,0) TotalGross
FROM SALARYMONTHLY s
INNER JOIN EMPLOYEE e ON e.EMPLOYEEID= s.EMPLOYEEID
INNER JOIN DESIGNATION d ON d.DESIGNATIONID= e.DESIGNATIONID
INNER JOIN DEPARTMENT dept ON e.DEPARTMENTID = dept.DEPARTMENTID
INNER JOIN EmpLifeCycle elc ON elc.EmployeeID=e.EMPLOYEEID
INNER JOIN EMPCOSTCENTER cmpcc ON e.EMPLOYEEID=cmpcc.EMPLOYEEID AND cmpcc.CurrentCC=1
INNER JOIN CRG CC ON cmpcc.CostCenterID = CC.CRGID
INNER JOIN SALARYMONTHLYDETAIL smd ON s.SALARYMONTHLYID = smd.SALARYMONTHLYID AND smd.ITEMGROUP IN(1,8)
LEFT JOIN PFTRANSACTION pt ON pt.EMPLOYEEID=e.EMPLOYEEID
WHERE s.SalaryMonth=%d AND elc.IsConfirm=1 AND elc.EffectDate BETWEEN %d AND %d)t
GROUP BY t.EmployeeNo, t.Name, t.THISMONTHBASIC, t.TotalGross, t.JOININGDATE,t.Designation,t.Department,t.BirthDate", (int)EnumPFTranType.PFAmount, (int)EnumPFTranType.CPFAmount,PayrollGlobalFunctions.PayrollLastDateOfMonth(Fromdate), Fromdate, Todate);
tempdataset = tc.ExecuteDataSet(sqlPfException);
tempdataset.Tables[0].TableName = "PFandConfirmation";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
else
{
string sTableName;
sEmpIDs = IDHelper.GetIDs(tc, sEmpIDs, out sTableName);
sqlPfException = SQLParser.MakeSQL(@" SELECT t.Name,t.EmployeeNo,t.JOININGDATE, t.Designation,t.Department, t.TotalGross GrossSalary,ROUND (SUM(t.EPF),0)as EPF, Round(SUM(t.CPF),0) CPF, t.BIRTHDATE
FROM
(SELECT e.EmployeeNo,e.Name,e.BIRTHDATE, e.JOININGDATE, D.NAME Designation,Dept.DESCRIPTION Department,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END EPF,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END CPF,
NVL(s.THISMONTHBASIC,0) THISMONTHBASIC,
NVL(s.ThisMonthBasic,0) TotalGross
FROM SALARYMONTHLY s
INNER JOIN EMPLOYEE e ON e.EMPLOYEEID= s.EMPLOYEEID
INNER JOIN DESIGNATION d ON d.DESIGNATIONID= e.DESIGNATIONID
INNER JOIN DEPARTMENT dept ON e.DEPARTMENTID = dept.DEPARTMENTID
INNER JOIN EmpLifeCycle elc ON elc.EmployeeID=e.EMPLOYEEID
INNER JOIN EMPCOSTCENTER cmpcc ON e.EMPLOYEEID=cmpcc.EMPLOYEEID AND cmpcc.CurrentCC=1
INNER JOIN CRG CC ON cmpcc.CostCenterID = CC.CRGID
INNER JOIN SALARYMONTHLYDETAIL smd ON s.SALARYMONTHLYID = smd.SALARYMONTHLYID AND smd.ITEMGROUP IN(1,8)
LEFT JOIN PFTRANSACTION pt ON pt.EMPLOYEEID=e.EMPLOYEEID
WHERE s.SalaryMonth=%d AND elc.IsConfirm=1 AND elc.EffectDate BETWEEN %d AND %d AND e.EMPLOYEEID IN (%q) )t
GROUP BY t.EmployeeNo, t.Name, t.THISMONTHBASIC, t.TotalGross, t.JOININGDATE,t.Designation,t.Department,t.BirthDate", (int)EnumPFTranType.PFAmount, (int)EnumPFTranType.CPFAmount, Todate, Fromdate, Todate, sEmpIDs);
tempdataset = tc.ExecuteDataSet(sqlPfException);
tempdataset.Tables[0].TableName = "PFandConfirmation";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpCostCenter(TransactionContext tc, string sEmpID)
{
DataSet OPIDset = new DataSet();
string query = SQLParser.MakeSQL(@"SELECT emp.EMPLOYEEID,cc.CRGID,cc.[DESCRIPTION] CostCenter
FROM EMPLOYEE EMp
LEFT JOIN EMPCOSTCENTER ecc ON (emp.EMPLOYEEID = ecc.EMPLOYEEID AND ecc.CurrentCC=1)
LEFT JOIN CRG cc ON ecc.COSTCENTERID = cc.CRGID
WHERE emp.EMPLOYEEID IN(%q)", sEmpID);
OPIDset = tc.ExecuteDataSet(query);
return OPIDset;
}
internal static DataSet GetPerquisiteData(TransactionContext tc, DateTime dSStartMonthDate, DateTime dSEndMonthDate, string sEmpID, int payrollTypeId)
{
DataSet rootDataset = new DataSet();
DataSet tempdataset = new DataSet();
try
{
string sSQL = SQLParser.MakeSQL(@"
select e.EMPLOYEEID,e.EmployeeNo,sd.ITEMGROUP,sd.ITEMCODE,sd.ITEMID,sd.Description,SUM(sd.changedamount) Amount
from SALARYMONTHLYDETAIL sd,SALARYMONTHLY S ,Employee e
Where sd.SALARYMONTHLYID=S.SALARYMONTHLYID And S.EmployeeID = e.EmployeeId
AND S.SalaryMonth between %d and %d and sd.ITEMGROUP in(1,8)
AND sd.ItemCode not in(-102) AND S.EmployeeID IN(%q)
group by e.EMPLOYEEID,e.EmployeeNo,sd.ITEMGROUP,sd.ITEMCODE,sd.ITEMID,sd.DESCRIPTION
ORDER BY e.EmployeeNo ",
dSStartMonthDate, dSEndMonthDate, sEmpID, payrollTypeId, sEmpID);
tempdataset = tc.ExecuteDataSet(sSQL);
tempdataset.Tables[0].TableName = "EmpWiseSalary";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
sSQL = SQLParser.MakeSQL(@"
select e.EMPLOYEEID,e.EmployeeNo,sd.ITEMGROUP,sd.ITEMCODE,sd.ITEMID,sd.Description,SUM(sd.changedamount) Amount
from SALARYMONTHLYDETAIL sd,SALARYMONTHLY S ,Employee e
Where sd.SALARYMONTHLYID = S.SALARYMONTHLYID And S.EmployeeID = e.EmployeeId
AND S.SalaryMonth between %d and %d and sd.ITEMGROUP in(3)
AND sd.ItemCode in(-128) AND S.EmployeeID IN (%q)
group by e.EMPLOYEEID,e.EmployeeNo,sd.ITEMGROUP,sd.ITEMCODE,sd.ITEMID,sd.DESCRIPTION
ORDER BY e.EmployeeNo ",
dSStartMonthDate, dSEndMonthDate, sEmpID, payrollTypeId, sEmpID);
tempdataset = tc.ExecuteDataSet(sSQL);
tempdataset.Tables[0].TableName = "EmpWisePF";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
sSQL = SQLParser.MakeSQL(@"SELECT e.EMPLOYEEID,e.EmployeeNo,bpd.BONUSID,b.NAME Description,Sum(bpd.CHANGEBONUSAMOUNT) Amount
FROM BONUSPROCESSDETAIL bpd
INNER JOIN BONUS b ON bpd.BONUSID = b.BONUSID
inner join Employee e on bpd.EMPLOYEEID = e.EmployeeId
LEFT JOIN BONUSPROCESS bp ON bpd.BONUSPROCESSID = bp.BONUSPROCESSID
WHERE bp.BONUSMONTH BETWEEN %d and %d AND bpd.EMPLOYEEID IN (%q)
AND bp.ISDISBURSEWITHSALARY = %n
GROUP BY e.EMPLOYEEID,e.EmployeeNo,bpd.BONUSID,b.NAME
ORDER BY e.EmployeeNo",
dSStartMonthDate, dSEndMonthDate, sEmpID, false, payrollTypeId);
tempdataset = tc.ExecuteDataSet(sSQL);
tempdataset.Tables[0].TableName = "EmpWiseBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
/* internal static IDataReader GetByGlobalID(TransactionContext tc, string GPDPID)
{
var sql = SQLParser.MakeSQL(@"Select EmployeeID From Employee Where GlobalID = %s", GPDPID);
return tc.ExecuteReader(sql);
}
internal static DataSet GetEmpGrossPay(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var queryGross = SQLParser.MakeSQL(
@"select E.EmployeeNo, E.Name,Sum(A.amount) GrossAmount,a.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID
from( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID from SALARYMONTHLY S, SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (1, 8) AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID
UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID 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,S.LOCATIONID) A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo, E.Name,a.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryGross);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var queryTotalDeduction = SQLParser.MakeSQL(
@"select E.EmployeeNo, E.Name, Sum(A.amount) DeductionAmount,A.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID
from ( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID from SALARYMONTHLY S,SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d and Sd.ItemGroup IN (2,3)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID)A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo, E.Name,A.LOCATIONID,E.DESIGNATIONID, E.DEPARTMENTID ", dSMonthDate,
sEmpID);
tempdataset = tc.ExecuteDataSet(queryTotalDeduction);
tempdataset.Tables[0].TableName = "TotalDeduction";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetTotalOPI(TransactionContext tc, string oPIItem, DateTime _SalaryMonth, string sEmpID)
{
var oTotalOPI = new DataSet();
var sQuary = SQLParser.MakeSQL("SELECT e.EmployeeNo,e.DEPARTMENTID, e.Name EmpName,"
+ " e.DESIGNATIONID,e.BRANCHID, Sum(opdi.NetAmount) OPIAmount"
+ " FROM Employee e, "
+ " OPIItem oi, OPIProcess op, OPIProcessDetail opd, OPIProcessDetailItem opdi "
+ " WHERE op.OPIMonth >= %d AND op.OPIMonth <= %d "
+ " AND e.EmployeeId IN(%q) AND op.OPIProcessID = opd.OPIProcessID"
+ " AND e.EmployeeId = opd.EmployeeId AND opd.OPIProcessDetailId = opdi.OPIProcessDetailId"
+ " AND oi.OPIItemId = opdi.OPIItemId "
+ " GROUP BY e.EmployeeId, e.EmployeeNo, e.Name,e.DEPARTMENTID,e.DESIGNATIONID,"
+ " e.BRANCHID ORDER BY e.EmployeeNo",
PayrollGlobalFunctions.PayrollFirstDateOfMonth(_SalaryMonth),
PayrollGlobalFunctions.PayrollLastDateOfMonth(_SalaryMonth), sEmpID, oPIItem);
oTotalOPI = tc.ExecuteDataSet(sQuary);
return oTotalOPI;
}
internal static DataSet GetEmpDeduction(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var deductItem = SQLParser.MakeSQL(
"select A.EmployeeNo,A.CIFNo, A.Name,A.GName,A.GCode,A.SequenceNo,A.DName,A.Description, "
+ " SUM(A.changedamount) Amount,A.Department,A.Branch,A.DEPARTMENTID,A.ITEMCODE,A.ITEMGROUP,A.ITEMID "
+ " from ("
+ " select S.EmployeeID, E.EmployeeNo, E.Name,E.GLOBALID CIFNo, "
+ " sd.ItemGroup,sd.ItemCode, sd.ItemID, sd.Description,sd.Position, "
+ " sd.changedamount,G.DESCRIPTION GName,G.Code GCode,G.SequenceNo,D.Name DName ,"
+ " DE.DESCRIPTION Department,L.DESCRIPTION Branch,DE.DEPARTMENTID"
+ " from Grades G,DESIGNATION D,Employee E, SALARYMONTHLY S, SalaryMonthlyDetail Sd,DEPARTMENT DE,"
+ " LOCATION L "
+ " where G.GradeID= E.GradeID AND D.DESIGNATIONID=E.DESIGNATIONID "
+ " AND E.employeeID=S.EmployeeID AND S.SalaryMonthlyID=Sd.SalaryMonthlyID "
+ " AND S.SalaryMonth=%d and Sd.ItemGroup=3 "
+ " AND L.LOCATIONID=S.LOCATIONID and DE.DEPARTMENTID=S.DEPARTMENTID"
+ " AND S.EmployeeID IN(%q) "
+ " union "
+ " select S.EmployeeID, E.EmployeeNo, E.Name, sd.ItemGroup,sd.ItemCode,E.GLOBALID CIFNo, "
+ " sd.ItemID, sd.Description,sd.Position, -sd.changedamount,G.DESCRIPTION GName,"
+ " G.Code GCode,G.sequenceNo,D.Name DName,DE.DESCRIPTION Department,L.DESCRIPTION Branch,DE.DEPARTMENTID "
+ " from Grades G,DESIGNATION D,Employee E, "
+ " SALARYMONTHLY S, SalaryMonthlyDetail Sd,DEPARTMENT DE,LOCATION L "
+ " where G.GradeID= E.GradeID "
+ " AND D.DESIGNATIONID=E.DESIGNATIONID AND E.employeeID=S.EmployeeID "
+ " AND DE.DEPARTMENTID=S.DEPARTMENTID AND L.LOCATIONID=S.LOCATIONID "
+ " AND S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d"
+ " and Sd.ItemGroup=2 AND S.EmployeeID IN(%q) "
+ " ) A "
+ " group by A.EmployeeID, A.EmployeeNo, A.Name,A.GName,A.SequenceNo,A.GCode,A.CIFNo,"
+ " A.DName, A.ItemCode, A.ItemID,A.ITEMGROUP, A.Description,A.Position ,A.Department,A.Branch,A.DEPARTMENTID "
+ " order by A.EmployeeNo", dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(deductItem);
tempdataset.Tables[0].TableName = "DeductItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var query6 = SQLParser.MakeSQL(
"select E.EmployeeNo, E.Name,A.GName,A.GCode,A.SequenceNo,A.DName,A.Department,"
+ " 'Total Deduction' Description, Sum(A.amount) amount,A.Branch,A.DEPARTMENTID "
+ " ,E.GLOBALID CIFNo from"
+ " ( select S.EmployeeID, Sum(sd.changedamount) Amount,G.DESCRIPTION GName,"
+ " G.Code GCode,G.SequenceNo,D.Name DName,DE.DEPARTMENTID,"
+ " DE.DESCRIPTION Department,L.DESCRIPTION Branch "
+ " from DEPARTMENT DE,LOCATION L,"
+ " GRADES G,DESIGNATION D,SALARYMONTHLY S,SalaryMonthlyDetail Sd"
+ " where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d"
+ " AND S.DEPARTMENTID=DE.DEPARTMENTID AND S.LOCATIONID = L.LOCATIONID"
+ " AND G.GRADEID=S.GRADEID AND D.DESIGNATIONID=S.DESIGNATIONID "
+ " and Sd.ItemGroup IN (2,3) AND S.EmployeeID IN(%q)"
+ " group by S.EmployeeID,G.DESCRIPTION,G.SequenceNo,G.Code,D.Name,DE.DESCRIPTION,"
+ " L.DESCRIPTION,DE.DEPARTMENTID ) A, Employee E "
+ " where A.EmployeeID = E.EmployeeID "
+ " group by E.EmployeeNo, E.Name,A.GName,A.SequenceNo,A.GCode,A.DName ,A.Department,"
+ " A.Branch,A.DEPARTMENTID,E.GLOBALID order by E.EmployeeNo", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(query6);
tempdataset.Tables[0].TableName = "TotalDeduction";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetBranchWiseSalary(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var queryGross = SQLParser.MakeSQL(@"Select Sum(A.amount) GrossAmount,E.DEPARTMENTID ,
A.LOCATIONID from( select S.EmployeeID,Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (1, 8)
AND S.EmployeeID IN(%q)
group by S.EmployeeID,S.LOCATIONID UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID
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,S.LOCATIONID) A, Employee E where A.EmployeeID = E.EmployeeID
group by A.LOCATIONID,E.DEPARTMENTID
order by A.LocationID,E.DEPARTMENTID",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryGross);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sFestiveBonus = SQLParser.MakeSQL(@"Select Sum(A.amount) FestivalBonus, E.DEPARTMENTID,
A.LOCATIONID from( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (1, 8) and ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q)
group by S.EmployeeID,S.LOCATIONID UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S,SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (2) AND ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q)
group by S.EmployeeID,S.LOCATIONID) A, Employee E where A.EmployeeID = E.EmployeeID
group by A.LOCATIONID,E.DEPARTMENTID
order by A.LOCATIONID,E.DEPARTMENTID",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(sFestiveBonus);
tempdataset.Tables[0].TableName = "FestivalBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sPerformanceBonus = SQLParser.MakeSQL(@"Select Sum(A.amount) PerformBonus,E.DEPARTMENTID,
A.LOCATIONID from( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (1, 8) and ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID
UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S,SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (2) AND ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q)
group by S.EmployeeID,S.LOCATIONID) A, Employee E where A.EmployeeID = E.EmployeeID
group by A.LOCATIONID,E.DEPARTMENTID
order by A.LOCATIONID,E.DEPARTMENTID",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(sPerformanceBonus);
tempdataset.Tables[0].TableName = "PerformanceBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var queryTotalDeduction = SQLParser.MakeSQL(@"select A.LOCATIONID, Sum(A.amount) DeductionAmount,
E.DEPARTMENTID from ( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S,SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (2,3)
AND S.EmployeeID IN(%q)
group by S.EmployeeID,S.LOCATIONID)A, Employee E where A.EmployeeID = E.EmployeeID
group by A.LOCATIONID,E.DEPARTMENTID
order by A.LOCATIONID,E.DEPARTMENTID", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryTotalDeduction);
tempdataset.Tables[0].TableName = "TotalDeduction";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetCCWiseSalaryDetails(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var sSQL = SQLParser.MakeSQL(
@"select A.EmployeeNo, A.Name,A.GName,A.DName,A.GCode,A.CRGDes,A.SequenceNO,
A.Description, SUM(A.amonut) amount,A.PERCENTAGE,A.DEPARTMENTID,A.LocationID
from (select S.EmployeeID, E.EmployeeNo, E.Name, sd.ItemGroup,sd.ItemCode,
sd.ItemID, sd.Description,sd.Position, sd.changedamount*SEMCC.PERCENTAGE/100 amonut,
SEMCC.PERCENTAGE, G.DESCRIPTION GName,D.Name DName,G.Code GCode,G.SequenceNo,
E.DEPARTMENTID,E.LocationID, CC.DESCRIPTION CRGDes
from Grades G,CRG CC,SALARYEMPCOSTCENTER SEMCC , DESIGNATION D,Employee E,
SALARYMONTHLY S, SalaryMonthlyDetail Sd where G.GradeID= E.GradeID
AND S.EMPLOYEEID=SEMCC.EMPLOYEEID AND CC.CRGID=SEMCC.COSTCENTERID
AND D.DESIGNATIONID=E.DESIGNATIONID AND E.employeeID=S.EmployeeID
AND S.SalaryMonthlyID=Sd.SalaryMonthlyID AND SD.SALARYMONTHLYID=SEMCC.SALARYMONTHLYID
AND S.SalaryMonth=%d and Sd.ItemGroup in(8,4)
AND sd.ItemCode not in(-133) AND S.EmployeeID IN(%q)
union select S.EmployeeID, E.EmployeeNo, E.Name, sd.ItemGroup,sd.ItemCode, sd.ItemID,
sd.Description,sd.Position,sd.changedamount*SEMCC.PERCENTAGE/100 amonut,
SEMCC.PERCENTAGE, G.DESCRIPTION GName, D.Name DName,G.Code GCode,G.SequenceNo,
E.DEPARTMENTID,E.LocationID, CC.DESCRIPTION CRGDes
from Grades G,CRG CC,
SALARYEMPCOSTCENTER SEMCC, DESIGNATION D,Employee E, SALARYMONTHLY S,
SalaryMonthlyDetail Sd where G.GradeID= E.GradeID AND S.EMPLOYEEID=SEMCC.EMPLOYEEID
AND CC.CRGID=SEMCC.COSTCENTERID AND D.DESIGNATIONID=E.DESIGNATIONID
AND E.employeeID=S.EmployeeID AND SD.SALARYMONTHLYID=SEMCC.SALARYMONTHLYID
AND S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup in(1,4) AND sd.ItemCode not in(-133) AND S.EmployeeID
IN(%q) ) A
group by A.EmployeeID, A.EmployeeNo, A.Name,A.GName,A.DName,A.SequenceNo,A.GCode,
A.CRGDes, A.ItemCode, A.ItemID, A.Description,A.Position ,A.PERCENTAGE,A.DEPARTMENTID,
A.LocationID order by A.EmployeeNo,A.CRGDes,A.Position,A.SequenceNo,A.GCode",
dSMonthDate, sEmpID, dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(sSQL);
tempdataset.Tables[0].TableName = "GrossItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var queryGross = SQLParser.MakeSQL(
@"select E.EmployeeNo, E.Name,A.GName,A.GCode,A.SequenceNo,A.DName,'Gross Pay' Description,
Sum(A.amount) amount,A.CRGDes,A.PERCENTAGE,E.DEPARTMENTID,E.LocationID from
( select S.EmployeeID, Sum(sd.changedamount)*EMPC.PERCENTAGE/100 Amount,
G.DESCRIPTION GName,
G.Code GCode,G.SequenceNo,D.Name DName,CC.DESCRIPTION CRGDes,EMPC.PERCENTAGE
from SALARYMONTHLY S,Grades G,DESIGNATION D, SalaryMonthlyDetail Sd,
CRG CC,EMPCOSTCENTER EMPC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND G.GRADEID=S.GRADEID AND D.DESIGNATIONID=S.DESIGNATIONID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (1, 8) AND S.EmployeeID IN(%q)
And S.EMPLOYEEID=EMPC.EMPLOYEEID AND EMPC.COSTCENTERID=CC.CRGID
group by S.EmployeeID,G.DESCRIPTION,G.SequenceNo,G.Code,D.Name
,CC.DESCRIPTION ,EMPC.PERCENTAGE
UNION
select S.EmployeeID, -Sum(sd.changedamount)* EMPC.PERCENTAGE/100 Amount,G.DESCRIPTION GName,
G.Code GCode,G.sequenceNo,D.Name DName,CC.DESCRIPTION CRGDes,EMPC.PERCENTAGE
from GRADES G,DESIGNATION D,SALARYMONTHLY S, SalaryMonthlyDetail Sd,CRG CC,EMPCOSTCENTER EMPC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d AND G.GRADEID=S.GRADEID AND D.DESIGNATIONID=S.DESIGNATIONID
and Sd.ItemGroup IN (2) AND S.EmployeeID IN(%q)
And S.EMPLOYEEID=EMPC.EMPLOYEEID AND EMPC.COSTCENTERID=CC.CRGID
group by S.EmployeeID,G.DESCRIPTION,G.SequenceNo,G.Code,D.Name,CC.DESCRIPTION,EMPC.PERCENTAGE
) A, Employee E where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo, E.Name,A.GName,A.SequenceNo,A.GCode,A.DName,A.CRGDes,A.PERCENTAGE,E.DEPARTMENTID,E.LocationID
order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryGross);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetDividionWiseReport(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var queryGross = SQLParser.MakeSQL(@"Select E.EMPLOYEEID,E.EmployeeNo, E.Name,Sum(A.amount)
GrossAmount,A.LocationID,E.BRANCHID,E.DESIGNATIONID,
E.DEPARTMENTID from( select S.EmployeeID,Sum(sd.changedamount) Amount,S.LOCATIONID from SALARYMONTHLY S,
SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (1, 8) AND S.EmployeeID IN(%q)
group by S.EmployeeID,S.LOCATIONID UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID
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,S.LOCATIONID) A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EMPLOYEEID,E.EmployeeNo, E.Name,A.LocationID,E.BRANCHID,
E.DESIGNATIONID,E.DEPARTMENTID order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryGross);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sFestiveBonus = SQLParser.MakeSQL(@"Select E.EmployeeNo, E.Name,Sum(A.amount) FestivalBonus,
A.LocationID , E.BRANCHID,E.DESIGNATIONID,
E.DEPARTMENTID from( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (1, 8) and ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID
UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID from SALARYMONTHLY S,SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (2) AND ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID ) A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,E.BRANCHID,E.DESIGNATIONID,
E.DEPARTMENTID,A.LocationID order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(sFestiveBonus);
tempdataset.Tables[0].TableName = "FestivalBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sPerformanceBonus = SQLParser.MakeSQL(@"Select E.EmployeeNo, E.Name,Sum(A.amount)
PerformBonus,A.LocationID , E.BRANCHID,E.DESIGNATIONID,
E.DEPARTMENTID from( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (1, 8) and ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID
UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID from SALARYMONTHLY S,SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (2) AND ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID ) A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,A.LocationID , E.BRANCHID,E.DESIGNATIONID,
E.DEPARTMENTID order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(sPerformanceBonus);
tempdataset.Tables[0].TableName = "PerformanceBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var SCoPFContri = SQLParser.MakeSQL(@"Select E.EmployeeNo, E.Name,Sum(A.changedamount) CoPFContri,
A.LOCATIONID , E.BRANCHID,E.DESIGNATIONID,
E.DEPARTMENTID from( select S.EmployeeID,sd.changedamount,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup=3
AND S.EmployeeID IN(%q) AND sd.ITEMCODE in(-128)
) A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo, E.Name,A.LocationID , E.BRANCHID,E.DESIGNATIONID,
E.DEPARTMENTID
order by E.EmployeeNo",
dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(SCoPFContri);
tempdataset.Tables[0].TableName = "CoPFContribution";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var queryTotalDeduction = SQLParser.MakeSQL(@"select E.EmployeeNo, E.Name,
Sum(A.amount) DeductionAmount,A.LocationID ,E.BRANCHID,E.DESIGNATIONID,
E.DEPARTMENTID from ( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S,SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (2,3)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID)A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,A.LocationID ,E.BRANCHID,E.DESIGNATIONID ,
E.DEPARTMENTID order by E.EmployeeNo ", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryTotalDeduction);
tempdataset.Tables[0].TableName = "TotalDeduction";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetCTCDetail(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var queryGross = SQLParser.MakeSQL(
@"select E.EmployeeID, E.EmployeeNo,E.GLOBALID CIFNo, E.Name,A.GName,A.GCode,A.SequenceNo,
E.DESIGNATIONID,'GrossPay' Description,
Sum(A.amount) amount,A.CRGDes,A.PERCENTAGE,E.DEPARTMENTID,A.LOCATIONID from
( select S.EmployeeID, Sum(sd.changedamount)*EMPC.PERCENTAGE/100 Amount,S.LOCATIONID,
G.DESCRIPTION GName,
G.Code GCode,G.SequenceNo,D.Name DName,CC.DESCRIPTION CRGDes,EMPC.PERCENTAGE
from SALARYMONTHLY S,Grades G,DESIGNATION D, SalaryMonthlyDetail Sd,
CRG CC,EMPCOSTCENTER EMPC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND G.GRADEID=S.GRADEID AND D.DESIGNATIONID=S.DESIGNATIONID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (1, 8) AND S.EmployeeID IN(%q)
And S.EMPLOYEEID=EMPC.EMPLOYEEID AND EMPC.COSTCENTERID=CC.CRGID
group by S.EmployeeID,G.DESCRIPTION,G.SequenceNo,G.Code,D.Name
,CC.DESCRIPTION ,EMPC.PERCENTAGE,S.LOCATIONID
UNION
select S.EmployeeID, -Sum(sd.changedamount)* EMPC.PERCENTAGE/100 Amount,S.LOCATIONID,G.DESCRIPTION GName,
G.Code GCode,G.sequenceNo,D.Name DName,CC.DESCRIPTION CRGDes,EMPC.PERCENTAGE
from GRADES G,DESIGNATION D,SALARYMONTHLY S, SalaryMonthlyDetail Sd,CRG CC,EMPCOSTCENTER EMPC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d AND G.GRADEID=S.GRADEID AND D.DESIGNATIONID=S.DESIGNATIONID
and Sd.ItemGroup IN (2) AND S.EmployeeID IN(%q)
And S.EMPLOYEEID=EMPC.EMPLOYEEID AND EMPC.COSTCENTERID=CC.CRGID
group by S.EmployeeID,G.DESCRIPTION,G.SequenceNo,G.Code,D.Name,CC.DESCRIPTION,EMPC.PERCENTAGE,S.LOCATIONID
) A, Employee E where A.EmployeeID = E.EmployeeID
group by E.EmployeeID,E.EmployeeNo, E.Name,A.GName,A.SequenceNo,A.GCode,E.DESIGNATIONID,A.CRGDes,A.LOCATIONID,
A.PERCENTAGE,E.DEPARTMENTID,E.GLOBALID order by E.EmployeeNo", dSMonthDate, sEmpID, dSMonthDate,
sEmpID);
tempdataset = tc.ExecuteDataSet(queryGross);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sFestiveBonus = SQLParser.MakeSQL(
@"Select E.EmployeeNo, E.Name,Sum(A.amount) FestivalBonus,A.LOCATIONID, E.BRANCHID,E.DESIGNATIONID, E.DEPARTMENTID
from( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID from SALARYMONTHLY S, SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (1, 8) and ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID
UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID from SALARYMONTHLY S,SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (2) AND ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID) A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,A.LOCATIONID, E.BRANCHID,E.DESIGNATIONID,E.DEPARTMENTID order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(sFestiveBonus);
tempdataset.Tables[0].TableName = "FestivalBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sPerformanceBonus = SQLParser.MakeSQL(
@"Select E.EmployeeNo, E.Name,Sum(A.amount) PerformBonus,A.LOCATIONID,E.DESIGNATIONID, E.DEPARTMENTID
from( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (1, 8) and ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID
UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,S.LOCATIONID from SALARYMONTHLY S,SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (2) AND ITEMID in (4) AND ITEMCODE in(-113)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID) A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,A.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(sPerformanceBonus);
tempdataset.Tables[0].TableName = "PerformanceBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var SCoPFContri = SQLParser.MakeSQL(
@"Select E.EmployeeNo, E.Name,Sum(A.amount) CoPFContri,A.LOCATIONID,E.DESIGNATIONID,
E.DEPARTMENTID from( select S.EmployeeID,
Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (3) AND S.EmployeeID IN(%q) AND Sd.ITEMCODE in(-128)
group by S.EmployeeID,S.LOCATIONID
) A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo, E.Name,A.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(SCoPFContri);
tempdataset.Tables[0].TableName = "CoPFContribution";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var queryTotalDeduction = SQLParser.MakeSQL(@"select E.EmployeeNo, E.Name, Sum(A.amount)
DeductionAmount,A.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID
from ( select S.EmployeeID, Sum(sd.changedamount) Amount,S.LOCATIONID
from SALARYMONTHLY S,SalaryMonthlyDetail Sd where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (2,3)
AND S.EmployeeID IN(%q) group by S.EmployeeID,S.LOCATIONID)A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo, E.Name,A.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID order by E.EmployeeNo",
dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryTotalDeduction);
tempdataset.Tables[0].TableName = "TotalDeduction";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetIncrement(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var queryGross = SQLParser.MakeSQL(
@"Select distinct E.EMPLOYEEID,E.EmployeeNo, E.Name,Sum(A.amount) GrossAmount,A.LOCATIONID,
E.DESIGNATIONID, E.DEPARTMENTID,A.CRGDes,A.CRGID,A.PERCENTAGE
from( select S.EmployeeID,Sum(sd.changedamount)*SEMPCC.PERCENTAGE/100 amount,
CC.DESCRIPTION CRGDes,CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd,SALARYEMPCOSTCENTER SEMPCC,CRG CC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d and Sd.ItemGroup IN (1, 8)
And S.EMPLOYEEID=SEMPCC.EMPLOYEEID AND CC.CRGID=SEMPCC.COSTCENTERID
AND S.EmployeeID IN(%q)
group by S.EmployeeID,CC.DESCRIPTION,CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID
UNION select S.EmployeeID, -Sum(sd.changedamount)*SEMPCC.PERCENTAGE/100 amount,CC.DESCRIPTION CRGDes,CC.CRGID,
SEMPCC.PERCENTAGE,S.LOCATIONID from SALARYMONTHLY S,SalaryMonthlyDetail Sd,SALARYEMPCOSTCENTER SEMPCC,CRG CC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d and Sd.ItemGroup IN (2)
And S.EMPLOYEEID=SEMPCC.EMPLOYEEID AND CC.CRGID=SEMPCC.COSTCENTERID
AND S.EmployeeID IN(%q)
group by S.EmployeeID,CC.DESCRIPTION,CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID) A,
Employee E where A.EmployeeID = E.EmployeeID
group by E.EMPLOYEEID,E.EmployeeNo, E.Name,A.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID,
A.CRGDes,A.PERCENTAGE,A.CRGID order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryGross);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var queryBasic = SQLParser.MakeSQL(@"Select E.EMPLOYEEID,E.EmployeeNo, E.Name,A.amount BasicAmount,
A.LOCATIONID,E.DESIGNATIONID, E.DEPARTMENTID ,A.CRGDes,A.CRGID,A.PERCENTAGE
from( select S.EmployeeID,Sum(sd.changedamount)*SEMPCC.PERCENTAGE/100 Amount,CC.DESCRIPTION CRGDes,CC.CRGID ,
SEMPCC.PERCENTAGE,S.LOCATIONID from SALARYMONTHLY S, SalaryMonthlyDetail Sd ,SALARYEMPCOSTCENTER SEMPCC,CRG CC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (1, 8) and ITEMID in (-101) And S.EMPLOYEEID=SEMPCC.EMPLOYEEID
AND CC.CRGID=SEMPCC.COSTCENTERID AND S.EmployeeID IN(%q)
group by S.EmployeeID, CC.DESCRIPTION,CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID UNION select S.EmployeeID,
-Sum(sd.changedamount)*SEMPCC.PERCENTAGE/100 amount,CC.DESCRIPTION CRGDes,CC.CRGID,
SEMPCC.PERCENTAGE,S.LOCATIONID from SALARYMONTHLY S,SalaryMonthlyDetail Sd ,SALARYEMPCOSTCENTER SEMPCC,CRG CC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (2) AND ITEMID in (-101) AND S.EmployeeID IN(%q)
group by S.EmployeeID,CC.DESCRIPTION,CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID)A,
Employee E where A.EmployeeID = E.EmployeeID
group by E.EMPLOYEEID,E.EmployeeNo, E.Name,A.LOCATIONID,A.amount,
E.DESIGNATIONID,E.DEPARTMENTID ,A.CRGDes,A.PERCENTAGE,A.CRGID
order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(queryBasic);
tempdataset.Tables[0].TableName = "Basic";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sFestiveBonus = SQLParser.MakeSQL(@" Select E.EmployeeNo, E.Name,Sum(A.amount) FestivalBonus,
A.LOCATIONID,E.DESIGNATIONID, E.DEPARTMENTID,A.CRGDes,A.CRGID,A.PERCENTAGE
from( select S.EmployeeID, Sum(sd.changedamount)*SEMPCC.PERCENTAGE/100 Amount,CC.DESCRIPTION CRGDes,CC.CRGID,
SEMPCC.PERCENTAGE,S.LOCATIONID from SALARYMONTHLY S, SalaryMonthlyDetail Sd ,SALARYEMPCOSTCENTER SEMPCC,CRG CC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d and Sd.ItemGroup IN (1, 8)
and ITEMID in (4) AND ITEMCODE in(-113) And S.EMPLOYEEID=SEMPCC.EMPLOYEEID AND CC.CRGID=SEMPCC.COSTCENTERID
AND S.EmployeeID IN(%q)
group by S.EmployeeID,CC.DESCRIPTION,CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID UNION select S.EmployeeID,
-Sum(sd.changedamount)*SEMPCC.PERCENTAGE/100 Amount,CC.DESCRIPTION CRGDes,CC.CRGID,SEMPCC.PERCENTAGE
,S.LOCATIONID from SALARYMONTHLY S,SalaryMonthlyDetail Sd,SALARYEMPCOSTCENTER SEMPCC,CRG CC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth=%d and Sd.ItemGroup IN (2) AND ITEMID in (4) AND ITEMCODE in(-113)
And S.EMPLOYEEID=SEMPCC.EMPLOYEEID AND CC.CRGID=SEMPCC.COSTCENTERID
AND S.EmployeeID IN(%q)
group by S.EmployeeID,CC.DESCRIPTION,CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID ) A, Employee E where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,
A.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID,A.CRGDes,A.PERCENTAGE,A.CRGID
order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(sFestiveBonus);
tempdataset.Tables[0].TableName = "FestivalBonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var SCoPFContri = SQLParser.MakeSQL(
@" Select E.EmployeeNo, E.Name,Sum(A.amount) CoPFContri,A.LOCATIONID,E.DESIGNATIONID,
E.DEPARTMENTID,A.CRGDes,A.CRGID,A.PERCENTAGE from( select S.EmployeeID,
Sum(sd.changedamount)*SEMPCC.PERCENTAGE/100 Amount,CC.DESCRIPTION CRGDes,
CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID
from SALARYMONTHLY S, SalaryMonthlyDetail Sd,SALARYEMPCOSTCENTER SEMPCC,CRG CC
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth=%d
and Sd.ItemGroup IN (3) And S.EMPLOYEEID=SEMPCC.EMPLOYEEID AND CC.CRGID=SEMPCC.COSTCENTERID
AND S.EmployeeID IN(%q)
group by S.EmployeeID,CC.DESCRIPTION,CC.CRGID,SEMPCC.PERCENTAGE,S.LOCATIONID
) A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo, E.Name,A.LOCATIONID,E.DESIGNATIONID,E.DEPARTMENTID,
A.CRGDes,A.PERCENTAGE,A.CRGID order by E.EmployeeNo",
dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(SCoPFContri);
tempdataset.Tables[0].TableName = "CoPFContribution";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetADHeadReport(TransactionContext tc, DateTime dSMonthDate, string checkItem,
string itemcode)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var sAllowanceDeduct = SQLParser.MakeSQL(
"select S.EMPLOYEEID,S.LOCATIONID,Sd.DESCRIPTION,Sum(Sd.CHANGEDAMOUNT) Amount"
+ " from SALARYMONTHLY S,SALARYMONTHLYDETAIL Sd"
+ " where S.SALARYMONTHLYID=SD.SALARYMONTHLYID AND S.SalaryMonth=%d %q) %q)"
+ " group by S.EMPLOYEEID,S.LOCATIONID,Sd.DESCRIPTION",
dSMonthDate, checkItem, itemcode);
tempdataset = tc.ExecuteDataSet(sAllowanceDeduct);
tempdataset.Tables[0].TableName = "HeadAllowanceDeduct";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetGrandFatherData(TransactionContext tc, int payrollTypeID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var sGrandFatherData = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, e.NAME, dep.DESCRIPTION DEPARTMENT, deg.NAME DESIGNATION, g.CODE GRADE, e.JOININGDATE, bat.ALLOWANCE,
bat.BONUS, bat.GRATUITY, bat.LEAVE, bat.opi, bat.PENSION FROM BATBGRANDFATHERTAGING bat
LEFT JOIN EMPLOYEE e ON e.EMPLOYEEID= bat.EMPLOYEEID
LEFT JOIN GRADES g ON g.GRADEID= e.GRADEID
LEFT JOIN DEPARTMENT dep ON dep.DEPARTMENTID=e.DEPARTMENTID
LEFT JOIN DESIGNATION deg ON deg.DESIGNATIONID=e.DESIGNATIONID
WHERE e.PAYROLLTYPEID=%n ORDER BY e.EMPLOYEENO asc", payrollTypeID);
tempdataset = tc.ExecuteDataSet(sGrandFatherData);
tempdataset.Tables[0].TableName = "GrandFatherData";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpJoiningInsuranceData(TransactionContext tc, DateTime fromDate, DateTime toDate,
int payrollTypeID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var sInsuranceData = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, e.NAME, e.BIRTHDATE,e.JOININGDATE, D.Name Designation, g.Code Grade, g.InsuranceCoverage FROM EMPLOYEE e
LEFT JOIN Designation d ON d.DESIGNATIONID=e.DESIGNATIONID
Left Join Grades g ON g.GradeID=e.GradeID
WHERE e.JOININGDATE BETWEEN %d AND %d AND e.PayrollTypeID = %n",
fromDate, toDate, payrollTypeID);
tempdataset = tc.ExecuteDataSet(sInsuranceData);
tempdataset.Tables[0].TableName = "InsuranceData";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpPromotionInsuranceData(TransactionContext tc, DateTime fromDate, DateTime toDate,
int payrollTypeID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var sInsuranceData = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, e.NAME, e.BIRTHDATE,e.JOININGDATE, D.Name Designation, g.Code Grade, g.InsuranceCoverage FROM EMPLOYEE e
LEFT JOIN Designation d ON d.DESIGNATIONID=e.DESIGNATIONID
Left Join Grades g ON g.GradeID=e.GradeID
WHERE e.JOININGDATE BETWEEN %d AND %d AND e.PayrollTypeID = %n",
fromDate, toDate, payrollTypeID);
tempdataset = tc.ExecuteDataSet(sInsuranceData);
tempdataset.Tables[0].TableName = "InsuranceData";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpDisConInsuranceData(TransactionContext tc, DateTime fromDate, DateTime toDate,
int payrollTypeID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
try
{
var sInsuranceData = SQLParser.MakeSQL(
@"SELECT e.EMPLOYEENO, e.NAME, e.BIRTHDATE,elc.EFFECTDATE, D.Name Designation, g.Code Grade, g.InsuranceCoverage FROM EMPLIFECYCLE elc
Inner join Employee e on e.Employeeid=elc.EmployeeID
LEFT JOIN Designation d ON d.DESIGNATIONID=e.DESIGNATIONID
Left Join Grades g ON g.GradeID=e.GradeID
WHERE elc.EFFECTDATE BETWEEN %d AND %d and elc.Status = %n AND e.PayrolltypeID=%n",
fromDate, toDate, EnumEmployeeStatus.Discontinued, payrollTypeID);
tempdataset = tc.ExecuteDataSet(sInsuranceData);
tempdataset.Tables[0].TableName = "InsuranceData";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetOPIHeadReport(TransactionContext tc, DateTime dSMonthDate, string checkItem)
private ataSet root
private a
ase
= new
D
private a
ta
private ataSet temp
private a
ase
= new
D
private a
ta //string sOPI = SQLParser.MakeSQL("Select D.EmployeeID,D.LocationID,I.Description,(I.ChangeNetAmount)as Amount from OPIProce // + " OPIProcessDetail D, OPIProcessDetailItem I W // + " O.OPIMonth=%d AND I.OPIProcessDetailID=D.OPIProcessDet // + " AND O.OPIProcessID= D.OPIProcessI // + " ORDER BY D.OPIProcessDetailID, OPIItemID", dSMonthDate, checI
private stri
g
sOPI =
private SQ
L
private Parser.
M
akeSQL("Select D.EmployeeID,D.LocationID,I.Description,(I.ChangeNetAmount)as Amount,oi.Sequ
nc " from OPIProcess O, OPIProcessDetail D, OPIProcessDetailItem I,OpiIt
m " Where O.OPIMonth=%d AND I.OPIProcessDetailID=D.OPIProcessDet
il " AND O.OPIProcessID= D.OPIProcess
D " AND I.OPIItemID=oi.OpiI
em " ORDER BY D.OPIProcessDetailID, I.OPI
private I
emID", dSMo
private n
hDate, ch
private e
cI
private temp
a
as
private e
t = tc.Execute
private D
ataS
private e
ts
private temp
d
private ataset
.
T
a
private b
les[0].
private Ta
l
Name = "H
private ea root
D
ataset
.
Tab
l
es.Add(temp
d
private ataset
.
T
a
private b
les[
0
]
.
Co
catch (Ex
ep
private ti
th
ow
private new Ex
c
private ep
t
private ion(ex.
M
es
return
private root
Dataset;
}
internal static DataSet GetBranchWiseSalaryDetails(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
internal Data
et
internal ootDatas
t = new Dat
internal a
et();
DataSet =
internal new
ataSet();
try
internal stri
g
sSQ
=
internal SQLP
a
internal r
se
internal sele pt
internal edamou
t)
internal A
o
nt,
internal S.DEPA
R
TMENTID
,
S.LOCATIONID,
sd.ItemGroup,sd.ITEMCODE,
internal sd.ITEMID
from
internal SALARYMONTHLYDETAIL sd
internal inner join
internal SALARYMONTHLY S on sd.SALARYMONTHLYID=
internal S.SALARYMONTHLYID
where S.SalaryMonth= %
internal d and sd.ITEMGROUP in
internal (1, 2, 8)
AND
internal sd.ItemCode not in
internal (-133)
AND
internal S.EmployeeID IN(%q)
internal group by sd.DESCRIPTION,S.DEPARTMENTID,S.LOCATIONID,sd.ITEMCODE,sd.ITEMGROUP,
internal sd.ITEMID
order by S.LOCATIONID,S.DEPARTMENTID",
dSMonthDate, sEmpID);
internal et(sSQL);
Tables[0].
internal T
b
internal eN
a
me = "Branch";
internal set.Tables.
A
dd(tem
p
internal d
a
t
aset.Tabl
s
0].
internal Copy(
))
catch
(
Exc
e
internal ption ex)
{
ow on(ex
M
essage);
otDat
set
}
internal static DataSet GetTotalBranchWiseOPI(TransactionContext tc, string str, DateTime dSMonthDate,
string sEmpID)
internal DataSet root
ataset
=
internal new D
taSet();
internal D
ataSet tempdataset
=
internal n
w
internal Data
et(
)
try
{
= SQLPa
ser.MakeSQL
@
SE
ECT opd
.
D
EP d.LOCAT
ONID, oi.OPI
t
mId
me O op ount
F
ROM OPI
I
tem oi, OPIProcess op, OPIProcessDetail opd, OPIProcessDetailItem opdi
WHERE op.OPIMonth >= %d AND op.OPIMonth <=%d
AND opd.EmployeeId IN(%
q)
AND op.OPIProcessID = opd.OPIProcessID
AND opd.OPIProcessDetailId = opdi.OPIProcessDetailId AND oi.OPIItemId = opdi.OPIItemId
GROUP BY opd.LOCATIONID,opd.DEPARTMENTID, oi.OPIItemId, oi.Name
ORDER BY opd.LOCATIONID,opd.DEPARTMENTID",
PayrollGlobalFunctions.PayrollFirstDateOfMonth(dSMonthDate), PayrollGlobalFunctions.PayrollLastDateOfMonth(
dSMonthDate), sEmpI
D) tempdataset = tc.Exe
c
uteDataSet(sSQL);
t
e
pdataset.Tables[0].Tab
l
eName = "BranchOPI";
rootDa
t
as mpdataset.T
b
es
[
0].Copy());
atch(Excep
t
ion ex
)
{
eption(ex.M
e
ssage)
;
}
ret
u
r
n
r
}
internal static DataSet GetTotalOPIForBranch(TransactionContext tc, string oPIItem, DateTime _SalaryMonth,
string sEmpID)
{
Da t
s tr ng sQuary =
SQLParser.akeSQL(@"SELECT
pd.DEP
RTMENTI
,opd.LocationID,
Sum(o
di
.
etAmou
t) OPIA
m
unt FROM
OPIItem oi
,
OPIPro
ess op
, OPIProcess
P
Pro
essDeta
i
l
It RE op.
PIMont
= %d AND
o
p.OPIMo
n
th <= %d
AND opd.EmployeeId IN(%q)
AND op.OPIProcessID = opd.OPIProcessID
AND opd.OPIProcessDetailId = opdi.OPIProcessDetailId AND oi.OPIItemId = opdi.OPIItemId
GROUP BY opd.LocationID,opd.DEPARTMENTID
ORDER BY opd.LocationID,opd.DEPARTMENTID",
PayrollGlobalFunctions.PayrollFirstDateOfMonth(_SalaryMonth),
PayrollGlobalFunctions.PayrollLastDateOfMonth(_SalaryMonth), sEmpID, oPIItem);
oTotalOPI = tc.ExecuteDataSet(sQuary);
ret
ur
}
internal static DataSet GetBranchWiseEmpDeduction(TransactionContext tc, DateTime _SalaryMonth, string sEmpID)
{
Da
t
Set roo
t
Dt ataSet();
DataSet
tempda
t
ae Set();
try
{
tring s
QL = SQLParser.MakeSQL(@"
S
elect SMD.DESCRIPT
ON
,
UM(SMD.C
ANGEDAMOUNT)
mount
S ,SM.DEP
RTMENTID,SM
L
CAT
ONID,SM
D
.
IT MCODE
fr
m SALAR
Y
M
ON MD,S S whe
e SM
E
PLOYEEID
i
n(%q) A
N
D SMD.ITEMGROUP IN(3)
AND SM.SALARYMONTH=%d AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND SMD.CHANGEDAMOUNT<>0 GROUP by SMD.ITEMGROUP,SMD.ITEMID,SMD.ITEMCODE,
SMD.DESCRIPTION, SM.DEPARTMENTID,SM.LOCATIONID
order by SM.LOCATIONID,SM.DEPARTMENTID asc",
sEmpID, _SalaryMonth);
tempdataset = tc.ExecuteDataSet(sSQL);
tempdataset.Tables[0].TableName = "BranchDeduction";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
(Excep
t
on ex)
throw
n
w
E
xception(ex.Me
s
sage
)
;
re
t
urn ro
o
t
D
a
taset;
}
internal static DataSet GetCCWiseFinance(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
D
at ae Set()
Da
t
t
tr y
{
G QLP ar ser
Mak eS QL(@ "s elect
o,SUM(A.amount) Am
unt, A.
EPARTME
TID,
A.LOCATIONID,A
It
e
Group, A.
TEMCODE,A.I
T
MID, A.
RGID,A
.CostCenter
fro
(Select S.
O
ATI
NID, S.D
E
P
AR escript
on, (sd.CHAN
E
AMO
NT* EMPC
C
.PE )as mGroup
sd.ITEMCO
E
sd.ITEMID
,
CC.CRGI
D, CC.Description CostCenter
from SALARYMONTHLYDETAIL sd ,SALARYMONTHLY S, SALARYEMPCOSTCENTER EMPCC,CRG CC
Where sd.SALARYMONTHLYID = S.SALARYMONTHLYID
AND S.SALARYMONTHLYID = EMPCC.SALARYMONTHLYID
AND EMPCC.COSTCENTERID = CC.CRGID
AND S.SalaryMonth = %d and sd.ITEMGROUP in(1, 8)
AND sd.ItemCode not in(-133) AND S.EmployeeID IN(%
q))A
group by A.Description,A.DEPARTMENTID,A.LOCATIONID,A.ItemGroup,A.ITEMCODE,
A.ITEMID,A.CRGID,A.CostCenter
order by A.LOCATIONID,A.CRGID,A.DEPARTMENTID", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(GrossItem);
tempdataset.Tables[0].TableName = "GrossItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var DeductItem = SQLParser.MakeSQL(@"select A.Description,SUM(A.amount) Amount,A.DEPA
R
MENTID,
ItemGroup,A
I
EM
C
ODE,A.ITEMID,A
.
CRGID,A.C
o
st from
(Selec
t
S
.
LOCATIONI
,
.DEPARTMENT
ID (sd.CHANGED
A
MOUNT*
E
MPC
C
.PERCENTAGE
/
100)as
a
m
o
unt,
emGrou
,sd.ITEMCO
E
sd.ITEMID
,
CC.CRGI
D
,CC.Description CostCenter
from SALARYMONTHLYDETAIL sd ,SALARYMONTHLY S,SALARYEMPCOSTCENTER EMPCC,CRG CC
Where sd.SALARYMONTHLYID=S.SALARYMONTHLYID
AND S.SALARYMONTHLYID=EMPCC.SALARYMONTHLYID
AND EMPCC.COSTCENTERID=CC.CRGID AND sd.CHANGEDAMOUNT<>0
AND S.SalaryMonth=%d and sd.ITEMGROUP in(3) AND S.EmployeeID IN(%q))A
group by A.Description,A.DEPARTMENTID,A.LOCATIONID,A.ItemGroup,A.ITEMCODE,
A.ITEMID,A.CRGID,A.CostCenter
order by A.LOCATIONID,A.CRGID,A.DEPARTMENTID", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(DeductItem);
tempdataset.Tables[0].TableName = "DeductItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var opiItem = SQLParser.MakeSQL(@"select A.Description,SUM(A.amount) Amount,A.DEPAR
T
ENTID,
RGID,A.Cost
e
te
r
,A.SequenceNO
pd.LOCATION
I
D,opd.
D
E
P
A
RTMENTID,
p
i.Descriptio
n, EMPCC.PERCE
N
TAGE/1
0
0)a
s
amount,
C
C
.
C
RI CostC
nter,oi
S
quenceNO
from OPIItem oi, OPIProcess op, OPIProcessDetail opd,SALARYEMPCOSTCENTER EMPCC,
CRG CC,OPIProcessDetailItem opdi
Where op.OPIMonth == %d AND opd.EmployeeId IN(%q)
AND op.OPIProcessID = opd.OPIProcessID
AND opd.EmployeeId = EMPCC.EMPLOYEEID AND EMPCC.COSTCENTERID=CC.CRGID
AND opd.OPIProcessDetailId = opdi.OPIProcessDetailId
AND oi.OPIItemId = opdi.OPIItemId )A
group by A.Description,A.DEPARTMENTID,A.LOCATIONID,A.CRGID,A.CostCenter,A.SequenceNO
order by A.LOCATIONID,A.CRGID,A.DEPARTMENTID", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(opiItem);
tempdataset.Tables[0].TableName = "OPIItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
aset;
}
internal static DataSet GetNewCCWiseSalaryDetails(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
DataSet root
D
ataset
=
n D
a
taSet
t
e
m
p
dataset =
n
w DataSet
() y
{
st
r
ing Gr
o
s
s
I
tem
=
S
QL QL.Empl
y
eeNo, A.N
me, A, A A.Ite
Cod, A.ItemI
D,
A
.
ItemGro
u
p
SUM(A.monut) Amou
n
AE, A.DEPARTMENTID,
.Locat
on
from(select
E.EmployeeNo, E.Na
e,
d.ItemGr
up, sd.ItemC
o
e,
sd.It criptio, sd.change
a
oun
* SEMCC.P
E
RC monut,
SE
CC.PERC
E
N
TA sign RI
.EPARTMENT
I
D, CC.D
E
SCRIPTION CRGDes, CC.CRGID
from CRG CC, LOCATION L,SALARYEMPCOSTCENTER SEMCC, DESIGNATION D,Employee E,
SALARYMONTHLY S, SalaryMonthlyDetail Sd where
S.EMPLOYEEID = SEMCC.EMPLOYEEID AND CC.CRGID = SEMCC.COSTCENTERID
AND D.DESIGNATIONID = E.DESIGNATIONID AND E.employeeID = S.EmployeeID
AND S.SalaryMonthlyID = Sd.SalaryMonthlyID AND SD.SALARYMONTHLYID = SEMCC.SALARYMONTHLYID
AND S.SalaryMonth = %d and Sd.ItemGroup in(8) AND S.LOCATIONID = L.LOCATIONID
AND S.EmployeeID IN(%
q)
union select E.EmployeeNo, E.Name, sd.ItemGroup,sd.ItemCode, sd.ItemID,
sd.Description,sd.changedamount * SEMCC.PERCENTAGE / 100 amonut,
SEMCC.PERCENTAGE, D.Name Designation, L.DESCRIPTION Location,
S.DEPARTMENTID,CC.DESCRIPTION CRGDes, CC.CRGID
from CRG CC, LOCATION L,
SALARYEMPCOSTCENTER SEMCC, DESIGNATION D,Employee E, SALARYMONTHLY S,
SalaryMonthlyDetail Sd where S.EMPLOYEEID = SEMCC.EMPLOYEEID
AND CC.CRGID = SEMCC.COSTCENTERID AND D.DESIGNATIONID = E.DESIGNATIONID
AND E.employeeID = S.EmployeeID AND SD.SALARYMONTHLYID = SEMCC.SALARYMONTHLYID
AND S.SalaryMonthlyID = Sd.SalaryMonthlyID AND S.SalaryMonth = %d
and Sd.ItemGroup in(1) AND S.LOCATIONID = L.LOCATIONID
AND S.EmployeeID IN(%
q) ) A
group by A.EmployeeNo, A.Name,A.Designation,A.ItemGroup,A.Location,A.CRGID,
A.CRGDes, A.ItemCode, A.ItemID, A.Description ,A.PERCENTAGE,A.DEPARTMENTID,A.Location
order by A.CRGID,A.DEPARTMENTID", dSMonthDate, sEmpID, dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(GrossItem);
tempdataset.Tables[0].TableName = "GrossItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetCCWiseOPIDetails(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
DataSe
t
rootDataset
new D
a
tS DataSet t
m
da
t
aset = new Dat
a
Set();
{
string
o
iItem = SQL
Pa elect disti
n
ct A.D
e
scr
i
ption, A.amo
u
nt Amo
u
n
t,
A.DE
P
A
R
TM gn
A.LOC
TI
ON os ceNO,
.EM
LOYEENO,
A
.
NA
M
E, A.PER
C
EN(Selec
opd.DEPART
MENTID, opdiDescription, (opdi
NetAmo
nt * EMPC
.PERCENTAGE / 100)as
a
mount,
CC.CRGID
CC.Descript
i
n Cost
enter,
oi.SequenceN ION LOC
TION,
E.E
M
P
LO, D.NAME
Designation
E
PCC
PERCENT
A
G
E
o, OPIP
ocessDe
a
l opd, SAL
A
RYEMPCO
S
TCENTER EMPCC,
CRG CC,OPIProcessDetailItem opdi, EMPLOYEE E,LOCATION L, DESIGNATION D
Where op.OPIMonth = %d AND opd.EmployeeId IN(%
q)
AND op.OPIProcessID = opd.OPIProcessID AND opd.EmployeeId = E.EmployeeId
AND opd.EmployeeId = EMPCC.EMPLOYEEID AND EMPCC.COSTCENTERID = CC.CRGID
AND opd.OPIProcessDetailId = opdi.OPIProcessDetailId AND E.LOCATIONID = L.LOCATIONID
AND oi.OPIItemId = opdi.OPIItemId AND opd.DESIGNATIONID = D.DESIGNATIONID)A
order by A.CRGID,A.DEPARTMENTID", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(opiItem);
tempdataset.Tables[0].TableName = "OPIItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetCCWiseSummary(TransactionContext tc, DateTime dSMonthDate, string sEmpID)
{
ataS
e
t rootDat
set
= n
e
w DataSet();
Data
S
et ew Da
aS
t
(
);
try
{
ross = SQLP
r
er
.MakeSQL(@"Sele
c
t A.Cos
t
Ce EPARTMENTID
,
E.Role
,
s
u
m
(A.amount
a
Amount
from(
s
elect
S
.Em
p
loyeeID,Sum
(
sd.cha
n
g
e
d
amou
n
t
)
*E AG ,
TM TION
ost
enter,CC.
C
RG
I
D
YMONTH
Y S,SalaryM
onthlyDetai Sd,SALARYEMPCOST
ENTER
MPCC,CR
CC
wher
S
.
alaryMon
hlyID=Sd.Sa
l
ryMont
lyID A
ND S.SalaryM
nd
d.ItemG
r
o
up ND S.SA
ARYMONTHLYI
=
MPC
.SALARY
M
O
NT NTERID
CC.CRGID A
D
S.Employe
e
ID IN(%
q
)
group by S.EmployeeID,S.DEPARTMENTID,CC.DESCRIPTION,CC.CRGID,EMPCC.PERCENTAGE)A,Employee E
where A.EmployeeID = E.EmployeeID
group by A.CostCenter,A.CRGID,A.DEPARTMENTID,E.Role
order by A.CRGID,A.DEPARTMENTID", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(totalGross);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var totalOPI = SQLParser.MakeSQL(@"select A.CostCenter,A.CRGID,A.DEPARTMENTID,A.Role,sum(A.amount)as Amount
from (select opd.EmployeeID,Sum(opdi.NetAmount)*EMPCC.PERCENTAGE/100 amount,
opd.DEPARTMENTID,CC.DESCRIPTION CostCenter,CC.CRGID,E.Role
from OPIItem oi, OPIProcess op, OPIProcessDetail opd,SALARYE
M
COSTCENTER
E
PCC,
CRG CC,O
I
ro
c
essDetailItem
o
pdi,EMPLOY
E
E W
h
ere o
p
.
O
P
IMonth =%
ND opd.Emplo
ye
AND
op.OPIProce
s
sID =
o
p
d
.
OPIP
r
o
c
es yeeId=
.Employe
I
AND opd.EmployeeId = EMPCC.EMPLOYEEID AND EMPCC.COSTCENTERID=CC.CRGID
AND opd.OPIProcessDetailId = opdi.OPIProcessDetailId
AND oi.OPIItemId = opdi.OPIItemId
group by opd.EmployeeID,EMPCC.PERCENTAGE,opd.DEPARTMENTID,CC.DESCRIPTION,CC.CRGID,E.Role)A
group by A.CostCenter,A.CRGID,A.DEPARTMENTID,A.Role
order by A.CRGID,A.DEPARTMENTID", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(totalOPI);
tempdataset.Tables[0].TableName = "TotalOPI";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var coContri = SQLParser.MakeSQL(@"Select A.CostCenter,A.CRGID,A.DEPARTMENTID,E.Role,sum(A.amount)as Amount
from( select S.EmployeeID,Sum(sd.changedamount)*EMPCC.PERCENTAGE/100 amount,
S.DEPARTMENTID,CC.DESCRIPTION CostCenter,CC.CRGID
from SALARYMONTHLY S,SalaryMonthlyDetail Sd,SALARYEMPCOSTCENTER EMPCC,CRG
C
laryMonthly
D
Sd
.
SalaryMonthlyI
D
AND S.S
a
la
a
n
d Sd.Item
r
up IN(3)AN
D -128)
AND
S
.SALAR
Y
M
O
N
THLY
I
D
=
EP ID
A
ND EMPC
C
.COSTCENTERID=CC.CRGID AND S.EmployeeID IN(%q)
group by S.EmployeeID,S.DEPARTMENTID,CC.DESCRIPTION,CC.CRGID,EMPCC.PERCENTAGE)A,Employee E
where A.EmployeeID = E.EmployeeID
group by A.CostCenter,A.CRGID,A.DEPARTMENTID,E.Role
order by A.CRGID,A.DEPARTMENTID", dSMonthDate, sEmpID);
tempdataset = tc.ExecuteDataSet(coContri);
tempdataset.Tables[0].TableName = "CoContri";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetItemWiseSalary(TransactionContext tc, string sEmpID, DateTime _SalaryMonth,
DateTime toDate, string sSQL)
internal DataSet ro
internal o
t
internal D
ataset = new
Da
internal t
aSet();
internal D
ataSe
internal t
tempdatas
internal e
t
= new Da
a
{
string
L(@"s
le
t
E.Employee
N
o
,
E.Nam
e
,
S
.SalaryMonth
,
s
u
m(sm
from a
n Employee
E
on S.
E
m
p
l
oyeeID=E.
m
loyeeID
in
n
er joi
n
S
a
lary
M
o
n
th o nthly
D
=smd.Sala
yM
on
w
h
er ID
And
S.Salar
Month between %d
a
nd %d
g
r
up by E.
mploye
e
o,E.Na
e,S.
SalaryMonth
E.Emplo
eeNo,S.Sala
y
ont
", sEmp
I
D, yMon
tempda
aset =
c
ExecuteDa
t
aSet(SS
a
lary);
tempdataset.Tables[0].TableName = "ItemWiseSalary";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpIndSalarySheet(TransactionContext tc, string sEmpID, string _months)
{
internal at a
internal Set
rootD
internal tas et = new;
try
lect
A
.Emplo eeNo,
A.Name,
.
internal Ga me, A
internal D
N
internal ry Mo
internal th
yeeID
internal E
E
internal m
ployee o,
internal E
.
N
a
me,
internal E.oi ingD te,
internal sd.I te
internal mG r
up,
internal s
d
ItemCode,
internal S.S
a
internal aryMon
t
h
sd.I
internal temI
D, d.Position,
internal sd.cha
n
internal g
e
internal d
amount, G.
internal E
CRIPTION GName,
internal D
.N GCode, G.
internal Se
q
internal uenceN
o
ades
,
internal DESIGNATI
N
D,
internal SA alary
internal ont
lyDetail
internal S
d
internal w
here G.GradID=
internal S.GradeID AND
internal D.DESI
NATIONI
= E.DESIGNATIONID AND
E.employeeID=
internal S.Emp
oy
internal e
ID
internal AND
.SalaryMont
l
ID=
internal d.Salar
y
M
on.Salary
onth in(%
internal q
emGrou
in
internal (8)
A
D sd.Item
internal C
ode not
in
internal (-133) AND
internal S.EmployeeID IN(%q)
internal UNION
select S.EmployeeID, E.EmployeeNo, E.Name,E.JoiningDate, sd.ItemGroup,sd.ItemCode,S.SalaryMonth,sd.ItemID,
sd.Description,sd.Position, sd.changedamount,
internal G.DESCRIPTION GName, D.
internal Name DName, G.
internal Code GCode, G.
internal SequenceNo
from
internal Grades G, DESIGNATION D,
internal Employee E, SALARYMONTHLY S,
internal SalaryMonthlyDetail Sd
where G.GradeID=
internal S.GradeID AND D.DESIGNATIONID=
internal E.DESIGNATIONID AND E.employeeID=
internal S.EmployeeID
AND S.SalaryMonthlyID=
internal Sd.SalaryMonthlyID AND S.SalaryMonth in(%q) and Sd.ItemGroup in
internal (1)
AND
internal sd.ItemCode not in
internal (-133) AND
internal S.EmployeeID IN(%q) )
internal A
group by A.EmployeeID, A.EmployeeNo, A.Name,A.GName,A.DName,A.SequenceNo,A.GCode, A.ItemCode,A.SalaryMonth,
A.ItemID, A.Description,A.Position,
internal A.JoiningDate order by A.SalaryMonth,A.Position,A.EmployeeNo,A.SequenceNo,A.GCode",
_months, sEmpID, _months, sEmpID);
tempdataset = tc.ExecuteDataSet(query1);
tempdataset.Tables[0].TableName = "GrossItem";
rootDataset.Tables.Add(tempdataset.Tables[0].
internal Copy());
internal string query2 = SQLParser.MakeSQL(
@"select E.EmployeeNo, E.Name,E.JoiningDate,A.GName,A.GCode,A.SequenceNo,A.DName,'Total Gross' Description,
Sum(A.amount) amount,A.SalaryMonth from( select S.EmployeeID, Sum(sd.changedamount) Amount,
G.DESCRIPTION GName,G.Code GCode,G.SequenceNo,D.Name DName,S.SalaryMonth
from SALARYMONTHLY S,Grades G,DESIGNATION D, SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND G.GRADEID=S.GRADEID AND D.DE
SI
AND
S
.a and Sd.Ite
G
ou
p
IN (1, 8) AND
S.Empl
o
ye
loyeeID,G.D
E
SCRIPT
I
ON,
G
.SequenceNo
,
G.Code
,
D
.
N
ame,
S
.
S
aa
UNION select S.EmployeeID, -Sum(sd.changedamount) Amount,G.DESCRIPTION GName,
G.Code GCode,G.sequenceNo,D.Name DName,S.SalaryMonth from GRADES G,DESIGNATION D,SALARYMONTHLY S, SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth in(%q) AND G.GRADEID=S.GRADEID
AND D.DESIGNATIONID=S.DESIGNATIONID and Sd.ItemGroup IN (2) AND S.EmployeeID IN(%q)
group by S.EmployeeID,G.DESCRIPTION,G.SequenceNo,G.Code,D.Name,S.SalaryMonth ) A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo, E.Name,A.GName,A.SequenceNo,A.GCode,A.DName,E.JoiningDate,A.SalaryMonth",
_months, sEmpID, _months, sEmpID);
tempdataset = tc.ExecuteDataSet(query2);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].
internal Copy());
internal string query3 = SQLParser.MakeSQL(
@"select A.EmployeeNo, A.Name,A.JoiningDate,A.GName,A.GCode,A.SequenceNo,A.DName, A.Description,
SUM(A.changedamount) Amount,A.ItemCode,A.ItemID ,A.SalaryMonth
from (select S.EmployeeID, E.EmployeeNo, E.Name,E.JoiningDate,sd.ItemGroup,sd.ItemCode,S.SalaryMonth,
sd.ItemID, sd.Description,sd.Position, sd.changedamount,G.DESCRIPTION GName,G.Code GCode,G.SequenceNo,D.Name DName
from Grades G,DESIGNATION D,Employe
e
.GradeID= S
G
ad
e
ID AND D.DESIG
N
ATIONI
D
=E ND E.employ
e
eID=S.
E
m
p
l
oyeeID
A
ND
S.SalaryMon
t
hlyID=
S
d
.
S
alar
y
M
o
nh yMonth
in(%q)
a
d Sd.Item
G
roup=3
A
ND S.EmployeeID IN(%q)
union select S.EmployeeID, E.EmployeeNo, E.Name,E.JoiningDate,sd.ItemGroup,sd.ItemCode,S.SalaryMonth,
sd.ItemID, sd.Description,sd.Position, -sd.changedamount,G.DESCRIPTION GName,G.Code GCode,G.sequenceNo,D.Name DName
from Grades G,DESIGNATION D,Employee E, SALARYMONTHLY S, SalaryMonthlyDetail Sd
where G.GradeID= S.GradeID AND D.DESIGNATIONID=E.DESIGNATIONID AND E.employeeID=S.EmployeeID
AND S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth in(%q) and Sd.ItemGroup=2 AND S.EmployeeID IN(%q) ) A
group by A.EmployeeID, A.EmployeeNo, A.Name,A.GName,A.SequenceNo,A.GCode,A.DName,A.SalaryMonth,
A.ItemCode, A.ItemID, A.Description,A.Position,A.JoiningDate
order by A.SalaryMonth,A.EmployeeNo,A.Position,A.SequenceNo,A.GCode",
_months, sEmpID, _months, sEmpID);
tempdataset = tc.ExecuteDataSet(query3);
tempdataset.Tables[0].TableName = "DeductItem";
rootDataset.Tables.Add(tempdataset.Tables[0].
internal Copy());
internal string query4 = SQLParser.MakeSQL(@"select A.EmployeeNo, A.Name,A.GName,A.GCode,A.SequenceNo,
A.DName, A.Description, SUM(A.changedamount) Amount,A.SalaryMonth
from ( select S.EmployeeID, E.EmployeeNo, E.Name, sd.ItemGroup,sd.ItemCode,
sd.ItemID, sd.Description,sd.Position, sd.changedamount,S.SalaryMonth,
G.DESCRIPTION GName,G.Code GCode,G.SequenceNo,D.Name DName
from Grades G,DESIGNATION D,Employ
ee
re G.GradeI
=
S.
G
radeID AND D.D
E
SIGNAT
I
ON ID
ployeeID=S.
E
mploye
e
ID
A
ND S.Salary
M
onthly
I
D
=
S
d.Sa
l
a
r
yo
AND S.SalaryMonth in(%q) and Sd.ITEMCODE =-133 AND S.EmployeeID IN(%q)
UNION select S.EmployeeID, E.EmployeeNo, E.Name, sd.ItemGroup,
sd.ItemCode, sd.ItemID, sd.Description,sd.Position, sd.changedamount,S.SalaryMonth,
G.DESCRIPTION GName,G.Code GCode,G.SequenceNo,D.Name DName
from Grades G,DESIGNATION D,Employee E, SALARYMONTHLY S, SalaryMonthlyDetail Sd
where G.GradeID= S.GradeID AND D.DESIGNATIONID=E.DESIGNATIONID
AND E.employeeID=S.EmployeeID AND S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth in(%q) and Sd.ITEMCODE =-133 AND S.EmployeeID IN(%q) ) A
group by A.EmployeeID, A.EmployeeNo, A.Name,A.GName,A.SequenceNo,A.GCode,A.DName, A.ItemCode,
A.ItemID, A.Description,A.Position,A.SalaryMonth
order by A.SalaryMonth,A.Position,A.SequenceNo,A.GCode,A.EmployeeNo",
_months, sEmpID, _months, sEmpID);
tempdataset = tc.ExecuteDataSet(query4);
tempdataset.Tables[0].TableName = "LeaveDays";
rootDataset.Tables.Add(tempdataset.Tables[0].
internal Copy());
internal string query5 = SQLParser.MakeSQL(@"select E.EmployeeNo, E.Name,A.GName,A.GCode,A.sequenceNo,A.DName,
'UnAuthorized' Description, Sum(A.amount) amount,A.SalaryMonth
from ( select S.EmployeeID, Sum(sd.changedamount) Amount,G.DESCRIPTION GName,
G.Code GCode,G.SequenceNo,D.Name DName,S.SalaryMonth
from GRADES G,DESIGNATION D,SALARYMONTHLY S,SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.Salary
Mo
A RADEID AND
.
ES
I
GNATIONID=S.DE
S
IGNATI
O
NI
and Sd
.I AND S.Emplo
y
eeID I
N
(%q
)
group
y
S.Employe
e
ID,G.DE
S
CRIPTION,G.SequenceNo,G.Code,D.Name,S.SalaryMonth ) A, Employee E
where A.EmployeeID = E.EmployeeID
group by E.EmployeeNo,E.Name,A.GName,A.SequenceNo,A.GCode,A.DName,A.SalaryMonth",
_months, sEmpID);
tempdataset = tc.ExecuteDataSet(query5);
tempdataset.Tables[0].TableName = "UnAuthorized";
rootDataset.Tables.Add(tempdataset.Tables[0].
internal Copy());
internal string query6 = SQLParser.MakeSQL(
@"select E.EmployeeNo, E.Name,E.JoiningDate,A.GName,A.GCode,A.SequenceNo,A.DName,
'Total Deduction' Description, Sum(A.amount) amount,A.SalaryMonth
from( select S.EmployeeID, Sum(sd.changedamount) Amount,S.SalaryMonth,
G.DESCRIPTION GName,G.Code GCode,G.SequenceNo,D.Name DName
from GRADES G,DESIGNATION D,SALARYMONTHLY S,SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth in(%q)
AN
D
. D AND D.DES
G
AT
I
ONID=S.DESIGNA
T
IONID
a
d
Sd.ItemGroup I
N oyeeID IN(%
q
)
y S.Em
loyeeI
,
.DESCRIPT
I
ON,G.Se
q
uenceNo,G.Code,D.Name,S.SalaryMonth ) A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,A.GName,A.SequenceNo,A.SalaryMonth,
A.GCode,A.DName,E.JoiningDate
order by A.SalaryMonth,E.EmployeeNo,A.sequenceno,A.GCode", _months,
sEmpID);
tempdataset = tc.ExecuteDataSet(query6);
tempdataset.Tables[0].TableName = "TotalDeduction";
rootDataset.Tables.Add(tempdataset.Tables[0].
internal Copy());
internal string query7 = SQLParser.MakeSQL(
@"Select E.EMPLOYEENO,E.NAME,E.JoiningDate,G.DESCRIPTION GName,G.Code GCode,S.SalaryMonth,
G.SequenceNo,D.Name DName ,'Net Pay' Description,SD.CHANGEDAMOUNT Amount
from EMPLOYEE E,GRADES G,DESIGNATION D,SALARYMONTHLY S,SALARYMONTHLYDETAIL Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth in(%q)
AND G.GRADEID=S.GRADEID AND D.DESIGNATIONID=S.DESIGNATIONID
AND E.EMPLOYEEID =S.EMPLOYEEID and Sd.ItemGroup IN (5)
A
D Sd.It
e
Code I
N
(1
IN(%q) ord
e
r by S
.
S
a
l
aryMonth,
.
MPLOYEENO,G.Sequ
en months, sEm
p
ID);
t
empdat
a
s
e
t
= t
c
.
E
xc 7);
tempd
a
taset.T
a
bles[0].TableName = "NetPay";
rootDataset.Tables.Add(tempdataset.Tables[0].
internal Copy());
internal string query8 = SQLParser.MakeSQL(
@"Select E.EMPLOYEENO,E.NAME,E.JoiningDate,G.DESCRIPTION GName,S.SalaryMonth,
G.Code GCode,G.SequenceNo,D.Name DName ,'CPF' Description,SD.CHANGEDAMOUNT Amount
from EMPLOYEE E,GRADES G,DESIGNATION D,SALARYMONTHLY S,SALARYMONTHLYDETAIL Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID
AND S.SalaryMonth in(%q)
AND G.GRADEID=S.GRADEID
AND D.DESIGNATIONID=S.DESIGNATIONID
.EMPLOYEEID
=
.E
M
PLOYEEID
AND Sd.It
m
roup IN
(3 e IN(-128)
mploye
ID IN(
q
order by
S.Salar
y
Month,E.EMPLOYEENO,G.SequenceNo,G.Code ", _months, sEmpID);
tempdataset = tc.ExecuteDataSet(query8);
tempdataset.Tables[0].TableName = "CPF";
rootDataset.Tables.Add(tempdataset.Tables[0].
internal Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetPFLedger(TransactionContext tc, string sEmpID, DateTime FromDate, DateTime toDate)
{
DataS
t
rootDataset = new D
taS );
try
{
scr
p
t
ion, A.PFAmo
nt,
B
.
CP
(
S
elect '
t
d
S
elect 'O penin
g
'
Descriptio
n,
ISNULL(sum
(
T
r
anAm
unt),0) CPFAmount
from
P
FT here TranDa
t
e < %d
And T
r
anT
y
pe in(%n) a
n
d Empl
o
y
e
e
ID i
n
(
% q
er = B.D
scr
ption",
FromDat
e, (int)EnuPFTranType.PFAmou
t, sEm
ID,
F
omDate,
int)Enum
P
TranType
CPFAmo
unt, sEmpID)
//
string
q
u
er er.Make
QL(@"Select
'
pen
ng' Des
c
r
ip nAmo un )as CP
Amount
//
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());
var 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)
,
Se SNULL(sum(TranAmount),0) CPFAmount
from PFTransaction PFT where TranDate between %d And TranType in(%n) and EmployeeID in (%q)
group by TranDate) B
Where A.TranDate
toDate, (i
n
t)Enum
P
F
T
r
anType.PF
m
unt, sEmp
ID
Fro
m
D
a
t
e, t
o
D
a
t, Type.C
FAmoun
,
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 DataSet PrintEnvelop(TransactionContext tc, string sEmpID)
root
at
set = ne
w
Da et();
r
y
ct Disti
n
t E.Em
p
o
ye eN o,
E.Nam e, D. Na me Desig
n
ati n, E.D
E
CRIPT IO
N
fr om E mp l
o
ee E, D es ig
n
t
ion
D, DEPARTMENT D
E
where E.DesignationID = D.DesignationID and DE.DepartmentID = DE.DEPARTMENTID and E.EmployeeID in(%q)
order by E.EmployeeNo", sEmpID);
tempdataset = tc.ExecuteDataSet(query1);
ataset.Tables[0].TableName = "Envelop";
rootDataset.Tables.Add(tempdataset.Tables[ }
catch (Exception ex)
{
throw new Exception(ex.Ms
}
return rootDat
a
set;
}
internal static DataSet GetSalaryData(TransactionContext tc, string sEmpID, DateTime fromMonth,
DateTime toMonth)
rootD
t
aset = ne
D
at mpdat
set
= new Dat
a
Se
t
();
stri
ng query1 = SQLParser.MakeSQL
@"sele
t sum(c
angedAmount)
Amount,ItemGroup,
te
m
ode, I
emID f
ro nthly sa ary
o
thl yD tail wh
e
r
e y.salar
Monthlyid=
a
ary
onthlyD
e
t
a
+ " n
s
ala ry on th bet we e
n
% d
a
n
d
% d
ND Emp lo yeeID
IN
(
% q ) roup by I,
de,
temiD "
e
m
pdataset = tc
.x
e
cuteDataSet(q
ery
);
t
empdataset.T
ble
[
0
].TableNam
=
"
S
al Add(t
mp
a
t
aset.Table
s[0].Copy();
string qu
r
2
=
SQLParser.Mak
e
SQL(@"
s
ee ount) Amoun
t
,ItemG
r
o
u
p
, ItemCod
,
ItemID fr
om salaryMonth
l
yDetai
l
wh
e
re salaryMo
n
thly.s
a
l
a
r
yMon
t
h
l
yi th arymo
t
hlyid"
+ "
and
salarymon
t
h
b
etween
%
d m
ND Ite
Code = -12 9 AND
2 group by Ite
Group,
ItemCod,
ItemiD ",
fromM
nth, toMo
n
h, sEmpI
);
= tc.E
ecuteDataSe
(
uer
2);
mpdatas
t.Tables[0]
T
ble
ame = "
D
e
du tD d(temp
ataset
T
bles[0].C
o
py());
var query6 = SQLParser.MakeSQL(
@"select sum(changedAmount) Amount,ItemGroup, ItemCode, ItemID from salaryMonthly, salaryMonthlyDetail where salaryMonthly.sala o
thlyid"
+ " and salarymonth between %d and %d AND Employe
eI group by
temGrou
p
ItemC
o
d,
f
rm sEmpID);
tempd
t
set = tc.ExecuteDat
aS
tempd
a
tas
e
t.Tables[0]
.TableN
a
m
e
= "D
e
d
u
cI
rootDa
a
et.Tables
.Add(tem
p
dataset.Tables[0].Copy());
string query3 = SQLParser.MakeSQL(@"select E.EmployeeNo, E.Name,E.JoiningDate,
'Bonus' Description, a
amount,A.BonusID
from( select B.EmployeeID, Sum(B.BonusAmount) Amount,SUM(taxamount) taxamount,B.Bonus
ID USPROCESS
D
TAIL B
where
.
is
b
urseDate betwe
e
n %d a
n
d%
A
N
D
B.Employ
e
D IN(%q)
group
by
B
.EmployeeID
,
B.Bonu
s
I
D
) A,
E
m
po
wh
e
re A.Em
p
loyeeID = E.EmployeeID group by E.EmployeeNo, E.Name,
A.BonusID,E.JoiningDate
order by E.EmployeeNo,A.BonusID",
tempdataset = tc.ExecuteDataSet(query3);
tempdataset.Tables[0].TableName = "Bonus";
rootDatase
t.
}
c
ac
t
hrow n
e
wE age);
}
r
turn rootData
set;
}
internal static DataSet GetSalarySheet(TransactionContext tc, string sEmpID, DateTime _SalaryMonth,
DateTime toDate)
{
aset = ew Da
t
aSet();
DataSe
t
tempd
a
t
a
s
et =
n
e
wD
ry
{
var query1 = SQLParser.MakeSQL(
@"select A.EmployeeNo, A.Name,A.GName,A.DName,A.GCode,A.JoiningDate,A.SequenceNo, A.Description,A.ItemGroup,A.ItemCode,A.ItemID,
SUM(A.changedamount) Amount from(select S.EmployeeID, E.EmployeeNo, E.Name,E.JoiningDate, sd.ItemGroup,sd.ItemCode,
sd.ItemID, sd.Description,sd.Position, sd.changedamount,G.DESCRIPTION GName,D.Name DName,G.Code GCode,G.SequenceNo
from Grades G,DESIGNATION D,Employee E, SALARYMONTHLY S, SalaryMonthlyDetail Sd
where G.GradeID= S.GradeID AND D.DESIGNATIONID=E.DESIGNATIONID AND E.employeeID=S.EmployeeID
AND S.SalaryMonthl
y
D=Sd.Sala
r
Monthly
I
AND S
.
S
%d and %d a
d
Sd
.
ItemGroup in(8
)
A
N
D sd.Item
o
e not i
n( oyeeID IN(% q
)
e
E .Emp
o
yeeNo, E.
am
e
Co de,
sd .I t
mID,
ri tion
sd.Positi on,
sd.changedmount,G.DESCRIPTI
N GNam
,D.Name
DName,G.Code G
C
ode,
G.Sequence
N
from Gr
des G,
DESIGNATION , SALAR
MONTHLY S,
a
ary
onthlyD
e
t
ai
adeI A ID=E.D
SIGNAT
O
ID AND E.
e
mployee
I
D=S.EmployeeID
AND S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth between %d and %d and Sd.ItemGroup in(1)
AND sd.ItemCode not in(-133) AND S.EmployeeID IN(%q) ) A
group by A.EmployeeID, A.EmployeeNo, A.Name,A.GName,A.DName,A.SequenceNo,A.GCode, A.ItemCode, A.ItemID,
A.Description,A.Position,A.JoiningDate,A.ItemGroup,A.ItemCode,A.ItemID order by A.EmployeeNo,A.SequenceNo,A.GCode",
_SalaryMonth, toDate, sEmpID, _SalaryMonth, toDate, sEmpID);
tempdataset = tc.ExecuteDataSet(query1);
tempdataset.Tables[0].TableName = "SalaryCertificate";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var query2 = SQLParser.MakeSQL(
@"select E.EmployeeNo, E.Name,E.JoiningDate,A.GName,A.GCode,A.SequenceNo,A.DName,
'IncomeTax' Description, Sum(A.amount) amount
from( select S.EmployeeID, Sum(sd.changedamount) Amount,
G.DESCRIPTION GName,G.Code GCode,G.SequenceNo,D.Name DName
from GRADES G,DESIGNATION D,SALARYMONTHLY S,SalaryMonthlyDetail Sd
where S.SalaryMonthlyID=Sd.SalaryMonthlyID AND S.SalaryMonth between %d and %d
AND G.GRADEID=S.GRADEID AND D.DESIGNATIONID=S.DESIGNATIONID
and Sd.ItemGroup IN (2,3) AND S.EmployeeID IN(%q)
group by S.EmployeeID,G.DESCRIPTION,G.SequenceNo,G.Code,D.Name ) A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,A.GName,A.SequenceNo,
A.GCode,A.DName,E.JoiningDate
order by E.EmployeeNo,A.sequenceno,A.GCode", _SalaryMonth, toDate, sEmpID);
;
t
e
pdatas
e
.Tables[0].T
a
leName
"Dedu
c
tt rootDa
a
et
.Tables.Add(tem
p
datase
t
.a
s
t
r
i
ng query3
=
SQLParser.MakeSQL(@
"s No, E.Name,
E
.Joini
n
gDa
t
e,
riptio,
Sum(
.
mount) am
o
unt, A.B
o
nusID
from(select B.
EmployeeID, Sum(B.BonusAmount) Amount,B.BonusID
from BONUSPROCESSDETAIL B
where B.DisburseDate between % d and % d
AND B.EmployeeID IN(%
q)
group by B.EmployeeID,B.BonusID ) A, Employee E
where A.EmployeeID = E.EmployeeID group by E.EmployeeNo, E.Name,
A.BonusID,E.JoiningDate
order by E.EmployeeNo,A.BonusID", _SalaryMonth, toDate, sEmpID);
tempdataset = tc.ExecuteDataSet(query3);
tempdataset.Tables[0].TableName = "Bonus";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpsFiscalYeartax(TransactionContext tc, string sEmpIDs, DateTime fromdate,
DateTime toDate, int taxParamID)
{
DataSet
DataSet();
DataSettempdata
s
tr
{
st ri ng sS
Que akeSQL("S lec t E.EMPL
O
YEE
I
D, sm .S alaryMo nt h
Fisca
l
m
o
n
th, s
m
d
.
D
DA MO UN T Am
unt
from SA L
ARYMON TH LY s m
in
er join Emp o
ee
E n.EMPL
O
EEI D = s
m
.
E
mp lo yeeId
inner j
o
n S
A
L
A
RYMONTHLYDE
T
IL smd
o
n
sm.SAL
m.Sal
r
y
Month betwee
% d and
%
d
and
m.
E
M
P
L
Item
od
=
-129
mploy
e
I
D, sm.Salar
M
n
t
h", fromda
e, to
at,
sEmpIDs);
t
a
Set(sSQ
u
e
r
y);
bleNa
e
"
TaxSalary"
;
rootDataset.Tables.Add(tep ].Copy());
str
i
ng sBo
n
ut akeSQL(@"Se
l
ect bp
d
.
E
m
ployeeID
b
d.Disbu
rs h,'Bonus ta
x
' desc
r
ipt
i
on,bpd.taxa
m
ount A
m
o
u
n
t
fr ES
Disbur
eDate betwe
en %d and %
a
nd bpd.EmployeeID
n(
%
)
rder by bp
d.Employeeid eDate",
fromdate, t
D
te,
sEmpIDs
)
;
tem
dataset = t
.xec
teDataS
e
t
(s te[0].Ta
leName
TaxBonus"
;
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sSettlementTax = SQLParser.MakeSQL(
@"select fs.EmployeeID,E.ENDOFCONTRACTDATE Fiscalmonth,'Settlement Tax' Description,
fs.TaxAmount Amount
from FSTran fs
inner join Employee E on fs.EmployeeiD = E.EMPLOYEEID
where E.ENDOFCONTRACTDATE between %d and %d
and fs.EmployeeID in(%q)
order by fs.Employe
e
d", from
d
te, to
D
te, sEm
p
ID tempda
a
et
= tc.ExecuteDa
t
aSet(sS
e
tl
tempda
t
a
s
e
t.Tables[
]
TableName =
"
ro
o
tDa
t
aset.Tables
.Add(te
m
p
d
a
tase
t
.
T
al
f
(taxParam
I
D == 0)
{
var sDeductedTax = SQLParser.MakeSQL(
@"Select EmployeeID,ModifiedBy FiscalMonth,'Tax Deducted' Description,ThisYearTotal Amount
from INCOMETAXTEMP where Employeeid in(%q) and ItemCode=%n and ItemID=%n
order by EmployeeID", sEmpIDs, EnumIncomeTaxItemGroup.Tax_Deducted,
EnumIn
c
oe _Deducted);
tempdata
s
e Set(sDeduct
e
dTax);
temp
da TableName =
"TaxDe
d
uct
e
d";
ro
o
t
D
aa empdat
set.Tables[0].o
y());
var sIncreaseGrosstax = SQLParser.MakeSQL(
@"Select EmployeeID,ModifiedBy FiscalMonth,'Increase Gross Tax' Description,ThisYearTotal Amount
from INCOMETAXTEMP where Employeeid in(%q) and ItemCode=%n and ItemID=%n
order by EmployeeID", sEmpIDs,
EnumIncomeTaxItemGroup.Tax_Gross_OtherAddable, EnumAllowOrDeduct.Allowance);
tempdataset = tc.ExecuteDataSet(sIncreaseGrosstax);
tempdataset.Tables[0].TableName = "TaxIncreaseGr
o
s";
r
o
oD d(tempdatas
t
Ta
b
les[0].Copy())
;
easeGrossTa
x
= SQL
P
a
r
s
er.MakeSQ
(
"Select Employe
eI calMonth, 'D
e
crease
Gro
s
s Tax' Desc
r
iption,
T
h
i
sYea
r
T
o
tl
EMP wh
re Employeei
n( % q) and
ItemCod
e
= %n and ItemID = %n
order by
EmployeeID", sEmpIDs, EnumIncomeTaxItemGroup.Tax_Gross_OtherRebate, EnumAllowOrDeduct.Deduction);
tempdataset = tc.ExecuteDataSet(sDecreaseGrossTax);
tempdataset.Table
s
0].Tabl
e
ame = "TaxDecreaseGros
s
";
].Copy());
}
ramID > 0)
{
= SQLParse
r
.MakeS
Q
L
(
@
"Select E
p
oyeeID, Modifi
ed Deducted' D
e
script
i
on,
T
otalAmount
A
mount
from I
C
METAXYEAR
L
Y where
Employeeid in(%q) and ItemCode = %n and ItemID = %n
and TaxParamID = %n
order by EmployeeID", sEmpIDs, EnumIncomeTaxItemGroup.Tax_Deducted,
Enum
I
comeTax
I
emGroup.Tax_Deducted,
t
axParamID);
tempdata
s
et = tc.E
x
eu ax);
tempd
a
taset.Tables[0].T
a
be;
rootDatas
t
Tables.Add(tempdat
as;
string sInc
r
easeGr
o
s
s
t
ax =
S
Q
La t Empl
yeeID, ModifiedBy
i
calMonth,
'
Increas
e
Gross Tax' Description,TotalAmount Amount
from INCOMETAXYEARLY where Employeeid in(%q) and ItemCode = %n and ItemID = %n
and TaxParamID = %n
or
d
r by Em
p
oyeeID", sEmpIDs, Enum
I
ncomeTaxItemGroup.Tax
_
ross_OtherAddable,
EnumAllowOr
D
educt.Allowance,
t
aP t
e
mpdata
s
e
t
= tc.Exec
t
DataSet(sIncreaseG
ro
te
m
pdatas
e
t.T
a
bles[0].Tab
l
eName
=
"
T
axIn
c
r
e
as atas
t.a
bles.Add(t
m
d
at op
string sDecr
a
eGrossTax
= SQLPa
r
ser.MakeSQL(@"Select EmployeeID,ModifiedBy FiscalMonth,'Decrease Gross Tax' Description,TotalAmount Amount
from INCOMETAXYEARLY where Employeeid in(%q) and ItemCode=%n and ItemID=%n
and TaxParamID=%n
or
d
r by Em
p
oyeeID", sEmpIDs, Enum
I
ncomeTaxItem
Gr
EnumAllo
w
rDeduct.De
d
ut
tempdataset
=
tc.ExecuteD
a
tS );
tempdat
s
t.Tables[0].T
ab eGross";
rootD
a
taset.
T
a
b
l
es.A
d
d
(
tm opy())
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpstaxInvestment(TransactionContext tc, string sEmpIDs, int taxParamID)
{
ataSet
roo
t
Dataset = ne
w
DataS
e
t
(
)
;
new Da
aSet();
s tr
n
It em Code =
C
onvert.T
oString((int)EnumIncomeTaxItemGroup.Company_Contri_PF) + "," +
Convert.ToString((int)EnumIncomeTaxItemGroup.Annual_Salary_Income) + "," +
Convert.ToString((int)EnumIncomeTaxItemGroup.Investment_Allowed);
try
{
var sQuery = string.Empty;
if (taxParamID == 0)
{
sQuery = SQLParser.M
keSQL(@
"
elect E mployeeID,
rTotal
ov id ent Fun d' ,
tem Co de = %n T h
e
n Th isYe
a
r
T
o
tal
alary Inco e
',
ItemCo
e = %n Th n ThisYea
t
l
End)'Investment Required'
from Incometaxtemp
Where EmployeeID in(%q)
group by EmployeeID
order by EmployeeID", (int)EnumIncomeTaxItemGro
u
.Compan
y
Contr i_ PF,
(int)EnumIncomeT
a
Group.Inv es ment_Al
l
owe d, sEmpI
D
);
lse if (taxa ra ID
> 0)
{
eSQL(@"S le t
Employ
e
e
I
D
,
case W he n Ite
mC od e = %n T
h
en T hi sY earTotal
'
,
s
m(c
se When I
t
em
C
ode = %
n
T To
En
)'Sala
y Incom
',
su
m
cas
When Item
Code = %n Th otal
End)'Inves
m
nt
equired
'
from IncometaxYearly
Where EmployeeI
D
in(%q)
group by E
m
ployeeID
der by
Employ
e
D", (i
n
t)Enu
mn.C
m
pany_Contr
_P,
temGro
p
Annual_Sa
l
ary_Inc
o
me, (int)EnumIncomeTaxItemGroup.Investment_Allowed, sEmpIDs);
}
tempdataset = tc.ExecuteDataSet(sQuery);
tempdataset.Tables[0].TableName = "TaxInvestment";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpstaxChallan(TransactionContext tc, string sEmpIDs, int taxParamId)
roo
Dataset = new
DataS
t();
llan
S
LParser.Mak tion,
c.
hallenNo,t
c.DepositDate,tc.Amount
f
rom TaxChall at
jo
n
m
ployee E
t
.
E
y
inner join Designation D on E.DesignationID = D.DesignationID
where tc.taxparamid = %n
and tc.EmployeeiD in(%q)
order by tc.EmployeeiD,tc.DepositDate,tc.ChallenNo", taxParamId, sEmpIDs);
tempdataset = tc.ExecuteDataSet(sTaxChallan);
tempdataset.Tables[0].TableName = "TaxChallan";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch
(Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmployeesMasterData(TransactionContext tc, DateTime Fromdate, string sEmpID)
et =
ew ataSet(;
Data Set tempdataset = n
e
w at aSet();
string sSQ Gr ssItem = S QL Parser.M ak eS
Q
(
@"S
e
lect E.EMPLOYEENO,E.NA
M
E,G.Code Grade,d.D
E
CRIPTIO
N
D nt
des
.
NAME D
e
sg
E
BIRTHDATE,E.JOI
NI ONFIRMATION
,
E.GEND
E
R,E
.
ENDOFCONTRA
C
TDATE,
E
.
E
M
AILA
D
D
R
ES MO
E HONE,
C.P
RMANENTAD
D
RE
S
S,EC.PR
E
SE FA OTHERN
ME,ES.NAME
SpouseName,
E.National
I
D,E.ACCOUNTNO,EN.N
ME
ominee
ame1,EN
.
ame
NomineeNam
e2 ript on,
ount) m
o
u
n
ance Gr md.POS
TION
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
join Salar
M
nt
h
ly sm on E.EMP
L
OYEEID = sm
.
Ep
i
ner join Sal
ar md on smd.S
a
laryMo
n
thl
y
ID = sm.Sal
a
ryMont
h
l
y
I
D
where sm.
al
ar d (%q)
an oup in
1,8)
gr
up by E
EMPLOYEENO,E.NAME,G.Co
d
e,d.DESCRIPTION, d
s.
N
ME,
E.JOINI
GDATE,E.DAT
O
CON
IRMATIO
N
,
E. OFCONTR
CTDATE,E.EM
I
ADD
ESS,EC.
P
R
EE EC
EMERGENCYTELE
H
NE,EC.PAR
M
ANENTAD
D
RESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name, smd.Description,smd.Position,d.ParentID
order by E.EmployeeNo,smd.POSITION", Fromdate, sEmpID);
tempdataset = tc.ExecuteDataSet(sSQLGrossItem);
tempdataset.Tables[0].TableName = "GrossItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sTotalGross = SQLParser.MakeSQL(@"Select E.EMPLOYEENO,E.NAME,G.Code Grade,d.DESCRIPTION Department,
des.NAME Designation,d.ParentID,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME SpouseName,
Max(smd.Position)as Position,E.NationalID,E.ACCOUNTNO,EN.NAME NomineeName1,EN.Name NomineeName2,
'Total Gross'as Description, SUM(smd.changedamount) Amount,'Salaries & Allowances(Taxable)' GroupDescription
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
inner join SalaryMonthly sm on E.EMPLOYEEID = sm.EmployeeID
inner join SalaryMonthlyDetail smd on smd.SalaryMonthlyID = sm.SalaryMonthlyID
where sm.SalaryMonth=%d and sm.EmployeeID in(%q)
and smd.ItemGroup in(1,8)
gr
o
u E.NAME,G.Co
e
d.
D
ESCRIPTION, de
s
.NAME,
E.BI
R
T
H
D
ATE,E.JOI
I
GDATE,E.DAT
EO GENDER,E.EN
D
OFCONT
R
ACT
D
ATE,E.EMAIL
A
DDRESS
,
E
C
.
PRES
E
N
T
MB
E
C
.EMERGE
N
CYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name,d.ParentID", Fromdate, sEmpID);
tempdataset = tc.ExecuteDataSet(sTotalGross);
tempdataset.Tables[0].TableName = "TotalGross";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sOPIItem = SQLParser.MakeSQL(@"Select E.EMPLOYEENO,E.NAME,G.Code Grade,d.DESCRIPTION Department,
des.NAME Designation,d.ParentID,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME SpouseName,
E.NationalID,E.ACCOUNTNO,EN.NAME NomineeName1,EN.Name NomineeName2, opdi.Description,
opdi.ChangeNetAmount Amount,'Salaries Expenses' GroupDescription
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
inner join OPIProcessDetail opd on E.EMPLOYEEID = opd.EmployeeID
inner join OPIProcess op on op.OPIProcessID = opd.OPIProcessID
inner join OPIProcessDetailItem opdi on opd.OPIProcessDetailID = opdi.OPIProcessDetailID
where op.OPIMonth=%d and opd.EmployeeID in(%q)
gro
u
by E.
E
ML Code,d.DESC
I
TI
O
N, des.NAME,
E.BI
R
THDATE
,
E
.
J
OININGDAT
,
.DATEOFCONFI
RM .ENDOFCONTR
A
CTDATE
,
E.E
M
AILADDRESS,
E
C.PRES
E
N
T
M
OBIL
E
,
EC.EME
R
GENCYTE
L
EPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name,opdi.Description,opdi.ChangeNetAmount,d.ParentID",
Fromdate, sEmpID);
tempdataset = tc.ExecuteDataSet(sOPIItem);
tempdataset.Tables[0].TableName = "OPIItem";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sTotalOPI = SQLParser.MakeSQL(@"Select E.EMPLOYEENO,E.NAME,G.Code Grade,d.DESCRIPTION Department,
des.NAME Designation,d.ParentID,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME SpouseName,
E.NationalID,E.ACCOUNTNO,EN.NAME NomineeName1,EN.Name NomineeName2,
'Total OPI' Description,Sum(opdi.ChangeNetAmount) Amount,'Salaries Expenses' GroupDescription
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
inner join OPIProcessDetail opd on E.EMPLOYEEID = opd.EmployeeID
inner join OPIProcess op on op.OPIProcessID = opd.OPIProcessID
inner join OPIProcessDetailItem opdi on opd.OPIProcessDetailID = opdi.OPIProcessDetailID
where op.OPIMonth=%d and opd.EmployeeID in(%q)
grou
p
y NAME,G.Code
d
DE
S
CRIPTION,des.N
A
ME,
E.
B
I
R
T
HDATE,E.J
I
INGDATE,E
.D N,E.GENDER,
E
.ENDOF
C
ONT
R
ACTDATE,E.E
M
AILADD
R
E
S
S
,EC.
P
R
E
SN
EC.
E
MERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name,opdi.Description,d.ParentID",
Fromdate, sEmpID);
tempdataset = tc.ExecuteDataSet(sTotalOPI);
tempdataset.Tables[0].TableName = "Total OPI";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sDeductedItem = SQLParser.MakeSQL(@"Select E.EMPLOYEENO,E.NAME,G.Code Grade,d.DESCRIPTION Department,
des.NAME Designation,d.ParentID,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME SpouseName,
E.NationalID,E.ACCOUNTNO,EN.NAME NomineeName1,EN.Name NomineeName2,smd.Description,
smd.changedamount Amount,'Deduction from Salary' GroupDescription,smd.POSITION
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
inner join SalaryMonthly sm on E.EMPLOYEEID = sm.EmployeeID
inner join SalaryMonthlyDetail smd on smd.SalaryMonthlyID = sm.SalaryMonthlyID
where sm.SalaryMonth=%d and sm.EmployeeID in(%q)
and smd.ItemGroup in(3)
group by E.EMPLOYEENO,E.NAME,G
.
ode,d.DE
S
RIPTIO
N
,e
E.BIRTHDA
T
EE ATEOFCONFIR
M
ATION,
E
.
G
E
NDER,E.EN
O
CONTRACTDAT
E, C.PRESENTMO
B
ILE,
LEPHON
,EC.PARMANENT
D
RESS,EC.P
R
ESENTAD
D
RESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name,smd.Description, smd.changedamount,smd.POSITION,d.ParentID
order by E.EmployeeNo,smd.POSITION", Fromdate, sEmpID);
tempdataset = tc.ExecuteDataSet(sDeductedItem);
tempdataset.Tables[0].TableName = "Deducted Items";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sTotalDeduction = SQLParser.MakeSQL(@"Select E.EMPLOYEENO,E.NAME,G.Code Grade,d.DESCRIPTION Department,
des.NAME Designation,d.ParentID,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME SpouseName,
E.NationalID,E.ACCOUNTNO,EN.NAME NomineeName1,EN.Name NomineeName2,'Total Deduction' Description,
Sum(smd.changedamount) Amount,'Deduction from Salary' GroupDescription
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
inner join SalaryMonthly sm on E.EMPLOYEEID = sm.EmployeeID
inner join SalaryMonthlyDetail smd on smd.SalaryMonthlyID = sm.SalaryMonthlyID
where sm.SalaryMonth=%d and sm.EmployeeID in(%q)
and smd.ItemGroup in(3)
group by E.EM
P
OYEENO,E
.
AME,G.
C
oe des.NAME,
OININGDATE,
E
.DATEO
F
C
O
N
FIRMATION
E
GENDER,E.ENDOFCO
NT ADDRESS,EC.
P
RESENT
M
OBI
L
E,
ERGENC
TELEPHONE,EC.PA
M
NENTADDRE
S
S,EC.PR
E
SENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name,d.ParentID
order by E.EmployeeNo", Fromdate, sEmpID);
tempdataset = tc.ExecuteDataSet(sTotalDeduction);
tempdataset.Tables[0].TableName = "Total Deduction";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sNetPay = SQLParser.MakeSQL(
@"Select tbGross.*,ISNULL((ISNULL(tbOPI.Amount,0)+tbGross.PreAmount - tbDeduction.Amount),0)as Amount from (
Select E.EMPLOYEENO,E.NAME,G.Code Grade,d.DESCRIPTION Department,
des.NAME Designation,d.ParentID,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME SpouseName,Max(smd.Position)as Position,
E.NationalID,E.ACCOUNTNO,EN.NAME NomineeName1,EN.Name NomineeName2, 'Net Salary'as Description,
SUM(smd.changedamount) PreAmount,'' GroupDescription
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
inner join SalaryMonthly sm on E.EMPLOYEEID = sm.EmployeeID
inner join SalaryMonthlyDetail smd on smd.SalaryMonthlyID = sm.SalaryMonthlyID
where sm.Salary
M
nth=%d a
n
sm.Em
p
ly
and smd.Ite
m
Go
group by E.EMPLO
YE e,d.DESCRIP
T
ION,de
s
.NA
M
E,
THDATE
E.JOINI
G
ATE,E.DAT
E
OFCONFI
R
MATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name,d.ParentID)tbGross
left join
(
Select E.EMPLOYEENO,E.NAME,G.Code Grade,d.DESCRIPTION Department,
des.NAME Designation,d.ParentID,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME SpouseName,
E.NationalID,E.ACCOUNTNO,EN.NAME NomineeName1,EN.Name NomineeName2, 'Total OPI' Description,
Sum(opdi.ChangeNetAmount) Amount,'' GroupDescription
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
inner join OPIProcessDetail opd on E.EMPLOYEEID = opd.EmployeeID
inner join OPIProcess op on op.OPIProcessID = opd.OPIProcessID
inner join OPIProcessDetailItem opdi on opd.OPIProcessDetailID = opdi.OPIProcessDetailID
where op.OPIMonth=%d and opd.EmployeeID in(%q)
group by E.EMPLOYEENO,E.NAME,G.Code,d.DESCRIPTION,des.NAME,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name,opdi.Description,d.ParentID)tbOPI on tbGross.EmployeeNo = tbOPI.EmployeeNo
left join
(
Select E.EMPLOYEENO,E.NAME,G.Code Grade,d.DESCRIPTION Department,
des.NAME Designation,d.ParentID,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME SpouseName,
E.NationalID,E.ACCOUNTNO,EN.NAME NomineeName1,EN.Name NomineeName2,'Total Deduction' Description,
Sum(smd.changedamount) Amount,'' GroupDescription
from Employee E
inner join Grades G on E.GradeID = G.GradeID
inner join Department d on E.DepartmentID = d.DepartmentID
inner join Designation des on E.DesignationID = des.DesignationID
left Outer join EMPCONTACT EC on E.EMPLOYEEID = EC.EMPLOYEEID
left Outer join EMPSPOUSE ES on E.EMPLOYEEID = ES.EMPLOYEEID
left Outer Join EMPNOMINEE EN on E.EMPLOYEEID = EN.EMPLOYEEID
inner join SalaryMonthly sm on E.EMPLOYEEID = sm.EmployeeID
inner join SalaryMonthlyDetail smd on smd.SalaryMonthlyID = sm.SalaryMonthlyID
where sm.SalaryMonth=%d and sm.EmployeeID in(%q)
and smd.ItemGroup in(3)
group by E.EMPLOYEENO,E.NAME,G.Code,d.DESCRIPTION,des.NAME,
E.BIRTHDATE,E.JOININGDATE,E.DATEOFCONFIRMATION,E.GENDER,E.ENDOFCONTRACTDATE,E.EMAILADDRESS,EC.PRESENTMOBILE,
EC.EMERGENCYTELEPHONE,EC.PARMANENTADDRESS,EC.PRESENTADDRESS,E.FATHERNAME,E.MOTHERNAME,ES.NAME,
E.NationalID,E.ACCOUNTNO,EN.Name,EN.Name,d.ParentID) tbDeduction on tbGross.EMPLOYEENO = tbDeduction.EMPLOYEENO
", Fromdate, sEmpID, Fromdate, sEmpID, Fromdate, sEmpID);
tempdataset = tc.ExecuteDataSet(sNetPay);
tempdataset.Tables[0].TableName = "Net Pay";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmployeesPF(TransactionContext tc, DateTime dateTime, string sUnitID)
D
ataSet rootDataset
=
n
ew DataSet();
DataSet
t
e
m
pdataset =
n
e
w DataSet(
)
;
try
P
F
= SQLPars
e
r
.MakeSQL(@
"
Se
l
ect
istinct tb1.
D
ep
a
rtme
t, tb1.EPF,tb
1
.CPF,tb1.ParentID
ISNULL(tb3.
P
SNULL
(
t
b3
PFLoanInterest, 0) (
T Max
E.EM
LOYEEI
)
mp
o
y
eeID,
ase W
EN
pft.TranTy
e
%
THEN pft.TRA
A
O
U
NT ELSE 0 END
Sum(C
se
HE
pft.TranType
n
T
HEN pft.TRANAM
.
D
ESCRIPTION
D
pa
r
tment, D.Par
f
om Depart
en
D
yee
on E
Depa
tmentID =
.D
pa
t
m
entID
Trans
ctio
pft on e.Emp
oy
eI
=
pft.Emplo
e
iD
re pf
.Tra
Date = %d
group by
left
JO
I
N
(
ax(sm
EM
L
O
YEEID)Empl
o
y
e
eID,
M
C
ODE = %n
A
N
D
smd.ITEMGR
O
U
P
= %n AND smd.ITEMID
=
1 THEN
s
m
d.CHANGEDAMOUNT E
L
S
E
0 END) PFLo
a
n,
E
W
HEN smd.ITEMCODE = %
n
A
N
D smd.ITEMGROUP =
%
n
A
ND smd.ITEMID =
1
T
HEN smd.CH
A
N
G
EDAMOUNT E
L
SE
0 EN
D)
D.
D
ESCR
I
PT
I
ON D
e
p
a
rtment,
D
.
arentID
from Left Outer join Department D on D.e DepartmentI
nner join E
m
ployee
e
o
n e.Emplo
e
ID = sm.E
mp
INNE
R
J
O
IN S
A
L
A
RY L LARYM
N
THLYID =
md
.S ID
w
he Mo
grou
by D.
ESCRIPT
ON, D.ParentID
tb3 On
tb1.Departm rtment
ND tb1.Pare
t
D =
tb3.Par
e
n
tI
elect Dep
a
rtmentI
D, Code, Description from Department
where ParentID is Null)tb2 on tb1.ParentID = tb2.DepartmentID
where tb1.ParentID in(%q)",
(int)EnumPFTranType.PFAmount, (int)EnumPFTranType.CPFAmount, dateTime, (int)EnumSalaryItemCode
.Loan_Monthly_Installment,
(int)EnumSalaryGroup.Deductions, (int)EnumSalaryItemCode.Loan_Monthly_Interest, (int)EnumSalaryGroup
.Deductions, dateTime,
sUnitID);
tempdataset = tc.ExecuteDataSet(sSQLPF);
tempdataset.Tables[0].TableName = "PF";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetStuffListWithoutSalary(TransactionContext tc, DateTime fromdate, string sEmpID)
{
et te
pd
t
a
set = new D
a
t
a
Set();
ist = SQL Pa r
g
DESCR
PTI
O
N D par me nt, E.AC
C
OUNTN O, E. JO INI
N
F
R
OM EM PL OYE
l
OIN
ig na t
i
on D ON E.DES
GN AT IO NI
D.
D
SIGNA TI O
N
EFT
JOIND ep art
ent
De ON E.
D
EP AR ME NT I
=
D
e.DEPARTM
EN TI D
L
ft J OI
M
COS T
C
NTER empcc ON
E
IN NE R JOIN C
R
G CC ON CC.C
WH
", s
mpID)
te
p
d
ataset = tc.x
cu
t
eDataSet(sS
bleNa
e =
St uf fList"
r ot at
s
t.
T
ab les.Add(t
cat c
Ex ce pt
on e x)
{
throw ne w Exce
t
(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmployeesPF(TransactionContext tc, DateTime dateTime)
{
D
ata
et ne
w
DataSet()
;
s
ng
sTr
a
nType = o
ve t.T
o
Stri ng((int
EnumP
Tran
y
s tr ing sSQL Mo n
thly
P
F = SQLPars
r.Ma
eSQL(@"SELE alGro
s, SUM(t
EP
) EP
F
,
enter
t.D
e
signatio
,t
.
D
e
p
art
FRO
M
(
e.E
m
ployeeNo,e.Name
,
e.JOININGD
A
E
,D.
N
AME Designation,De
p
.DESCRIPTION Departme
n
,
THISMO
N
TA
(sm.ThisMon
t
hBasic
,
0
)
TotalGros
,
C
A
S
E
WHE
N
p
t. n AMOUN
ELSE 0 EN
E
PF
pt %n THE
pt.TRANAMO
UNT ELSE 0 ND CPF,
CC.DES
RI
P
ION Cost
enter
FRO P FT RAN
A
TIO
p t
EEID = e.EM PL O
EEID AND p
t
.
T
RAN DA TE = %
d
L EF T
OIN DES
L EF JOIN DEP AE RTM
ID
c. MP
OYEI D ND cm pc .Cur
entCC
1
rID
T J IN S ALARYM
N
HL
Y m N s m. EMPLOYEE
I
D O yMonth =
%
ROUP
Y t
Emplo ee o
,
t. Name, t
.
TH , , t.Co
tCenter,
t
.
JOININGDATE,t.Desi
na
t
on,t.Dep
rtment"
, TranTyp
.PFAmount,
i
t)E
umPFTra
n
T
yp dateT
me, dateT
m
);
t
e
mpdataset = tc
.ExecuteD
a
a
et(
S
LMonthl
y
PF);
tempda
t
aset.Tabl
e
s0 = "M tDatas
t.Tables.Add(
e
pdataset.T
ables[0
]
.Copy());
}
catch
(Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmployeesPFNew(TransactionContext tc, DateTime Fromdate, DateTime Todate)
=
newD a
t
aS et();
Da t
a
Set tempd at se t
= ne w D
taSet();
string s
ranType = C n
t)Enum
P
FT
r
anType.CPFAmou
n
t
)
try
SQLPar
s
er
.MakeSQL(@" SELECT t. [N a
,t.Employe N
( SU M( t. PF), 0
E P
F
, Round(
U
(
t
CPF)
0)
CPF, t.B
DATE
//
SELECT e.
mplo
e
No,
.Na
m
tm
e
nt,
/
/
//
CA
S
E WHEN pt.
R
N
T
YPE = n TH
N p
.T RA NA MO UNT ELS
E N
C
SE
//
//
C
C
.DESCRIT IO
//
LEFT JOIN E p
%d
A
D
%
d
T
ON D
ON e.DES GN TIO N
D
D
DE
S
IGNATIONI D
/
E
ENTE
m
cc ON e.EMPLOY EI D
=
cmpc
c
EM PL OYEEID AND cmp
c
.
C
urrentCC=1
CC .C RGID
/ /
l
r
yMo
n
th = %d
/
Le ft
J
OIN SALAR
Y
ONTHLY ET
A
L smd N m
.
AL AR YMONTHLYI
ND sm d.ITEMGRO UP IN 1,
8)
/
)t
/
t.Employe N
o
, t.[N
a
me]
, .T ISMONTHB
AS IC , t.T
o
ta lG r
oss,
t
.
Co //
TE .Depa
tme
t,t.Birth
D
at
e
", (int
)
En.P t)Enum
FTranType.C
PFAmount, Fomdate, Todate, T
date);
string
s
qlPfException = SQ
Pa
r
er.MakeS
L(@" SEL
E
T t.Name
t.Empl
oyeeNo,t.JOI Designa
ion,t.Depar
m
nt,
t.Total
G
r
os y,ROUND
(SUM(t.EPF)
0
as
PF, Rou
n
d
(S CPF,
t.BIRTHDA
E
FROM
(
S
ELECT e.
E
m
plo
y
eeNo,e.Name,e.
B
IRTHDATE,
e. D.N io ON Department,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END EPF,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END CPF,
IS BASIC,0) THISMONTHBASIC,
ISNULL(s.ThisMo lGross
FROM SALARYMONTHLY s
INNER JOIN EMPLOYEE e ON e.EMPLOYEEID= INNER JOIN DESIGNATION d ON d.DESIGNATIO ONID
INNER JOIN DEPARTMENT dept ON = dept.DEPARTMENTID
INNER JOIN EmpLifeCycle elc ON elc.E OYEEID
INNER JOIN EMPCOSTCENTER cmpcc ON e.EMPLOYEEID=cm ND 1
INNER JOIN CRG CC terID = CC.CRGID
RYMONTHLYDETAIL smd ON s.SALARYMONTHLYID = smd.SALARYMONTHLYID AND smd.ITEMGROUP IN(1,8)
PFTRANSACTION pt ON pt.EMPLOYEEID=e.EMPLOYEEID
WHERE AND elc.IsConfirm=1 AND elc.EffectDate BETWEEN %d AND %d)t
mployeeNo, t.Name, t.THISMONTHBASIC, t.TotalGross, t.JOININGDATE,t.Designation,t.Department,t.BirthDate",
(pe.PFAmount, (int)EnumPFTranType.CPFAmount, Todate, Fromdate, Todate);
mpdataset = tc.ExecuteDataSet(sqlPfException);
tempdataset.Tables[0].TableName = "PFandC rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
ion(ex.Message);
return rootDataset;
}
internal static DataSet GetMonthlySalaryRevision(TransactionContext tc, DateTime Fromdate, DateTime Todate)
{
Dat
Set(
;
D
a
aSet
te
m
pdataset =
new
a
aSe
();
{
str
n
m
alar
Re
v
ision = SQ
Pars
r
Mak
SQL
(@ EENO,
E
m
p
.JOININGDATE,D
E
S
.AME Designatio
n, sa.BAS
I
C
S
ALARY Present,
I
S
N
LL(gsat.BAI
ARYAS
IGNM
NT GSA
ESALA
YASS
GNMENT GSAt
O
g
a
t
.EMPLOYEEID = g
s
.
E
MPLOYEEID AND SALAR
ID - 1
AND gsat.B
SICS
LA
Y
<
>gsa.BASICSA
A
Y
I
NER
OIN EMPLOYEE
Emp
On
GSA
.EMPLOYEEID
=
E
m
p.EMPLOYEEI
L
FT JO
N
e
s
ignation D
E
S On
E
mp.DESIGNA
ION
D = D
E
S.DESIGNA
T
IO
LE
F
T JOIN Depar
m
nt
Dep O
TMENT
D
W
ere
Emp.PayrollType
d = 1
AN
D
GSA.EFFE
TD
A
T
E
b SICS
LARY
0 ORDER BY em
.J
IN
NG
D
ATE DESC",
F
r
omdate, To
taset
=
tc.ExecuteD
a
t
a
et(
Sal
a
ryRevisio
n
)
t
mpdatas
t
.abl
s
[
0
].rootData
s
t
.Tabl
e
.
A
dd(tempdataset
.
a
b
les[0].Cop
y
)
)
;
}
catch (Exc
e
p
t
ion e)
{
throw new Exception(e.Message, e);
}
rt
}
internal static DataSet GetEmployeesPF(TransactionContext tc, DateTime Fromdate, DateTime Todate)
DataSet
r
ootDat
a
set
= new DataS
e
t();
Da ta taSet
)
;
Ty tring
(in
)EnumPFTr
a
nT
y
pe.PFAm
o
un ov((int)
numPFTranTy
pe.CPFAmoun);
t
y
string
s
SQLMonthlyPF = SQL
ar
s
r.MakeSQ
(@"SELEC
T
t.Employ
eNo, t
.Name, t.TH
t.Total
ross, SUM(t
E
F)E
F,
S
t. PF)C F
,
to esig a
F OM (
SELECT e.EmployeeNo,e.Name,e.JOININGDATE,D.NAME Designation,Dep.DESCRIPTION Department,
ISNULL(sm.THISMONTHBASIC,0)THISMONTHBASIC,
ISNULL(SUM(smd.ChangedAmount),0)as TotalGross,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END EPF,
CASE WHEN pt.TRANTYPE = %n THEN pt.TRANAMOUNT ELSE 0 END CPF,
CC.DESCRIPTION CostCenter
FROM PFTRANSACTION pt
LEFT JOIN Employee e ON pt.EMPLOYEEID = e.EMPLOYEEID AND e.PFMEMBERSHIPDT BETWEEN %d AND %d
LEFT JOIN DESIGNATION D ON e.DESIGNATIONID = D.DESIGNATIONID
LEFT JOIN DEPARTMENT Dep ON e.DEPARTMENTID = Dep.DEPARTMENTID
LEFT JOIN EMPCOSTCENTER cmpcc ON e.EMPLOYEEID=cmpc
c
PL OY EEID A
N
cm
I NE
R OIN CR G CC ON cm pc c
ID
LEFT JOIN
m.EMPLOYE EI = e .EMPL OY EI D AN
D
sm.SalaryMo nt = % d
LARYM
N
THLY DE TA IL sm
O
TH YMONT
LYI
AND smd.
I
T
E
MGROUP
I
(
1
,8
GR
OUP BY e.EMLOYEENO,e.NAME,IS
ULL(sm
THISMON
HBASIC,0),CC.D
E
SCRIPTION,pt.TRANT
PE
,
t.TRANDA
E,
NAMOUNT
e.JOININGDA
E
D.N
ME,Dep.
D
E
SC
)
GROU
P
BY
t
.EmployeeNo, t
.
Name, t.
T
I
MON
H
ASIC, t
.
TotalGro
s
s
, t
.
CostCenter,
IN ation,
.Department",
(
nt)EnumPF
T
ranType
.PFAmount, (int)EnumPFTranType.CPFAmount,
Fromdate, Todate, Todate);
tempdataset = tc.ExecuteDataSet(sSQLMonthlyPF);
tempdataset.Tables[0].TableName = "MonthlyPF";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetSalarySummaryData(TransactionContext tc, DateTime dateTime)
DataSe
roo
D
tas
t =
n tase
= n
w
D
ataSet()
try
{
r.M
akeSQL(@"SE
ECT smd.Des ,D.D
scription Dep
rt
RO
M
SALARYMON
H
Y
D
ETAIL smd
LY s
ON
m.SALARYMON
H
YI
=
smd.SALARYMO
T
L
Y
ID
EFT JOIN D
PAR
ME
T
D ON sm.DEPA
T
ENT
I
D = D.DEPARTM
WHE
E
m
.
SalaryMont
h
= %d N D smd.It
mG ro IN(1
,
8)
G
OUP
BY
sm
.DESCI RI
O
R
DER BY D.D
SCR IP IO
N
,smd.POSITI
N
,
taset t c.ExecuteD
ta
sQ ss);
tem data t.T
ble
s[ 0] .T ab leName= " al ar y
G
r
dd(tem
da
a
s
et.Tables[
0
]
.Copy
(
));
string
s
S
Q
LG
r
os sT otal = SQ
L
Pa
r
ser.Ma eSQ L("
S
ELECT ' o
t
A
mount, D.Des r
i
ption Depa tm n
t
M
O
I NN ER J
O
N
S AL RY ONTH Y m ON
m.SA LARYMONTH LY ID
s md.SALARYMON
T
LEFT J
OI
DEPARTMENT
D N m.
D
EPARTME NT ID = D.D EP ARTMENTI
D
GRO
P
BY
D.DESCRIPTION
ORDER
B
D.DESCRIPT
IO
te
m
pda
t
aset = tc.E
x
ecuteD
a
t
a
S
et(s
S
Q
L
Gr temp
a
taset.Tab
es
[0 =
rootD
a
ta
s
et.Tabl
e
s.se Copy()
;
strng sSQLOPIItems =
SQLPar
er.Make
QL(@"SELECT op.Name
D
ESCRIPTION,Sum(opd
.C
h
ngeNetAm
unt) Amo
unt,D.DESCRI ment
FROM OP
P
oce
sDetail
I
t
e
LEFT JO
N
OpiItem o
p
ON opd
i
.OPIItemID = op.OpiItemID
LEFT JOIN OPIProcessDetail opd ON opd.OPIProcessDetailID = opdi.OPIProcessDetailID
LEFT JOIN OPIProcess opp ON opd.OPIProcessID = opp.OPIProcessID
LEFT JOIN Department D ON opd.DepartmentID = D.DEPARTMENTID
WHERE opp.OPIMonth = %d
GROUP BY op.Name,D.DESCRIPTION,op.SequenceNO
ORDER BY D.DESCRIPTION,op.SequenceNO", dateTime);
tempdataset = tc.ExecuteDataSet(sSQL
O
IItems);
pdataset.Ta
l
s[
0
].TableName =
"
OPIItems";
aset.Tables
.Add(te
m
p
d
a
taset.Tab
e
[0].Copy());
tring sSQLT
o
talOPI
= S
Q
LParser.Mak
e
SQL(@"
S
E
L
E
CT
'
T
o
tl n,SUM(
pdi.ChangeNetA
o
nt) Amou
n
t,D.Des
c
ription Department
FROM OPIProcessDetailItem opdi
LEFT JOIN OpiItem op ON opdi.OPIItemID = op.OpiItemID
LEFT JOIN OPIProcessDetail opd ON opd.OPIProcessDetailID = opdi.OPIProcessDetailID
LEFT JOIN OPIProcess opp ON opd.OPIProcessID = opp.OPIProcessID
LEFT JOIN Department D ON opd.DepartmentID = D.DEPARTMENTID
WHERE opp.OPIMonth = %d
G
R
OUP BY D.DESCR
I
PTION
RDER BY D.DE
SC me);
t
empdataset
=
tc.Ex
e
c
u
t
eDat
a
S
e
ts
tempd
t
set.Table
s
[0].Tab
l
eName = "TotalOPI";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sSQLGrandTotal = SQLParser.MakeSQL(@"SELECT 'Grand Total' DESCRIPTION,SUM(tab1.Amount) Amount,tab1.Department
FROM
(SELECT 'Total Gross' Description ,SUM(smd.ChangedAmount) Amount,
D.Description Department
FROM SALARYMONTHLYDETAIL smd
INNER JOIN SALARYMONTHLY sm ON sm.SALARYMONTHLYID = smd.SALARYMONTHLYID
LEFT JOIN DEPARTMENT D ON sm.DEPARTMENTID = D.DEPARTMENTID
WHERE sm.SalaryMonth = %d AND smd.ITEMGROUP IN(1,8)
SCRIPTION
nion
T 'Total O
P
I' Des
c
rip
t
ion,SUM(opd
i
.Chang
e
N
e
t
Amou
n
t
)
A
D.Description Department
FROM OPIProcessDetailItem opdi
LEFT JOIN OpiItem op ON opdi.OPIItemID = op.OpiItemID
LEFT JOIN OPIProcessDetail opd ON opd.OPIProcessDetailID = opdi.OPIProcessDetailID
LEFT JOIN OPIProcess opp ON opd.OPIProcessID = opp.OPIProcessID
LEFT JOIN Department D ON opd.DepartmentID = D.DEPARTMENTID
WHERE opp.OPIMonth = %d
GROUP BY D.DESCRIPTION)tab1
GROUP BY tab1.Department
Order By tab1.Department", dateTime, dateTime);
tempd
a
aset = t
c
.x LGrandTotal
;
t
e
mpdataset.Ta
b
le "GrandTota
l
";
o
tDataset.T
ab set.Tables[
0
].Copy
(
));
s
t
r
i
n
g sS
Q
L
D
eu arser.akeSQL(@"SELEC
md.Descri
p
tion ,S
U
M(smd.ChangedAmount) Amount,D.Description Department
FROM SALARYMONTHLYDETAIL smd
left JOIN SALARYMONTHLY sm ON sm.SALARYMONTHLYID = smd.SALARYMONTHLYID
LEFT JOIN DEPARTMENT D ON sm.DEPARTMENTID = D.DEPARTMENTID
WHERE sm.SalaryMonth = %d AND smd.ItemGroup IN(3)
GROUP BY smd.DESCRIPTION,D.DESCRIPTION,smd.POSITION
ORDER BY D.DESCRIPTION,smd.POSITION", dateTime);
tempdataset = tc.ExecuteDataSet(sSQLDeductedItems);
tempdataset.Tables[0].TableName = "Deduction";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
var sSQLTotalDeduction = SQLParser.MakeSQL(
@"SELECT 'Total Deduction' Description ,SUM(smd.ChangedAmount) Amount,D.Description Department
FROM SALARYMONTHLYDETAIL smd
INNER JOIN SALARYMONTHLY sm ON sm.SALARYMONTHLYID = smd.SALARYMONTHLYID
LEFT JOIN DEPARTMENT D ON sm.DEPARTMENTID = D.DEPARTMENTID
WHERE sm.SalaryMonth = %d AND smd.ITEMGROUP IN(3)
GROUP BY D.DESCRIPTION
ORDER BY D.DESCRIPTION", dateTime);
tempdataset = tc.ExecuteDataSet(sSQLTotalDeduction);
tempdataset.Tables[0].TableName = "TotalDeduction";
rootDataset.Tables.Add(t
e
pdataset
.ables[0]
.Cp stri
g
sN
e
tSalary = SQLP
a
rser.MakeSQL(@
"
SE ' Descript
i
on, (t1
.A
m
o
unt - t2.m
unt) Amount
,t
FROM
(SELECT '
G
rand To
t
al' DESCRIPTION,SUM(tab1.Amount) Amount,tab1.Department
FROM
(SELECT 'Total Gross' Description ,SUM(smd.ChangedAmount) Amount,D.Description Department
FROM SALARYMONTHLYDETAIL smd
INNER JOIN SALARYMONTHLY sm ON sm.SALARYMONTHLYID = smd.SALARYMONTHLYID
LEFT JOIN DEPARTMENT D ON sm.DEPARTMENTID = D.DEPARTMENTID
WHERE sm.SalaryMonth = %d AND smd.ITEMGROUP IN(1, 8)
GROUP BY D.DESCRIPTION
U
n
in
SELECT 'Total O
P
I' (opdi.Chang
e
NetAmo
u
n
t
)
Amount,
.
escription
De
F
R
O
M
OPI
P
r
o
cs
LEFT JOIN OpiItem op ON opdi.OPIItemID = op.OpiItemID
LEFT JOIN OPIProcessDetail opd ON opd.OPIProcessDetailID = opdi.OPIProcessDetailID
LEFT JOIN OPIProcess opp ON opd.OPIProcessID = opp.OPIProcessID
LEFT JOIN Department D ON opd.DepartmentID = D.DEPARTMENTID
WHERE opp.OPIMonth = %d
GROUP BY D.DESCRIPTION)tab1
GROUP BY tab1.Department)t1
LEFT OUTER join
(S
E
LC on' Descrip
i
n,
SUM(smd.Change
d
Amount) Amount,D.
D
es ent
LYDETAIL sm
d
SALAR
MONTHLY sm
O
sm.SALAR
Y
MONTHLY
I
D = smd.SALARYMONTHLYID
LEFT JOIN DEPARTMENT D ON sm.DEPARTMENTID = D.DEPARTMENTID
WHERE sm.SalaryMonth = %d AND smd.ITEMGROUP IN(3)
GROUP BY D.DESCRIPTION)t2
ON t1.Department = t2.Department
ORDER BY t1.Department", dateTime, dateTime, dateTime);
tempdataset = tc.ExecuteDataSet(sNetSalary);
tempdataset.Tables[0].TableName = "NetSalary";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetStaggingData(TransactionContext tc)
et =
new
ataSet();
DataSet t
m
d
a
taset = new D
string sSQL
=
S
Q
Par
er.M
akeSQL(@"
EL
E
C
T
* empda
as
t
= tc.Execut
0] .T abl
taset.
bl
es.A
d( te m
pd
ataset.Tabl
e
s[0
]
.Cop
y
());
s L = SQ
LP rs r.MakeSQL(" SELECT DIS
e, ar re ar nfo, pr om ot iontype, tillda
e FR
fect
ate"
;
tempdatas
t
=
t
c.ExecuteD[0].able
ame = "STAGGING_
RAD
SA
ARY
A
SSIGNMENT";
rootDataset.Table
sSQ
= SQLPars
r.M
ke
QL(
@
"SELECT dist
n
t e
m
ployeeno, post ode,
osti
gtype, extr
d
te
FRO
M
STAGGING_EM
P
S
T
ING ORDER BY atase
=
t
c.Execut
D
t
aS Table
am
=
"STAGGING_
E
MPPOS mpdat
se
.Tab
l
es[0].Copy
(
));
h(E
cepti
n ex
(
ex.M essa
e);
}
rt ur n r
o
otD
a
taset;
}
internal static DataSet GetSalaryComparisonData(TransactionContext tc, DateTime _SalaryMonth, string sEmpID)
Dat
Set
empdat set = n
w D ta t(
)
;
t ry
{
akeS
L(@"
ELECT E.EM
L
YE
NO
,
E.NAME,(G.DE
C
I
P
TION) Grade,
(D.D
S
R
I
TIO
)
D
epartment
DE
S
.
NA
IT
GR
O
UP IN(1,8)
T
EN
sm
d
.CHANGEDAM
OUNT ELSE 0 END) CurAmount,
S
UM laryMonth =
%d AND
s
m
d
.ITEMGROU
N(1,8)
THE
N
s
md NT Prv
m
ount
FROM
E
MP
L
FT JOI
Grades
G ON E.GRADEID
=
G.GRADEID
LEF
J IN De pa rtmen
ON
E.DEPAR
T
M
ET TMEN
Lef
t
Join Designation DES ON E.DESIGNATIONID = D
E
SD
EFT J
O
IN S
a
lary Mon thly s
m
ON E .E M
P
LO YE E
ID = s m
.
E
ML
LEFT
JOIN SalaryMo
n
thlyDet i
sm LARYM NTH
LY D
WHERE
s
m.EMPL
O
Y
E
EI IN ( q)
GROUP BY
E
.EMPLO
Y
EEN
O
,E.NAME,G.D
E
SCRIPT
I
O
N
,
D.DE
S
C
R
I
D ES .NAME",
_
SalaryMonth
,
PayrollGlobal
F
unctions.Payrol
l
LastDateOfMo
nt(_Sal ryMon
t
h.Add on hs(1)),
pID);
temp at se t =
t
c.Ex
e
cu laryCompari
s
on);
mp ataset.Tabl es[0].Table
Nam rison";
rootDat set T
able s.Ad
d
(
t
e
mpdat as e
t
.
}
catc
(E ceptio
x) {
ew.Mess
ge );
return rootDat
set;
}
internal static DataSet GetEmpExperience(TransactionContext tc, int empid)
atas t =
w DataSet(
;
Da ta St =
{
t
ing sSQLE
x
perien e
= SQLParser.MakeSQL(@"SELECT E.NAME,E.FATHERNAME,E.MOTHERNAME,E.JOININGDATE,E.ENDOFCONTRACTDATE,
E.Gender,D.DESCRIPTION Department,DES.NAME Designation
FROM EMPLOYEE e
Left Outer Join Department D ON E.DEPARTMENTID = D.DEPARTMENTID
LEFT OUTER JOIN Designation DES ON E.DESIGNATIONID = DES.DESIGNATIONID
WHERE E.EMPLOYEEID = %n", empid);
tempdataset = tc.ExecuteDataSet(sSQLExperience);
tempdataset.Tables[0].TableName = "Experience";
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpsAuditReport(TransactionContext tc, DateTime _SalaryMonth, string sEmpID)
{
DataSet ro
t
at as e
t
= new DataSe
{
st in
s
SQL Au dit = SQ
P
rse r.Ma keSQL(@"S
Desi
tion
G.DESCRIP TI ON Grade,
E,smdI TE M
G
ROUP, sm d. IT EMI
,E
J
O
I
N
F RO M EM PL O
Y
E
E E
D.D
E
PART
MENT ID
LEFT JOIN De
s
ignation DE S O
N
E.DESIGN
A
T
I
O
N
I
N Grad
e
s
.GRADEID
ly sm On
E
.EMPLO
Y
E
E
I
D = sm .EMP
O
EEID
LEFT
JOI N Sa la ry MonthlyDe ta is RY smd.
R
YMONTHLYI
WHERE
sm
.
Salar Mo
n
t
EID IN
%q)
O
DER BY E.EMPLOYE
E
ID", _SalaryMonth,
sE
m
ID)
eDataS
t( S
LAudit)
;
mpdatas
t.Tables[0]
T
t
te pda
aset.T ab les[0].C
(
);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetSalaryRegister(TransactionContext tc, DateTime PayrollFirstDateOfMonth,
DateTime PayrollLastDateOfMonth, string sEmpID, int payrollTypeID)
{
var rootDataset = new DataSet();
var tempdataset = new DataSet();
var sql = string.Empty;
try
{
if (payrollTypeID == 1)
{
#region Nokia
sql = SQLParser.MakeSQL(@"SELECT * FROM
(SELECT 'BD' CountryCode, E.EMPLOYEENO EmployeeID, E.NAME EmpName, CC.Code CostCenter, 'BD80' EntityCode,
CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) +'-'+ CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) YearCode,
%d PeriodStartDate, %d PeriodEndDate,
CASE allowDeduct.CODE
WHEN 'E032' THEN 'N'
WHEN 'E033' THEN 'N'
ELSE 'R' END ProcessType,
CASE salMonD.ITEMID
WHEN -101 THEN 'E001'
WHEN -129 THEN 'D004'
WHEN -132 THEN 'O001'
WHEN -144 THEN 'D001'
ELSE allowDeduct.CODE END PayElementCode, salMonD.DESCRIPTION Description,
SUM(salMonD.CHANGEDAMOUNT) Amount, 'BDT' PayoutCurrency FROM SALARYMONTHLY salMon
LEFT JOIN EMPLOYEE E ON E.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN EMPCOSTCENTER salCC ON salCC.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN CRG CC ON CC.CRGID = salCC.COSTCENTERID
LEFT JOIN SALARYMONTHLYDETAIL salMonD ON salMonD.SALARYMONTHLYID = salMon.SALARYMONTHLYID
LEFT JOIN ALLOWANCEDEDUCTION allowDeduct ON (allowDeduct.NAME = salMonD.DESCRIPTION AND allowDeduct.PAYROLLTYPEID = %n)
WHERE salMon.SALARYMONTH = %d AND salMon.EmployeeID IN (%q) AND salCC.CURRENTCC = 1
Group BY E.EMPLOYEENO, E.NAME, CC.Code, salMon.SALARYMONTH, allowDeduct.CODE, salMonD.ITEMID, salMonD.DESCRIPTION
UNION
SELECT 'BD' CountryCode, E.EMPLOYEENO EmployeeID, E.NAME EmpName, CC.Code CostCenter, 'BD80' EntityCode,
CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) +'-'+ CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) YearCode,
%d PeriodStartDate, %d PeriodEndDate,
'R' ProcessType,
'E023' PayElementCode,
CASE WHEN oi.Name IS NULL THEN 'Leave Accrual' ELSE oi.Name END Description,
CASE WHEN op.VALUE IS NULL THEN 0 ELSE op.VALUE END Amount,
'BDT' PayoutCurrency FROM SALARYMONTHLY salMon
LEFT JOIN EMPLOYEE E ON E.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN EMPCOSTCENTER salCC ON salCC.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN CRG CC ON CC.CRGID = salCC.COSTCENTERID
LEFT JOIN OpiParameterIndividual op ON op.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN OPIITEM oi ON oi.OPIItemId = op.OPIItemId
WHERE salMon.SALARYMONTH = %d AND salMon.EmployeeID IN (%q) AND oi.OPIItemId = 1 AND salCC.CURRENTCC = 1
AND op.FROMDATE BETWEEN %d AND %d
UNION
SELECT 'BD' CountryCode, E.EMPLOYEENO EmployeeID, E.NAME EmpName, CC.Code CostCenter, 'BD80' EntityCode,
CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) +'-'+ CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) YearCode,
%d PeriodStartDate, %d PeriodEndDate,
'R' ProcessType,
'E022' PayElementCode,
'Total Earnings' Description,
SUM(salMonD.CHANGEDAMOUNT) Amount, 'BDT' PayoutCurrency FROM SALARYMONTHLY salMon
LEFT JOIN EMPLOYEE E ON E.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN EMPCOSTCENTER salCC ON salCC.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN CRG CC ON CC.CRGID = salCC.COSTCENTERID
LEFT JOIN SALARYMONTHLYDETAIL salMonD ON salMonD.SALARYMONTHLYID = salMon.SALARYMONTHLYID
LEFT JOIN ALLOWANCEDEDUCTION allowDeduct ON (allowDeduct.NAME = salMonD.DESCRIPTION AND allowDeduct.PAYROLLTYPEID = %n)
WHERE salMon.SALARYMONTH = %d AND salMon.EmployeeID IN (%q) AND salMonD.ITEMGROUP IN (1,8) AND salCC.CURRENTCC = 1
GROUP BY E.EMPLOYEENO, E.NAME, CC.Code, salMon.SALARYMONTH
UNION
SELECT 'BD' CountryCode, E.EMPLOYEENO EmployeeID, E.NAME EmpName, CC.Code CostCenter, 'BD80' EntityCode,
CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) +'-'+ CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) YearCode,
%d PeriodStartDate, %d PeriodEndDate,
'R' ProcessType,
'D006' PayElementCode,
'Total Deductions' Description,
SUM(salMonD.CHANGEDAMOUNT) Amount, 'BDT' PayoutCurrency FROM SALARYMONTHLY salMon
LEFT JOIN EMPLOYEE E ON E.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN EMPCOSTCENTER salCC ON salCC.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN CRG CC ON CC.CRGID = salCC.COSTCENTERID
LEFT JOIN SALARYMONTHLYDETAIL salMonD ON salMonD.SALARYMONTHLYID = salMon.SALARYMONTHLYID
LEFT JOIN ALLOWANCEDEDUCTION allowDeduct ON (allowDeduct.NAME = salMonD.DESCRIPTION AND allowDeduct.PAYROLLTYPEID = %n)
WHERE salMon.SALARYMONTH = %d AND salMon.EmployeeID IN (%q) AND salMonD.ITEMGROUP = 3 AND salCC.CURRENTCC = 1
GROUP BY E.EMPLOYEENO, E.NAME, CC.Code, salMon.SALARYMONTH
) tab1
ORDER BY tab1.EmployeeID", PayrollFirstDateOfMonth,
PayrollLastDateOfMonth, payrollTypeID, PayrollLastDateOfMonth, sEmpID,
PayrollFirstDateOfMonth, PayrollLastDateOfMonth, PayrollLastDateOfMonth, sEmpID,
PayrollFirstDateOfMonth, PayrollLastDateOfMonth,
PayrollFirstDateOfMonth, PayrollLastDateOfMonth, payrollTypeID, PayrollLastDateOfMonth, sEmpID,
PayrollFirstDateOfMonth, PayrollLastDateOfMonth, payrollTypeID, PayrollLastDateOfMonth, sEmpID);
#endregion
}
else if (payrollTypeID == 3)
{
#region APLL
sql = SQLParser.MakeSQL(@"SELECT * FROM
(SELECT 'BD' CountryCode, E.EMPLOYEENO EmployeeID, E.NAME EmpName, '' CostCenter, 'L865' EntityCode,
CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) YearCode,
%s PeriodStartDate, %s PeriodEndDate,
'R' ProcessType,
CASE salMonD.ITEMID
WHEN -101 THEN 'E001'
WHEN -129 THEN 'D004'
WHEN -132 THEN 'O001'
WHEN -144 THEN 'D001'
ELSE allowDeduct.CODE END PayElementCode, salMonD.DESCRIPTION Description,
SUM(salMonD.CHANGEDAMOUNT) Amount, 'BDT' PayoutCurrency FROM SALARYMONTHLY salMon
LEFT JOIN EMPLOYEE E ON E.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN SALARYMONTHLYDETAIL salMonD ON salMonD.SALARYMONTHLYID = salMon.SALARYMONTHLYID
LEFT JOIN ALLOWANCEDEDUCTION allowDeduct ON (allowDeduct.NAME = salMonD.DESCRIPTION AND allowDeduct.PAYROLLTYPEID = %n)
WHERE salMon.SALARYMONTH = %d AND salMon.EmployeeID IN (%q)
Group BY E.EMPLOYEENO, E.NAME, salMon.SALARYMONTH, allowDeduct.CODE, salMonD.ITEMID, salMonD.DESCRIPTION
UNION
SELECT 'BD' CountryCode, E.EMPLOYEENO EmployeeID, E.NAME EmpName, '' CostCenter, 'L865' EntityCode,
CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) YearCode,
%s PeriodStartDate, %s PeriodEndDate,
'R' ProcessType,
'E022' PayElementCode,
'Total Earnings' Description,
SUM(salMonD.CHANGEDAMOUNT) Amount, 'BDT' PayoutCurrency FROM SALARYMONTHLY salMon
LEFT JOIN EMPLOYEE E ON E.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN SALARYMONTHLYDETAIL salMonD ON salMonD.SALARYMONTHLYID = salMon.SALARYMONTHLYID
LEFT JOIN ALLOWANCEDEDUCTION allowDeduct ON (allowDeduct.NAME = salMonD.DESCRIPTION AND allowDeduct.PAYROLLTYPEID = %n)
WHERE salMon.SALARYMONTH = %d AND salMon.EmployeeID IN (%q) AND salMonD.ITEMGROUP IN (1,8)
GROUP BY E.EMPLOYEENO, E.NAME, salMon.SALARYMONTH
UNION
SELECT 'BD' CountryCode, E.EMPLOYEENO EmployeeID, E.NAME EmpName, '' CostCenter, 'L865' EntityCode,
CAST(YEAR(salMon.SALARYMONTH) AS VARCHAR) YearCode,
%s PeriodStartDate, %s PeriodEndDate,
'R' ProcessType,
'D007' PayElementCode,
'Total Deductions' Description,
SUM(salMonD.CHANGEDAMOUNT) Amount, 'BDT' PayoutCurrency FROM SALARYMONTHLY salMon
LEFT JOIN EMPLOYEE E ON E.EMPLOYEEID = salMon.EMPLOYEEID
LEFT JOIN SALARYMONTHLYDETAIL salMonD ON salMonD.SALARYMONTHLYID = salMon.SALARYMONTHLYID
LEFT JOIN ALLOWANCEDEDUCTION allowDeduct ON (allowDeduct.NAME = salMonD.DESCRIPTION AND allowDeduct.PAYROLLTYPEID = %n)
WHERE salMon.SALARYMONTH = %d AND salMon.EmployeeID IN (%q) AND salMonD.ITEMGROUP = 3
GROUP BY E.EMPLOYEENO, E.NAME, salMon.SALARYMONTH
) tab1
ORDER BY tab1.EmployeeID",
PayrollFirstDateOfMonth.ToString("dd/MM/yyyy"), PayrollLastDateOfMonth.ToString("dd/MM/yyyy"),
payrollTypeID, PayrollLastDateOfMonth, sEmpID,
PayrollFirstDateOfMonth.ToString("dd/MM/yyyy"), PayrollLastDateOfMonth.ToString("dd/MM/yyyy"),
payrollTypeID, PayrollLastDateOfMonth, sEmpID,
PayrollFirstDateOfMonth.ToString("dd/MM/yyyy"), PayrollLastDateOfMonth.ToString("dd/MM/yyyy"),
payrollTypeID, PayrollLastDateOfMonth, sEmpID);
#endregion
}
tempdataset = tc.ExecuteDataSet(sql);
rootDataset.Tables.Add(tempdataset.Tables[0].Copy());
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetSalaryCertificateData(TransactionContext tc, int EmpID, int bankID)
DataSet
t
Conver
.ToString((int
)
rt.ToString((int)E
umSalaryIte
mC {
string
SQLAud
i
= SQ
Parser.MakeSQL
@"SE
ECT E.EMPLOYE
NO,E.NA
DE
.
AM
D
esignation
D
.DESCR
I
PTION Divis smd.
TEMG
OUP=%n THEN smd.CHA
GEDAMOU
T
LSE 0 E
N
D) GrossAmount,
S EN s
d.CH
NGEDAMOUNT ELSE 0
ND) LoanAm
un
,
S
U
M(CASE WHEN
smd
ITEMGROUP=%
n
AND smd.ITEM
O
E
NO t
R
O
Em
loyee
E
INNER
JOIN BRAN
H
S
NER J
IN
B
A
NKS b ON B
r
B
A
NKID
b.BAN
K
ID
O
ID = ARTME
T
ep O
N
E.DEPARTM
ENTID = Dep.DEPARTMENTID
INNER JOIN SALARYMONTHLY sm ON E.E
MP
L
OY
E
EID
= sm.EMPLOYEEID
INNER JOIN HERE sm.SalaryMonth=(SE
L
ECT MAX(
S
alaryMonth)
F
R
M SALARYMONTHLY)
AN
D
.EMPLOYEEID =
n AND B.BANKID = %n
DES.NAME,Dep.DE
S
CRIPTION
,
b.NAME,Br.AD
D
R
SS", (int)EnumSalaryGr
o
up.Gross
,
(int)EnumSa
l
a
yGroup.Deduct
i
ns,
sItemCode,
yGroup.Dedu
e
tempdataset =
t
c.E
x
ec udit);
tempdataset
.Tables
[
0
]
.Tabl
e
N
a
me root
a
taset.Tab
es
.A et ));
}
c
at n {
throw nw Exception(ex.Me
sage);
}
return
rootDataset;
}
internal static DataSet GetSalaryCertificateDataforOtherBank(TransactionContext tc, int EmpID, int bankID)
{
at
a
Set temp
d
a
tas
e
t new DataSet();
try
S
akeSQL
ELECT E.E L
YEE O, E.NA
M
E, E.JOIN NGDATE, E.ENDOFCONTRACTDATE,Br.ADDRESS BankAddress,
DES.NAME Designation, b.NAME Bank, smd.ITEMGROUP,
smd.CHANGEDAMOUNT Amount, smd.DESCRIPTION
FROM Employee E
INNER JOIN BRANCHES Br ON E.BRANCHID = Br.BRANCHID
INNER JOIN BANKS b ON Br.BANKID = b.BANKID
INNER JOIN DESIGNATION DES ON E.DESIGNATIONID = DES.DESIGNATIONID
INNER JOIN SALARYMONTHLY sm ON E.EMPLOYEEID = sm.EMPLOYEEID
INNER JOIN SALARYMONTHLYDETAIL smd ON sm.SALARYMONTHLYID = smd.SALARYMONTHLYID
WHERE sm.SalaryMonth = (SELECT MAX(SalaryMonth) FROM SALARYMONTHLY)
AND E.EMPLOYEEID = %n AND B.BANKID = %n
GROUP BY E.EMPLOYEENO,E.NAME,E.JOININGDATE,E.ENDOFCONTRACTDATE,smd.DESCRIPTION,
DES.NAME,b.NAME,Br.ADDRESS,smd.CHANGEDAMOUNT,smd.POSITION,smd.ITEMGROUP
ORD ER B
Y
smd.P OS T
ION
"
, EmpID , ba kID);
tempdat
a
u
dit
)
;
tempdata
s
t.Tables[
0
.Tabl
e
ame =
"
O
rootDa
ae t.T
a
bl es.Add(tempdat
a
set.Table
s
[
}
catch
(E xc ep ti on ex )
{
ow ne E xcept
i
on(e.Me s
sag
e
);
}
r
et;
}
internal static DataSet GetExceptionEmployeesPF(TransactionContext tc, DateTime fromdate, DateTime todate)
{
Dat
a
aet = new DataSet(
;
ataSet tempdataset = new DataSet();
try
{
string sSA rser.Ma
eSQL(@"SELE
T
t.E
ployeeN
o
,
t TRAN AM OUN
) PF Am ou nt,t .C o
n
ry,
er,t.D
sii partmet
FROM
SELE
T e.
E
mpl
o
yeeNo,e.N
am
,e2.
RESENTAD
RE
ROM
FTRANSAC
IO
p
pt.E
PLOY
EID =
p
ex
Em
p
loyeeI
yee e
ON p
ex.Employee
D =
e.
M
P
LOYEEID AND p
.
RAN
D
ATE BETWEEN %
LEF
JOI
DESIGNATION
O
e
D
E
SIGNATIONI
D
.
DESIGNATION ER JO
N EM
CONTACT e2 ON e2.EM
LOY
EI
=e
.
EMPLOYEEID
ON e.
EP
A
RTMENTID =
D
e
p.DEPA
TME
N
TID
MPL
Y
E
EID=cmpcc.
M
L
O
EEI
A
ND cmp
c
C
u
I
NNER JOIN
C
R
G
CC
O
N
cmpcc.CostC
e
n
t
erID = CC.CRGID
GROUP BY t.Em
p
loy
e
eNo, t.N
a
me,
t
.CostCent
t
JO IN NGD
A
TE,t.D esig na t
on,t.
D
partme
n
t
tempdat aset =
SQLAudit) ;
temp da ase
.a bl eT ame = " xce
p
ti on PF";
r
o
otData se ts Ad t.Tab
e
s[0].Copy
))
;
Excep
ion
ex)
{
w
;
}
return rootDat
set;
}
internal static DataSet GetEmpArrearBankAdvice(TransactionContext tc, string sEmpID, string itemType,
int processID, int branchID)
DataSet
o
ank
dvices
=
nD
stri
g sSQL;
i(sE
m
pID != string.Empty)
{
sSQL = SQLParser.MakeSQL(
@"SELECT E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,E.AccountNo,sum(ROUND(APDI.CHANGEDAMOUNT , 0)) CHANGEDAMOUNT,BA.NAME,BR.ADDRESS
FROM EMPLOYEE E,ArrearProcess AP,ArrearProcessDetail APD,ArrearProcessDetailItem APDI,
BRANCHES BR,BANKS BA
WHERE AP.ArrearProcessID=APD.ArrearProcessID
AND APD.EmployeeID = E.EmployeeID
AND BR.BranchID=APD.BranchID
AND BA.BANKID = BR.BANKID
AND APD.ArrearProcessDetailID = APDI.ArrearProcessDetailID
AND APDI.ItemType NOT in (8, 11)
AND APD.EmployeeID IN(%q) And AP.ArrearProcessID=%n And APD.BranchID=%n
Group by E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,E.AccountNo,BA.NAME,BR.ADDRESS
order by E.EmployeeNo",
sEmpID, processID, branchID);
}
else
{
sSQL = SQLParser.MakeSQL(
@"SELECT E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,E.AccountNo,sum(ROUND(APDI.CHANGEDAMOUNT, 0)) CHANGEDAMOUNT,BA.NAME,BR.ADDRESS
FROM EMPLOYEE E,ArrearProcess AP,ArrearProcessDetail APD,ArrearProcessDetailItem APDI,
BRANCHES BR,BANKS BA
WHERE AP.ArrearProcessID=APD.ArrearProcessID
AND APD.EmployeeID = E.EmployeeID
AND BR.BranchID=APD.BranchID
AN
D
BA.BA
N
KID
= BR.BANKID
AND A D.Ar ea
r
s
A
N
mType NOT in (8, 1
)
And AP
Ar
r
arProc
ssID=%
n
And AP
.BranchI
D
%n
Group b
E.EMPLOYEEN
,
.NA
E,E.EMA
I
L
AD untN .A
rd
r by E
.
Emplo
ye
proc
e
ssID, branchID);
}
oBankAdvices = tc.ExecuteDataSet(sSQL);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataSet GetEmpArrerSheet(TransactionContext tc, string sEmpID, string itemType, int arrPrcssID)
{
DataSet r tem
dat
a
set = new
a
a
S
et();
que
y;
if (s
u
ry
= SQLPa RIP
ION
GName,
rPr
.* ,
R
OW_NUMBE
()
VE
(
P
RT
IT nse
RAN
K
() OVER (O
DE
R
B
Y
E.E
PL
O
YEENO) SLGroup
Grades
G
,
DESIGNATI
O
N
D
,Emp
l
oy
e
e E,
(SE
EC
a
pd.Employe
eID
ad e,apd sc
apdi.SerialNo,apdi.ChangedAmount
FROM ArrearProcessDetail apd,ArrearProcessDetailItem apdi
WHERE apd.ArrearprocessDetailID= apdi.ArrearprocessDetailID
And apd.ArrearProcessID=%n
AND apdi.ItemType IN(%q)
AND apd.EmployeeID IN (%q)) ArrPrs
WHERE G.GradeID = ArrPrs.GradeID AND E.EmployeeID = ArrPrs.EmployeeID
AND D.DesignationID = ArrPrs.DesingnationID
ORDER BY E.EMPLOYEENO,ArrPrs.SerialNo ", arrPrcssID, itemType,
sEmpID);
}
else
{
query = SQLParser.MakeSQL(@"SELECT E.EMPLOYEENO,E.NAME,G.DESCRIPTION GName,
D.Name DName,D.CODE DCode,G.Code GCode,ArrPrs.*, ROW_NUMBER
(
L,den se _RAN
K
) OVER (
O
RD NO
NATIO
D,
mployee E
,
(SEL
ECT apd.EmpoyeeID,apd.Proces
Month,
pd.Desi
gnationID,
apd.G
r
deI
,apdi.Item
Type,apdi.It scripti
n,
apd
.
eri
lNo,apd
i
.
Ch
rP
o
cessDe
ai
apd,A
r
rearP
ro pd
WHERE apd.ArrearprocessDetailID= apdi.ArrearprocessDetailID
And apd.ArrearProcessID=%n
AND apdi.ItemType IN(%q)) ArrPrs
WHERE G.GradeID = ArrPrs.GradeID AND E.EmployeeID = ArrPrs.EmployeeID
AND D.DesignationID = ArrPrs.DesingnationID
ORDER BY E.EMPLOYEENO,ArrPrs.SerialNo ", arrPrcssID, itemType);
}
return tc.ExecuteDataSet(query);
}
catch
(Exception ex)
{
throw new Exception(ex.Message);
}
return rootDataset;
}
internal static DataSet GetEmpArrerSlipGross(TransactionContext tc, string sEmpID, string itemType,
int processID)
try
{
string sSQL;
{
OYE
NO,
G
.
CODE Gra
e,
D
G
.N
D.DESC MODE,
APD.
A
CCOUNTNO, AP ype
N Cat
go
y,
E.JOININGD
A
TE,
roces
P
inner join ArrearProcessDetail APD on AP.ArrearProcessID = APD.ArrearProcessID
inner join EMPLOYEE E on APD.EMPLOYEEID = E.EMPLOYEEID
inner join DEPARTMENT D on APD.DEPARTMENTID = D.DEPARTMENTID
inner join Grades G on APD.GRADEID = G.GRADEID
inner join DESIGNATION DG on APD.DesingnationID = DG.DESIGNATIONID
inner join LOCATION L on APD.LOCATIONID = L.LOCATIONID
left outer join BRANCHES Br on APD.BRANCHID = Br.BRANCHID
left outer join BANKS B on Br.BANKID = B.BANKID
inner join CATEGORY cat on E.CATEGORYID = cat.CATEGORYID
inner join ArrearProcessDetailItem APDI on APD.ArrearprocessDetailID = APDI.ArrearprocessDetailID
AND APDI.ItemType IN(%
q) And AP.ArrearProcessID = %n
AND APD.EmployeeID IN(%
q) ORDER BY E.EmployeeNo", itemType, processID, sEmpID);
}
else
{
sSQL = SQLParser.MakeSQL(@"SELECT E.NAME Name,E.EMPLOYEENO,G.CODE Grade,DG.Name De
s
gnation,L.
D
scriptio
n
L
D.DES
C
RIPTI
O
N .N ASICS
L
ARY,E.PAY
EN
TM
APD.ACC
O
UN es DESCRI
TION Descri
ption,APDI.emType,
APDI.CHANGEDAMOU
T,
A
DI.Ite
ID,cat
.
ESCRIP
ION Cate
g
ry,
.JOININGD
ATE,
E.DEP
A
R
TM
FRO
M
Proc
s
Detail AP
D
on AP.
A
rrearProcessID=APD.ArrearProcessID
inner join EMPLOYEE E on APD.EMPLOYEEID=E.EMPLOYEEID
inner join DEPARTMENT D on APD.DEPARTMENTID=D.DEPARTMENTID
inner join Grades G on APD.GRADEID=G.GRADEID
inner join DESIGNATION DG on APD.DesingnationID =DG.DESIGNATIONID
inner join LOCATION L on APD.LOCATIONID=L.LOCATIONID
left outer join BRANCHES Br on APD.BRANCHID=Br.BRANCHID
left outer join BANKS B on Br.BANKID=B.BANKID
inner join CATEGORY cat on E.CATEGORYID=cat.CATEGORYID
inner join ArrearProcessDetailItem APDI on APD.ArrearprocessDetailID=APDI.ArrearprocessDetailID
AND APDI.ItemType IN(%q) And AP.ArrearProcessID=%n
ORDER BY E.EmployeeNo", itemType, processID);
}
oArrearSlips = tc.ExecuteDataSet(sSQL);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oArrearSlips;
}
internal static DataSet GetArrearSlipDeduct(TransactionContext tc, string sEmpID, string itemType,
int processID)
Arrea
Slip
= new DataSet();
t
y
{
string sSQL;
{
sS
L
=
SQLParser.Make
S
Q
L(G.N
me
D
esignation
L.
D
e
s
c
iptio
L
a
m
e,
PI NAME RY
APD.ACCOUNTNO,APD.ProcessMonth,APDI.DESCRIPTION Description, APDI.ItemType,
APDI.CHANGEDAMOUNT,APDI.ItemID
FROM Employee E Inner join ArrearProcessDetail APD on E.EMPLOYEEID = APD.EMPLOYEEID
inner join ArrearProcess AP on AP.ArrearProcessID = APD.ArrearProcessID
inner join Grades G on APD.GRADEID = G.GRADEID
Inner join Department D on APD.DEPARTMENTID = D.DEPARTMENTID
inner join Designation DG on APD.DesingnationID = Dg.DESIGNATIONID
inner join ArrearProcessDetailItem APDI on APD.ArrearprocessDetailID = APDI.ArrearprocessDetailID
left outer join BRANCHES Br on APD.BRANCHID = br.BRANCHID
left outer join BANKS B on Br.BANKID = B.BANKID
Inner join Location L on APD.LocationID = L.LocationID
AND APDI.ItemType in(%q) AND APD.EmployeeID IN(%
q)
And AP.ArrearProcessID = %n ORDER BY E.EmployeeNo", itemType, sEmpID, processID);
}
else
{
sSQL = SQLParser.MakeSQL(@"SELECT E.NAME Name,E.EMPLOYEENO,G.CODE Grade,DG.Name Designation,L.Description LName,
D.DESCRIPTION Department,B.NAME Bank,E.BASICSALARY ,E.PAYMENTMODE,
APD.ACCOUNTNO,APD.ProcessMonth,APDI.DESCRIPTION Description,APDI.ItemType,
APDI.CHAN
G
DAMOUNT,
A
DI.ItemID
F
O
E
m
ployee E Inner
join
Ar et .EMPL
Y
EEID=APD.
MP
LO
inner
j
oi es rrearP
ocessID=APD.
ArrearProcesID
i
nner join Grades G
on
PD.GRA
EID=G.
G
ADEID
Inner j
in Departme
t
D o
APD.DE
P
A
RT PART
r
o
in De
ig
ation
D
G on
AP =D
inner join ArrearProcessDetailItem APDI on APD.ArrearprocessDetailID=APDI.ArrearprocessDetailID
left outer join BRANCHES Br on APD.BRANCHID=br.BRANCHID
left outer join BANKS B on Br.BANKID=B.BANKID
Inner join Location L on APD.LocationID =L.LocationID
AND APDI.ItemType in(%q)
And AP.ArrearProcessID=%n ORDER BY E.EmployeeNo", itemType, processID);
}
oArrearSlips = tc.ExecuteDataSet(sSQL);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oArrearSlips;
}
internal static DataSet GetEmpArrerSlipGross(TransactionContext tc, DateTime arrearMonth, string sEmpID,
string itemType)
et();
try
string sSQL = SQ
L
Pars
e
r.MakeSQL(@"SELECT E.
atio
',L.D
scri
tion LNa
e,
AME
ank,E
BASI
SALAR
,
.P
YM
E
NTMODE
,
NTNO,
PD.P
cessMont
,
PD
.DE
S
CRIPTION D
s
c
r
iption,APDI
APDI.C
AN
G
E
D
A
OUN
,AP
D
I.ItemID,c
t.
D
E
S
C
E.
EP
R
T
MENTID
nner join
ArrearP
r
ocessDetail APD on AP.ArrearProcessID=APD.ArrearProcessID
inner join EMPLOYEE E on APD.EMPLOYEEID=E.EMPLOYEEID
inner join DEPARTMENT D on APD.DEPARTMENTID=D.DEPARTMENTID
inner join Grades G on APD.GRADEID=G.GRADEID
inner join DESIGNATION DG on APD.DesingnationID =DG.DESIGNATIONID
inner join LOCATION L on APD.LOCATIONID=L.LOCATIONID
left outer join BRANCHES Br on APD.BRANCHID=Br.BRANCHID
left outer join BANKS B on Br.BANKID=B.BANKID
inner join CATEGORY cat on E.CATEGORYID=cat.CATEGORYID
inner join ArrearProcessDetailItem APDI on APD.ArrearprocessDetailID=APDI.ArrearprocessDetailID
AND APD.ProcessMonth=%d AND APDI.ItemType IN(%q)
AND APD.EmployeeID IN(%q) ORDER BY E.EmployeeNo", arrearMonth,
itemType, sEmpID);
oArrearSlips = tc.ExecuteDataSet(sSQL);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oArrearSlips;
}
internal static DataSet GetCashPaymentSummaryData(TransactionContext tc, DateTime fromdate)
hPa
Ds
e
t = new DataSet
(
)
;
string gr
oupID = Convert.ToString(ro + Convert.To
t
in
g
((int)EnumSala
r
yGro
u
p.ng qu
r
y = SQLPa
se
r.LE e.EMP
OYE
NO, e.NAME
RO HLY AS
sm, SALARYMON
THLYDETAIL S smd, Employee e
DEPART
ENT AS, DESIGNATION AS d2, d
e
partment pd
WHERE s
m
SALARY
ONTHLY
I
= smd.S
LARYMONT
HL
ND
AND d.PARE NT I
D
= pd.DEP
A
RTMENTID
AND e.DEPARTMENTID = d.DEPARTMENTID
AND e.DESIGNATIONID = d2.DESIGNATIONID
AND sm.SalaryMonth = %d
AND smd.ITEMCODE = -132 AND smd.ITEMID = -132 AND sm.BRANCHID IS NULL
ORDER BY e.EMPLOYEENO", fromdate);
cashPayDset = tc.ExecuteDataSet(query);
return cashPayDset;
}
internal static DataSet GetArrearSlipDeduct(TransactionContext tc, DateTime arrearMonth, string sEmpID,
string itemType)
{
try
SELE
T E.
E Name, E .E MPLOYEENO, G
COD
G
ad
e, DG.Name 'Desig
n
ati
o
n',L.Description
D.
ESCRIPTI
N
De
art
m
ent, B.NAME
B
a
nk, E.BASIC
P
.A
COU
N
TNO, APD.Proc
e
s
s
Month, APDI.DE
APDI.CHA
FR
M
mpl
o
yee E Inner jo
n
A
r
rearProcessDe
i
n
n
e
r join Arre cess
D
i
In PARTM
NTID
onID =
g.DE
IGNATIONID
inn
e
r join ArrearProcessDe Arr
arp
r
ocessDetailI
D
r o
AP
D
.BRANCHID =
r.B
R
A
N
HID
lef B on Br.BAN
I
= B
.BANKID
Inner jo
n
L A.Loca
ion
D
AND A
D.ProcessMon
th = %d AND APDI.ItemType in(%
) AND
PD.Empl
yeeID IN( % q)
ORD
ER loye No" , a
r
arM
nth, ite mT yp e
oArre
r
lips =
t
c.Execut
e
D
ata
S
et(sSQL);
ca
t
ch Ex ept io n
ex)
{
ceptio
(ex Me s
a
e);
}
return oArrearSlips;
}
internal static DataSet GetExpensesPaySlipData(TransactionContext tc, DateTime fromDate, DateTime toDate,
string sEmpID)
{
taSet
);
try
{
rs
LEC
e
.Employe eN o,
e
.Nam e as EmpNam e.O
T
P
AYACCOUNTNO,
e
.
P
aymentMode, d men
,
desig.[NAME]
A
S
D
esignation, g.C IIt
m,
I
NUL
L
(Sum(CON
V
E
RT(
igi
t,
o
pdi.Ne
t
A
mou
)),
)
A
S Amount
F
OM P
LEFT JOINO ailItem opd
N
o
i.OPIItemId =
o
pdi.O
P
It
LEFT JOIN OPI
rocess
etail o
d ON opd.OPIProcess
D
etailId = opdi.OPI
ro
c
ssDetail
d
LEFT JOIN
EFT
J
O
I
N Employee
e N e.PL YEE ID
=
o
pd.E
pl
oyeeI d
D
= e.DEPARTM NT D
L
E
FT JOIN Gra
es g on g.G
r
adeI
d
= e.Grade
I
>= %
d
AND op.OPIMo
n
th <
=
%d A
G ROU
Y e.E
plo ee o, e .Name, d.[DES
e
) src
(
r OPI
tem
([Utilit
xp
nse
s
], [Leave
Fa
e
A
ssistanc Exp
nces /
Expe
es], [Drive
A
lo
anc
e
s],
tici pa t
on F
nd], [Manager
s Telephon
Exp
ns
s],
[
Telephone
Expenses(M
o
bile
Bill ],
)
p v;
"
et =
tc.Ex
cute
ataSe
(
ue
y)
;
}
t
row n
Exceptio
(
x.
ess
a
ge);
}
return tempDataSet;
}*/
}
}