CEL_Payroll/Payroll.Service/SAPLookUp/Service/SAPDataProcessService.cs
2024-09-17 14:30:13 +06:00

878 lines
33 KiB
C#

using System;
using System.Data;
using System.Linq;
using Ease.CoreV35;
using Ease.CoreV35.Model;
using Ease.CoreV35.DataAccess;
using System.Collections.Generic;
using Payroll.BO;
using Ease.CoreV35.Caching;
using System.IO;
namespace Payroll.Service
{
#region SAPDataProcess Service
[Serializable]
public class SAPDataProcessService : ServiceTemplate, ISAPDataProcessService
{
#region Private functions and declaration
Cache _cache = new Cache(typeof(SAPDataProcess));
public SAPDataProcessService() { }
private void SendMail(ref string sError, SAPInterface oSapInterface, SAPDataProcess oSAPDataProcess)
{
try
{
//Blocked temporarily
oSapInterface.SendMail(oSAPDataProcess);
}
catch (Exception ex)
{
sError += "Could not send message. Due To:" + ex.Message + ".Otherwise Everything saved Successfully.\n";
//throw new Exception("Could not send message. Due To:"+ex.Message);
//Do Something to indicate mail not send
}
}
#endregion
#region Object Mapping
private void MapObject(SAPDataProcess oSAPDataProcess, DataReader oReader)
{
base.SetObjectID(oSAPDataProcess, oReader.GetID("SAPDataProcessID"));
oSAPDataProcess.ProcessDate = oReader.GetDateTime("ProcessDate").Value;
oSAPDataProcess.ProcessStatus = (EnumSAPProcessStatus)oReader.GetInt32("ProcessStatus").Value;
oSAPDataProcess.ProcessTime = oReader.GetString("ProcessTime");
oSAPDataProcess.ProcessBy = oReader.GetID("ProcessBy");
oSAPDataProcess.MailCompleted = (EnumSendMail)oReader.GetInt32("MailCompleted").Value;
oSAPDataProcess.SourceFileName = oReader.GetString("SourceFileName");
this.SetObjectState(oSAPDataProcess, Ease.CoreV35.ObjectState.Saved);
}
protected override T CreateObject<T>(DataReader oReader)
{
SAPDataProcess oSAPDataProcess = new SAPDataProcess();
MapObject(oSAPDataProcess, oReader);
return oSAPDataProcess as T;
}
protected SAPDataProcess CreateObject(DataReader oReader)
{
SAPDataProcess oSAPDataProcess = new SAPDataProcess();
MapObject(oSAPDataProcess, oReader);
return oSAPDataProcess;
}
private void MapSAPDetailObject(SAPDataProcessDetail oSAPDataProcessDetail, DataReader oReader)
{
base.SetObjectID(oSAPDataProcessDetail, oReader.GetID("SAPDataProcessDetailID"));
oSAPDataProcessDetail.EmployeeNo = oReader.GetString("EmployeeNo");
oSAPDataProcessDetail.Name = oReader.GetString("Name");
oSAPDataProcessDetail.DataType = oReader.GetString("DataType");
oSAPDataProcessDetail.Description = oReader.GetString("Description");
oSAPDataProcessDetail.SAPDataProcessID = oReader.GetID("SAPDataProcessID");
this.SetObjectState(oSAPDataProcessDetail, Ease.CoreV35.ObjectState.Saved);
}
protected ObjectsTemplate<SAPDataProcessDetail> CreateSAPDetailObject(DataReader oReader)
{
ObjectsTemplate<SAPDataProcessDetail> oSAPDetails = new ObjectsTemplate<SAPDataProcessDetail>();
while (oReader.Read())
{
SAPDataProcessDetail oSAPDetail = new SAPDataProcessDetail();
MapSAPDetailObject(oSAPDetail, oReader);
oSAPDetails.Add(oSAPDetail);
}
return oSAPDetails;
}
#endregion
#region Service implementation
public SAPDataProcess Get(ID id)
{
SAPDataProcess oSAPDataProcess = new SAPDataProcess();
#region Cache Header
oSAPDataProcess = _cache["Get", id] as SAPDataProcess;
if (oSAPDataProcess != null)
return oSAPDataProcess;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(SAPDataProcessDA.Get(tc, id));
if (oreader.Read())
{
oSAPDataProcess = this.CreateObject<SAPDataProcess>(oreader);
}
oreader.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
_cache.Add(oSAPDataProcess, "Get", id);
#endregion
return oSAPDataProcess;
}
public SAPDataProcess Get(DateTime dSAPDate)
{
SAPDataProcess oSAPDataProcess = new SAPDataProcess();
#region Cache Header
oSAPDataProcess = _cache["Get", dSAPDate] as SAPDataProcess;
if (oSAPDataProcess != null)
return oSAPDataProcess;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(SAPDataProcessDA.Get(tc, dSAPDate));
if (oreader.Read())
{
oSAPDataProcess = this.CreateObject<SAPDataProcess>(oreader);
}
if (oSAPDataProcess != null)
{
oreader = new DataReader(SAPDataProcessDA.GetSAPDetails(tc, oSAPDataProcess.ID));
oSAPDataProcess.Details = this.CreateSAPDetailObject(oreader);
}
oreader.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
_cache.Add(oSAPDataProcess, "Get", dSAPDate);
#endregion
return oSAPDataProcess;
}
public SAPDataProcessDetail GetSAPDetails(ID id)
{
SAPDataProcessDetail oSAPDataProcessDetail = new SAPDataProcessDetail();
#region Cache Header
oSAPDataProcessDetail = _cache["Get", id] as SAPDataProcessDetail;
if (oSAPDataProcessDetail != null)
return oSAPDataProcessDetail;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(SAPDataProcessDA.Get(tc, id));
if (oreader.Read())
{
oSAPDataProcessDetail = this.CreateObject<SAPDataProcessDetail>(oreader);
}
oreader.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
_cache.Add(oSAPDataProcessDetail, "Get", id);
#endregion
return oSAPDataProcessDetail;
}
public ObjectsTemplate<SAPDataProcess> Get()
{
#region Cache Header
ObjectsTemplate<SAPDataProcess> SAPDataProcesss = _cache["Get"] as ObjectsTemplate<SAPDataProcess>;
if (SAPDataProcesss != null)
return SAPDataProcesss;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(SAPDataProcessDA.Get(tc));
SAPDataProcesss = this.CreateObjects<SAPDataProcess>(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
_cache.Add(SAPDataProcesss, "Get");
#endregion
return SAPDataProcesss;
}
public void SAPStatusSave(TransactionContext tc, SAPDataProcess oSapProcess)
{
SAPDataProcess oSAPDProcess = new SAPDataProcess();
if (oSapProcess.ErrorList.Count > 0)
{
oSAPDProcess.ProcessStatus = EnumSAPProcessStatus.Error;
oSAPDProcess.Details = oSapProcess.ErrorList;
}
else
{
oSAPDProcess.ProcessStatus = EnumSAPProcessStatus.Success;
oSAPDProcess.Details = oSapProcess.SuccessList;
}
oSAPDProcess.ProcessDate = DateTime.Now;
oSAPDProcess.ProcessTime = oSAPDProcess.ProcessDate.ToString("hh:mm tt");
oSAPDProcess.ProcessBy = Payroll.BO.SystemInformation.CurrentSysInfo.ModifiedBy;
//foreach (SAPDataProcessDetail oPDetail in oSAPDProcess.Details)
//{
// //SendMailNotification = SendMail(oPDetail);
//}
////_SAPDProcess.MailCompleted = SendMailNotification;
this.Save(tc, oSAPDProcess);
}
public void SAPStatusSave(SAPDataProcess oSapProcess)
{
// TransactionContext tc = null;
SAPDataProcess oSAPDProcess = new SAPDataProcess();
if (oSapProcess.ErrorList.Count > 0)
{
oSAPDProcess.ProcessStatus = EnumSAPProcessStatus.Error;
oSAPDProcess.Details = oSapProcess.ErrorList;
}
else
{
oSAPDProcess.ProcessStatus = EnumSAPProcessStatus.Success;
oSAPDProcess.Details = oSapProcess.SuccessList;
}
oSAPDProcess.ProcessDate = DateTime.Now;
oSAPDProcess.ProcessTime = oSAPDProcess.ProcessDate.ToString("hh:mm tt");
oSAPDProcess.ProcessBy = Payroll.BO.SystemInformation.CurrentSysInfo.ModifiedBy;
oSAPDProcess.SourceFileName = oSapProcess.SourceFileName;
//foreach (SAPDataProcessDetail oPDetail in oSAPDProcess.Details)
//{
// //SendMailNotification = SendMail(oPDetail);
//}
////_SAPDProcess.MailCompleted = SendMailNotification;
this.Save(oSAPDProcess);
}
//public void Process_Old(bool IsSystemInfoNeeded)
//{
// try
// {
// if (IsSystemInfoNeeded)
// {
// ConfigurationManager manager = new ConfigurationManager();
// manager.LoadConfiguration();
// PayrollType ptype = PayrollType.Get(ID.FromInteger(1));
// User oUser = User.Get(ID.FromInteger(9));
// oUser.LogInMode = EnumUserLogInMode.Normal;
// oUser.LogInPayrollTypeID = ptype.ID;
// User.SetCurrentUser(oUser);
// SystemInformation.CurrentSysInfo = SystemInformation.Get();
// }
// ObjectsTemplate<Employee> oEmps = Employee.GetAllEmps();
// #region Read SAP XML File
// SAPDataProcess oSAPDataProcess = null;//new SAPDataProcess();
// SAPInterface oSAPInterface = new SAPInterface();
// oSAPDataProcess = oSAPInterface.Process_Old();
// #endregion
// #region Prepare Life-Cycle Data
// IntigrationSetup osetup = IntigrationSetup.Get();
// DateTime salaryCutoffDate = new DateTime(SystemInformation.CurrentSysInfo.NextPayProcessDate.Year, SystemInformation.CurrentSysInfo.NextPayProcessDate.Month, osetup.CutOffDay);
// EmpLifeCycleService osvr = new EmpLifeCycleService();
// ObjectsTemplate<EmpLifeCycle> empLfs = new ObjectsTemplate<EmpLifeCycle>();
// ObjectsTemplate<EmpLifeCycle> uptotodaysData = osvr.GetNotYetProcessUptoToday();
// foreach (EmpLifeCycle item in uptotodaysData)
// empLfs.Add(item);
// foreach (EmpLifeCycle item in empLfs)
// item.Employee = oEmps.GetItem(item.EmployeeID);
// #endregion
// #region Prepare Bank Account Data
// ObjectsTemplate<EmployeeBankAccount> EmpAccs = new ObjectsTemplate<EmployeeBankAccount>();
// EmployeeBankAccountService oAccsvr = new EmployeeBankAccountService();
// ObjectsTemplate<EmployeeBankAccount> AccuptotodaysData = oAccsvr.GetNotYetProcessUptoToday();
// foreach (EmployeeBankAccount item in AccuptotodaysData)
// EmpAccs.Add(item);
// #endregion
// #region Save All Data
// TransactionContext tc = null;
// if (oSAPDataProcess.ErrorList.Count == 0)
// {
// // if process contains error save the error list and return.
// // else do the following
// //Save employee data and update ID of New Joining in life cycle object
// try
// {
// tc = TransactionContext.Begin(true);
// this.SaveEmployees(tc, oSAPDataProcess);
// // Adding Employee Life Cycle and Bank Account
// empLfs.AddRange(oSAPDataProcess.SAPEmpLifeCycles);
// EmpAccs.AddRange(oSAPDataProcess.EmpBankAccounts);
// osvr.Save(empLfs, salaryCutoffDate, tc);
// oAccsvr.Save(tc, EmpAccs, salaryCutoffDate);
// // Server Delete Will Go here
// oSAPInterface.DeleteXMLFilesFromFTP();
// oSAPDataProcess.SourceFileName = oSAPInterface.GetXMLFileNamesFromLocal();
// oSAPInterface.MoveXMLFilesToBackup();
// tc.End();
// }
// catch (Exception ex)
// {
// tc.HandleError();
// oSAPInterface.DeleteXMLFilesFromLocal();
// SAPDataProcessDetail oDetail = new SAPDataProcessDetail();
// oDetail.Description = "Could not Save Data due to system error:\n" + ex.Message;
// oSAPDataProcess.ProcessStatus = EnumSAPProcessStatus.Error;
// oSAPDataProcess.ErrorList.Add(oDetail);
// }
// }
// else
// {
// oSAPInterface.DeleteXMLFilesFromLocal();
// }
// //this.Save(oSAPDataProcess);
// this.SAPStatusSave(oSAPDataProcess);
// #endregion
// //oSAPInterface.SendMail(oSAPDataProcess);
// }
// catch (Exception ex)
// {
// throw new ServiceException(ex.Message);
// }
//}
public void Process(bool IsSystemInfoNeeded)
{
SAPInterface oSAPInterface = new SAPInterface();
EmpLifeCycleService osvr = new EmpLifeCycleService();
EmployeeBankAccountService oAccsvr = new EmployeeBankAccountService();
IntigrationSetup osetup = IntigrationSetup.Get();
DateTime salaryCutoffDate = DateTime.MinValue;
ObjectsTemplate<Employee> oEmps = Employee.GetAllEmps();
#region Get System Information
if (IsSystemInfoNeeded)
{
ConfigurationManager manager = new ConfigurationManager();
manager.LoadConfiguration();
PayrollType ptype = PayrollType.Get(ID.FromInteger(1));
User oUser = User.Get(ID.FromInteger(9));
oUser.LogInMode = EnumUserLogInMode.Normal;
oUser.LogInPayrollTypeID = ptype.ID;
User.SetCurrentUser(oUser);
SystemInformation.CurrentSysInfo = SystemInformation.Get();
}
#endregion
EffectPrevious(false);
#region Process Downloaded SAP Data
try
{
string sDataDumpError = string.Empty;
string sEmailError = string.Empty;
salaryCutoffDate = new DateTime(SystemInformation.CurrentSysInfo.NextPayProcessDate.Year, SystemInformation.CurrentSysInfo.NextPayProcessDate.Month, osetup.CutOffDay);
List<FileInfo> oFiles = oSAPInterface.GetDownloadedFileInfos();
foreach (FileInfo oFile in oFiles)
{
#region ProcessSAPFile
SAPDataProcess oSAPDataProcess = null;
oSAPDataProcess = oSAPInterface.Process(oFile);
#endregion
#region Prepare Life-Cycle Data
foreach (EmpLifeCycle item in oSAPDataProcess.SAPEmpLifeCycles)
{
item.Employee = oEmps.GetItem(item.EmployeeID);
if (item.EmployeeID != null && !item.EmployeeID.IsUnassigned && item.Employee == null)
{
item.HREmployee = (new HREmployeeService()).Get(item.EmployeeID);
item.Employee = (new EmployeeService()).Get(item.EmployeeID);
}
(new EmpLifeCycleService()).ProcessGradeSalary(item);
if (item.EmployeeGradeSalary != null)
{
item.Gradesalaries = item.EmployeeGradeSalary.process();
}
}
#endregion
#region Save All Data
TransactionContext tc = null;
if (oSAPDataProcess.ErrorList.Count == 0)
{
// if process contains error save the error list and return.
// else do the following
//Save employee data and update ID of New Joining in life cycle object
try
{
tc = TransactionContext.Begin(true);
this.SaveEmployees(tc, oSAPDataProcess);
osvr.Save(oSAPDataProcess.SAPEmpLifeCycles, salaryCutoffDate, tc);
oAccsvr.Save(tc, oSAPDataProcess.EmpBankAccounts, salaryCutoffDate);
tc.End();
}
catch (Exception ex)
{
tc.HandleError();
SAPDataProcessDetail oDetail = new SAPDataProcessDetail();
oDetail.Description = "Could not Save Data due to system error:\n" + ex.Message;
oSAPDataProcess.ProcessStatus = EnumSAPProcessStatus.Error;
oSAPDataProcess.ErrorList.Add(oDetail);
}
oSAPDataProcess.SourceFileName = oFile.Name;
this.SAPStatusSave(oSAPDataProcess);
if (oSAPDataProcess.ErrorList.Count > 0)
{
// SendMail(ref sEmailError, oSAPInterface, oSAPDataProcess);
break;
}
else
{
//Blocked for testing
oSAPInterface.DeleteFromFTP(oFile.Name);
oSAPInterface.SaveFileToBackUp(oFile.FullName);
try
{
(new SAPDataDumpService()).Save(oSAPDataProcess.SAPDataDumps);
}
catch (Exception e)
{
sDataDumpError += "Could not save to Datadump.Error:" + e.Message + ". Otherwise Everything saved Successfully.\n";
//throw new Exception("Could not save to Datadump.Error:"+e.Message+"\nOtherwise Everything saved Successfully.");
}
}
}
else
{
oSAPDataProcess.SourceFileName = oFile.Name;
this.SAPStatusSave(oSAPDataProcess);
// SendMail(ref sEmailError, oSAPInterface, oSAPDataProcess);
break;
}
#endregion
//SendMail(ref sEmailError, oSAPInterface, oSAPDataProcess);
}
//Blocked for testing
#region Delete Unread Downloaded Local Files
oSAPInterface.DeleteXMLFilesFromLocal();
#endregion
if (sEmailError != string.Empty || sDataDumpError != string.Empty)
{
throw new Exception(sDataDumpError + ((sDataDumpError != string.Empty && sDataDumpError != string.Empty) ? "\n" : string.Empty) + sEmailError);
}
}
catch (Exception ex)
{
//Blocked for testing
oSAPInterface.DeleteXMLFilesFromLocal();
throw new ServiceException(ex.Message);
}
#endregion
}
public void EffectPrevious(bool IsSystemInfoNeeded)
{
EmpLifeCycleService osvr = new EmpLifeCycleService();
EmployeeBankAccountService oAccsvr = new EmployeeBankAccountService();
IntigrationSetup osetup = null;
DateTime salaryCutoffDate = DateTime.MinValue;
ObjectsTemplate<Employee> oEmps = Employee.GetAllEmps();
#region Get System Information
if (IsSystemInfoNeeded)
{
ConfigurationManager manager = new ConfigurationManager();
manager.LoadConfiguration();
PayrollType ptype = PayrollType.Get(ID.FromInteger(1));
User oUser = User.Get(ID.FromInteger(9));
oUser.LogInMode = EnumUserLogInMode.Normal;
oUser.LogInPayrollTypeID = ptype.ID;
User.SetCurrentUser(oUser);
SystemInformation.CurrentSysInfo = SystemInformation.Get();
}
#endregion
#region Process Not Yet Processed Data
try
{
osetup = IntigrationSetup.Get();
salaryCutoffDate = new DateTime(SystemInformation.CurrentSysInfo.NextPayProcessDate.Year, SystemInformation.CurrentSysInfo.NextPayProcessDate.Month, osetup.CutOffDay);
ObjectsTemplate<EmpLifeCycle> uptotodaysEmpLifeData = osvr.GetNotYetProcessUptoToday();
ObjectsTemplate<EmployeeBankAccount> UptoTodaysAccountData = oAccsvr.GetNotYetProcessUptoToday();
foreach (EmpLifeCycle item in uptotodaysEmpLifeData)
{
item.Employee = oEmps.GetItem(item.EmployeeID);
if (item.EmployeeID != null && !item.EmployeeID.IsUnassigned && item.Employee == null)
{
item.HREmployee = (new HREmployeeService()).Get(item.EmployeeID);
item.Employee = (new EmployeeService()).Get(item.EmployeeID);
}
(new EmpLifeCycleService()).ProcessGradeSalary(item);
if (item.EmployeeGradeSalary != null)
{
item.Gradesalaries = item.EmployeeGradeSalary.process();
}
}
osvr.Save(uptotodaysEmpLifeData, salaryCutoffDate);
oAccsvr.Save(UptoTodaysAccountData, salaryCutoffDate);
}
catch (Exception excp)
{
throw new ServiceException("Exception while giving effect to previously not processed EmpLifeCycle/EmployeeBankAccount Data :" + excp.Message);
}
#endregion
}
public ID Save(SAPDataProcess oSAPDataProcess)
{
TransactionContext tc = null;
try
{
//string tableName = "SAPDataProcess";
tc = TransactionContext.Begin(true);
if (oSAPDataProcess.IsNew)
{
int id = tc.GenerateID("SAPDataProcess", "SAPDataProcessID");
base.SetObjectID(oSAPDataProcess, ID.FromInteger(id));
SAPDataProcessDA.Insert(tc, oSAPDataProcess);
}
else
{
SAPDataProcessDA.Update(tc, oSAPDataProcess);
SAPDataProcessDA.DeleteSAPDetail(tc, oSAPDataProcess.ID);
}
// tableName = "SAPDataProcessDetail";
int idSDP = tc.GenerateID("SAPDataProcessDetail", "SAPDataProcessDetailID");
foreach (SAPDataProcessDetail oSAPDProDetail in oSAPDataProcess.Details)
{
oSAPDProDetail.SAPDataProcessID = oSAPDataProcess.ID;
base.SetObjectID(oSAPDProDetail, ID.FromInteger(idSDP));
SAPDataProcessDA.Insert(tc, oSAPDProDetail);
idSDP = idSDP + 1;
}
tc.End();
return oSAPDataProcess.ID;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public ID Save(TransactionContext tc, SAPDataProcess oSAPDataProcess)
{
try
{
// string tableName = "SAPDataProcess";
if (oSAPDataProcess.IsNew)
{
int id = tc.GenerateID("SAPDataProcess", "SAPDataProcessID");
base.SetObjectID(oSAPDataProcess, ID.FromInteger(id));
SAPDataProcessDA.Insert(tc, oSAPDataProcess);
}
else
{
SAPDataProcessDA.Update(tc, oSAPDataProcess);
SAPDataProcessDA.DeleteSAPDetail(tc, oSAPDataProcess.ID);
}
// tableName = "SAPDataProcessDetail";
int idSDP = tc.GenerateID("SAPDataProcessDetail", "SAPDataProcessDetailID");
foreach (SAPDataProcessDetail oSAPDProDetail in oSAPDataProcess.Details)
{
oSAPDProDetail.SAPDataProcessID = oSAPDataProcess.ID;
base.SetObjectID(oSAPDProDetail, ID.FromInteger(idSDP));
SAPDataProcessDA.Insert(tc, oSAPDProDetail);
idSDP = idSDP + 1;
}
return oSAPDataProcess.ID;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public void SaveEmployees(TransactionContext tc, SAPDataProcess sAPDataProcess)
{
try
{
foreach (Employee oEmployee in sAPDataProcess.SAPEmployees)
{
if (oEmployee.IsNew)
{
ID oldID = oEmployee.ID;
int id = tc.GenerateID("Employee", "EmployeeID");
base.SetObjectID(oEmployee, ID.FromInteger(id));
EmployeeDA.Insert(tc,oEmployee);
if (sAPDataProcess.SAPEmpLifeCycles != null)
{
foreach (EmpLifeCycle item in sAPDataProcess.SAPEmpLifeCycles
.Where(m => m.EmployeeID == oldID))
{
item.EmployeeID = ID.FromInteger(id);
item.CategoryID = oEmployee.CategoryID;
if (item.Gradesalaries != null)
{
item.Gradesalaries.ForEach(o => o.EmployeeID = ID.FromInteger(id));
}
}
}
if (sAPDataProcess.EmpBankAccounts != null)
{
sAPDataProcess.EmpBankAccounts
.Where(n => n.EmployeeID == oldID)
.ToList()
.ForEach(n => n.EmployeeID = ID.FromInteger(id));
}
sAPDataProcess.SAPDataDumps
.Where(m => m.EmployeeID == oldID)
.ToList()
.ForEach(m => m.EmployeeID = ID.FromInteger(id));
}
else
{
EmployeeDA.Update(tc, oEmployee);
}
}
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public void Delete(ID id)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
SAPDataProcessDA.Delete(tc, id);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public DataSet GetSapDataProcessDetail(ID ID)
{
DataSet oSapDataProcessDetail = new DataSet();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
oSapDataProcessDetail = SAPDataProcessDA.GetSapDataProcessDetail(tc, ID);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return oSapDataProcessDetail;
}
public DataSet GetSapProcessDifferentErrors()
{
DataSet oSapDataProcessDetail = new DataSet();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
oSapDataProcessDetail = SAPDataProcessDA.GetSapProcessDifferentErrors(tc);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return oSapDataProcessDetail;
}
public bool GetFileReadStatus(string filename)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
return SAPDataProcessDA.GetFileReadStatus(tc, filename);
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
finally
{
if (tc != null)
tc.End();
}
}
#endregion
}
#endregion
}