EchoTex_Payroll/HRM.DA/DA/Attendance/AttnWiseAllowanceDA.cs

217 lines
12 KiB
C#
Raw Permalink Normal View History

2024-10-14 10:01:49 +06:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ease.CoreV35.DataAccess;
using System.Data;
using HRM.BO;
using Ease.Core.DataAccess;
namespace HRM.DA
{
#region AttnWiseAllowanceDA
class AttnWiseAllowanceDA
{
#region Constructor
private AttnWiseAllowanceDA()
{
}
#endregion
#region Insert function
internal static void Insert(TransactionContext tc, AttnWiseAllowance item)
{
string sql = SQLParser.MakeSQL(@"INSERT INTO AttnWiseAllowance(
ShiftID, ProvisionID,ProvisionType, HasHour,
HasHourOverShift,IncludeLeave, Multiple,FixedAmount,
PercentOfBasic, CreatedBy, CreatedDate,
IncludeHoliday, ConsiderPresentHour, PayrollTypeID, TimeDependent,
FromTime, ToTime, ConsiderOutTime,
WorkTime, GraceTime)
VALUES(
%n, %n,%n, %n,
%n, %n, %b, %b,
%b, %n,%D,
%n,%n, %n, %b,
%D, %D,
%n,
%n, %n)",
item.ShiftID, item.ProvisionID, (int)item.ProvisionType, item.ConsiderShiftHour,
item.HoursOverShift, item.OnLeave, item.Multiple, item.FixedAmount,
item.PercentOfBasic, item.CreatedBy, item.CreatedDate,
item.OnHoliday, item.ConsiderPresentHour, item.PayrollTypeID, item.TimeDependent,
DataReader.GetNullValue(item.FromTime), DataReader.GetNullValue(item.ToTime),
DataReader.GetNullValue(item.ConsiderOutTime),
DataReader.GetNullValue(item.WorkTime), DataReader.GetNullValue(item.GraceTime));
tc.ExecuteNonQuery(sql);
}
#endregion
#region Update function
internal static void Update(TransactionContext tc, AttnWiseAllowance item)
{
string sql = SQLParser.MakeSQL(@"UPDATE AttnWiseAllowance SET
ShiftID=%n, ProvisionID=%n,ProvisionType=%n, HasHour=%b,
HasHourOverShift=%b,IncludeLeave=%b, Multiple=%n, FixedAmount=%n,
PercentOfBasic=%n, ModifiedBy=%n, ModifiedDate=%D, IncludeHoliday=%n, ConsiderPresentHour=%n,
TimeDependent = %b, FromTime = %D, ToTime = %D,
ConsiderOutTime = %n, WorkTime = %n, GraceTime = %n
Where AttnWiseAllowanceID=%n",
item.ShiftID, item.ProvisionID, (int)item.ProvisionType, item.ConsiderShiftHour,
item.HoursOverShift, item.OnLeave, item.Multiple, item.FixedAmount,
item.PercentOfBasic, item.ModifiedBy, item.ModifiedDate.Value, item.OnHoliday, item.ConsiderPresentHour,
item.TimeDependent, DataReader.GetNullValue(item.FromTime), DataReader.GetNullValue(item.ToTime),
DataReader.GetNullValue(item.ConsiderOutTime),
DataReader.GetNullValue(item.WorkTime), DataReader.GetNullValue(item.GraceTime),
item.ID);
tc.ExecuteNonQuery(sql);
}
#endregion
#region Get Function
internal static IDataReader Get(TransactionContext tc, int payrollTypeID)
{
return tc.ExecuteReader(@"SELECT AttnWiseAllowance.*, Shift.Name ShiftName
,CASE
WHEN AttnWiseAllowance.PROVISIONTYPE = 1 THEN 'Ordinary Hour Deduct'
WHEN AttnWiseAllowance.PROVISIONTYPE = 22 THEN 'Ordinary Hour Extra'
WHEN AttnWiseAllowance.PROVISIONTYPE = 23 THEN 'Badli Shift Allowance'
ELSE COALESCE(ALLOWANCEDEDUCTION.NAME,TERM.NAME)
END
ProvisionName
FROM AttnWiseAllowance
INNER JOIN Shift
ON AttnWiseAllowance.ShiftID = Shift.ShiftID
LEFT JOIN ALLOWANCEDEDUCTION
ON AttnWiseAllowance.PROVISIONID = ALLOWANCEDEDUCTION.ALLOWDEDUCTID AND AttnWiseAllowance.PROVISIONTYPE = 2
LEFT JOIN TERM
ON AttnWiseAllowance.PROVISIONID = TERM.TERMID AND AttnWiseAllowance.PROVISIONTYPE = 4 Where AttnWiseAllowance.PayrollTypeID=%n Order By ProvisionName asc",
payrollTypeID);
}
internal static IDataReader Get(TransactionContext tc, int nID, int payrollTypeID)
{
return tc.ExecuteReader(@"SELECT AttnWiseAllowance.*, Shift.Name ShiftName,
CASE
WHEN AttnWiseAllowance.PROVISIONTYPE = 1 THEN 'Ordinary Hour Deduct'
WHEN AttnWiseAllowance.PROVISIONTYPE = 22 THEN 'Ordinary Hour Extra'
WHEN AttnWiseAllowance.PROVISIONTYPE = 23 THEN 'Badli Shift Allowance'
ELSE COALESCE(ALLOWANCEDEDUCTION.NAME,TERM.NAME)
END
ProvisionName
FROM AttnWiseAllowance
INNER JOIN Shift
ON AttnWiseAllowance.ShiftID = Shift.ShiftID
LEFT JOIN ALLOWANCEDEDUCTION
ON AttnWiseAllowance.PROVISIONID = ALLOWANCEDEDUCTION.ALLOWDEDUCTID AND AttnWiseAllowance.PROVISIONTYPE = 2
LEFT JOIN TERM
ON AttnWiseAllowance.PROVISIONID = TERM.TERMID AND AttnWiseAllowance.PROVISIONTYPE = 4
WHERE AttnWiseAllowanceID=%n AND AttnWiseAllowance.PayrollTypeID=%d", nID,
payrollTypeID);
}
internal static IDataReader Get(TransactionContext tc, int shiftid, EnumAttendanceType attntype, bool value)
{
if (attntype == EnumAttendanceType.Leave)
{
return tc.ExecuteReader(@"SELECT AttnWiseAllowance.*, Shift.Name ShiftName,
CASE
WHEN AttnWiseAllowance.PROVISIONTYPE = 1 THEN 'Ordinary Hour'
WHEN AttnWiseAllowance.PROVISIONTYPE = 22 THEN 'Ordinary Hour Extra'
WHEN AttnWiseAllowance.PROVISIONTYPE = 23 THEN 'Badli Shift Allowance'
ELSE COALESCE(ALLOWANCEDEDUCTION.NAME,TERM.NAME)
END
ProvisionName
FROM AttnWiseAllowance
INNER JOIN Shift
ON AttnWiseAllowance.ShiftID = Shift.ShiftID
LEFT JOIN ALLOWANCEDEDUCTION
ON AttnWiseAllowance.PROVISIONID = ALLOWANCEDEDUCTION.ALLOWDEDUCTID AND AttnWiseAllowance.PROVISIONTYPE = 2
LEFT JOIN TERM
ON AttnWiseAllowance.PROVISIONID = TERM.TERMID AND AttnWiseAllowance.PROVISIONTYPE = 4
WHERE AttnWiseAllowance.ShiftID=%n AND AttnWiseAllowance.INCLUDELEAVE=%n",
shiftid, value);
}
else if (attntype == EnumAttendanceType.Holiday)
{
return tc.ExecuteReader(@"SELECT AttnWiseAllowance.*, Shift.Name ShiftName,
CASE
WHEN AttnWiseAllowance.PROVISIONTYPE = 1 THEN 'Ordinary Hour'
ELSE COALESCE(ALLOWANCEDEDUCTION.NAME,TERM.NAME)
END
ProvisionName
FROM AttnWiseAllowance
INNER JOIN Shift
ON AttnWiseAllowance.ShiftID = Shift.ShiftID
LEFT JOIN ALLOWANCEDEDUCTION
ON AttnWiseAllowance.PROVISIONID = ALLOWANCEDEDUCTION.ALLOWDEDUCTID AND AttnWiseAllowance.PROVISIONTYPE = 2
LEFT JOIN TERM
ON AttnWiseAllowance.PROVISIONID = TERM.TERMID AND AttnWiseAllowance.PROVISIONTYPE = 4
WHERE AttnWiseAllowance.ShiftID=%n AND AttnWiseAllowance.INCLUDEHOLIDAY=%n",
shiftid, value);
}
else if (attntype == EnumAttendanceType.Present)
{
value = false;
return tc.ExecuteReader(@"SELECT AttnWiseAllowance.*, Shift.Name ShiftName,
CASE
WHEN AttnWiseAllowance.PROVISIONTYPE = 1 THEN 'Ordinary Hour'
ELSE COALESCE(ALLOWANCEDEDUCTION.NAME,TERM.NAME)
END
ProvisionName
FROM AttnWiseAllowance
INNER JOIN Shift
ON AttnWiseAllowance.ShiftID = Shift.ShiftID
LEFT JOIN ALLOWANCEDEDUCTION
ON AttnWiseAllowance.PROVISIONID = ALLOWANCEDEDUCTION.ALLOWDEDUCTID AND AttnWiseAllowance.PROVISIONTYPE = 2
LEFT JOIN TERM
ON AttnWiseAllowance.PROVISIONID = TERM.TERMID AND AttnWiseAllowance.PROVISIONTYPE = 4
WHERE AttnWiseAllowance.ShiftID=%n AND AttnWiseAllowance.INCLUDEHOLIDAY=%n AND AttnWiseAllowance.INCLUDELEAVE=%n",
shiftid, value, value);
}
else
{
//need to discuss with boss about SecondDay Onward type.
value = false;
return tc.ExecuteReader(@"SELECT AttnWiseAllowance.*, Shift.Name ShiftName,
CASE
WHEN AttnWiseAllowance.PROVISIONTYPE = 1 THEN 'Ordinary Hour'
ELSE COALESCE(ALLOWANCEDEDUCTION.NAME,TERM.NAME)
END
ProvisionName
FROM AttnWiseAllowance
INNER JOIN Shift
ON AttnWiseAllowance.ShiftID = Shift.ShiftID
LEFT JOIN ALLOWANCEDEDUCTION
ON AttnWiseAllowance.PROVISIONID = ALLOWANCEDEDUCTION.ALLOWDEDUCTID AND AttnWiseAllowance.PROVISIONTYPE = 2
LEFT JOIN TERM
ON AttnWiseAllowance.PROVISIONID = TERM.TERMID AND AttnWiseAllowance.PROVISIONTYPE = 4
WHERE AttnWiseAllowance.ShiftID=%n AND AttnWiseAllowance.INCLUDEHOLIDAY=%n AND AttnWiseAllowance.INCLUDELEAVE=%n",
shiftid, value, value);
}
}
#endregion
#region Delete function
internal static void Delete(TransactionContext tc, int nID)
{
tc.ExecuteNonQuery("DELETE FROM AttnWiseAllowance WHERE AttnWiseAllowanceID=%n", nID);
}
#endregion
}
#endregion
}