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

629 lines
36 KiB
C#

using HRM.BO;
using Ease.Core.DataAccess;
using System;
using System.Data;
namespace HRM.DA
{
internal class EmployeeBankAccountDA
{
#region Constructor
private EmployeeBankAccountDA()
{
}
#endregion
#region Insert function
internal static void Insert(TransactionContext tc, EmployeeBankAccount item)
{
string sSQL = SQLParser.MakeSQL(
"INSERT INTO BANKACCOUNTHISTORY(EmpBankAccountID, employeeID, changeDate, accountNo,AccountType, branchID, CreatedBy, CreationDate,userid)" +
" VALUES(%n, %n, %D, %s,%n, %n, %n, %D,%n)", item.ID, item.EmployeeID, item.EffectDate, item.AccountNo,
(int)item.AccountType, item.BranchID, DataReader.GetNullValue(item.CreatedBy),
DataReader.GetNullValue(item.CreatedDate), 1);
tc.ExecuteNonQuery(sSQL);
}
#endregion
#region Update function
internal static void Update(TransactionContext tc, EmployeeBankAccount item)
{
string sSQL = SQLParser.MakeSQL(
@"UPDATE BANKACCOUNTHISTORY SET employeeID=%n, changeDate=%D, accountNo=%s,AccountType=%n, branchID=%n, ModifiedBy=%n, ModifiedDate=%D
WHERE EmpBankAccountID=%n", item.EmployeeID, item.EffectDate, item.AccountNo, (int)item.AccountType,
item.BranchID, DataReader.GetNullValue(item.ModifiedBy), DataReader.GetNullValue(item.ModifiedDate),
item.ID);
tc.ExecuteNonQuery(sSQL);
}
#endregion
#region Get Function
internal static IDataReader GetNotYetProcessUptoToday(TransactionContext tc)
{
string sql = SQLParser.MakeSQL("Select * from BANKACCOUNTHISTORY where IsProcessed =%b and CHANGEDATE <=%d",
false, DateTime.Today);
return tc.ExecuteReader(sql);
}
internal static IDataReader Get(TransactionContext tc)
{
return tc.ExecuteReader("SELECT * FROM BANKACCOUNTHISTORY ORDER BY CreationDAte");
}
internal static IDataReader Get(TransactionContext tc, int ID)
{
return tc.ExecuteReader("SELECT * FROM BANKACCOUNTHISTORY WHERE EmpBankAccountId=%n", ID);
}
internal static IDataReader Get(TransactionContext tc, int EmpID, DateTime dEffectDate, int payrollTypeID)
{
return tc.ExecuteReader(@"Select * from BANKACCOUNTHISTORY where
CHANGEDATE=(Select MAX(CHANGEDATE) from BANKACCOUNTHISTORY where EMPLOYEEID=%n and CHANGEDATE<=%d)
AND EMPLOYEEID=(Select EMPLOYEEID from.Employee where EMPLOYEEID=%n and PAYROLLTYPEID=%n) ",
EmpID, dEffectDate, EmpID, payrollTypeID);
}
internal static IDataReader GetByEmployeeID(TransactionContext tc, int ID)
{
return tc.ExecuteReader(@"Select * from BANKACCOUNTHISTORY Where EmployeeId = %n", ID);
}
internal static IDataReader GetByEmployeeIDAndType(TransactionContext tc, int ID, int AccountType)
{
return tc.ExecuteReader(@"Select * from BANKACCOUNTHISTORY Where EmployeeId = %n AND ACCOUNTTYPE = %n", ID, AccountType);
}
internal static DataSet GetEmpBankAdvice(TransactionContext tc, DateTime dateTime, string sEmpID)
{
DataSet oBankAdvices = new DataSet();
try
{
bool bfixedAmount =
new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "costcenter", "manadatoryinsalary");
var companyNameObj = new SystemConfigarationService().GetconfigValue(EnumConfigurationType.Logic, "system", "company");
string companyName = Convert.ToString(companyNameObj);
string sSQL;
//if (!bfixedAmount)
//{
// string sSQL = SQLParser.MakeSQL(@"SELECT DISTINCT E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,SP.PAYMENTDATE, SM.AccountNo as AccountNo,SMD.ITEMCODE,
// SMD.ITEMGROUP,SMD.CHANGEDAMOUNT,ISNULL(CC.DESCRIPTION,'') AS CostCenter
// FROM SalaryMonthly SM
// LEFT JOIN EMPLOYEE E ON SM.EMPLOYEEID=E.EMPLOYEEID
// LEFT JOIN SALARYPROCESS SP ON SM.SALARYMONTH=SP.SALARYMONTH
// LEFT JOIN SalaryMonthlyDetail SMD ON SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
// LEFT JOIN BRANCHES as BR ON BR.BranchID=SM.BranchID
// LEFT JOIN SALARYEMPCOSTCENTER sempcc ON SM.EMPLOYEEID = sempcc.EMPLOYEEID AND SMD.SALARYMONTHLYID = sempcc.SALARYMONTHLYID
// LEFT JOIN CRG CC ON sempcc.COSTCENTERID = CC.CRGID
// WHERE SM.SalaryMonth=%d
// AND SMD.ITEMCODE=%n
// AND SMD.ITEMGROUP=%n
// AND SM.ACCOUNTNO != ''
// AND SM.EmployeeID IN(%q)
// order by E.EmployeeNo",
// dateTime, EnumSalaryItemCode.Net_Payable, EnumSalaryGroup.OtherItem, sEmpID);
// oBankAdvices = tc.ExecuteDataSet(sSQL);
//}
//else
//{
sSQL = SQLParser.MakeSQL(@"SELECT E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,SM.AccountNo,SMD.ITEMCODE, SM.PAYMENTDATE,
SMD.ITEMGROUP,SMD.CHANGEDAMOUNT,'' AS CostCenter
FROM EMPLOYEE E,SalaryMonthly SM,SalaryMonthlyDetail SMD,
BRANCHES as BR
WHERE E.EMPLOYEEID=SM.EMPLOYEEID
AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND BR.BranchID=SM.BranchID
AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n
AND SMD.ITEMGROUP=%n
AND SM.EmployeeID IN(%q)
order by E.EmployeeNo",
dateTime, EnumSalaryItemCode.Net_Payable, EnumSalaryGroup.OtherItem, sEmpID);
oBankAdvices = tc.ExecuteDataSet(sSQL);
// }
if (companyName == "SGS Bangladesh Limited")
{
sSQL = SQLParser.MakeSQL(@"SELECT distinct E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,SP.PAYMENTDATE,Case SM.categoryID when 7 then E.OutPayAccountNo Else SM.AccountNo end as AccountNo,SMD.ITEMCODE,
SMD.ITEMGROUP,SMD.CHANGEDAMOUNT--,ISNULL(CC.DESCRIPTION,'') AS CostCenter
FROM SalaryMonthly SM
LEFT JOIN EMPLOYEE E ON SM.EMPLOYEEID=E.EMPLOYEEID
LEFT JOIN SALARYPROCESS SP ON SM.SALARYMONTH=SP.SALARYMONTH
LEFT JOIN SalaryMonthlyDetail SMD ON SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
LEFT JOIN BRANCHES as BR ON BR.BranchID=SM.BranchID
LEFT JOIN SALARYEMPCOSTCENTER sempcc ON SM.EMPLOYEEID = sempcc.EMPLOYEEID AND SMD.SALARYMONTHLYID = sempcc.SALARYMONTHLYID
LEFT JOIN CRG CC ON sempcc.COSTCENTERID = CC.CRGID
WHERE E.EMPLOYEEID=SM.EMPLOYEEID
AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND BR.BranchID=SM.BranchID
AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n
AND SMD.ITEMGROUP=%n
AND SM.EmployeeID IN(%q)
order by E.EmployeeNo", dateTime, EnumSalaryItemCode.Net_Payable, EnumSalaryGroup.OtherItem, sEmpID);
oBankAdvices = tc.ExecuteDataSet(sSQL);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataTable GetEmpBankAdvice2(TransactionContext tc, DateTime dateTime, string sEmpID)
{
DataTable oBankAdvices = new DataTable();
try
{
//oBankAdvices = tc.ExecuteDataSet("SELECT E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,BH.AccountNo,SMD.ITEMCODE,SMD.ITEMGROUP,SMD.CHANGEDAMOUNT"
// + " FROM BANKACCOUNTHISTORY BH,EMPLOYEE E,SalaryMonthly SM,SalaryMonthlyDetail SMD"
// + " WHERE SM.EMPLOYEEID=E.EMPLOYEEID AND BH.employeeID=E.EmployeeID AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID"
// + " AND BH.BranchID=E.BranchID"
// + " AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n AND SMD.ITEMGROUP=%n AND BH.EmployeeID IN(%q) order by E.EmployeeNo",
// dateTime,EnumSalaryItemCode.Net_Payable , EnumSalaryGroup.OtherItem,sEmpID );
string sMonth = "Salary_" + dateTime.ToString("MMM") + "_" + dateTime.Year;
string sMonth2 = DateTime.Today.ToString("dd/MM/yyyy");// dateTime.ToString("dd/MM/yyyy");
oBankAdvices = tc.ExecuteDataTable("SELECT E.EMPLOYEENO 'Customer Reference (16)',E.NAME 'Payee Name (35)',SM.AccountNo 'PayeeBankAccNo',SMD.CHANGEDAMOUNT 'Amount',%s 'Reason (35)',%s 'Payment Date','X0001619368401' 'Debit A/C No.',EMAILADDRESS 'Payee Email Address','' 'Payee Email Address'"
+ " FROM EMPLOYEE E,SalaryMonthly SM,SalaryMonthlyDetail SMD,BRANCHES as BR,BANKS as BA"
+ " WHERE E.EMPLOYEEID=SM.EMPLOYEEID "
+ " AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID"
+ " AND BR.BranchID=SM.BranchID"
+ " And BA.BANKID= BR.BANKID"
+ " AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n"
+ " AND SMD.ITEMGROUP=%n AND SM.EmployeeID IN(%q)"
+ " order by E.EmployeeNo",
sMonth, sMonth2, dateTime, EnumSalaryItemCode.Net_Payable, EnumSalaryGroup.OtherItem, sEmpID);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataSet GetEmpCashAdvice(TransactionContext tc, DateTime dateTime, string sEmpID)
{
DataSet oBankAdvices = new DataSet();
try
{
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
bool bfixedAmount =
new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "costcenter", "manadatoryinsalary");
if (!bfixedAmount)
{
string sSQL = SQLParser.MakeSQL(
@"SELECT E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,SM.AccountNo,SP.ProcessDate PaymentDate,SMD.ITEMCODE,
SMD.ITEMGROUP,SMD.CHANGEDAMOUNT
FROM EMPLOYEE E,SalaryMonthly SM,SalaryMonthlyDetail SMD,
SALARYPROCESS SP
WHERE E.EMPLOYEEID=SM.EMPLOYEEID
AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND SP.SALARYPROCESSID=SM.SALARYPROCESSID
AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n
AND SMD.ITEMGROUP=%n
AND SM.EmployeeID IN(%q) and e.PAYMENTMODE = %n
order by E.EmployeeNo", dateTime, EnumSalaryItemCode.Net_Payable,
EnumSalaryGroup.OtherItem, sEmpID, EnumPaymentMode.CashPayment);
oBankAdvices = tc.ExecuteDataSet(sSQL);
}
else
{
string sSQL = SQLParser.MakeSQL(
@"SELECT E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,SM.AccountNo,SM.PaymentDate,SMD.ITEMCODE,
SMD.ITEMGROUP,SMD.CHANGEDAMOUNT,'' CostCenter
FROM EMPLOYEE E,SalaryMonthly SM,SalaryMonthlyDetail SMD
WHERE E.EMPLOYEEID=SM.EMPLOYEEID
AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n
AND SMD.ITEMGROUP=%n
AND SM.EmployeeID IN(%q) and e.PAYMENTMODE = %n
order by E.EmployeeNo",
dateTime, EnumSalaryItemCode.Net_Payable, EnumSalaryGroup.OtherItem, sEmpID,
EnumPaymentMode.CashPayment);
oBankAdvices = tc.ExecuteDataSet(sSQL);
}
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataSet GetEmpOPIBankAdvice(TransactionContext tc, DateTime dateTime, string sEmpID, int bankID)
{
DataSet oBankAdvices = new DataSet();
try
{
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
string sSQL = SQLParser.MakeSQL(
@"SELECT e.EmployeeNo,e.Name,od.AccountNo,Sum(odi.ChangeNetAmount) Amount
FROM.Employee e
Left Join OPIProcessDetail od on e.EmployeeID = od.EmployeeID
LEFT JOIN OPIProcess o ON od.OPIProcessID = o.OPIProcessID
LEFT JOIN OPIProcessDetailItem odi ON od.OPIProcessDetailID = odi.OPIProcessDetailID
WHERE o.OPIMonth = %d
AND odi.OPIType = %n
AND od.BankID = %n
AND od.EmployeeID IN(%q)
GROUP BY e.EmployeeNo,e.Name,od.AccountNo",
dateTime, (int)EnumOpiType.Payment, bankID, sEmpID);
oBankAdvices = tc.ExecuteDataSet(sSQL);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataSet GetHNMEmpOPIBankAdvice(TransactionContext tc, DateTime dateTime, string sEmpID)
{
DataSet oBankAdvices = new DataSet();
try
{
// string sSQL = SQLParser.MakeSQL(@"SELECT e.EmployeeNo,e.Name,od.AccountNo,Sum(odi.ChangeNetAmount) Amount
// FROM.Employee e,OPIProcess o,
// OPIProcessDetail od,OPIProcessDetailItem odi
// WHERE o.OPIProcessID = od.OPIProcessID
// AND od.OPIProcessDetailID = odi.OPIProcessDetailID
// AND od.EmployeeID = e.EmployeeID
// AND od.AccountNo IS NOT NULL
// AND odi.OPIType =%n
// AND o.OPIMonth = %d
// AND od.EmployeeID IN(%q)
// GROUP BY e.EmployeeNo,e.Name,e.EMAILADDRESS,od.AccountNo",
// (int)EnumOpiType.Payment, dateTime, sEmpID);
string sTableName;
sEmpID = IDHelper.GetIDs(tc, sEmpID, out sTableName);
string sSQL = SQLParser.MakeSQL(
@"SELECT e.EmployeeNo,e.Name,od.AccountNo,cc.Code CostCenter,Sum(odi.ChangeNetAmount) Amount
FROM.Employee e
INNER Join
OPIProcessDetail od
ON od.EmployeeID = e.EmployeeID
AND od.AccountNo IS NOT NULL
AND od.EmployeeID IN(%q)
INNER Join
OPIProcessDetailItem odi
ON od.OPIProcessDetailID = odi.OPIProcessDetailID
AND odi.OPIType =%n
INNER Join
OPIProcess o
ON o.OPIProcessID = od.OPIProcessID
AND o.OPIMonth = %d
LEFT JOIN.EMPCOSTCENTER ecs
ON e.EMPLOYEEID = ecs.EMPLOYEEID
AND ecs.CurrentCC = 1
LEFT JOIN CRG cc
ON cc.CRGID = ecs.COSTCENTERID
GROUP BY e.EmployeeNo,e.Name,e.EMAILADDRESS,od.AccountNo,cc.Code",
sEmpID, (int)EnumOpiType.Payment, dateTime);
oBankAdvices = tc.ExecuteDataSet(sSQL);
if (sTableName != "")
tc.ExecuteNonQuery("Drop TAble %q", sTableName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
//internal static DataSet GetEmpExpenseAmount(TransactionContext tc, DateTime dateTime, string sEmpID)
//{
// DataSet oEmpExpenseAmount = new DataSet();
// try
// {
// SELECT e.EmployeeNo,e.Name,e.EMAILADDRESS,od.AccountNo FROM.Employee e,OPIProcess o,
//OPIProcessDetail od,OPIProcessDetailItem odi
//WHERE o.OPIProcessID = od.OPIProcessID
//AND od.OPIProcessDetailID = odi.OPIProcessDetailID
//AND od.EmployeeID = e.EmployeeID
//AND odi.OPIItemID=1
//AND o.OPIMonth = '30 Apr 2014'
// oEmpExpenseAmount = tc.ExecuteDataSet("Select EMEx.EmployeeNo,SUM(Amount) Amount from"
// + ".EmployeeMonthlyExpense EMEx where"
// + " EMEx.EmployeeNo in(%q) "
// + " and EMEx.ExpenseMonth=%d"
// + " group by EMEx.EmployeeNo",
// sEmpID,dateTime);
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// return oEmpExpenseAmount;
//}
internal static DataSet GetEmpBankHistory(TransactionContext tc, DateTime dateTime, int payrollTypeID)
{
DataSet oBankAdvices = new DataSet();
try
{
string sql = SQLParser.MakeSQL(
@"Select BA.EmpBankAccountID AccountID,Emp.EMPLOYEEID ID, Emp.EMPLOYEENO,Emp.NAME,B.NAME CBank,BA.ACCOUNTNO CACCOUNTNO,BR.NAME CBranch,BA.CHANGEDATE,
US.LoginID CommitedBy,BA.CreationDate from BANKACCOUNTHISTORY BA,EMPLOYEE Emp,BANKS B,
BRANCHES BR,USERS US
where BA.EMPLOYEEID=Emp.EMPLOYEEID AND B.BANKID=BR.BANKID AND BA.BRANCHID=BR.BRANCHID AND US.UserID=BA.CreatedBy
AND BA.CHANGEDATE between %d and %d ANd Emp.PayrollTypeId = %n order by Emp.EMPLOYEENO",
PayrollGlobalFunctions.PayrollFirstDateOfMonth(dateTime),
PayrollGlobalFunctions.PayrollLastDateOfMonth(dateTime), payrollTypeID);
//oBankAdvices = tc.ExecuteDataSet("Select Emp.EMPLOYEENO,Emp.NAME,B.NAME CBank,BA.ACCOUNTNO CACCOUNTNO,BR.NAME CBranch,BA.CHANGEDATE,US.LoginID CommitedBy,BA.CreationDate"
// + " from BANKACCOUNTHISTORY BA,EMPLOYEE Emp,BANKS B,BRANCHES BR,USERS US "
// + " where BA.EMPLOYEEID=Emp.EMPLOYEEID"
// + " AND B.BANKID=BR.BANKID"
// + " AND BA.BRANCHID=BR.BRANCHID"
// + " AND US.UserID=BA.CreatedBy"
// + " AND BA.CHANGEDATE between %d and %d ANd Emp.PayrollTypeId=%n"
// + " order by Emp.EMPLOYEENO",PayrollGlobalFunctions.PayrollFirstDateOfMonth(dateTime),
// PayrollGlobalFunctions.PayrollLastDateOfMonth(dateTime), SystemInformation.CurrentSysInfo.PayrollTypeID);
oBankAdvices = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataSet GetEmpBankHistory(TransactionContext tc, DateTime dSFromDate, DateTime dSToDate,
int payrollTypeID)
{
DataSet oBankAdvices = new DataSet();
try
{
string sql = SQLParser.MakeSQL(
@"Select BA.EmpBankAccountID AccountID,Emp.EMPLOYEEID ID, Emp.EMPLOYEENO,Emp.NAME,B.NAME CBank,BA.ACCOUNTNO CACCOUNTNO,BR.NAME CBranch,BA.CHANGEDATE,
US.LoginID CommitedBy,BA.CreationDate from BANKACCOUNTHISTORY BA,EMPLOYEE Emp,BANKS B,
BRANCHES BR,USERS US
where BA.EMPLOYEEID=Emp.EMPLOYEEID AND B.BANKID=BR.BANKID AND BA.BRANCHID=BR.BRANCHID AND US.UserID=BA.CreatedBy
AND BA.CHANGEDATE between %d and %d ANd Emp.PayrollTypeId = %n order by Emp.EMPLOYEENO",
PayrollGlobalFunctions.PayrollFirstDateOfMonth(dSFromDate),
PayrollGlobalFunctions.PayrollLastDateOfMonth(dSToDate), payrollTypeID);
//oBankAdvices = tc.ExecuteDataSet("Select Emp.EMPLOYEENO,Emp.NAME,B.NAME CBank,BA.ACCOUNTNO CACCOUNTNO,BR.NAME CBranch,BA.CHANGEDATE,US.LoginID CommitedBy,BA.CreationDate"
// + " from BANKACCOUNTHISTORY BA,EMPLOYEE Emp,BANKS B,BRANCHES BR,USERS US "
// + " where BA.EMPLOYEEID=Emp.EMPLOYEEID"
// + " AND B.BANKID=BR.BANKID"
// + " AND BA.BRANCHID=BR.BRANCHID"
// + " AND US.UserID=BA.CreatedBy"
// + " AND BA.CHANGEDATE between %d and %d ANd Emp.PayrollTypeId=%n"
// + " order by Emp.EMPLOYEENO",PayrollGlobalFunctions.PayrollFirstDateOfMonth(dateTime),
// PayrollGlobalFunctions.PayrollLastDateOfMonth(dateTime), SystemInformation.CurrentSysInfo.PayrollTypeID);
oBankAdvices = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataSet GetEmpPrvBankHistory(TransactionContext tc, DateTime dateTime, int payrollTypeID)
{
DataSet oBankAdvices = new DataSet();
try
{
oBankAdvices = tc.ExecuteDataSet(
"Select Emp.EMPLOYEENO,Emp.NAME,B.NAME PBank,BA.ACCOUNTNO PACCOUNTNO,BR.NAME PBranch,BA.CHANGEDATE,US.UserName CommitedBy,BA.CreationDate"
+ " from BANKACCOUNTHISTORY BA,EMPLOYEE Emp,BANKS B,BRANCHES BR,USERS US "
+ " where BA.EMPLOYEEID=Emp.EMPLOYEEID"
+ " AND B.BANKID=BR.BANKID"
+ " AND BA.BRANCHID=BR.BRANCHID"
+ " AND US.UserID=BA.CreatedBy"
+ " AND BA.CHANGEDATE <%d ANd Emp.PayrollTypeiD=%n"
+ " order by Emp.EMPLOYEENO", PayrollGlobalFunctions.PayrollFirstDateOfMonth(dateTime)
, payrollTypeID);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static IDataReader GetByDate(TransactionContext tc, DateTime startDate, DateTime endDate,
int payrollTypeID)
{
string sql =
SQLParser.MakeSQL("Select * from BANKACCOUNTHISTORY where CHANGEDATE between %d and %d AND EmployeeID in(select EmployeeID from EMPLOYEE where PAYROLLTYPEID=%n) order by CreationDate ",
startDate, endDate, payrollTypeID);
return tc.ExecuteReader(sql);
}
#endregion
#region Delete function
internal static void DeleteByBankEffectDate(TransactionContext tc, DateTime effectDate, int empID)
{
//string sSQL = SQLParser.MakeSQL("Delete from BANKACCOUNTHISTORY Where CHANGEDATE >= %d And CHANGEDATE <= (SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,%d)+1,0))) and EMPLOYEEID=%n", effectDate, effectDate, empID);
string sSQL = SQLParser.MakeSQL("Delete from BANKACCOUNTHISTORY Where CHANGEDATE >= %d and EMPLOYEEID=%n",
effectDate, empID);
tc.ExecuteNonQuery(sSQL);
}
internal static void Delete(TransactionContext tc, int ID)
{
tc.ExecuteNonQuery("DELETE FROM BANKACCOUNTHISTORY WHERE EmpBankAccountID=%n", ID);
}
internal static void DeleteByBankEffectDate(TransactionContext tc, DateTime effectDate, int empID,
EnumBankAccountType type)
{
//string sSQL = SQLParser.MakeSQL("Delete from BANKACCOUNTHISTORY Where CHANGEDATE >= %d And CHANGEDATE <= (SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,%d)+1,0))) and EMPLOYEEID=%n", effectDate, effectDate, empID);
string sSQL =
SQLParser.MakeSQL(
"Delete from BANKACCOUNTHISTORY Where CHANGEDATE >= %d and EMPLOYEEID=%n and AccountType = %n",
effectDate, empID, (int)type);
tc.ExecuteNonQuery(sSQL);
}
internal static void DeleteByBankAccountNoEffectDate(TransactionContext tc, DateTime effectDate, int empID,
EnumBankAccountType type, string accountNo)
{
//string sSQL = SQLParser.MakeSQL("Delete from BANKACCOUNTHISTORY Where CHANGEDATE >= %d And CHANGEDATE <= (SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,%d)+1,0))) and EMPLOYEEID=%n", effectDate, effectDate, empID);
string sSQL =
SQLParser.MakeSQL(
"Delete from BANKACCOUNTHISTORY Where CHANGEDATE >= %d and EMPLOYEEID=%n and AccountType = %n and AccountNo = %s",
effectDate, empID, (int)type, accountNo);
tc.ExecuteNonQuery(sSQL);
}
internal static void DeleteAll(TransactionContext tc)
{
tc.ExecuteNonQuery("DELETE FROM BANKACCOUNTHISTORY");
}
#endregion
internal static DataSet GetEmpBankAdvice(TransactionContext tc, DateTime salaryMonthDate, int bankID)
{
DataSet oBankAdvices = new DataSet();
try
{
string sSQL = SQLParser.MakeSQL(
@"SELECT E.EMPLOYEENO,E.NAME,SM.AccountNo,SMD.CHANGEDAMOUNT,BR.Name Branch,BR.Code
FROM EMPLOYEE E,SalaryMonthly SM,SalaryMonthlyDetail SMD,BRANCHES BR,Banks bn
WHERE E.EMPLOYEEID=SM.EMPLOYEEID
AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND BR.BranchID=SM.BranchID
And bn.BankID = br.BankID
AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n
AND SMD.ITEMGROUP=%n AND bn.BankId=%n
order by E.EmployeeNo",
salaryMonthDate, EnumSalaryItemCode.Net_Payable, EnumSalaryGroup.OtherItem, bankID);
oBankAdvices = tc.ExecuteDataSet(sSQL);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataSet GetEmpOPIBankAdvice(TransactionContext tc, DateTime salaryMonthDate, int bankID)
{
DataSet oBankAdvices = new DataSet();
try
{
string sSQL = SQLParser.MakeSQL(
@"SELECT E.EMPLOYEENO,E.NAME,opd.AccountNo,Sum(opdi.ChangeNetAmount) CHANGEDAMOUNT,
BR.Name Branch,BR.Code
FROM EMPLOYEE E, OPIProcess op,OPIProcessDetail opd,OPIProcessDetailItem opdi,
BRANCHES BR,Banks bn
WHERE E.EMPLOYEEID = opd.EMPLOYEEID
AND opd.OPIProcessID = op.OPIProcessID
AND opd.OPIProcessDetailID = opdi.OPIProcessDetailID
AND BR.BranchID = opd.BranchID
And bn.BankID = br.BankID
AND op.OPIMonth = %d
AND bn.BankId = %n
GROUP BY E.EMPLOYEENO,E.NAME,opd.AccountNo,BR.Name,BR.Code
order by E.EmployeeNo",
salaryMonthDate, bankID);
oBankAdvices = tc.ExecuteDataSet(sSQL);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
internal static DataSet GetEmpBankAdviceWithRoutingNo(TransactionContext tc, DateTime dateTime, string sEmpID)
{
DataSet oBankAdvices = new DataSet();
try
{
bool bfixedAmount =
new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "costcenter", "manadatoryinsalary");
var companyNameObj = new SystemConfigarationService().GetconfigValue(EnumConfigurationType.Logic, "system", "company");
string companyName = Convert.ToString(companyNameObj);
string sSQL;
sSQL = SQLParser.MakeSQL(@"SELECT E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,SM.AccountNo,SMD.ITEMCODE, SM.PAYMENTDATE,
SMD.ITEMGROUP,SMD.CHANGEDAMOUNT,'' AS CostCenter,BR.ROUTINGNO as BankRoutingNo
FROM EMPLOYEE E,SalaryMonthly SM,SalaryMonthlyDetail SMD,
BRANCHES as BR
WHERE E.EMPLOYEEID=SM.EMPLOYEEID
AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND BR.BranchID=SM.BranchID
AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n
AND SMD.ITEMGROUP=%n
AND SM.EmployeeID IN(%q)
order by E.EmployeeNo",
dateTime, EnumSalaryItemCode.Net_Payable, EnumSalaryGroup.OtherItem, sEmpID);
oBankAdvices = tc.ExecuteDataSet(sSQL);
if (companyName == "SGS Bangladesh Limited")
{
sSQL = SQLParser.MakeSQL(@"SELECT distinct E.EMPLOYEENO,E.NAME,E.EMAILADDRESS,SP.PAYMENTDATE,Case SM.categoryID when 7 then E.OutPayAccountNo Else SM.AccountNo end as AccountNo,SMD.ITEMCODE,
SMD.ITEMGROUP,SMD.CHANGEDAMOUNT--,ISNULL(CC.DESCRIPTION,'') AS CostCenter
FROM SalaryMonthly SM
LEFT JOIN EMPLOYEE E ON SM.EMPLOYEEID=E.EMPLOYEEID
LEFT JOIN SALARYPROCESS SP ON SM.SALARYMONTH=SP.SALARYMONTH
LEFT JOIN SalaryMonthlyDetail SMD ON SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
LEFT JOIN BRANCHES as BR ON BR.BranchID=SM.BranchID
LEFT JOIN SALARYEMPCOSTCENTER sempcc ON SM.EMPLOYEEID = sempcc.EMPLOYEEID AND SMD.SALARYMONTHLYID = sempcc.SALARYMONTHLYID
LEFT JOIN CRG CC ON sempcc.COSTCENTERID = CC.CRGID
WHERE E.EMPLOYEEID=SM.EMPLOYEEID
AND SM.SALARYMONTHLYID=SMD.SALARYMONTHLYID
AND BR.BranchID=SM.BranchID
AND SM.SalaryMonth=%d AND SMD.ITEMCODE=%n
AND SMD.ITEMGROUP=%n
AND SM.EmployeeID IN(%q)
order by E.EmployeeNo", dateTime, EnumSalaryItemCode.Net_Payable, EnumSalaryGroup.OtherItem, sEmpID);
oBankAdvices = tc.ExecuteDataSet(sSQL);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oBankAdvices;
}
}
}