EchoTex_Payroll/HRM.DA/DA/UnAuthLeave/EmployeeUnAuthorizeLeaveDA.cs

259 lines
11 KiB
C#
Raw Permalink Normal View History

2024-10-14 10:01:49 +06:00
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
}