EchoTex_Payroll/HRM.DA/Service/Fund/MemberInfo/FinalSettlementService.cs

467 lines
18 KiB
C#
Raw Normal View History

2024-10-14 10:01:49 +06:00
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;
using HRM.DA;
namespace HRM.DA.Fund
{
[Serializable]
public class FinalSettlementService : ServiceTemplate,IFinalSettlementService
{
public FinalSettlementService()
{
}
#region Private methods
private void MapObject(FinalSettlement oFinalSettlement, DataReader oReader)
{
base.SetObjectID(oFinalSettlement, oReader.GetInt32("FinalSettlementID").Value);
//BusinessObject.Factory.SetID(oFinalSettlement, new ID(oReader.Getint("FinalSettlementID")));
oFinalSettlement.MemberID = oReader.GetInt32("MemberID").Value;
oFinalSettlement.EmpCode = oReader.GetString("EmpCode");
oFinalSettlement.SettlementDate = oReader.GetDateTime("SettlementDate").Value;
oFinalSettlement.TotalPayment = oReader.GetDecimal("TotalPayment").Value;
oFinalSettlement.PaymentMode = oReader.GetString("PaymentMode");
oFinalSettlement.CreatedDate = oReader.GetDateTime("CreatedDate").Value;
oFinalSettlement.CreatedBy = oReader.GetInt32("CreatedBy").Value;
oFinalSettlement.ModifiedDate = oReader.GetDateTime("ModifiedDate") != null
? oReader.GetDateTime("ModifiedDate").Value
: DateTime.MinValue; //oReader.GetDateTime("ModifiedDate");
oFinalSettlement.ModifiedBy = oReader.GetInt32("ModifiedBy").Value != null
? oReader.GetInt32("ModifiedBy").Value
: (0); // oReader.GetInt32("ModifiedBy");
oFinalSettlement.GLTranID = oReader.GetInt32("GLTranID").Value;
oFinalSettlement.LastAudCPF = oReader.GetDecimal("LastAudCPF").GetValueOrDefault();
oFinalSettlement.LastAudEPF = oReader.GetDecimal("LastAudEPF").GetValueOrDefault();
oFinalSettlement.LastAudCPFInterest = oReader.GetDecimal("LastAudCPFInterest").GetValueOrDefault();
oFinalSettlement.LastAudEPFInterest = oReader.GetDecimal("LastAudEPFInterest").GetValueOrDefault();
oFinalSettlement.LastAudCurrentEPFInterest =
oReader.GetDecimal("LastAudCurrentEPFInterest").GetValueOrDefault();
oFinalSettlement.LastAudCurrentCPFInterest =
oReader.GetDecimal("LastAudCurrentCPFInterest").GetValueOrDefault();
oFinalSettlement.CurrYearEPF = oReader.GetDecimal("CurrYearEPF").GetValueOrDefault();
oFinalSettlement.CurrYearCPF = oReader.GetDecimal("CurrYearCPF").GetValueOrDefault();
oFinalSettlement.CurrYearEPFInterest = oReader.GetDecimal("CurrYearEPFInterest").GetValueOrDefault();
oFinalSettlement.CurrYearCPFInterest = oReader.GetDecimal("CurrYearCPFInterest").GetValueOrDefault();
oFinalSettlement.CurrYearInterestPercent =
oReader.GetDecimal("CurrYearInterestPercent").GetValueOrDefault();
base.SetObjectState(oFinalSettlement, ObjectState.Saved);
//BusinessObject.Factory.SetObjectState(oFinalSettlement, ObjectState.Saved);
}
private FinalSettlement CreateObject(DataReader oReader)
{
FinalSettlement oFinalSettlement = new FinalSettlement();
MapObject(oFinalSettlement, oReader);
return oFinalSettlement;
}
private List<FinalSettlement> CreateObjects(IDataReader oReader)
{
List<FinalSettlement> oFinalSettlements = new List<FinalSettlement>();
DataReader oreader = new DataReader(oReader);
while (oReader.Read())
{
FinalSettlement oItem = CreateObject(oreader);
oFinalSettlements.Add(oItem);
}
return oFinalSettlements;
}
#endregion Private methods
#region Service implementation
protected override T CreateObject<T>(DataReader dataReader)
{
FinalSettlement oFinalSettlement = new FinalSettlement();
MapObject(oFinalSettlement, dataReader);
return oFinalSettlement as T;
}
public FinalSettlement Get(int id)
{
FinalSettlement oFinalSettlement = new FinalSettlement();
#region Cache Header
oFinalSettlement = new FinalSettlement();
if (oFinalSettlement != null)
return oFinalSettlement;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(FinalSettlementDA.Get(tc, id));
if (dr.Read())
{
oFinalSettlement = this.CreateObject<FinalSettlement>(dr);
}
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException("Failed to GetFinalSettlement", e);
#endregion
}
#region Cache Footer
#endregion
return oFinalSettlement;
}
public List<FinalSettlement> Get()
{
List<FinalSettlement> oFinalSettlements = new List<FinalSettlement>();
//#region Cache Header
//oFinalSettlements = (List<FinalSettlement>)_cache["Get"];
//if (oFinalSettlements != null)
// return oFinalSettlements;
//#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dataReader = new DataReader(FinalSettlementDA.Get(tc));
while (dataReader.Read())
{
FinalSettlement item = new FinalSettlement();
item = this.CreateObject<FinalSettlement>(dataReader);
oFinalSettlements.Add(item);
}
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException("Failed to GetFinalSettlement", e);
#endregion
}
#region Cache Footer
#endregion
return oFinalSettlements;
}
public List<FinalSettlement> Get(string sSql)
{
List<FinalSettlement> oFinalSettlements = new List<FinalSettlement>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dataReader = new DataReader(FinalSettlementDA.Get(tc, sSql));
while (dataReader.Read())
{
FinalSettlement item = this.CreateObject<FinalSettlement>(dataReader);
oFinalSettlements.Add(item);
}
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException("Failed to GetFinalSettlement", e);
#endregion
}
return oFinalSettlements;
}
public void Save(FinalSettlement oFinalSettlement)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
if (oFinalSettlement.IsNew)
{
oFinalSettlement.CreatedBy = oFinalSettlement.CreatedBy;
oFinalSettlement.CreatedDate = DateTime.Now;
int id = tc.GenerateID("FinalSettlement", "FinalSettlementID");
base.SetObjectID(oFinalSettlement, (id));
FinalSettlementDA.Insert(tc, oFinalSettlement);
}
else
{
oFinalSettlement.ModifiedBy = oFinalSettlement.ModifiedBy;
oFinalSettlement.ModifiedDate = DateTime.Now;
FinalSettlementDA.Update(tc, oFinalSettlement);
}
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException("Failed to GetFinalSettlement", e);
#endregion
}
}
internal void Save(TransactionContext tc, FinalSettlement oFinalSettlement)
{
try
{
if (oFinalSettlement.IsNew)
{
oFinalSettlement.CreatedBy = oFinalSettlement.CreatedBy;
oFinalSettlement.CreatedDate = DateTime.Now;
int id = tc.GenerateID("FinalSettlement", "FinalSettlementID");
base.SetObjectID(oFinalSettlement, (id));
FinalSettlementDA.Insert(tc, oFinalSettlement);
}
else
{
oFinalSettlement.ModifiedBy = oFinalSettlement.ModifiedBy;
oFinalSettlement.ModifiedDate = DateTime.Now;
FinalSettlementDA.Update(tc, oFinalSettlement);
}
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException("Failed to Insert Final settlement: " + e.Message);
#endregion
}
}
public List<FinalSettlementClerance> GetClearanceNotifications(int regEmpId)
{
List<FinalSettlementClerance> oFinalSettlementClearance = new List<FinalSettlementClerance>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(FinalSettlementDA.GetClearanceNotifications(tc, regEmpId));
while (oreader.Read())
{
FinalSettlementClerance oFileSettlement = new FinalSettlementClerance();
oFileSettlement.EmployeeId = oreader.GetInt32("EMPLOYEEID").Value;
oFileSettlement.EmployeeNo = oreader.GetString("EmployeeNo");
oFileSettlement.EmployeeName = oreader.GetString("EmployeeName");
oFileSettlement.ClearanceDate = oreader.GetDateTime("ClearanceDate",DateTime.MinValue);
oFileSettlement.SendDate = oreader.GetDateTime("SentDate", DateTime.MinValue);
oFileSettlement.SettlementClearanceStatus = (EnumSettlementClearanceStatus)oreader.GetInt32("SettlementClearanceStatus").GetValueOrDefault();
oFileSettlement.ClearanceStatus = ((EnumSettlementClearanceStatus)oreader.GetInt32("SettlementClearanceStatus").GetValueOrDefault()).ToString();
oFileSettlement.FsHeadName = oreader.GetString("Name", null);
oFinalSettlementClearance.Add(oFileSettlement);
}
oreader.Close();
}
catch (Exception ex)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(ex);
throw new ServiceException("Failed to Get IRNotifications: " + ex.Message, ex);
#endregion
}
return oFinalSettlementClearance;
}
//public void Insert(FinalSettlement finalSettlement, Member member, List<MembersTransactionDetails> memberTransactionDetails, List<Loan> loanCollection, List<LoanLog> loanLogCollection, GLTran glTran, GLTran newglTran)
//{
// TransactionContext tc = null;
// try
// {
// MemberService memberService = new MemberService();
// MembersTransactionDetailsService memberTransactionService = new MembersTransactionDetailsService();
// LoanService loanService = new LoanService();
// EaseFAS.Service.GLTranService glTranService = new EaseFAS.Service.GLTranService();
// tc = TransactionContext.Begin(true);
// this.Insert(tc, finalSettlement);
// memberService.UpdateSettlement(tc,member);
// memberTransactionService.SaveFinalSettlement(tc, memberTransactionDetails);
// int logCounter = 0;
// foreach (Loan loan in loanCollection)
// {
// loanService.SaveEarlySettlement(tc, loan, loanLogCollection[logCounter]);
// logCounter++;
// }
// Ease.Core.DataAccess.TransactionContext coretc = Ease.Core.DataAccess.TransactionContext.SetConnection(tc.Connection, tc.Transaction);
// GLTrans otrans = new GLTrans();
// otrans.Add(glTran);
// otrans.Add(newglTran);
// glTranService.Insert(coretc, otrans);
// //memberTransactionService.UpdateMemberBalance(tc, memberTransactionDetails,otrans[0].VoucherNo);
// FinalSettlementDA.UpdateGLTranID(tc, finalSettlement.ID, otrans[0].ID);
// tc.End();
// }
// catch (ServiceException e)
// {
// if (tc != null)
// tc.HandleError();
// ExceptionLog.Write(e);
// throw new ServiceException(e.Message, e);
// }
//}
//public void Insert(FinalSettlement finalSettlement, Member member, List<MembersTransactionDetails> memberTransactionDetails, List<Loan> loanCollection, List<LoanLog> loanLogCollection, GLTran glTran)
//{
// TransactionContext tc = null;
// try
// {
// MemberService memberService = new MemberService();
// MembersTransactionDetailsService memberTransactionService = new MembersTransactionDetailsService();
// LoanService loanService = new LoanService();
// EaseFAS.Service.GLTranService glTranService = new EaseFAS.Service.GLTranService();
// tc = TransactionContext.Begin(true);
// this.Insert(tc, finalSettlement);
// memberService.UpdateSettlement(tc, member);
// memberTransactionService.SaveFinalSettlement(tc, memberTransactionDetails);
// int logCounter = 0;
// foreach (Loan loan in loanCollection)
// {
// loanService.SaveEarlySettlement(tc, loan, loanLogCollection[logCounter]);
// logCounter++;
// }
// Ease.Core.DataAccess.TransactionContext coretc = Ease.Core.DataAccess.TransactionContext.SetConnection(tc.Connection, tc.Transaction);
// GLTrans otrans = new GLTrans();
// otrans.Add(glTran);
// glTranService.Insert(coretc, otrans);
// //memberTransactionService.UpdateMemberBalance(tc, memberTransactionDetails,otrans[0].VoucherNo);
// FinalSettlementDA.UpdateGLTranID(tc, finalSettlement.ID, otrans[0].ID);
// tc.End();
// }
// catch (ServiceException e)
// {
// if (tc != null)
// tc.HandleError();
// ExceptionLog.Write(e);
// throw new ServiceException(e.Message, e);
// }
//}
//public void DeleteSettlement(int settlementID, Member _member, List<Loan> _loanCollection, GLTran _glTran, List<MembersTransactionDetails> _details)
//{
// TransactionContext tc = null;
// EaseFAS.Service.GLTranService glTranService = new EaseFAS.Service.GLTranService();
// LoanService loanService = new LoanService();
// MemberService memberService = new MemberService();
// MembersTransactionDetailsService memberTransactionService = new MembersTransactionDetailsService();
// try
// {
// tc = TransactionContext.Begin(true);
// Ease.Core.DataAccess.TransactionContext coretc = Ease.Core.DataAccess.TransactionContext.SetConnection(tc.Connection, tc.Transaction);
// GLTrans otrans = new GLTrans();
// otrans.Add(_glTran);
// glTranService.Delete(coretc, _glTran.ID);
// //foreach(Loan loan in _loanCollection)
// //{
// // loanService.Delete(tc,loan);
// //}
// memberService.UpdateSettlement(tc,_member);
// memberTransactionService.DeleteMemberTran(tc, _details);
// FinalSettlementDA.Delete(tc,settlementID);
// tc.End();
// }
// catch (Exception e)
// {
// #region Handle Exception
// if (tc != null)
// tc.HandleError();
// ExceptionLog.Write(e);
// throw new ServiceException("Failed to Delete MembersTransactionDetails", e);
// #endregion
// }
//}
//public DataTable GetCPFContributionData()
//{
// DataTable dCpFContris = new DataTable();
// #region Cache Header
// dCpFContris = (DataTable)_cache["GetCPFContributionData"];
// if (dCpFContris != null)
// return dCpFContris;
// #endregion
// TransactionContext tc = null;
// try
// {
// tc = TransactionContext.Begin();
// dCpFContris = FinalSettlementDA.GetCPFContributionData(tc);
// tc.End();
// }
// catch (Exception e)
// {
// #region Handle Exception
// if (tc != null)
// tc.HandleError();
// ExceptionLog.Write(e);
// throw new ServiceException("Failed to CPFContribution", e);
// #endregion
// }
// #region Cache Footer
// #endregion
// return dCpFContris;
//}
#endregion Service implementation
}
}