using HRM.BO; using Ease.Core.DataAccess; using System; using System.Data; namespace HRM.DA { #region CategoryDA internal class CategoryDA { #region Constructor private CategoryDA() { } #endregion #region Insert function internal static void Insert(TransactionContext tc, Category item) { tc.ExecuteNonQuery( "INSERT INTO Category(CategoryID, code, description, CreatedBy, CreationDate, SequenceNo, Status, WagesType,PayrollTypeID, descriptionInBangla)" + " VALUES(%n, %s, %s, %n, %d, %n, %n, %n,%n, %u)", item.ID, item.Code, item.Name, item.CreatedBy, item.CreatedDate, item.Sequence, item.Status, item.WagesType, item.PayrollTypeID, item.NameInBangla); } #endregion #region Update function internal static void Update(TransactionContext tc, Category item) { tc.ExecuteNonQuery( "UPDATE Category SET code=%s, description=%s, ModifiedBy=%n, ModifiedDate=%d, SequenceNo=%n, Status=%n, WagesType=%n, PayrollTypeID=%n, descriptionInBangla=%u" + " WHERE CategoryID=%n", item.Code, item.Name, item.ModifiedBy, item.ModifiedDate, item.Sequence, item.Status, item.WagesType, item.PayrollTypeID, item.NameInBangla, item.ID); } #endregion #region Get Function internal static IDataReader GetAllCategory(TransactionContext tc, int payrollTypeID, EnumStatus status, string code, string name) { 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 Category %q Order By SequenceNo", sqlClause); } internal static IDataReader Get(TransactionContext tc, EnumStatus status, int payrollTypeID) { if (EnumStatus.Active == status || EnumStatus.Inactive == status) { return tc.ExecuteReader( "SELECT * FROM Category where Status=%n AND PayRollTypeID=%n Order By SequenceNo", status, payrollTypeID); } else { return tc.ExecuteReader("SELECT * FROM Category WHERE PayRollTypeID=%n Order By SequenceNo", payrollTypeID); } } internal static IDataReader Get(TransactionContext tc, EnumWagesType wageType, EnumStatus status, int payrollTypeID) { return tc.ExecuteReader( "SELECT * FROM Category where Status=%n AND PayRollTypeID=%n and WagesType=%n Order By SequenceNo", status, payrollTypeID, wageType); } internal static IDataReader Get(TransactionContext tc, int ID) { return tc.ExecuteReader("SELECT * FROM Category WHERE CategoryID=%n", ID); } internal static IDataReader GetAll(TransactionContext tc) { return tc.ExecuteReader("SELECT * FROM Category "); } internal static IDataReader GetByPayrollTypeID(TransactionContext tc, int payrollTypeID) { return tc.ExecuteReader("SELECT * FROM Category WHERE PayRollTypeID=%n", payrollTypeID); } #endregion #region Delete function internal static void Delete(TransactionContext tc, int ID) { tc.ExecuteNonQuery("DELETE FROM Category WHERE CategoryID=%n", ID); } #endregion internal static DataSet GetAgeRange(TransactionContext tc, int fromyear, int toyear) { DataSet rootDataset = new DataSet(); DataSet tempdataset = new DataSet(); try { string query = SQLParser.MakeSQL(@"Select Count(EmployeeID)as ManagementStaff,(Select Count(EmployeeID) from Employee where CategoryID=2 and DATEDIFF(YEAR,BIRTHDATE,GETDATE()) between %n and %n)as NonManagementStaff from Employee where CategoryID=1 and DATEDIFF(YEAR,BIRTHDATE,GETDATE()) between %n and %n ", fromyear, toyear, fromyear, toyear); tempdataset = tc.ExecuteDataSet(query); tempdataset.Tables[0].TableName = "AgeRange"; rootDataset.Tables.Add(tempdataset.Tables[0].Copy()); } catch (Exception ex) { throw new Exception(ex.Message); } return rootDataset; } } #endregion }