using Ease.Core.DataAccess; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using HRM.BO; using System.Data; namespace HRM.DA { #region SettlmentAdvice public class DailyAttendanceAllowanceDA { #region Constructor public DailyAttendanceAllowanceDA() { } #endregion #region Insert function //public EnumattnBeniftsType BenifitsType { get; set; } //public int? OtherBenifitItemID { get; set; } //public double OtherBenifitValue { get; set; } //public DateTime SalaryMonth { get; set; } //public bool IsArrear { get; set; } public static void Insert(TransactionContext tc, DailyAttendanceAllowance item) { string sql = SQLParser.MakeSQL(@" INSERT INTO DailyAttendanceAllowance(DailyAttendanceProcessID, AttnDate, EmployeeID, ShiftID, PayrollTypeID, BenifitsType, OtherBenifitItemID, OtherBenifitValue, SalaryMonth, IsArrear, CreatedBy, CreatedDate) VALUES(%n, %d, %n, %n, %n, %n, %n, %n, %d, %n %n, %d)", item.DailyAttendanceProcessID, item.AttnDate, item.EmployeeID, item.ShiftID, DataReader.GetNullValue(item.PayrollTypeID), item.BenifitsType, item.OtherBenifitItemID, item.OtherBenifitValue , item.SalaryMonth, item.IsArrear, item.CreatedBy, DataReader.GetNullValue(item.CreatedDate)); tc.ExecuteNonQuery(sql); } #endregion #region Update function public static void Update(TransactionContext tc, DailyAttendanceAllowance item) { string sql = SQLParser.MakeSQL(@" UPDATE DailyAttendanceAllowance SET DailyAttendanceProcessID=%n, AttnDate=%d, EmployeeID=%n, ShiftID=%n, PayrollTypeID=%n, BenifitsType=%n, OtherBenifitItemID =%n, OtherBenifitValue=%n, SalaryMonth=%d, IsArrear=%n ModifiedBy=%n, ModifiedDate=%d) WHERE DailyAttendanceAllowanceID=%n", item.DailyAttendanceProcessID, item.AttnDate, item.EmployeeID, item.ShiftID, DataReader.GetNullValue(item.PayrollTypeID), item.BenifitsType, item.OtherBenifitItemID, item.OtherBenifitValue , item.SalaryMonth, item.IsArrear, item.ModifiedBy, DataReader.GetNullValue(item.ModifiedDate), item.ID); tc.ExecuteNonQuery(sql); } internal static IDataReader GetByPayrollType(TransactionContext tc, int payrollTypeID) { string sql = SQLParser.MakeSQL(@" SELECT * FROM DailyAttendanceAllowance WHERE PayrollTypeID = %n", payrollTypeID); return tc.ExecuteReader(sql); } internal static IDataReader GetById(TransactionContext tc, int id) { string sql = SQLParser.MakeSQL(@" SELECT * FROM DailyAttendanceAllowance WHERE DailyAttendanceAllowanceID = %n", id); return tc.ExecuteReader(sql); } internal static IDataReader GetByAttnDate(TransactionContext tc, DateTime attnDate) { string sql = SQLParser.MakeSQL(@" SELECT * FROM DailyAttendanceAllowance WHERE AttnDate = %d ", attnDate, true); return tc.ExecuteReader(sql); } internal static IDataReader Get(TransactionContext tc, string empids, DateTime attnDate) { string sql = SQLParser.MakeSQL(@" SELECT * FROM DailyAttendanceAllowance WHERE AttnDate = %d and Employeeid in (%q)", attnDate, empids); return tc.ExecuteReader(sql); } internal static IDataReader GetEditedItems(TransactionContext tc, DateTime attnDate) { string sql = SQLParser.MakeSQL(@" SELECT * FROM DailyAttendanceAllowance WHERE AttnDate = %d and ManualEdited=%n", attnDate, true); return tc.ExecuteReader(sql); } internal static IDataReader GetByAttnDateRange(TransactionContext tc, DateTime attnFromDate, DateTime attnToDate) { string sql = SQLParser.MakeSQL(@" SELECT * FROM DailyAttendanceAllowance WHERE AttnDate BETWEEN %d AND %d", attnFromDate, attnToDate); return tc.ExecuteReader(sql); } internal static IDataReader GetByAttnDateRangePayrollType(TransactionContext tc, DateTime attnFromDate, DateTime attnToDate, int payrollTypeid) { string sql = SQLParser.MakeSQL(@" SELECT * FROM DailyAttendanceAllowance WHERE PayrollTypeID = %n AND AttnDate BETWEEN %d AND %d", payrollTypeid, attnFromDate, attnToDate); return tc.ExecuteReader(sql); } internal static DataTable GetByAttnDateRangePayrollTypedt(TransactionContext tc, DateTime attnFromDate, DateTime attnToDate, int payrollTypeid) { string sql = SQLParser.MakeSQL(@" SELECT d.EmployeeID, d.ShiftID, SUM(d.NightAllowance) AS NightAllowance, SUM(d.HolidayAllowance) AS HolidayAllowance, SUM(d.OtherAllowance) AS OtherAllowance, SUM(d.ExtraHour) AS ExtraHour, SUM(d.RegularOverTime) AS RegularOverTime, SUM(d.HolidayOverTime) AS HolidayOverTime FROM DailyAttendanceAllowance d JOIN EMPLOYEE e ON d.EmployeeID = e.EMPLOYEEID WHERE e.PayrollTypeID = %n AND d.AttnDate BETWEEN %d AND %d GROUP BY d.EmployeeID, d.ShiftID", payrollTypeid, attnFromDate, attnToDate); return tc.ExecuteDataTable(sql); } internal static DataTable GetByAttnbySalaryMonth(TransactionContext tc, DateTime salarymonth, int payrollTypeid) { string sql = SQLParser.MakeSQL(@" SELECT d.EmployeeID, d.BenifitsType type, d.OtherBenifitItemID ItemID, SUM(d.OtherBenifitValue) AS value FROM DailyAttendanceAllowance d JOIN EMPLOYEE e ON d.EmployeeID = e.EMPLOYEEID WHERE e.PayrollTypeID = %n AND d.SalaryMonth =%d GROUP BY d.EmployeeID, d.OtherBenifitItemID, d.BenifitsType", payrollTypeid, salarymonth); return tc.ExecuteDataTable(sql); } internal static void Delete(TransactionContext tc, int id) { string sql = SQLParser.MakeSQL(@" DELETE DailyAttendanceAllowance WHERE DailyAttendanceAllowanceID = %n", id); tc.ExecuteNonQuery(sql); } internal static void Delete(TransactionContext tc, string empIDs, DateTime attnDate , bool edited) { tc.ExecuteNonQuery("DELETE FROM DailyAttendanceAllowance WHERE EmployeeID in(%q) AND AttnDate=%d and ManualEdited =%n", empIDs, attnDate, edited); } #endregion #region Update function #endregion } #endregion }