EchoTex_Payroll/HRM.DA/DA/Attendance/ShiftDA.cs

237 lines
11 KiB
C#
Raw 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 ShiftDA
internal class ShiftDA
{
#region Constructor
private ShiftDA()
{
}
#endregion
#region Insert function
//oShift.HasTiffinAllowance = oReader.GetBoolean("HasTiffinAllowance").HasValue? oReader.GetBoolean("HasTiffinAllowance").Value : false;
// oShift.HasSpecialAllowance = oReader.GetBoolean("HasSpecialAllowance").HasValue? oReader.GetBoolean("HasSpecialAllowance").Value : false;
// oShift.TiffinAllowanceID = oReader.GetInt32("TiffinAllowanceID");
// oShift.SpecialAllowanceID = oReader.GetInt32("SpecialAllowanceID");
internal static void Insert(TransactionContext tc, Shift item)
{
string sql = SQLParser.MakeSQL(@"INSERT INTO dbo.Shift (
ShiftID, Code, Name,
InTime, OutTime, LateCalcualtion,
EarlyExitBefore, IsOverlapingDay, ShortName,
SequenceNo, Status, CreatedBy,
CreatedDate,
MinimumOTHour, IsCounterClock, hasAbsentTime,
AbsentTime, DelayCalcualtion, ShiftType,
MinimumInOTHour, LunchHour, FlexibleHour, PayrollTypeID,
HasBenefits, HasExtraHourAllowance,
HasNightAllowance, HasHolidayAllowance,
HasOtherAllowance, HasRegularOverTime,HasHolidayOverTime,
ExtraHourAllowanceID, NightAllowanceID,
HolidayAllowanceID, OtherAllowanceID,
RegularOverTimeAllowanceID, HolidayOverTimeAllowanceID,
ExtraHourAllowanceFromTime,
HasTiffinAllowance,HasSpecialAllowance,TiffinAllowanceID,SpecialAllowanceID)
VALUES (
%n, %s, %s,
%D, %D, %n,
%n, %b, %s,
%n, %n, %n,
%D,
%n, %b, %b,
%D, %n, %n, %n,
%n, %n, %n, %n,
%b,%b,%b,
%b,%b,%b,
%n,%n,%n,
%n,%n,%n,%D,
%b, %b, %n, %n )",
item.ID, item.Code, item.Name,
item.InTime, item.OutTime, item.LateCalcualtion,
item.EarlyExitBefore, item.IsOverlapingDay, item.ShortName,
item.Sequence, item.Status, item.CreatedBy,
item.CreatedDate,
item.MinimumOutOTHour, item.IsCounterClock, item.hasAbsentTime,
DataReader.GetNullValue(item.AbsentTime), item.DelayCalcualtion, item.ShiftType,
item.MinimumInOTHour, item.LunchHour, item.FlexibleHour, item.payrollTypeID,
item.HasBenefits, item.HasExtraHourAllowance,
item.HasNightAllowance, item.HasHolidayAllowance,
item.HasOtherAllowance, item.HasRegularOverTime, item.HasHolidayOverTime,
item.ExtraHourAllowanceID, item.NightAllowanceID,
item.HolidayAllowanceID, item.OtherAllowanceID,
item.RegularOverTimeAllowanceID, item.HolidayOverTimeAllowanceID,
DataReader.GetNullValue(item.ExtraHourAllowanceFromTime),
item.HasTiffinAllowance, item.HasSpecialAllowance, item.TiffinAllowanceID, item.SpecialAllowanceID);
tc.ExecuteNonQuery(sql);
}
#endregion
#region Update function
internal static void Update(TransactionContext tc, Shift item)
{
string sql = SQLParser.MakeSQL(@"UPDATE Shift SET
Code=%s, Name=%s, InTime=%D,
OutTime=%D, hasAbsentTime=%b, AbsentTime=%D,
LateCalcualtion=%n,DelayCalcualtion=%n,EarlyExitBefore=%n,
MinimumOTHour=%n, IsOverlapingDay=%b,ShortName=%s,
ModifiedBy=%n, ModifiedDate=%d,SequenceNo=%n,
Status=%n, ShiftType=%n, MinimumInOTHour=%n,
LunchHour=%n, FlexibleHour=%n, WorkHour=%n,
HasBenefits=%b, HasExtraHourAllowance=%b,
HasNightAllowance=%b, HasHolidayAllowance=%b,
HasOtherAllowance=%b, HasRegularOverTime=%b, HasHolidayOverTime=%b,
ExtraHourAllowanceID=%n, NightAllowanceID=%n,
HolidayAllowanceID=%n, OtherAllowanceID=%n,
RegularOverTimeAllowanceID=%n,HolidayOverTimeAllowanceID=%n,
ExtraHourAllowanceFromTime=%D,
HasTiffinAllowance=%b,HasSpecialAllowance=%b,TiffinAllowanceID=%n,SpecialAllowanceID=%n
WHERE ShiftID=%n",
item.Code, item.Name, item.InTime,
item.OutTime, item.hasAbsentTime, DataReader.GetNullValue(item.AbsentTime),
item.LateCalcualtion, item.DelayCalcualtion, item.EarlyExitBefore,
item.MinimumOutOTHour, item.IsOverlapingDay, item.ShortName,
item.ModifiedBy, item.ModifiedDate, item.Sequence,
item.Status, (int)item.ShiftType, item.MinimumInOTHour,
item.LunchHour, item.FlexibleHour, item.WorkHour,
item.HasBenefits, item.HasExtraHourAllowance,
item.HasNightAllowance, item.HasHolidayAllowance,
item.HasOtherAllowance, item.HasRegularOverTime, item.HasHolidayOverTime,
item.ExtraHourAllowanceID, item.NightAllowanceID,
item.HolidayAllowanceID, item.OtherAllowanceID,
item.RegularOverTimeAllowanceID, item.HolidayOverTimeAllowanceID,
DataReader.GetNullValue(item.ExtraHourAllowanceFromTime),
item.HasTiffinAllowance, item.HasSpecialAllowance, item.TiffinAllowanceID, item.SpecialAllowanceID,
item.ID);
tc.ExecuteNonQuery(sql);
}
#endregion
#region Get Function
internal static IDataReader Get(TransactionContext tc, string code, string name, EnumStatus status, int payrollTypeID)
{
string sqlClause = string.Empty;
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID = %n", payrollTypeID);
if (EnumStatus.Active == status || EnumStatus.Inactive == status)
{
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("status = %n", status);
}
if (!string.IsNullOrWhiteSpace(code))
{
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("Code = %s", code);
}
if (!string.IsNullOrWhiteSpace(name))
{
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("Name LIKE %s", ("%" + name + "%"));
}
return tc.ExecuteReader("SELECT * FROM shift %q ", sqlClause);
}
internal static IDataReader Get(TransactionContext tc, bool isCounterClock)
{
return tc.ExecuteReader("SELECT * FROM Shift Where IsCounterClock=%b ORDER BY Code", isCounterClock);
}
internal static IDataReader Get(TransactionContext tc, int nID)
{
return tc.ExecuteReader("SELECT * FROM Shift WHERE ShiftID=%n", nID);
}
internal static DataTable GetShiftForMobile(TransactionContext tc, int nID)
{
return tc.ExecuteDataTable("SELECT ShiftID, Code, Name, ShiftType, InTime, OutTime, ShortName, Status, PayrollTypeID, WorkHour FROM Shift With(NoLock) WHERE ShiftID=%n", nID);
}
internal static IDataReader GetAllShift(TransactionContext tc)
{
return tc.ExecuteReader("SELECT * FROM Shift");
}
internal static DataTable GetAllShiftWithNoLock(TransactionContext tc)
{
return tc.ExecuteDataTable("SELECT ShiftID, Code, Name, ShiftType, InTime, OutTime, ShortName, Status, PayrollTypeID, WorkHour FROM Shift With(NoLock)");
}
internal static IDataReader GetAllShiftByPayrollType(TransactionContext tc, int payrollTypeId)
{
return tc.ExecuteReader("SELECT * FROM Shift WHERE PayrollTypeID = %n", payrollTypeId);
}
internal static IDataReader GetShiftByIds(TransactionContext tc, string shiftIds)
{
return tc.ExecuteReader(@"
SELECT * FROM Shift
WHERE ShiftID IN (%q)", shiftIds);
}
internal static IDataReader Get(TransactionContext tc, string shiftName)
{
return tc.ExecuteReader("SELECT * FROM Shift WHERE ShortName=%s", shiftName);
}
#endregion
#region Delete function
internal static void Delete(TransactionContext tc, int nID)
{
tc.ExecuteNonQuery("DELETE FROM [Shift] WHERE ShiftID=%n", nID);
}
#endregion
#region IsExist
internal static bool IsExist(TransactionContext tc, string shiftCode, string shortName, int shiftid)
{
bool isExist = false;
if (shiftCode != string.Empty && shortName != string.Empty)
{
object obj =
tc.ExecuteScalar("SELECT Count(*) from Shift Where Code=%s AND ShortName=%s and ShiftID <> %n",
shiftCode, shortName, shiftid);
isExist = Convert.ToInt32(obj) > 0 ? true : false;
}
else if (shiftCode != string.Empty)
{
object obj = tc.ExecuteScalar("SELECT Count(*) from Shift Where Code=%s and ShiftID <> %n", shiftCode,
shiftid);
isExist = Convert.ToInt32(obj) > 0 ? true : false;
}
else if (shortName != string.Empty)
{
object obj = tc.ExecuteScalar("SELECT Count(*) from Shift Where ShortName=%s and ShiftID <> %n",
shortName, shiftid);
isExist = Convert.ToInt32(obj) > 0 ? true : false;
}
return isExist;
}
#endregion
}
#endregion
}