EchoTex_Payroll/HRM.DA/Service/Recruitement/RecruitmentLettersService.cs
2024-10-14 10:01:49 +06:00

406 lines
15 KiB
C#

using System;
using System.Data;
using Ease.Core.Model;
using Ease.Core.DataAccess;
using Ease.Core;
using System.Collections.Generic;
using Ease.Core.Utility;
using HRM.BO;
namespace HRM.DA
{
#region RecruitmentLetters Service
public class RecruitmentLettersService : ServiceTemplate, IRecruitmentLettersService
{
public RecruitmentLettersService()
{
}
#region MapObject For RecruitmentLetters
private void MapObject(RecruitmentLetters oRecruitmentLetter, DataReader oReader)
{
base.SetObjectID(oRecruitmentLetter, (oReader.GetInt32("RecruitmentLetterID").Value));
oRecruitmentLetter.CandidateID = oReader.GetInt32("CandidateID", 0);
oRecruitmentLetter.RequisitionID = oReader.GetInt32("RequisitionID").Value;
oRecruitmentLetter.ProcessID = oReader.GetInt32("ProcessID", 0);
oRecruitmentLetter.AcceptOfferBefore =
oReader.GetDateTime("AcceptOfferBefore");
oRecruitmentLetter.IssueOfferDate =
oReader.GetDateTime("IssueOfferDate");
oRecruitmentLetter.AcceptOfferDate =
oReader.GetDateTime("AcceptOfferDate");
oRecruitmentLetter.RejectOfferDate =
oReader.GetDateTime("RejectOfferDate");
oRecruitmentLetter.RejectOfferReason = oReader.GetString("RejectOfferReason");
oRecruitmentLetter.OfferLetterCount = oReader.GetInt32("OfferLetterCount", 0);
oRecruitmentLetter.OfferCreatedBy = (oReader.GetInt32("OfferCreatedBy", 0));
oRecruitmentLetter.OfferCreatedDate =
oReader.GetDateTime("OfferCreatedDate");
oRecruitmentLetter.GradeID = oReader.GetInt32("GradeID", 0);
oRecruitmentLetter.BasicSalary = oReader.GetDouble("BasicSalary").GetValueOrDefault(0);
oRecruitmentLetter.DepartmentID = (oReader.GetInt32("DepartmentID", 0));
oRecruitmentLetter.LocationID = (oReader.GetInt32("LocationID", 0));
//oRecruitmentLetter.EmployeeID = oReader.GetID("EmployeeID").IsUnassigned ? (0) : oReader.GetID("EmployeeID");
oRecruitmentLetter.NoticePeriod = oReader.GetInt32("NoticePeriod").GetValueOrDefault(0);
oRecruitmentLetter.AppAcceptBefore =
oReader.GetDateTime("AppAcceptBefore");
oRecruitmentLetter.IssueAppLetterDate =
oReader.GetDateTime("IssueAppLetterDate");
oRecruitmentLetter.RejectAppLetterDate =
oReader.GetDateTime("RejectAppLetterDate");
oRecruitmentLetter.RejectAppLetterReason = oReader.GetString("RejectAppLetterReason");
oRecruitmentLetter.CarEligible = oReader.GetBoolean("CarEligible").GetValueOrDefault(false);
oRecruitmentLetter.AppCreatedBy = (oReader.GetInt32("AppCreatedBy", 0));
oRecruitmentLetter.AppCreatedDate =
oReader.GetDateTime("AppCreatedDate").GetValueOrDefault(DateTime.MinValue);
oRecruitmentLetter.AppLetterCount = oReader.GetInt32("AppLetterCount").GetValueOrDefault(0);
oRecruitmentLetter.JoiningLetter = oReader.GetBoolean("JoiningLetter").GetValueOrDefault(false);
oRecruitmentLetter.VendorMail = oReader.GetBoolean("VendorMail").GetValueOrDefault(false);
oRecruitmentLetter.WelcomeMail = oReader.GetBoolean("WelcomeMail").GetValueOrDefault(false);
oRecruitmentLetter.InductionRequest = oReader.GetBoolean("InductionRequest").GetValueOrDefault();
oRecruitmentLetter.Announcement = oReader.GetBoolean("Announcement").GetValueOrDefault(false);
oRecruitmentLetter.OtherLetters = oReader.GetBoolean("OtherLetters").GetValueOrDefault(false);
oRecruitmentLetter.OthersCount = oReader.GetInt32("OthersCount").GetValueOrDefault(0);
oRecruitmentLetter.OtherCreatedBy = (oReader.GetInt32("OtherCreatedBy", 0));
oRecruitmentLetter.OtherCreateddate =
oReader.GetDateTime("OtherCreateddate");
oRecruitmentLetter.JoiningBeforeDate =
oReader.GetDateTime("JoiningBeforeDate");
oRecruitmentLetter.ConfirmJoiningDate =
oReader.GetDateTime("ConfirmJoiningDate");
oRecruitmentLetter.CreatedBy = oReader.GetInt32("CreatedBy").Value;
oRecruitmentLetter.CreatedDate = oReader.GetDateTime("CreationDate").Value;
oRecruitmentLetter.ModifiedBy = oReader.GetInt32("ModifiedBy");
oRecruitmentLetter.ModifiedDate = oReader.GetDateTime("ModifiedDate");
this.SetObjectState(oRecruitmentLetter, Ease.Core.ObjectState.Saved);
}
protected override T CreateObject<T>(DataReader oReader)
{
RecruitmentLetters oRecruitmentLetter = new RecruitmentLetters();
MapObject(oRecruitmentLetter, oReader);
return oRecruitmentLetter as T;
}
protected RecruitmentLetters CreateObject(DataReader oReader)
{
RecruitmentLetters oRecruitmentLetter = new RecruitmentLetters();
MapObject(oRecruitmentLetter, oReader);
return oRecruitmentLetter;
}
#endregion
#region Service Implementation
public RecruitmentLetters Get(int id)
{
RecruitmentLetters oRecruitmentLetter = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(RecruitmentLettersDA.Get(tc, id));
if (oreader.Read())
{
oRecruitmentLetter = this.CreateObject<RecruitmentLetters>(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
}
return oRecruitmentLetter;
}
public RecruitmentLetters GetByCandidateID(int nCandidateID)
{
RecruitmentLetters oRecruitmentLetter = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(RecruitmentLettersDA.GetByCandidateID(tc, nCandidateID));
if (oreader.Read())
{
oRecruitmentLetter = this.CreateObject<RecruitmentLetters>(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
}
return oRecruitmentLetter;
}
public List<RecruitmentLetters> Get()
{
List<RecruitmentLetters> recruitmentLetters = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(RecruitmentLettersDA.Get(tc));
recruitmentLetters = this.CreateObjects<RecruitmentLetters>(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
}
return recruitmentLetters;
}
public List<RecruitmentLetters> GetbyRequisitionID(int nProcessID)
{
List<RecruitmentLetters> recruitmentLetters = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(RecruitmentLettersDA.GetbyRequisitionID(tc, nProcessID));
recruitmentLetters = this.CreateObjects<RecruitmentLetters>(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
}
return recruitmentLetters;
}
public List<RecruitmentLetters> GetByProcessID(int nProcessID)
{
List<RecruitmentLetters> recruitmentLetters = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(RecruitmentLettersDA.GetByProcessID(tc, nProcessID));
recruitmentLetters = this.CreateObjects<RecruitmentLetters>(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
}
return recruitmentLetters;
}
public int Save(RecruitmentLetters oRecruitmentLetters, int CheckValue)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
if (oRecruitmentLetters.IsNew)
{
int id = tc.GenerateID("RecruitmentLetters", "RecruitmentLetterID");
base.SetObjectID(oRecruitmentLetters, (id));
oRecruitmentLetters.OfferCreatedBy = oRecruitmentLetters.CreatedBy;
oRecruitmentLetters.OfferCreatedDate = oRecruitmentLetters.CreatedDate;
RecruitmentLettersDA.Insert(tc, oRecruitmentLetters);
}
else
{
if (CheckValue == 1)
{
oRecruitmentLetters.OfferCreatedBy = oRecruitmentLetters.CreatedBy;
oRecruitmentLetters.OfferCreatedDate = oRecruitmentLetters.CreatedDate;
}
else if (CheckValue == 2)
{
oRecruitmentLetters.AppCreatedBy = oRecruitmentLetters.CreatedBy;
oRecruitmentLetters.AppCreatedDate = oRecruitmentLetters.CreatedDate;
}
else
{
oRecruitmentLetters.OtherCreatedBy = oRecruitmentLetters.CreatedBy;
oRecruitmentLetters.OtherCreateddate = oRecruitmentLetters.CreatedDate;
}
RecruitmentLettersDA.Update(tc, oRecruitmentLetters);
}
return oRecruitmentLetters.ID;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
finally
{
tc.End();
}
}
public void Delete(int id)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
RecruitmentLettersDA.Delete(tc, id);
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
finally
{
tc.End();
}
}
public void Save(List<RecruitmentLetters> recruitmentLetters)
{
List<RecruitmentLetters> saveditems = this.GetbyRequisitionID(recruitmentLetters[0].RequisitionID);
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
if (recruitmentLetters.Count > 0)
{
foreach (RecruitmentLetters letterItem in recruitmentLetters)
{
var saveItem = saveditems.Find(x => x.RequisitionID ==
letterItem.RequisitionID && x.CandidateID == letterItem.CandidateID);
InternalRecruitment position = new InternalRecruitmentService().Get(recruitmentLetters[0].RequisitionID);
DateTime? acceptDate = recruitmentLetters[0].AcceptOfferDate;
DateTime? rejectDate = recruitmentLetters[0].RejectOfferDate;
if(acceptDate != null)
{
var status = "Offer Letter Accepted." + "Position: " + position.PositionName + " Date: " + position.PositionDate.ToString("dd-MM-yyyy");
CVDA.UpdateCandidateLastStatus(status, letterItem.CandidateID, tc);
}
else if(rejectDate != null && saveItem.RejectOfferDate != null)
{
var status = "Offer Letter Rejected." + "Position: " + position.PositionName + " Date: " + position.PositionDate.ToString("dd-MM-yyyy");
CVDA.UpdateCandidateLastStatus(status, letterItem.CandidateID, tc);
}
if (saveItem!= null)
{
letterItem.ID = saveItem.ID;
}
if (letterItem.IsNew)
{
int id = tc.GenerateID("RecruitmentLetters", "RecruitmentLetterID");
base.SetObjectID(letterItem, (id));
RecruitmentLettersDA.Insert(tc, letterItem);
}
else
{
RecruitmentLettersDA.Update(tc, letterItem);
}
}
}
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
finally
{
tc.End();
}
}
#endregion
}
#endregion
}