CEL_Payroll/Payroll.BO/HRequests/HRRequest.cs
2024-09-17 14:30:13 +06:00

2057 lines
66 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Ease.CoreV35.Caching;
using Ease.CoreV35.Model;
namespace Payroll.BO
{
[Serializable]
public class HRRequest : BasicBaseObject, IworkflowInterface
{
#region Cache Store
private static Cache _cache = new Cache(typeof(HRRequest));
#endregion
#region Constructor
public HRRequest()
{
_nEmployeeID = ID.FromInteger(0);
_sDescription = string.Empty;
_nAmount = 0;
_nTaxable = 0;
_nNonTaxable = 0;
_nTaxAmount = 0;
_sRemarks = string.Empty;
_bSubmittedOriginalPaper = false;
_eWfStatus = enumwfStatus.Passed;
_oHRRequestDetails = null;
_nLetterTypeID = ID.FromInteger(0);
_sIssuerAddress = string.Empty;
_dFromDate = DateTime.MinValue;
_dToDate = DateTime.MinValue;
_nLoanID = ID.FromInteger(0);
_sLoanName = string.Empty;
_bIsOfficial = false;
_bIsWithFamily = false;
_oHRRequestPassports = null;
_requestCompleted = false;
_Justification = "";
_sPurpose = string.Empty;
_sTypeOfProperty = string.Empty;
_sLand = string.Empty;
_ValueofProperty = 0.0;
_ExoectedDateofCompletion = DateTime.Today;
_NameofVendor = "";
_AddressofVendor = "";
_Teleohone = "";
_Dependency=string.Empty;
_DependencyAges = string.Empty;
_ExceptionReason = string.Empty;
_Vendor = string.Empty;
_CostEstimate = 0.0;
_InsuranceDate = DateTime.Today;
_ExpectedDateofRegistration = DateTime.Today;
_IsPaymentRequested = false;
_BankID = null;
_AccountNo = string.Empty;
_PaidDate = DateTime.Today;
_PaidRemarks = string.Empty;
_PaymentMode = EnumPaymentMode.BankTransfer;
_MailingAddress = string.Empty;
_LocationofProperty = string.Empty;
}
#endregion
#region IsPaymentRequested : bool
private bool _IsPaymentRequested;
public bool IsPaymentRequested
{
get { return _IsPaymentRequested; }
set { _IsPaymentRequested = value; }
}
#endregion
#region BankID : int
private ID _BankID;
public ID BankID
{
get { return _BankID; }
set { _BankID = value; }
}
#endregion
#region AccountNo : string
private string _AccountNo;
public string AccountNo
{
get { return _AccountNo; }
set { _AccountNo = value; }
}
#endregion
#region Remarks : string
private string _PaidRemarks;
public string PaidRemarks
{
get { return _PaidRemarks; }
set { _PaidRemarks = value; }
}
#endregion
#region PaidDate : DateTime
private DateTime _PaidDate;
public DateTime PaidDate
{
get { return _PaidDate; }
set { _PaidDate = value; }
}
#endregion
#region PaidDate : DateTime
private EnumPaymentMode _PaymentMode;
public EnumPaymentMode PaymentMode
{
get { return _PaymentMode; }
set { _PaymentMode = value; }
}
#endregion
#region Properties
#region ExpectedDateofRegistration : Datetime
private DateTime? _ExpectedDateofRegistration;
public DateTime? ExpectedDateofRegistration
{
get { return _ExpectedDateofRegistration; }
set
{
base.OnPropertyChange<DateTime>("ExpectedDateofRegistration", _ExpectedDateofRegistration, value);
_ExpectedDateofRegistration = value;
}
}
#endregion
#region Dependency : string
private string _Dependency;
public string Dependency
{
get { return _Dependency; }
set
{
base.OnPropertyChange<string>("Dependency", _Dependency, value);
_Dependency = value;
}
}
#endregion
#region InsuranceVendor : string
private string _Vendor;
public string InsuranceVendor
{
get { return _Vendor; }
set
{
base.OnPropertyChange<string>("InsuranceVendor", _Vendor, value);
_Vendor = value;
}
}
#endregion
#region DependencyAges : string
private string _DependencyAges;
public string DependencyAges
{
get { return _DependencyAges; }
set
{
base.OnPropertyChange<string>("DependencyAges", _DependencyAges, value);
_DependencyAges = value;
}
}
#endregion
#region ExceptionReason : string
private string _ExceptionReason;
public string ExceptionReason
{
get { return _ExceptionReason; }
set
{
base.OnPropertyChange<string>("ExceptionReason", _ExceptionReason, value);
_ExceptionReason = value;
}
}
#endregion
#region InsuranceDate : Datetime
private DateTime? _InsuranceDate;
public DateTime? InsuranceDate
{
get { return _InsuranceDate; }
set
{
base.OnPropertyChange<DateTime>("InsuranceDate", _InsuranceDate, value);
_InsuranceDate = value;
}
}
#endregion
#region CostEstimate : double
private double _CostEstimate;
public double CostEstimate
{
get { return _CostEstimate; }
set { _CostEstimate = value; }
}
#endregion
#region ValueofProperty : double
private double _ValueofProperty;
public double ValueofProperty
{
get { return _ValueofProperty; }
set { _ValueofProperty = value; }
}
#endregion
#region ExoectedDateofCompletion : Datetime
private DateTime _ExoectedDateofCompletion;
public DateTime ExoectedDateofCompletion
{
get { return _ExoectedDateofCompletion; }
set
{
base.OnPropertyChange<DateTime>("ExoectedDateofCompletion", _ExoectedDateofCompletion, value);
_ExoectedDateofCompletion = value;
}
}
#endregion
#region NameofVendor : string
private string _NameofVendor;
public string NameofVendor
{
get { return _NameofVendor; }
set
{
base.OnPropertyChange<string>("NameofVendor", _NameofVendor, value);
_NameofVendor = value;
}
}
#endregion
#region AddressofVendor : string
private string _AddressofVendor;
public string AddressofVendor
{
get { return _AddressofVendor; }
set
{
base.OnPropertyChange<string>("AddressofVendor", _AddressofVendor, value);
_AddressofVendor = value;
}
}
#endregion
#region Teleohone : string
private string _Teleohone;
public string Teleohone
{
get { return _Teleohone; }
set
{
base.OnPropertyChange<string>("Teleohone", _Teleohone, value);
_Teleohone = value;
}
}
#endregion
#region LocationofProperty : string
private string _LocationofProperty;
public string LocationofProperty
{
get { return _LocationofProperty; }
set
{
base.OnPropertyChange<string>("LocationofProperty", _LocationofProperty, value);
_LocationofProperty = value;
}
}
#endregion
#region MailingAddress : string
private string _MailingAddress;
public string MailingAddress
{
get { return _MailingAddress; }
set
{
base.OnPropertyChange<string>("MailingAddress", _MailingAddress, value);
_MailingAddress = value;
}
}
#endregion
#region Justification : string
private string _Justification;
public string Justification
{
get { return _Justification; }
set
{
base.OnPropertyChange<string>("Justification", _Justification, value);
_Justification = value;
}
}
#endregion
#region ClaimNumber : string
private string _sClaimNumber;
public string ClaimNumber
{
get { return _sClaimNumber; }
set { _sClaimNumber = value; }
}
#endregion
#region EmployeeID : ID
private ID _nEmployeeID;
public ID EmployeeID
{
get { return _nEmployeeID; }
set { _nEmployeeID = value; }
}
#endregion
#region Employee : Employee
private Employee _employee;
public Employee Employee
{
get
{
if (_employee == null && _nEmployeeID != ID.FromInteger(0))
{
//_employee = new Employee();
_employee = Employee.Get(_nEmployeeID);
}
return _employee;
}
set
{
_employee = value;
}
}
#endregion
#region Description : string
private string _sDescription;
public string Description
{
get { return _sDescription; }
set { _sDescription = value; }
}
#endregion
#region Amount : double
private double _nAmount;
public double Amount
{
get { return _nAmount; }
set { _nAmount = value; }
}
#endregion
#region Taxable : double
private double _nTaxable;
public double Taxable
{
get { return _nTaxable; }
set { _nTaxable = value; }
}
#endregion
#region NonTaxable : double
private double _nNonTaxable;
public double NonTaxable
{
get { return _nNonTaxable; }
set { _nNonTaxable = value; }
}
#endregion
#region TaxAmount : double
private double _nTaxAmount;
public double TaxAmount
{
get { return _nTaxAmount; }
set { _nTaxAmount = value; }
}
#endregion
#region Purpose : string
private string _sPurpose;
public string Purpose
{
get { return _sPurpose; }
set { _sPurpose = value; }
}
#endregion
#region TypeOfProperty : string
private string _sTypeOfProperty;
public string TypeOfProperty
{
get { return _sTypeOfProperty; }
set { _sTypeOfProperty = value; }
}
#endregion
#region Land : string
private string _sLand;
public string Land
{
get { return _sLand; }
set { _sLand = value; }
}
#endregion
#region RequestType: EnumRequestType
private EnumRequestType _eRequestType;
public EnumRequestType RequestType
{
get { return _eRequestType; }
set { _eRequestType = value; }
}
#endregion
#region Remarks : string
private string _sRemarks;
public string Remarks
{
get { return _sRemarks; }
set { _sRemarks = value; }
}
#endregion
#region EmbassyName : string
private string _embassyName;
public string EmbassyName
{
get { return _embassyName; }
set { _embassyName = value; }
}
#endregion
#region EmbassyAddress : string
private string _embassyAddress;
public string EmbassyAddress
{
get { return _embassyAddress; }
set { _embassyAddress = value; }
}
#endregion
#region CountryID : ID
public ID CountryID
{
get;
set;
}
#endregion
#region RequestDate : DateTime
private DateTime _dRequestDate;
public DateTime RequestDate
{
get { return _dRequestDate; }
set { _dRequestDate = value; }
}
#endregion
#region SubmittedOriginalPaper : bool
private bool _bSubmittedOriginalPaper;
public bool SubmittedOriginalPaper
{
get { return _bSubmittedOriginalPaper; }
set { _bSubmittedOriginalPaper = value; }
}
#endregion
#region WfStatus : enumwfStatus
private enumwfStatus _eWfStatus;
public enumwfStatus WfStatus
{
get { return _eWfStatus; }
set { _eWfStatus = value; }
}
#endregion
#region HRRequestDetails : ObjectsTemplate<HRRequestDetail>
private ObjectsTemplate<HRRequestDetail> _oHRRequestDetails;
public ObjectsTemplate<HRRequestDetail> HRRequestDetails
{
get
{
if (this.ID != null && _oHRRequestDetails == null)
{
_oHRRequestDetails = HRRequest.Service.GetHRequestDetails(this.ID);
}
return _oHRRequestDetails;
}
set { _oHRRequestDetails = value; }
}
#endregion
#region HRRequestPassports : ObjectsTemplate<HRRequestPassports>
private ObjectsTemplate<HRRequestPassport> _oHRRequestPassports;
public ObjectsTemplate<HRRequestPassport> HRRequestPassports
{
get
{
if (this.ID != null && !this.ID.IsUnassigned && _oHRRequestPassports == null)
{
_oHRRequestPassports = HRRequest.Service.GetHRRequestPassports(this.ID);
}
return _oHRRequestPassports;
}
set { _oHRRequestPassports = value; }
}
#endregion
#region HRRequestLoan : ObjectsTemplate<HRRequestLoan>
private ObjectsTemplate<HRRequestLoan> _oHRRequestLoans;
public ObjectsTemplate<HRRequestLoan> HRRequestLoans
{
get
{
if (this.ID != null && _oHRRequestLoans == null)
{
_oHRRequestLoans = HRRequest.Service.GetHRRequestLoans(this.ID);
}
return _oHRRequestLoans;
}
set { _oHRRequestLoans = value; }
}
#endregion
#region HRRequestLoanDetail : ObjectsTemplate<HRRequestLoan>
private ObjectsTemplate<HRRequestLoanDetail> _oHRRequestLoanDetails;
public ObjectsTemplate<HRRequestLoanDetail> HRRequestLoanDetails
{
get
{
if (this.ID != null && _oHRRequestLoanDetails == null)
{
_oHRRequestLoanDetails = HRRequest.Service.GetHRRequestLoanDetails(this.ID);
}
return _oHRRequestLoanDetails;
}
set { _oHRRequestLoanDetails = value; }
}
#endregion
#region HRRequestLoanDetail : ObjectsTemplate<HRRequestLoan>
private ObjectsTemplate<HRRequestPaymentSchedule> _oHRRequestPaymentSchedules;
public ObjectsTemplate<HRRequestPaymentSchedule> HRRequestPaymentSchedules
{
get
{
if (this.ID != null && _oHRRequestPaymentSchedules == null)
{
_oHRRequestPaymentSchedules = HRRequest.Service.GetHRRequestPaymentSchedules(this.ID);
}
return _oHRRequestPaymentSchedules;
}
set { _oHRRequestPaymentSchedules = value; }
}
#endregion
#region LetterTypeID : ID
private ID _nLetterTypeID;
public ID LetterTypeID
{
get { return _nLetterTypeID; }
set { _nLetterTypeID = value; }
}
#endregion
#region IssuerAddress : string
private string _sIssuerAddress;
public string IssuerAddress
{
get { return _sIssuerAddress; }
set { _sIssuerAddress = value; }
}
#endregion
#region LoanID : ID
private ID _nLoanID;
public ID LoanID
{
get { return _nLoanID; }
set { _nLoanID = value; }
}
#endregion
#region LoanName : string
private string _sLoanName;
public string LoanName
{
get { return _sLoanName; }
set { _sLoanName = value; }
}
#endregion
#region FromDate : DateTime
private DateTime _dFromDate;
public DateTime FromDate
{
get { return _dFromDate; }
set { _dFromDate = value; }
}
#endregion
#region ToDate : DateTime
private DateTime _dToDate;
public DateTime ToDate
{
get { return _dToDate; }
set { _dToDate = value; }
}
#endregion
#region IsOfficial : bool
private bool _bIsOfficial;
public bool IsOfficial
{
get { return _bIsOfficial; }
set { _bIsOfficial = value; }
}
#endregion
#region IsWithFamily : bool
private bool _bIsWithFamily;
public bool IsWithFamily
{
get { return _bIsWithFamily; }
set { _bIsWithFamily = value; }
}
#endregion
#region RequestCompleted : bool
private bool _requestCompleted;
public bool RequestComplted
{
get { return _requestCompleted; }
set { _requestCompleted = value; }
}
#endregion
#region Service Factory
internal static IHRRequestService Service
{
get { return Services.Factory.CreateService<IHRRequestService>(typeof(IHRRequestService)); }
}
#endregion
#endregion
#region Functions
public static HRRequest Get(ID id)
{
HRRequest oreq = new HRRequest();
oreq = HRRequest.Service.Get(id);
return oreq;
}
private static DataTable CreateLFAMedInsranceTable(ObjectsTemplate<HRRequest> oReqests)
{
List<Bank> oBanks = Bank.Get(EnumStatus.Active).ToList();
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestID");
dt.Columns.Add("ClaimNo");
dt.Columns.Add("Description");
dt.Columns.Add("Amount");
dt.Columns.Add("ReqType");
dt.Columns.Add("WfStatus");
dt.Columns.Add("ReqDate");
dt.Columns.Add("PaymentStatus");
foreach (HRRequest item in oReqests)
{
DataRow dr = dt.NewRow();
dr["HRRequestID"] = item.ID.Integer;
dr["ClaimNo"] = item.ClaimNumber;
dr["Description"] = item.Description;
dr["Amount"] = item.Amount;
dr["ReqType"] = item.RequestType.ToString();
dr["ReqDate"] = item.RequestDate.ToString("dd MMM yyyy");
if (item.AccountNo != null && item.AccountNo.Trim() != string.Empty)
{
string chkOrAccNo = item.PaymentMode==EnumPaymentMode.CashPayment ? "Account No:":"Check No:";
string chkDateOrPaymentDate = item.PaymentMode==EnumPaymentMode.CashPayment ? "Payment Date:":"Check Date:";
Bank oBank = oBanks.Where(o=>o.ID == item.BankID).SingleOrDefault();
dr["PaymentStatus"] = String.Format(@"Payment Completed:Payment Mode:{0},
{1}{2}:{3},{4}:{5},Remarks:{6}",item.PaymentMode.ToString(),(oBank!=null?("Bank:"+oBank.Name+","):""),chkOrAccNo,item.AccountNo,chkDateOrPaymentDate,item.PaidDate.ToString("dd MMM yyyy"),item.PaidRemarks);
}
else
{
dr["PaymentStatus"] = "Payment Not Done";
}
switch (item.WfStatus)
{
case enumwfStatus.Not_yet_Initiated:
case enumwfStatus.Received:
case enumwfStatus.Passed:
dr["WfStatus"] = "In Process";
break;
case enumwfStatus.Approve:
case enumwfStatus.End:
dr["WfStatus"] = "Approved";
break;
case enumwfStatus.Revert:
dr["WfStatus"] = "Reverted";
break;
default:
dr["WfStatus"] = item.WfStatus.ToString().Replace('_', ' ');
break;
}
if (item.RequestComplted)
dr["WfStatus"] = "Terminated";
dt.Rows.Add(dr);
}
return dt;
}
private static DataTable CreateActiveLFAMedInsranceTable(ObjectsTemplate<HRRequest> oReqests)
{
List<Bank> oBanks = Bank.Get(EnumStatus.Active).ToList();
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestID");
dt.Columns.Add("ClaimNo");
dt.Columns.Add("Description");
dt.Columns.Add("Amount");
dt.Columns.Add("ReqType");
dt.Columns.Add("WfStatus");
dt.Columns.Add("ReqDate");
dt.Columns.Add("RequestComplted");
dt.Columns.Add("PaymentStatus");
foreach (HRRequest item in oReqests)
{
if (item.RequestComplted == true) continue;
DataRow dr = dt.NewRow();
dr["HRRequestID"] = item.ID.Integer;
dr["ClaimNo"] = item.ClaimNumber;
dr["Description"] = item.Description;
dr["Amount"] = item.Amount;
dr["ReqType"] = item.RequestType.ToString();
dr["ReqDate"] = item.RequestDate.ToString("dd MMM yyyy");
if (item.AccountNo != null && item.AccountNo.Trim() != string.Empty)
{
string chkOrAccNo = item.PaymentMode == EnumPaymentMode.CashPayment ? "Account No" : "Check No";
string chkDateOrPaymentDate = item.PaymentMode == EnumPaymentMode.CashPayment ? "Payment Date" : "Check Date";
Bank oBank = oBanks.Where(o => o.ID == item.BankID).SingleOrDefault();
dr["PaymentStatus"] = String.Format(@"Payment Completed:Payment Mode:{0},
{1}{2}:{3},{4}:{5},Remarks:{6}", item.PaymentMode.ToString(), (oBank != null ? ("Bank:" + oBank.Name + ",") : ""), chkOrAccNo, item.AccountNo, chkDateOrPaymentDate, item.PaidDate.ToString("dd MMM yyyy"), item.PaidRemarks);
}
else
{
dr["PaymentStatus"] = "Payment Not Done";
}
switch (item.WfStatus)
{
case enumwfStatus.Not_yet_Initiated:
case enumwfStatus.Received:
case enumwfStatus.Passed:
dr["WfStatus"] = "Sent to Approver";
break;
case enumwfStatus.Approve:
case enumwfStatus.End:
dr["WfStatus"] = "Sent to HR";
break;
case enumwfStatus.Revert:
dr["WfStatus"] = "Reverted";
break;
case enumwfStatus.Decline:
dr["WfStatus"] = "Decline";
break;
default:
dr["WfStatus"] = item.WfStatus.ToString().Replace('_', ' ');
break;
}
if (item.WfStatus == enumwfStatus.End && item.IsPaymentRequested ==true )
{
if (item.AccountNo != null && item.AccountNo.Trim() != string.Empty)
{
string chkOrAccNo = item.PaymentMode == EnumPaymentMode.CashPayment ? "Account No" : "Check No";
string chkDateOrPaymentDate = item.PaymentMode == EnumPaymentMode.CashPayment ? "Payment Date" : "Check Date";
Bank oBank = oBanks.Where(o => o.ID == item.BankID).SingleOrDefault();
dr["WfStatus"] = String.Format(@"Payment Completed:Payment Mode:{0},
{1}{2}:{3},{4}:{5},Remarks:{6}", item.PaymentMode.ToString(), (oBank != null ? ("Bank:" + oBank.Name + ",") : ""), chkOrAccNo, item.AccountNo, chkDateOrPaymentDate, item.PaidDate.ToString("dd MMM yyyy"), item.PaidRemarks);
}
else
{
dr["WfStatus"] = "HR sends payment Request";
}
}
dt.Rows.Add(dr);
}
return dt;
}
private static DataTable CreateLetterClaimTable(ObjectsTemplate<HRRequest> oReqests)
{
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestID");
dt.Columns.Add("ClaimNo");
dt.Columns.Add("IssuerAddress");
dt.Columns.Add("RequestDate");
dt.Columns.Add("LetterType");
dt.Columns.Add("IsOfficial");
dt.Columns.Add("IsWithFamily");
dt.Columns.Add("FromDate");
dt.Columns.Add("ToDate");
dt.Columns.Add("WfStatus");
foreach (HRRequest item in oReqests)
{
DataRow dr = dt.NewRow();
dr["HRRequestID"] = item.ID.Integer;
dr["ClaimNo"] = item.ClaimNumber;
dr["IssuerAddress"] = item.IssuerAddress == null ? " -" : item.IssuerAddress;
dr["RequestDate"] = item.RequestDate.ToString("dd MMM yyyy");
dr["LetterType"] = ((EnumLetterType)item.LetterTypeID.Integer).ToString().Replace("_", " ");
dr["FromDate"] = item.FromDate == DateTime.MinValue ? " -" : item.FromDate.ToString();
dr["ToDate"] = item.ToDate == DateTime.MinValue ? " -" : item.ToDate.ToString();
dr["IsOfficial"] = item.IsOfficial;
dr["IsWithFamily"] = item.IsWithFamily;
switch (item.WfStatus)
{
case enumwfStatus.Not_yet_Initiated:
case enumwfStatus.Received:
case enumwfStatus.Passed:
case enumwfStatus.Revert:
case enumwfStatus.Decline:
dr["WfStatus"] = "In Process";
break;
case enumwfStatus.Approve:
case enumwfStatus.End:
dr["WfStatus"] = "Approved";
break;
default:
dr["WfStatus"] = item.WfStatus.ToString();
break;
}
if (item.RequestComplted)
dr["WfStatus"] = "Terminated";
dt.Rows.Add(dr);
}
return dt;
}
private static DataTable CreateActiveLetterClaimTable(ObjectsTemplate<HRRequest> oReqests)
{
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestID");
dt.Columns.Add("ClaimNo");
dt.Columns.Add("IssuerAddress");
dt.Columns.Add("RequestDate");
dt.Columns.Add("LetterType");
dt.Columns.Add("IsOfficial");
dt.Columns.Add("IsWithFamily");
dt.Columns.Add("FromDate");
dt.Columns.Add("ToDate");
dt.Columns.Add("WfStatus");
foreach (HRRequest item in oReqests)
{
if (item.RequestComplted == true) continue;
DataRow dr = dt.NewRow();
dr["HRRequestID"] = item.ID.Integer;
dr["ClaimNo"] = item.ClaimNumber;
dr["IssuerAddress"] = item.IssuerAddress == null ? " -" : item.IssuerAddress;
dr["RequestDate"] = item.RequestDate.ToString("dd MMM yyyy");
//dr["LetterType"] = ((EnumLetterType)item.LetterTypeID.Integer).ToString().Replace("_", " ");
dr["LetterType"] = ((EnumLetterType)item.LetterTypeID.Integer).ToString().Replace("_", " ");
dr["FromDate"] = item.FromDate == DateTime.MinValue ? " -" : item.FromDate.ToString();
dr["ToDate"] = item.ToDate == DateTime.MinValue ? " -" : item.ToDate.ToString();
dr["IsOfficial"] = item.IsOfficial;
dr["IsWithFamily"] = item.IsWithFamily;
switch (item.WfStatus)
{
case enumwfStatus.Not_yet_Initiated:
case enumwfStatus.Received:
case enumwfStatus.Passed:
case enumwfStatus.Revert:
case enumwfStatus.Decline:
dr["WfStatus"] = "In Process";
break;
case enumwfStatus.Approve:
case enumwfStatus.End:
dr["WfStatus"] = "Approved";
break;
default:
dr["WfStatus"] = item.WfStatus.ToString();
break;
}
dt.Rows.Add(dr);
}
return dt;
}
private static DataTable CreateActiveLoanTable(ObjectsTemplate<HRRequest> oReqests)
{
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestID");
dt.Columns.Add("Description");
dt.Columns.Add("LoanName");
dt.Columns.Add("Amount");
dt.Columns.Add("WfStatus");
dt.Columns.Add("RequestDate");
dt.Columns.Add("LoanID");
foreach (HRRequest item in oReqests)
{
Loan oloan = Loan.Get(item.LoanID);
if (item.RequestComplted) continue;
DataRow dr = dt.NewRow();
dr["HRRequestID"] = item.ID.Integer;
dr["LoanName"] = oloan.Name;
dr["Description"] = item.Description;
dr["Amount"] = item.Amount;
dr["RequestDate"] = item.RequestDate.ToString("dd MMM yyyy");
if (item.WfStatus != enumwfStatus.End)
{
WFMovementNext otran = WFMovementTran.GetReceivedWFNext(item.SetupID.Integer, item.ID.Integer);
if (otran != null)
{
Employee emp = Employee.Get(otran.EmployeeID);
string sAttText = emp.Name + ", " + emp.DescriptionText;
switch (item.WfStatus)
{
case enumwfStatus.Not_yet_Initiated:
case enumwfStatus.Received:
dr["WfStatus"] = "Pending at " + sAttText;//"Sent to Approver";
break;
case enumwfStatus.Passed:
dr["WfStatus"] = "Pending at " + sAttText;// "Sent to Approver";
break;
case enumwfStatus.Revert:
dr["WfStatus"] = "Reverted by " + sAttText;//"Reverted";
break;
case enumwfStatus.Decline:
dr["WfStatus"] = "Rejected by " + sAttText;//"Declined";
break;
case enumwfStatus.Approve:
case enumwfStatus.End:
dr["WfStatus"] = "Approved and Sent to HR";
break;
default:
dr["WfStatus"] = item.WfStatus.ToString().Replace('_', ' ');
break;
}
}
}
else
{
dr["WfStatus"]="Approved and sent to HR";
}
dr["LoanID"] = item.LoanID.Integer;
dt.Rows.Add(dr);
}
return dt;
}
private static DataTable CreateLoanTable(ObjectsTemplate<HRRequest> oReqests)
{
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestID");
dt.Columns.Add("Description");
dt.Columns.Add("LoanName");
dt.Columns.Add("Amount");
dt.Columns.Add("WfStatus");
dt.Columns.Add("RequestDate");
foreach (HRRequest item in oReqests)
{
Loan oloan = Loan.Get(item.LoanID);
DataRow dr = dt.NewRow();
dr["HRRequestID"] = item.ID.Integer;
dr["LoanName"] = oloan.Name;
dr["Description"] = item.Description;
dr["Amount"] = item.Amount;
dr["RequestDate"] = item.RequestDate.ToString("dd MMM yyyy");
switch (item.WfStatus)
{
case enumwfStatus.Not_yet_Initiated:
case enumwfStatus.Received:
dr["WfStatus"] = "Sent to Approver";
break;
case enumwfStatus.Passed:
dr["WfStatus"] = "Sent to Approver";
break;
case enumwfStatus.Revert:
dr["WfStatus"] = "Reverted";
break;
case enumwfStatus.Decline:
dr["WfStatus"] = "Declined";
break;
case enumwfStatus.Approve:
case enumwfStatus.End:
if (item.RequestComplted == true)
dr["WfStatus"] = "Completed";
else dr["WfStatus"] = "Sent to HR";
break;
default:
dr["WfStatus"] = item.WfStatus.ToString();
break;
}
if (item.RequestComplted)
dr["WfStatus"] = "Terminated";
dt.Rows.Add(dr);
}
return dt;
}
private static DataTable CreateLFAMedInshDetailTable(ObjectsTemplate<HRRequestDetail> oReqestDetails, ID reqID)
{
HRRequest oHRRequest = HRRequest.Get(reqID);
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestDetailID");
dt.Columns.Add("HRRequestID");
dt.Columns.Add("EmployeeID");
dt.Columns.Add("Remarks");
dt.Columns.Add("RemarksDate");
dt.Columns.Add("IsRead");
dt.Columns.Add("IsHR");
dt.Columns.Add("Sender");
dt.Columns.Add("ReadStatus");
dt.Columns.Add("Courier");
foreach (HRRequestDetail item in oReqestDetails)
{
DataRow dr = dt.NewRow();
dr["HRRequestDetailID"] = item.ID.Integer;
dr["HRRequestID"] = item.HRRequestID.Integer;
dr["EmployeeID"] = item.EmployeeID.Integer;
dr["Remarks"] = item.Remarks;
dr["RemarksDate"] = item.RemarksDate.ToString("dd MMM yyyy");
dr["IsRead"] = item.IsRead;
dr["IsHR"] = item.IsHR;
if (item.EmployeeID.Integer == oHRRequest.EmployeeID.Integer)
{
dr["Sender"] = "Me";
}
else
{
dr["Sender"] = item.EmployeeID.Integer == 0 ? "" : Employee.Get(item.EmployeeID).Name;
}
if (item.IsRead)
{
dr["ReadStatus"] = "Read";
}
else
{
dr["ReadStatus"] = "Not Read";
}
if (item.CourierID.Integer != 0)
{
dr["Courier"] = "Courier_Name:" + item.CourierName +
(string.IsNullOrEmpty(item.TokenNumber) ? " " : (" Token_Number:" + item.TokenNumber)) +
" Courier_Date:" + item.CourierDate.ToString("dd MMM yyyy");
}
dt.Rows.Add(dr);
}
return dt;
}
private static DataTable CreateDetailTable(ObjectsTemplate<HRRequestDetail> oReqestDetails, ID reqID)
{
HRRequest oHRRequest = new HRRequest();
oHRRequest = HRRequest.Get(reqID);
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestDetailID");
dt.Columns.Add("HRRequestID");
dt.Columns.Add("EmployeeID");
dt.Columns.Add("Remarks");
dt.Columns.Add("RemarksDate");
dt.Columns.Add("IsRead");
dt.Columns.Add("IsHR");
dt.Columns.Add("Sender");
dt.Columns.Add("ReadStatus");
dt.Columns.Add("Courier");
foreach (HRRequestDetail item in oReqestDetails)
{
DataRow dr = dt.NewRow();
dr["HRRequestDetailID"] = item.ID.Integer;
dr["HRRequestID"] = item.HRRequestID.Integer;
dr["EmployeeID"] = item.EmployeeID.Integer;
dr["Remarks"] = item.Remarks;
dr["RemarksDate"] = item.RemarksDate.ToString("dd MMM yyyy");
dr["IsRead"] = item.IsRead;
dr["IsHR"] = item.IsHR;
if (item.EmployeeID.Integer == oHRRequest.EmployeeID.Integer)
{
dr["Sender"] = "Me";
}
else
{
dr["Sender"] = item.EmployeeID.Integer == 0 ? "HR" : Employee.Get(item.EmployeeID).Name;
}
if (item.IsRead)
{
dr["ReadStatus"] = "Read";
}
else
{
dr["ReadStatus"] = "Not Read";
}
if (item.CourierID.Integer != 0)
dr["Courier"] = "Courier_Name:" + Vendor.Get(item.CourierID).Name + " Token_Number:" + item.TokenNumber + " Courier_Date:" + item.CourierDate.ToString("dd MMM yyyy");
dt.Rows.Add(dr);
}
return dt;
}
private static DataTable CreateLetterDetailTable(ObjectsTemplate<HRRequestDetail> oReqestDetails, ID reqID)
{
HRRequest oHRRequest = HRRequest.Get(reqID);
DataTable dt = new DataTable();
dt.Columns.Add("HRRequestDetailID");
dt.Columns.Add("HRRequestID");
dt.Columns.Add("EmployeeID");
dt.Columns.Add("Sender");
dt.Columns.Add("Remarks");
dt.Columns.Add("RemarksDate");
dt.Columns.Add("ReadStatus");
dt.Columns.Add("IsRead");
dt.Columns.Add("IsHR");
dt.Columns.Add("Courier");
foreach (HRRequestDetail item in oReqestDetails)
{
DataRow dr = dt.NewRow();
dr["HRRequestDetailID"] = item.ID.Integer;
dr["HRRequestID"] = item.HRRequestID.Integer;
dr["EmployeeID"] = item.EmployeeID.Integer;
dr["Remarks"] = item.Remarks;
dr["RemarksDate"] = item.RemarksDate.ToString("dd MMM yyyy");
dr["IsRead"] = item.IsRead;
dr["IsHR"] = item.IsHR;
if (item.EmployeeID.Integer == oHRRequest.EmployeeID.Integer)
{
dr["Sender"] = "Me";
}
else
{
dr["Sender"] = item.EmployeeID.Integer == 0 ? "HR" : "HR: " + Employee.Get(item.EmployeeID).Name;
}
if (item.IsRead)
{
dr["ReadStatus"] = "Read";
}
else
{
dr["ReadStatus"] = "Not Read";
}
if (item.CourierID.Integer != 0)
dr["Courier"] = "Courier_Name:" + Vendor.Get(item.CourierID).Name + " Token_Number:" + item.TokenNumber + " Courier_Date:" + item.CourierDate.ToString("dd MMM yyyy");
dt.Rows.Add(dr);
}
return dt;
}
public static DataTable GetLFAMedicalClaimByEmpID(ID id)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetLFAMedicalClaimByEmpID(id);
return CreateActiveLFAMedInsranceTable(oReqests);
}
public static DataTable GetPaymentRequestedItems()
{
DataTable oReqests = HRRequest.Service.GetPaymentRequestedItems();
return oReqests;
}
public static DataTable GetPaymentHistoryItemsByDateRange(DateTime dateTime, DateTime dateTime_2)
{
return null;
//throw new NotImplementedException();
}
public static ObjectsTemplate<HRRequest> GetLFAMedicalClaimObjectsByEmpID(ID id)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetLFAMedicalClaimByEmpID(id);
return oReqests;
}
public static DataTable GetLFAMedicalClaim(ID id, DateTime dateTime1, DateTime dateTime2)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetLFAMedicalClaim(id, dateTime1, dateTime2);
return CreateLFAMedInsranceTable(oReqests);
}
public static DataTable GetInsuranceClaimByEmpID(ID id)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetInsuranceClaimByEmpID(id);
return CreateActiveLFAMedInsranceTable(oReqests);
}
public static DataTable GetInsuranceClaim(ID id, DateTime dateTime1, DateTime dateTime2)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetInsuranceClaim(id, dateTime1, dateTime2);
return CreateLFAMedInsranceTable(oReqests);
}
public static DataTable GetLetterClaimByEmpID(ID id)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetLetterClaimByEmpID(id);
return CreateActiveLetterClaimTable(oReqests);
}
public static DataTable GetLetterClaim(ID id, DateTime dateTime1, DateTime dateTime2)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetLetterClaim(id, dateTime1, dateTime2);
return CreateLetterClaimTable(oReqests);
}
public static DataTable GetLFAMedInshDetailByReqID(ID reqID)
{
ObjectsTemplate<HRRequestDetail> oReqestDetails = new ObjectsTemplate<HRRequestDetail>();
oReqestDetails = HRRequest.Service.GetHRequestDetails(reqID);
return CreateLFAMedInshDetailTable(oReqestDetails, reqID);
}
public static DataTable GetLetterDetailByReqID(ID reqID)
{
ObjectsTemplate<HRRequestDetail> oReqestDetails = new ObjectsTemplate<HRRequestDetail>();
oReqestDetails = HRRequest.Service.GetHRequestDetails(reqID);
return CreateLetterDetailTable(oReqestDetails, reqID);
}
public static DataTable GetLoanApplicationByEmpID(ID empID)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetLoanApplicationByEmpID(empID);
return CreateActiveLoanTable(oReqests);
}
public static DataTable GetLoanApplicationByDateRange(ID empID, DateTime startDate, DateTime endDate)
{
ObjectsTemplate<HRRequest> oReqests = new ObjectsTemplate<HRRequest>();
oReqests = HRRequest.Service.GetLoanApplicationByDateRange(empID, startDate, endDate);
return CreateLoanTable(oReqests);
}
public static DataTable GetWebDetailByReqID(ID reqID)
{
ObjectsTemplate<HRRequestDetail> oReqestDetails = new ObjectsTemplate<HRRequestDetail>();
oReqestDetails = HRRequest.Service.GetHRequestDetails(reqID);
return CreateDetailTable(oReqestDetails, reqID);
}
public static ObjectsTemplate<HRRequestDetail> GetDetailByReqID(ID reqID)
{
return HRRequest.Service.GetHRequestDetails(reqID);
}
public static void ReadHRRequestDetail(ID HRRequestDetailID)
{
HRRequest.Service.ReadHRRequestDetail(HRRequestDetailID);
}
public static ObjectsTemplate<HRRequest> GetLoanCalimbyScheduleDate(DateTime fromdate, DateTime todate)
{
return HRRequest.Service.GetLoanCalimbyScheduleDate( fromdate, todate);
}
public static ObjectsTemplate<HRRequest> GetHRRequetByWFStatus(enumwfStatus status)
{
return HRRequest.Service.GetHRRequetByWFStatus(status);
}
public ID Save()
{
this.SetAuditTrailProperties();
return HRRequest.Service.Save(this);
}
public void SavePaymentSchedules(ObjectsTemplate<HRRequestPaymentSchedule> oItems)
{
HRRequest.Service.SavePaymentSchedules(oItems);
}
public void SaveLoan()
{
this.SetAuditTrailProperties();
HRRequest.Service.SaveLoan(this);
}
public void SaveLoanandPaymentDetail()
{
this.SetAuditTrailProperties();
HRRequest.Service.SaveLoanandPaymentDetail(this);
}
public void SaveLetterRequest()
{
this.SetAuditTrailProperties();
HRRequest.Service.SaveLetterRequest(this);
}
public static void SaveDetail(HRRequestDetail oHrrequestDetails)
{
HRRequest.Service.SaveDetail(oHrrequestDetails);
}
public static void UpdatePaymentRequest(HRRequest hRRequest)
{
HRRequest.Service.UpdatePaymentRequest(hRRequest);
}
public static void UpdateLoanShedulePaymentRequest(HRRequestPaymentSchedule LoanPaymentSchedule)
{
HRRequest.Service.UpdateLoanShedulePaymentRequest(LoanPaymentSchedule);
}
public static void UpdateLoanSheduleLoanIssueID(HRRequestPaymentSchedule LoanPaymentSchedule)
{
HRRequest.Service.UpdateLoanSheduleLoanIssueID(LoanPaymentSchedule);
}
#endregion
#region IworkflowInterface Members
/// <summary>
/// this property is used for work flow, which return leave description
/// </summary>
///
public int GetStatusbyWf(enumwfStatus wfstatus)
{
return (int)this.WfStatus;
}
public string WFDesciption()
{
return this.ObjectDescription;
}
public string ObjectDescription
{
get
{
string str = "";
switch (RequestType)
{
case EnumRequestType.LTA:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for LTA Claim on " + this.RequestDate.ToString("dd MMM yyyy")
+ ". ";
break;
case EnumRequestType.Medical:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for Medical Leave Claim on " + this.RequestDate.ToString("dd MMM yyyy")
+ ". ";
break;
case EnumRequestType.Insurance:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for Insurance claim on " + this.RequestDate.ToString("dd MMM yyyy")
+ ". ";
break;
case EnumRequestType.Letter:
EnumLetterType letterType = (EnumLetterType)LetterTypeID.Integer;
switch (letterType)
{
case EnumLetterType.Visa_Application:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for applied for Visa " + " on " + RequestDate.ToString("dd MMM yyyy") + ".";
break;
case EnumLetterType.Salary_Certificate:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for Salary Certificate " + " on " + RequestDate.ToString("dd MMM yyyy") + ".";
break;
case EnumLetterType.University_Admission:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for University Admission Letter " + " on " + RequestDate.ToString("dd MMM yyyy") + ".";
break;
case EnumLetterType.Credit_Card:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for Credit Card letter " + " on " + RequestDate.ToString("dd MMM yyyy") + ".";
break;
case EnumLetterType.Experience_Certificate:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for Experience Certificate " + " on " + RequestDate.ToString("dd MMM yyyy") + ".";
break;
case EnumLetterType.Travel_NOC_Business:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for Travel NOC Business Insurance of Visa " + " on " + RequestDate.ToString("dd MMM yyyy") + ".";
break;
case EnumLetterType.Travel_NOC_Personal_with_Family:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for Travel NOC Personal with Family Insurance of Visa " + " on " + RequestDate.ToString("dd MMM yyyy") + ".";
break;
case EnumLetterType.Travel_NOC_Personal_without_Family:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for Travel NOC Personal Without Family Insurance of Visa " + " on " + RequestDate.ToString("dd MMM yyyy") + ".";
break;
default:
str = " Employee (" + this.Employee.EmployeeNo + ")" + this.Employee.Name
+ " applied for " + this.Description + " on " +
this.RequestDate.ToString("dd MMM yyyy");
break;
}
break;
case EnumRequestType.Loan:
str = " " + this.Employee.Name + ", " + this.Employee.DescriptionText
+ " has applied for "+Payroll.BO.Loan.Get(this.LoanID).Name+ " on " + this.RequestDate.ToString("dd MMM yyyy")
+ ". ";
break;
default:
break;
}
return str;
}
}
/// <summary>
/// this property is used for work flow, it's a constant value
/// </summary>
public ID SetupID
{
get
{
switch (this.RequestType)
{
case EnumRequestType.LTA:
case EnumRequestType.Medical:
case EnumRequestType.Insurance:
case EnumRequestType.Letter:
return ID.FromInteger(3);
case EnumRequestType.Loan:
return ID.FromInteger(3);
default:
return ID.FromInteger(2);
}
}
}
/// <summary>
/// this property is used for work flow, which return leave entry id
/// </summary>
public ID ObjectID
{
get { return this.ID; }
}
#endregion
}
#region Child Objects
[Serializable]
public class HRRequestDetail : BasicBaseObject
{
#region Cache Store
private static Cache _cache = new Cache(typeof(HRRequestDetail));
#endregion
#region Constructor
public HRRequestDetail()
{
_nHRRequestID = ID.FromInteger(0);
_nEmployeeID = ID.FromInteger(0);
_sRemarks = string.Empty;
_nCourierID = ID.FromInteger(0);
_dCourierDate = DateTime.Today;
_dRemarksDate = DateTime.Today;
_bIsHR = false;
_bIsRead = false;
}
#endregion
#region Properties
#region HRRequestID : ID
private ID _nHRRequestID;
public ID HRRequestID
{
get { return _nHRRequestID; }
set { _nHRRequestID = value; }
}
#endregion
#region EmployeeID : ID
private ID _nEmployeeID;
public ID EmployeeID
{
get { return _nEmployeeID; }
set { _nEmployeeID = value; }
}
#endregion
#region CourierID : ID
private ID _nCourierID;
public ID CourierID
{
get { return _nCourierID; }
set { _nCourierID = value; }
}
#endregion
#region CourierName : string
private string _nCourierName;
public string CourierName
{
get { return _nCourierName; }
set { _nCourierName = value; }
}
#endregion
#region TokenNumber : string
private string _sTokenNumber;
public string TokenNumber
{
get { return _sTokenNumber; }
set { _sTokenNumber = value; }
}
#endregion
#region Remarks : string
private string _sRemarks;
public string Remarks
{
get { return _sRemarks; }
set { _sRemarks = value; }
}
#endregion
#region CourierDate : DateTime
private DateTime _dCourierDate;
public DateTime CourierDate
{
get { return _dCourierDate; }
set { _dCourierDate = value; }
}
#endregion
#region RemarksDate : DateTime
private DateTime _dRemarksDate;
public DateTime RemarksDate
{
get { return _dRemarksDate; }
set { _dRemarksDate = value; }
}
#endregion
#region IsRead : bool
private bool _bIsRead;
public bool IsRead
{
get { return _bIsRead; }
set { _bIsRead = value; }
}
#endregion
#region IsHR : bool
private bool _bIsHR;
public bool IsHR
{
get { return _bIsHR; }
set { _bIsHR = value; }
}
#endregion
#endregion
}
[Serializable]
public class HRRequestPassport : BasicBaseObject
{
#region Cache Store
private static Cache _cache = new Cache(typeof(HRRequestPassport));
#endregion
#region Constructor
public HRRequestPassport()
{
_nHRRequestID = ID.FromInteger(0);
_sName = string.Empty;
_sRelation = string.Empty;
_sPassportNo = string.Empty;
}
#endregion
#region Properties
#region HRRequestID : ID
private ID _nHRRequestID;
public ID HRRequestID
{
get { return _nHRRequestID; }
set { _nHRRequestID = value; }
}
#endregion
#region ObjectID : ID
private ID _objectID;
public ID ObjectID
{
get { return _objectID; }
set { _objectID = value; }
}
#endregion
#region Name : string
private string _sName;
public string Name
{
get { return _sName; }
set { _sName = value; }
}
#endregion
#region Relation : string
private string _sRelation;
public string Relation
{
get { return _sRelation; }
set { _sRelation = value; }
}
#endregion
#region PassportNo : string
private string _sPassportNo;
public string PassportNo
{
get { return _sPassportNo; }
set { _sPassportNo = value; }
}
#endregion
#endregion
}
[Serializable]
public class HRRequestLoan : BasicBaseObject
{
#region Cache Store
private static Cache _cache = new Cache(typeof(HRRequestLoan));
#endregion
#region Constructor
public HRRequestLoan()
{
_nHRRequestID = ID.FromInteger(0);
_sName = string.Empty;
_sCode = string.Empty;
}
#endregion
#region Properties
#region HRRequestID : ID
private ID _nHRRequestID;
public ID HRRequestID
{
get { return _nHRRequestID; }
set { _nHRRequestID = value; }
}
#endregion
#region Name : string
private string _sName;
public string Name
{
get { return _sName; }
set { _sName = value; }
}
#endregion
#region Code : string
private string _sCode;
public string Code
{
get { return _sCode; }
set { _sCode = value; }
}
#endregion
#endregion
}
[Serializable]
public class HRRequestLoanDetail : BasicBaseObject
{
#region Cache Store
private static Cache _cache = new Cache(typeof(HRRequestLoanDetail));
#endregion
#region Constructor
public HRRequestLoanDetail()
{
_nHRRequestID = ID.FromInteger(0);
_sDescription = string.Empty;
_sDescriptionValue = string.Empty;
_SerialNo = 0;
}
#endregion
#region Properties
#region HRRequestID : ID
private ID _nHRRequestID;
public ID HRRequestID
{
get { return _nHRRequestID; }
set { _nHRRequestID = value; }
}
#endregion
#region SerialNo : int
private int _SerialNo;
public int SerialNo
{
get { return _SerialNo; }
set { _SerialNo = value; }
}
#endregion
#region Description : string
private string _sDescription;
public string Description
{
get { return _sDescription; }
set { _sDescription = value; }
}
#endregion
#region DescriptionValue : string
private string _sDescriptionValue;
public string DescriptionValue
{
get { return _sDescriptionValue; }
set { _sDescriptionValue = value; }
}
#endregion
#endregion
}
[Serializable]
public class HRRequestPaymentSchedule : BasicBaseObject
{
#region Cache Store
private static Cache _cache = new Cache(typeof(HRRequestPaymentSchedule));
#endregion
#region Constructor
public HRRequestPaymentSchedule()
{
_nHRRequestID = ID.FromInteger(0);
_PaymentDescription = string.Empty;
_PaymentDate = DateTime.Today;
_Amount = 0.0;
_IsPaymentRequested = false;
_BankID = null;
_AccountNo = string.Empty;
_PaidDate = DateTime.Today;
_Remarks = string.Empty;
_PaymentMode = EnumPaymentMode.BankTransfer;
_loanIssueID = null;
}
#endregion
#region Properties
#region IsPaymentRequested : bool
private bool _IsPaymentRequested;
public bool IsPaymentRequested
{
get { return _IsPaymentRequested; }
set { _IsPaymentRequested = value; }
}
#endregion
#region BankID : int
private ID _BankID;
public ID BankID
{
get { return _BankID; }
set { _BankID = value; }
}
#endregion
#region AccountNo : string
private string _AccountNo;
public string AccountNo
{
get { return _AccountNo; }
set { _AccountNo = value; }
}
#endregion
#region Remarks : string
private string _Remarks;
public string Remarks
{
get { return _Remarks; }
set { _Remarks = value; }
}
#endregion
#region HRRequestID : ID
private ID _nHRRequestID;
public ID HRRequestID
{
get { return _nHRRequestID; }
set { _nHRRequestID = value; }
}
#endregion
#region PaymentDescription : string
private string _PaymentDescription;
public string PaymentDescription
{
get { return _PaymentDescription; }
set { _PaymentDescription = value; }
}
#endregion
#region PaymentDate : DateTime
private DateTime _PaymentDate;
public DateTime PaymentDate
{
get { return _PaymentDate; }
set { _PaymentDate = value; }
}
#endregion
#region FormatedDate : string
private string _FormatedDate;
public string FormatedDate
{
get { return _FormatedDate = this.PaymentDate.ToString("dd MMM yyyy"); }
//set { _PaymentDescription = value; }
}
#endregion
#region Amount : double
private double _Amount;
public double Amount
{
get { return _Amount; }
set { _Amount = value; }
}
#endregion
#region PaidDate : DateTime
private DateTime _PaidDate;
public DateTime PaidDate
{
get { return _PaidDate; }
set { _PaidDate = value; }
}
#endregion
#region PaidDate : DateTime
private EnumPaymentMode _PaymentMode;
public EnumPaymentMode PaymentMode
{
get { return _PaymentMode; }
set { _PaymentMode = value; }
}
#endregion
#region Loan Issue ID : Loan IssueID
private ID _loanIssueID;
public ID LoanIssueID
{
get { return _loanIssueID ; }
set { _loanIssueID = value; }
}
#endregion
#endregion
}
#endregion
#region IHRRequest Service
public interface IHRRequestService
{
HRRequest Get(ID id);
ID Save(HRRequest hRRequest);
void SavePaymentSchedules(ObjectsTemplate<HRRequestPaymentSchedule> oItems);
void SaveLetterRequest(HRRequest hRRequest);
void SaveLoan(HRRequest hRRequest);
void SaveLoanandPaymentDetail(HRRequest hRRequest);
ObjectsTemplate<HRRequest> GetLFAMedicalClaimByEmpID(ID id);
ObjectsTemplate<HRRequest> GetLFAMedicalClaim(ID id, DateTime dateTime1, DateTime dateTime2);
ObjectsTemplate<HRRequest> GetInsuranceClaimByEmpID(ID id);
ObjectsTemplate<HRRequest> GetInsuranceClaim(ID id, DateTime dateTime1, DateTime dateTime2);
ObjectsTemplate<HRRequest> GetLetterClaimByEmpID(ID id);
ObjectsTemplate<HRRequest> GetLetterClaim(ID id, DateTime dateTime1, DateTime dateTime2);
ObjectsTemplate<HRRequestDetail> GetHRequestDetails(ID id);
DataTable GetInsuranceDetailByReqID(int hRrequstId);
void SaveDetail(HRRequestDetail oHrrequestDetails);
void ReadHRRequestDetail(ID HRRequestDetailID);
ObjectsTemplate<HRRequest> GetHRRequetByWFStatus(enumwfStatus status);
ObjectsTemplate<HRRequestPassport> GetHRRequestPassports(ID iD);
ObjectsTemplate<HRRequestLoan> GetHRRequestLoans(ID iD);
ObjectsTemplate<HRRequestLoanDetail> GetHRRequestLoanDetails(ID iD);
ObjectsTemplate<HRRequestPaymentSchedule> GetHRRequestPaymentSchedules(ID iD);
ObjectsTemplate<HRRequest> GetLoanApplicationByEmpID(ID empID);
ObjectsTemplate<HRRequest> GetLoanApplicationByDateRange(ID empID, DateTime startDate, DateTime endDate);
void UpdatePaymentRequest(HRRequest hRRequest);
void UpdateLoanShedulePaymentRequest(HRRequestPaymentSchedule LoanPaymentSchedule);
void UpdateLoanSheduleLoanIssueID(HRRequestPaymentSchedule LoanPaymentSchedule);
DataTable GetPaymentRequestedItems();
ObjectsTemplate<HRRequest> GetLoanCalimbyScheduleDate(DateTime fromdate, DateTime todate);
}
#endregion
}