using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using Ease.Core; using System.Globalization; namespace HRM.BO { #region AttnRawData [Serializable] public class AttnRawData : AuditTrailBase { #region Constructor public AttnRawData() { CardID = 0; EmployeeID = 0; CardNo = string.Empty; PunchTime = DateTime.MinValue; EntryMode = EnumEntryMode.Unknown; EmployeeNo = string.Empty; } #endregion #region Properties public int CardID { get; set; } public int EmployeeID { get; set; } public string CardNo { get; set; } public string EmployeeNo { get; set; } public DateTime PunchTime { get; set; } //public DateTime PunchTimeDateString { get; set; } public string PunchTimeDateString { get; set; } public EnumEntryMode EntryMode { get; set; } public string DeviceIPAddress { get; set; } public string DeviceNo { get; set; } public string EmployeeName { get; set; } public bool IsMobileOfflineData { get; set; } #region AccessCard : AccessCard private AccessCard _accessCard; public AccessCard AccessCard { get { //if (CardID > 0 && _accessCard == null) //{ // _accessCard = new AccessCard(); // _accessCard = AccessCard.Get(ID.FromInteger(CardID)); //} return this._accessCard; } set { _accessCard = value; } } #endregion //#region Service Factory IAttnRawDataService : IAttnRawDataService //internal static IAttnRawDataService Service //{ // get { return Services.Factory.CreateService(typeof(IAttnRawDataService)); } //} //#endregion #endregion //#region Functions //public static ObjectsTemplate Get(DateTime fromDate, DateTime toDate, int payrollTypeID) //{ // ObjectsTemplate attnRawDatas = new ObjectsTemplate(); // try // { // attnRawDatas = Service.Get(fromDate, toDate, payrollTypeID); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // return attnRawDatas; //} //public static ObjectsTemplate Get(DateTime fromDate, DateTime toDate) //{ // return Service.Get(fromDate, toDate); //} //public static ObjectsTemplate Get(DateTime fromDate, DateTime toDate, string empIDs) //{ // return Service.Get(fromDate, toDate, empIDs); //} //public static DataTable GetInOutData(DateTime startDate, DateTime endDate, int employeeID) //{ // try // { // return Service.GetInOutData(startDate, endDate, employeeID); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } //} //public static EnumAttendanceDB GetAttendanceDBType() //{ // return Service.GetAttendanceDBType(); //} //public static ObjectsTemplate GetDataFromClientDB(DateTime punchTime) //{ // return Service.GetDataFromClientDB(punchTime); //} //public static void SaveAuto(ObjectsTemplate attnRawdatas) //{ // AttnRawData.Service.SaveAuto(attnRawdatas); //} //public List Process(DataTable rowdata) //{ // List ErrorList = new List(); // AttnProcessRunSummary oRunSummary = new AttnProcessRunSummary(); // bool isInOutApplicable = ConfigurationManager.GetBoolValue("attendence", "inoutapplicable", EnumConfigurationType.Logic); // ObjectsTemplate attnRawDatas = new ObjectsTemplate(); // ObjectsTemplate oAccessCard = AccessCard.Get(EnumCardStatus.Attached, EnumCardStatus.Temporary, EnumCardStatus.Found); // ObjectsTemplate oEmployees = Employee.GetAllEmps(); // bool isEmpnoAndCardnoSame = ConfigurationManager.GetBoolValue("attendence", "isempnoandcardnosame", EnumConfigurationType.Logic); // AccessCard accessCard = null; // Employee employee = null; // foreach (DataRow item in rowdata.Rows) // { // if (isEmpnoAndCardnoSame == false) // { // string cardNo = Convert.ToString(item["CardNo"]); // AccessCard ocard = oAccessCard.Find(delegate (AccessCard citem) { return citem.CardNumber == cardNo; }); // if (ocard == null) // { // ErrorList.Add(new SalaryProcessStatus(cardNo, "", " Card information not found for the Card No:" + cardNo)); // continue; // } // employee = oEmployees.Find(delegate (Employee emp) { return emp.CardID.Integer == ocard.ID.Integer; }); // if (employee == null) // { // ErrorList.Add(new SalaryProcessStatus(cardNo, "", "This card is not yet assigned to any employee:" + cardNo)); // continue; // } // } // else // { // string sEmployeeNo = item["CardNo"].ToString(); // employee = oEmployees.Where(o => o.EmployeeNo.ToUpper() == sEmployeeNo.ToUpper().Trim()) // .FirstOrDefault(); // if (employee == null) // { // ErrorList.Add(new SalaryProcessStatus(sEmployeeNo, "", " Raw Data Contains Employee's Information which is not found in system:" + sEmployeeNo)); // continue; // } // } // AttnRawData oAttnRaw = new AttnRawData(); // oAttnRaw.EmployeeID = employee.ID.Integer; // oAttnRaw.PunchTime = Convert.ToDateTime(item["Time"].ToString()); // if (isEmpnoAndCardnoSame) // { // oAttnRaw.CardNo = employee.EmployeeNo; // } // else // { // oAttnRaw.CardID = accessCard.ID.Integer; // oAttnRaw.CardNo = accessCard.CardNumber; // } // oAttnRaw.DeviceIPAddress = item["DeviceIPAddress"].ToString(); // oAttnRaw.DeviceNo = item["DeviceNo"].ToString(); // //if (isInOutApplicable) // //{ // // oAttnRaw.EntryMode = (EnumEntryMode)Convert.ToInt32(item["InOut"].ToString()); // //} // //else // //{ // // oAttnRaw.EntryMode = EnumEntryMode.Unknown; // //} // attnRawDatas.Add(oAttnRaw); // } // if (ErrorList.Count == 0) // { // if (attnRawDatas.Count > 0) // { // AttnRawData.Service.Save(attnRawDatas); // } // else ErrorList.Add(new SalaryProcessStatus("", "", "There is nothing to process or Save. please check your Attandance raw data")); // } // //AttnRawData.Service.Save(attnRawDatas); // return ErrorList; //} //#endregion } #endregion #region IAttnRawData Service public interface IAttnRawDataService { List Get(DateTime fromDate, DateTime toDate, string empIDs, int payrollTypeID); void SaveAuto(List attnRawData); } #endregion }