237 lines
11 KiB
C#
237 lines
11 KiB
C#
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
|
|
} |