259 lines
11 KiB
C#
259 lines
11 KiB
C#
using HRM.BO;
|
|
using Ease.Core.DataAccess;
|
|
using System;
|
|
using System.Data;
|
|
|
|
|
|
namespace HRM.DA
|
|
{
|
|
#region EmployeeUnAuthorizeLeaveDA
|
|
|
|
internal class EmployeeUnAuthorizeLeaveDA
|
|
{
|
|
#region Constructor
|
|
|
|
private EmployeeUnAuthorizeLeaveDA()
|
|
{
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Insert function
|
|
|
|
internal static void Insert(TransactionContext tc, EmployeeUnAuthorizeLeave item)
|
|
{
|
|
tc.ExecuteNonQuery(
|
|
"INSERT INTO MONTHLYLEAVEENTRY(EmpLeaveID, EMPLOYEEID, LEAVEID, MONTHDATE, LEAVEDAY, CreatedBy, LEAVEMONTH, FROMDATE, TODATE, CreationDate, Type, ReferenceID, ParamID, IsLateAttendanceRelated, payrolltypeid)" +
|
|
" VALUES(%n, %n, %n, %d, %n, %n, %d, %d, %d, %d, %n, %n, %n, %n, %n)", item.ID, item.EmployeeID,
|
|
item.UnAuthorizeleaveID, item.MonthDate, item.LeaveDays, DataReader.GetNullValue(item.CreatedBy),
|
|
item.LeaveMonth
|
|
, item.FromDate, item.ToDate, item.CreatedDate, (int)item.Type,
|
|
DataReader.GetNullValue(item.ReferenceID), item.ParamID, item.IsLateAttendanceRelated, item.PayrollTypeID);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Update function
|
|
|
|
internal static void Update(TransactionContext tc, EmployeeUnAuthorizeLeave item)
|
|
{
|
|
tc.ExecuteNonQuery(
|
|
"UPDATE MONTHLYLEAVEENTRY SET EMPLOYEEID=%n, LEAVEID=%n, MONTHDATE=%d, LEAVEDAY=%n, LEAVEMONTH=%d, FROMDATE=%d, TODATE=%d, ModifiedDate=%d, Type=%n, ReferenceID=%n, ModifiedBy=%n, ParamID = %n, IsLateAttendanceRelated=%n" +
|
|
" WHERE EmpLeaveID=%n", item.EmployeeID, item.UnAuthorizeleaveID, item.MonthDate, item.LeaveDays,
|
|
item.LeaveMonth, item.FromDate, item.ToDate, item.ModifiedDate, item.Type, item.ReferenceID,
|
|
item.ModifiedBy, item.ParamID, item.IsLateAttendanceRelated, item.ID);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Get Function
|
|
|
|
internal static IDataReader Get(TransactionContext tc)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM MONTHLYLEAVEENTRY");
|
|
}
|
|
|
|
internal static IDataReader Get(TransactionContext tc, int nID)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM MONTHLYLEAVEENTRY WHERE EmployeeUnAuthorizeLeaveID=%n", nID);
|
|
}
|
|
|
|
internal static IDataReader GetByEmployeeAfter(TransactionContext tc, int nID, EnumLeaveEntryType type,
|
|
DateTime lastmonth)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM MONTHLYLEAVEENTRY WHERE EmployeeID=%n AND MONTHDATE>%d AND Type=%n",
|
|
nID, lastmonth, type);
|
|
}
|
|
|
|
internal static IDataReader GetByEmployeeID(TransactionContext tc, int employeeID)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM MONTHLYLEAVEENTRY WHERE EmployeeID=%n ", employeeID);
|
|
}
|
|
|
|
internal static IDataReader GetBySalaryMonth(TransactionContext tc, DateTime salaryMonth)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM MONTHLYLEAVEENTRY WHERE MONTHDATE=%d ", salaryMonth);
|
|
}
|
|
|
|
|
|
internal static IDataReader GetDeductedLeave(TransactionContext tc, int nEmpID, int nLeaveID,
|
|
EnumLeaveEntryType type, DateTime nextPayProcessDate)
|
|
{
|
|
DateTime dDate = nextPayProcessDate;
|
|
return tc.ExecuteReader(
|
|
"SELECT * FROM MONTHLYLEAVEENTRY ML WHERE EmployeeID=%n AND MONTHDATE<%d AND Type=%n AND LeaveID=%n" +
|
|
"AND EmpLeaveID NOT IN ( " +
|
|
"Select MLP.ReferenceID From MONTHLYLEAVEENTRY MLP " +
|
|
"WHERE MLP.EmployeeID=%n AND MLP.ReferenceID > 0 AND MLP.ReferenceID = ML.EmpLeaveID AND MLP.LeaveID=%n " +
|
|
"Group By MLP.ReferenceID Having Sum(MLP.LeaveDay) >= ML.LeaveDay) ", nEmpID, dDate, type, nLeaveID,
|
|
nEmpID, nLeaveID);
|
|
}
|
|
|
|
internal static IDataReader GetByEmployee(TransactionContext tc, int nID, DateTime dMonth,
|
|
EnumLeaveEntryType type, int payrolltypeid)
|
|
{
|
|
return tc.ExecuteReader(
|
|
@"SELECT el.*, e.EmployeeNo, e.Name as EmployeeName, l.leaveDesc as LeaveName FROM MONTHLYLEAVEENTRY el, Employee e, LEAVESUSPENSETYPE l
|
|
WHERE e.EmployeeID =el.EmployeeID and l.LeaveID = el.LEAVEID and e.PayrollTypeID =%n and
|
|
el.EmployeeID=%n AND el.MONTHDATE=%d and el.Type=%n", payrolltypeid, nID, dMonth, type);
|
|
}
|
|
|
|
internal static IDataReader Get(TransactionContext tc, int payrolltypeid , int? empid, DateTime? dMonth)
|
|
{
|
|
string sqlClauseEmployee = string.Empty;
|
|
string sqlClauseMonth = string.Empty;
|
|
|
|
if (empid !=null)
|
|
{
|
|
sqlClauseEmployee = SQLParser.MakeSQL(" and el.EmployeeID = %n", empid);
|
|
}
|
|
|
|
if (dMonth !=null)
|
|
{
|
|
sqlClauseMonth = SQLParser.MakeSQL(" and el.MONTHDATE=%d", GlobalFunctions.LastDateOfMonth( (DateTime) dMonth));
|
|
}
|
|
|
|
string sql = SQLParser.MakeSQL(
|
|
@"SELECT el.*, e.EmployeeNo, e.Name as EmployeeName, l.leaveDesc as LeaveName FROM MONTHLYLEAVEENTRY el, Employee e, LEAVESUSPENSETYPE l
|
|
WHERE e.EmployeeID =el.EmployeeID and l.LeaveID = el.LEAVEID and e.PayrollTypeID =%n
|
|
%q %q", payrolltypeid, sqlClauseEmployee, sqlClauseMonth);
|
|
|
|
return tc.ExecuteReader(sql);
|
|
}
|
|
|
|
|
|
internal static int GetAdjustedDays(TransactionContext tc, int nID)
|
|
{
|
|
object value =
|
|
tc.ExecuteScalar("SELECT Sum(LeaveDay) FROM MONTHLYLEAVEENTRY Where ReferenceID = %n AND Type= %n", nID,
|
|
EnumLeaveEntryType.PaidLeave);
|
|
if (value == DBNull.Value)
|
|
return 0;
|
|
else return Convert.ToInt32(value);
|
|
}
|
|
|
|
internal static int GetAdjustedDays(TransactionContext tc, int nID, DateTime month)
|
|
{
|
|
object value =
|
|
tc.ExecuteScalar(
|
|
"SELECT Sum(LeaveDay) FROM MONTHLYLEAVEENTRY Where ReferenceID = %n AND Type= %n AND MonthDate=%d",
|
|
nID, EnumLeaveEntryType.PaidLeave, month);
|
|
if (value == DBNull.Value)
|
|
return 0;
|
|
else return Convert.ToInt32(value);
|
|
}
|
|
|
|
internal static IDataReader Get(TransactionContext tc, EnumLeaveEntryType type, DateTime month)
|
|
{
|
|
return tc.ExecuteReader(
|
|
"SELECT * FROM MONTHLYLEAVEENTRY WHERE MONTHDATE=%d AND Type=%n Order By EmployeeID,MONTHDATE", month,
|
|
type);
|
|
}
|
|
|
|
internal static IDataReader Get(TransactionContext tc, DateTime fromDate, DateTime todate,
|
|
EnumLeaveEntryType type)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM MONTHLYLEAVEENTRY WHERE MONTHDATE Between %d AND %d "
|
|
+ " AND Type=%n Order By EmployeeID, MONTHDATE",
|
|
fromDate, todate, type);
|
|
}
|
|
|
|
internal static IDataReader GetByEmployeeAfter(TransactionContext tc, int nEmpID, int nLeaveID,
|
|
EnumLeaveEntryType type, DateTime LastPayProcessMonth)
|
|
{
|
|
return tc.ExecuteReader(
|
|
@"SELECT * FROM MONTHLYLEAVEENTRY WHERE EmployeeID=%n AND LeaveID=%n AND MONTHDATE>%d AND Type=%n",
|
|
nEmpID, nLeaveID, LastPayProcessMonth, type);
|
|
}
|
|
|
|
internal static IDataReader GetByEmployee(TransactionContext tc, int empid, int leaveid, DateTime leaveMonth,
|
|
EnumLeaveEntryType type)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM MONTHLYLEAVEENTRY WHERE EmployeeID=%n AND LEAVEID=%n AND LeaveMonth=%d and Type=%n",
|
|
empid, leaveid , leaveMonth, type);
|
|
}
|
|
|
|
internal static DataSet GetUnAuthorizeLeave(TransactionContext tc, DateTime date)
|
|
{
|
|
DataSet unAuthoLeave = new DataSet();
|
|
try
|
|
{
|
|
string sql = SQLParser.MakeSQL("select EmployeeID,COUNT(EmployeeID) TotalAbsent from DailyAttnProcess "
|
|
+ "where AttnDate between %d AND %d AND AttnType=%n group by EmployeeID order by EmployeeID ",
|
|
PayrollGlobalFunctions.PayrollFirstDateOfMonth(date),
|
|
PayrollGlobalFunctions.PayrollLastDateOfMonth(date), EnumAttendanceType.Absent);
|
|
|
|
unAuthoLeave = tc.ExecuteDataSet(sql);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
|
|
return unAuthoLeave;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Delete function
|
|
|
|
internal static void Delete(TransactionContext tc, int nID)
|
|
{
|
|
tc.ExecuteNonQuery("DELETE FROM MONTHLYLEAVEENTRY WHERE EmpLeaveID=%n", nID);
|
|
}
|
|
|
|
internal static void Delete(TransactionContext tc, DateTime dateTime, int nLeaveID, int nEmpID)
|
|
{
|
|
tc.ExecuteNonQuery("DELETE FROM MONTHLYLEAVEENTRY WHERE MONTHDATE=%d AND LEAVEID=%n AND EMPLOYEEID=%n",
|
|
dateTime, nLeaveID, nEmpID);
|
|
}
|
|
|
|
internal static void Delete(TransactionContext tc, DateTime month, DateTime fromDate, DateTime toDate,
|
|
int nLeaveID, int nEmpID)
|
|
{
|
|
tc.ExecuteNonQuery(
|
|
"DELETE FROM MONTHLYLEAVEENTRY WHERE MONTHDATE=%d AND FromDate=%d and ToDate=%d and LEAVEID=%n AND EMPLOYEEID=%n",
|
|
month, fromDate, toDate, nLeaveID, nEmpID);
|
|
}
|
|
|
|
internal static bool IsExist(TransactionContext tc, DateTime dateTime, int nLeaveID, int nEmpID)
|
|
{
|
|
bool Exist = false;
|
|
Object obj =
|
|
tc.ExecuteScalar(
|
|
"select Count(*) FROM MONTHLYLEAVEENTRY WHERE MONTHDATE=%d AND LEAVEID=%n AND EMPLOYEEID=%n",
|
|
dateTime, nLeaveID, nEmpID);
|
|
Exist = Convert.ToInt32(obj) > 0 ? true : false;
|
|
return Exist;
|
|
}
|
|
|
|
internal static bool IsExist(TransactionContext tc, DateTime Month, DateTime FromDate, DateTime todate,
|
|
int nLeaveID, int nEmpID)
|
|
{
|
|
bool Exist = false;
|
|
Object obj =
|
|
tc.ExecuteScalar(
|
|
"select Count(*) FROM MONTHLYLEAVEENTRY WHERE MONTHDATE=%d and FromDate=%d and ToDate=%d AND LEAVEID=%n AND EMPLOYEEID=%n",
|
|
Month, FromDate, todate, nLeaveID, nEmpID);
|
|
Exist = Convert.ToInt32(obj) > 0 ? true : false;
|
|
return Exist;
|
|
}
|
|
|
|
internal static void Delete(TransactionContext tc, DateTime month, int nEmpID)
|
|
{
|
|
tc.ExecuteNonQuery("DELETE FROM MONTHLYLEAVEENTRY WHERE MONTHDATE=%d AND EMPLOYEEID=%n", month, nEmpID);
|
|
}
|
|
|
|
internal static void Delete(TransactionContext tc, DateTime dateTime)
|
|
{
|
|
string sql = SQLParser.MakeSQL("DELETE FROM MONTHLYLEAVEENTRY WHERE MONTHDATE between %d AND %d ",
|
|
PayrollGlobalFunctions.PayrollFirstDateOfMonth(dateTime),
|
|
PayrollGlobalFunctions.PayrollLastDateOfMonth(dateTime));
|
|
tc.ExecuteNonQuery(sql);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
#endregion
|
|
} |