EchoTex_Payroll/HRM.UI/Controllers/Ess-Fund/EssFundController.cs

1659 lines
80 KiB
C#
Raw Normal View History

2024-10-14 10:01:49 +06:00
using HRM.BO;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Data;
using System;
using HRM.Report;
using Ease.Core.DataAccess;
using Microsoft.Reporting.NETCore;
using Microsoft.Extensions.Options;
using HRM.BO.Configuration;
namespace HRM.UI.Controllers.Ess_Fund
{
[Route("api/EssFund")]
[ApiController]
public class EssFundController : ControllerBase
{
private readonly IMemberService _memberService;
private readonly IMembersTransactionDetailsService _membersTransactionDetailsService;
private readonly IOptions<FundInfo> _fundInfo;
public EssFundController(IMemberService memberService,
IMembersTransactionDetailsService membersTransactionDetailsService,
IOptions<FundInfo> fundInfo)
{
_memberService = memberService;
_membersTransactionDetailsService = membersTransactionDetailsService;
_fundInfo = fundInfo;
}
#region Commented Out Fund-related Codes
//[HttpGet("getPFDepositFlow/{ID}")]
//public ActionResult getPFDepositFlow(int id)
//{
// PFDepositFlow item = new PFDepositFlow();
// try
// {
// item = _pFDepositFlowService.Get(id);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(item);
//}
//[HttpGet("getLoanApplication")]
//public ActionResult getLoanApplication()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// LoanApplication item = new LoanApplication();
// try
// {
// item = _loanApplicationService.Get(currentUser.MemberID);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(item);
//}
//// Salary Monthly
//[HttpGet("getSalaryMonthlyByEmpId")]
//public ActionResult GetSalaryMonthlyByEmpId()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// double empBasicSalary = 0.0;
// try
// {
// empBasicSalary = _employeeService.GetEmpBasicSalary((int)currentUser.EmployeeID);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(empBasicSalary);
//}
//[HttpGet("getLoanAppById/{LoanAppId}")]
//public ActionResult GetLoanAppById(int LoanAppId)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// LoanApplication item = new LoanApplication();
// try
// {
// item = _loanApplicationService.GetLoanAppById(LoanAppId);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(item);
//}
//[HttpGet("getLoansById/{LoanID}")]
//public ActionResult GetLoanById(int LoanID)
//{
// List<FmLoan> loans = new List<FmLoan>();
// try
// {
// loans = _fmLoanService.Get(LoanID, true);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(loans);
//}
//[HttpGet("getLoanAppEligibility")]
//public ActionResult GetLoanAppEligibility()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// int unpaidPayDateCount = 0;
// try
// {
// unpaidPayDateCount = _fmLoanService.GetLoanAppEligibility(currentUser.MemberID);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(unpaidPayDateCount);
//}
//[HttpGet("getScheduleByLoanID/{LoanID}")]
//public ActionResult GetScheduleByLoanID(int LoanID)
//{
// DataTable oLoanScheduleDataTable = new DataTable();
// try
// {
// oLoanScheduleDataTable = _loanApplicationService.GetLoanScheduleByLoanID(LoanID);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(oLoanScheduleDataTable);
//}
//[HttpGet("getLoanApps")]
//public ActionResult GetLoanApps()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// //Member LoanHr = _memberService.Get(_fundEss.Value.LoanHrUser);
// //Member Trustee = _memberService.Get(_fundEss.Value.LoanTrustee);
// //Member SecondTrustee = _memberService.Get(_fundEss.Value.LoanSecondTrustee);
// DataTable oLoanAppsDataTable = new DataTable();
// DataTable oLoanScheduleDataTable = new DataTable();
// try
// {
// oLoanAppsDataTable = _loanApplicationService.GetLoanApps(currentUser.MemberID);
// oLoanAppsDataTable.Columns.Add("SettleStatusString", typeof(string));
// oLoanAppsDataTable.Columns.Add("loanApplicationCount", typeof(int));
// oLoanAppsDataTable.Columns.Add("DepositStatus", typeof(string));
// int pendingLoanCount = 0;
// foreach (DataRow row in oLoanAppsDataTable.Rows)
// {
// row["loanStatus"] = (row["loanStatus"].ToString() == "loanapp") ? "On Approval" : "Approved and Issued";
// //For LoanApplication table, type=1; for Loan table, type=2
// if ((Int64)row["loanType"] == 2)
// {
// oLoanScheduleDataTable = _loanApplicationService.GetLoanScheduleByLoanID((int)row["loanAppID"]);
// int unpaidPayDateCount = 0;
// foreach (DataRow dr in oLoanScheduleDataTable.Rows)
// {
// if (dr["PayDate"] == DBNull.Value) //.ToString() == string.Empty
// {
// unpaidPayDateCount++;
// }
// }
// row["loanStatus"] = (unpaidPayDateCount > 0) ? "Approved and Deposited" : "Loan Fully Paid";
// row["DepositStatus"] = "Yes";
// var x = row["loanStatus"].ToString();
// if (row["SettleStatus"] != DBNull.Value && row["SettleStatus"] != null)
// {
// //EnumLoanSettleStatus settleStatus = (EnumLoanSettleStatus)(short)row["SettleStatus"];
// row["SettleStatusString"] = Enum.GetName(typeof(EnumLoanSettleStatus), ((EnumLoanSettleStatus?)(short)row["SettleStatus"]).Value);
// }
// else
// {
// row["SettleStatusString"] = Enum.GetName(typeof(EnumLoanSettleStatus), EnumLoanSettleStatus.None);
// }
// }
// else
// {
// row["settleStatus"] = 0;
// row["SettleStatusString"] = Enum.GetName(typeof(EnumLoanSettleStatus), EnumLoanSettleStatus.None);
// if (row["isRejected"] != DBNull.Value && (Int16)row["isRejected"] != 0)
// {
// if (row["isHrApproved"] != DBNull.Value && row["isApproved"] != DBNull.Value && row["isSecondApproved"] != DBNull.Value)
// {
// row["loanStatus"] = "Rejected (Trustee-2)";
// row["DepositStatus"] = "No";
// }
// else if (row["isHrApproved"] != DBNull.Value && row["isApproved"] != DBNull.Value && row["isSecondApproved"] == DBNull.Value)
// {
// row["loanStatus"] = "Rejected (Trustee-1) ";
// row["DepositStatus"] = "No";
// }
// else if (row["isHrApproved"] != DBNull.Value && row["isApproved"] == DBNull.Value && row["isSecondApproved"] != DBNull.Value)
// {
// row["loanStatus"] = "Rejected (Trustee-1)";
// row["DepositStatus"] = "No";
// }
// else if (row["isHrApproved"] != DBNull.Value && row["isApproved"] == DBNull.Value && row["isSecondApproved"] == DBNull.Value)
// {
// row["loanStatus"] = "Rejected (HR Admin) ";
// row["DepositStatus"] = "No";
// }
// }
// else
// {
// if (row["isHrApproved"] == DBNull.Value
// && row["isApproved"] == DBNull.Value
// && row["isSecondApproved"] == DBNull.Value)
// {
// row["loanStatus"] = "On Approval (HR)";
// row["DepositStatus"] = "No";
// }
// else if (row["isHrApproved"] != DBNull.Value && row["isApproved"] == DBNull.Value && row["isSecondApproved"] == DBNull.Value)
// {
// row["loanStatus"] = "On Approval (Trustee-1)";
// row["DepositStatus"] = "No";
// }
// else if ((row["isHrApproved"] != DBNull.Value && row["isApproved"] != DBNull.Value && row["isSecondApproved"] == DBNull.Value) ||
// (row["isHrApproved"] != DBNull.Value && row["isApproved"] == DBNull.Value && row["isSecondApproved"] != DBNull.Value))
// {
// row["loanStatus"] = "On Approval (Trustee-2)";
// row["DepositStatus"] = "No";
// }
// else if (row["isHrApproved"] != DBNull.Value && row["isApproved"] != DBNull.Value
// && row["isSecondApproved"] != DBNull.Value && row["isDeposited"] == DBNull.Value)
// {
// row["loanStatus"] = "All Approved (Bank transaction pending)";
// row["DepositStatus"] = "No";
// }
// else if (row["isHrApproved"] != DBNull.Value && row["isApproved"] != DBNull.Value
// && row["isSecondApproved"] != DBNull.Value && row["isDeposited"] != DBNull.Value)
// {
// row["DepositStatus"] = "Yes";
// if (Convert.ToDateTime(row["isDeposited"]).Day >= 11 && Convert.ToDateTime(row["isDeposited"]).Day <= 15)
// {
// row["loanStatus"] = "Bank transaction between 11th-15th";
// }
// else if (Convert.ToDateTime(row["isDeposited"]).Day >= 25 && Convert.ToDateTime(row["isDeposited"]).Day <= 30)
// {
// row["loanStatus"] = "Bank transaction between 25th-30th";
// }
// }
// pendingLoanCount++;
// }
// }
// row["loanApplicationCount"] = pendingLoanCount; //Used for enabling or disabling Loan Apply button by checking, if any Loan application is pending
// }
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(oLoanAppsDataTable);
//}
//[HttpGet("getPFWithdrawalGrid/{memberId}")]
//public ActionResult GetPFWithdrawalGrid(int memberId)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// Member omember = new Member();
// if (memberId == -1)
// {
// omember = _memberService.Get(currentUser.MemberID);
// }
// else
// {
// omember = _memberService.Get(memberId);
// }
// //DateTime memDate = (DateTime)omember.MembershipDate;
// TimeSpan timeDifference = DateTime.Now - omember.DOJ;
// int membershipDuration = (int)timeDifference.TotalDays;
// List<string> staticDescriptions = new List<string>{"A. Audited Closing Balance",
// "B. Contribution During the Year",
// "C. PF Loan Outstanding Balance",
// "D. Total Amount",
// "E. Transfer to Lapses & forfeiture A/C",
// "F. Net Amount Payable"};
// double[] epfContributionArr = new double[6];
// double[] cpfContributionArr = new double[6];
// double[] total = new double[6];
// DataRow odrInfo = null;
// DataTable oPFWithdrawalGrid = new DataTable();
// oPFWithdrawalGrid.Columns.Add("Description", typeof(string));
// oPFWithdrawalGrid.Columns.Add("epfContribution", typeof(string));
// oPFWithdrawalGrid.Columns.Add("cpfContribution", typeof(string));
// oPFWithdrawalGrid.Columns.Add("total", typeof(string));
// oPFWithdrawalGrid.Columns.Add("IsRequestPending", typeof(bool));
// try
// {
// PFWithdrawalRequest pFWithdrawalRequest = new PFWithdrawalRequest();
// int pendingRequestCount = 0;
// pFWithdrawalRequest = _pfWithdrawalRequestService.GetByMemberID(omember.ID);
// pendingRequestCount = _pfWithdrawalRequestService.PFWithdrawalRequestCount(omember.ID);
// epfContributionArr[0] = _membersTransactionDetailsService.GetDashboardMemberAuditedOwnBalance(omember.ID);
// cpfContributionArr[0] = _membersTransactionDetailsService.GetDashboardMemberAuditedOwnBalance(omember.ID);
// total[0] = epfContributionArr[0] + cpfContributionArr[0];
// epfContributionArr[1] = _membersTransactionDetailsService.GetDashboardMemberUnAuditedOwnBalance(omember.ID);
// cpfContributionArr[1] = _membersTransactionDetailsService.GetDashboardMemberUnAuditedCompanyBalance(omember.ID);
// total[1] = epfContributionArr[1] + cpfContributionArr[1];
// total[2] = _fmLoanService.GetLoanOustandingAmount(omember.ID);
// for (int i = 0; i < 6; i++)
// {
// odrInfo = oPFWithdrawalGrid.NewRow();
// odrInfo["Description"] = staticDescriptions[i];
// if (i <= 1)
// {
// odrInfo["epfContribution"] = epfContributionArr[i].ToString("N2");
// odrInfo["cpfContribution"] = cpfContributionArr[i].ToString("N2");
// odrInfo["total"] = total[i].ToString("N2");
// if (pFWithdrawalRequest != null)
// {
// odrInfo["IsRequestPending"] = (pendingRequestCount > 0 || pFWithdrawalRequest.Status != EnumPFWithdrawalStatus.Confirmed) ? true : false;
// }
// }
// else
// {
// odrInfo["epfContribution"] = " ";
// odrInfo["cpfContribution"] = " ";
// switch (i)
// {
// case 2:
// odrInfo["total"] = total[2].ToString("N2");
// break;
// case 3:
// total[3] = total[0] + total[1] - total[2];
// odrInfo["total"] = total[3].ToString("N2");
// break;
// case 4:
// total[4] = (membershipDuration < 365 * 2) ? cpfContributionArr[0] + cpfContributionArr[1] : 0;
// odrInfo["total"] = total[4].ToString("N2");
// break;
// default:
// odrInfo["total"] = (total[3] - total[4]).ToString("N2");
// break;
// }
// }
// oPFWithdrawalGrid.Rows.Add(odrInfo);
// }
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(oPFWithdrawalGrid);
//}
//[HttpGet("getPFMemberWithdrawalFlowGridData/{requestMemberID}")]
//public ActionResult getPFMemberWithdrawalFlowGridData(int requestMemberID)
//{
// PFWithdrawalRequest pFWithdrawalRequest = new PFWithdrawalRequest();
// pFWithdrawalRequest = _pfWithdrawalRequestService.GetByMemberID(requestMemberID);
// //Member LoanHr = _memberService.Get(_fundEss.Value.LoanHrUser);
// //Member Trustee = _memberService.Get(_fundEss.Value.LoanTrustee);
// //Member SecondTrustee = _memberService.Get(_fundEss.Value.LoanSecondTrustee);
// List<string> staticDescriptions = new List<string>{"Withdraw Date",
// "Deduction Stop",
// "Admin Acknowledgement",
// "Trustee-1 Approval",
// "Trustee-2 Approval",
// "Bank Deposit"};
// DataRow odrInfo = null;
// DataTable oPFWithdrawalFlowGrid = new DataTable();
// oPFWithdrawalFlowGrid.Columns.Add("description", typeof(string));
// oPFWithdrawalFlowGrid.Columns.Add("status", typeof(string));
// oPFWithdrawalFlowGrid.Columns.Add("acknowledgementDate", typeof(string));
// try
// {
// for (int i = 0; i < 6; i++)
// {
// odrInfo = oPFWithdrawalFlowGrid.NewRow();
// odrInfo["Description"] = staticDescriptions[i];
// switch (i)
// {
// case 0:
// odrInfo["status"] = "-";
// odrInfo["acknowledgementDate"] = pFWithdrawalRequest.DiscontinueDate.ToString();
// break;
// case 1:
// odrInfo["status"] = "-";
// odrInfo["acknowledgementDate"] = pFWithdrawalRequest.DiscontinueDate.ToString();
// break;
// case 2:
// //odrInfo["status"] = (pFWithdrawalRequest.HRApproveDate != null && pFWithdrawalRequest.isRejected != true) ? "Yes" : "No";
// if (pFWithdrawalRequest.HRApproveDate != null && pFWithdrawalRequest.isRejected != true)
// {
// odrInfo["status"] = "Yes";
// }
// else if (pFWithdrawalRequest.HRApproveDate != null && pFWithdrawalRequest.isRejected == true &&
// (pFWithdrawalRequest.TrusteesApproveDate != null || pFWithdrawalRequest.SecondTrusteesApproveDate != null))
// {
// odrInfo["status"] = "Yes";
// }
// else if (pFWithdrawalRequest.HRApproveDate != null && pFWithdrawalRequest.TrusteesApproveDate == null &&
// pFWithdrawalRequest.SecondTrusteesApproveDate == null && pFWithdrawalRequest.isRejected == true)
// {
// odrInfo["status"] = "Rejected";
// }
// else
// {
// odrInfo["status"] = "No";
// }
// odrInfo["acknowledgementDate"] = pFWithdrawalRequest.HRApproveDate.ToString();
// break;
// case 3:
// //odrInfo["status"] = (pFWithdrawalRequest.TrusteesApproveDate != null && pFWithdrawalRequest.isRejected != true) ? "Yes" : "No";
// if (pFWithdrawalRequest.TrusteesApproveDate != null && pFWithdrawalRequest.isRejected != true)
// {
// odrInfo["status"] = "Yes";
// }
// else if (pFWithdrawalRequest.TrusteesApproveDate != null && pFWithdrawalRequest.HRApproveDate != null &&
// pFWithdrawalRequest.SecondTrusteesApproveDate == null && pFWithdrawalRequest.isRejected == true)
// {
// odrInfo["status"] = "Rejected";
// }
// else
// {
// odrInfo["status"] = "No";
// }
// odrInfo["acknowledgementDate"] = pFWithdrawalRequest.TrusteesApproveDate.ToString();
// break;
// case 4:
// //odrInfo["status"] = (pFWithdrawalRequest.SecondTrusteesApproveDate != null && pFWithdrawalRequest.isRejected != true) ? "Yes" : "No";
// if (pFWithdrawalRequest.SecondTrusteesApproveDate != null && pFWithdrawalRequest.isRejected != true)
// {
// odrInfo["status"] = "Yes";
// }
// else if (pFWithdrawalRequest.SecondTrusteesApproveDate != null && pFWithdrawalRequest.HRApproveDate != null &&
// pFWithdrawalRequest.TrusteesApproveDate == null && pFWithdrawalRequest.isRejected == true)
// {
// odrInfo["status"] = "Rejected";
// }
// else
// {
// odrInfo["status"] = "No";
// }
// odrInfo["acknowledgementDate"] = pFWithdrawalRequest.SecondTrusteesApproveDate.ToString();
// break;
// case 5:
// odrInfo["status"] = (pFWithdrawalRequest.DepositDate != null) ? "Yes" : "No";
// odrInfo["acknowledgementDate"] = pFWithdrawalRequest.DepositDate.ToString(); ;
// break;
// default:
// odrInfo["status"] = "Rejected";
// break;
// }
// oPFWithdrawalFlowGrid.Rows.Add(odrInfo);
// }
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(oPFWithdrawalFlowGrid);
//}
//[HttpGet("getNewInvestment")]
//public ActionResult GetNewInvestment()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// NewInvestment oNewInvestment = new NewInvestment();
// try
// {
// oNewInvestment = _newInvestmentService.GetByMemberID(currentUser.MemberID);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(oNewInvestment);
//}
//[HttpGet("getNewInvestmentById/{NewInvestmentId}")]
//public ActionResult GetNewInvestmentById(int NewInvestmentId)
//{
// NewInvestment item = new NewInvestment();
// try
// {
// item = _newInvestmentService.GetNewInvestmentById(NewInvestmentId);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(item);
//}
//[HttpPost]
//[Route("saveLoanApplication")]
//public ActionResult saveLoanApplication(LoanApplication loanApplication)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// loanApplication.ConnectionString = Ease.Core.Utility.Global.CipherFunctions.Decrypt("Cel.Admin", _fundEss.Value.MySqlCommandConnection);
// //loanApplication.ConnectionString = _fundEss.Value.MySqlCommandConnection; /*"server=103.197.204.164;user=root;database=bl;port=3306;password=MySql1234";*/
// try
// {
// if (loanApplication.LoanAttachments != null && loanApplication.LoanAttachments.Count > 0)
// {
// foreach (var tempItem in loanApplication.LoanAttachments)
// {
// if (tempItem != null)
// {
// if (tempItem.ID <= 0 && tempItem.FileDataString != null)
// {
// string[] items = tempItem.FileDataString.Split(new char[] { ',', ' ' }, StringSplitOptions.None);
// byte[] newBytes = Convert.FromBase64String(items[1]);
// tempItem.FileDataString = "";
// tempItem.FileData = newBytes;
// }
// }
// }
// }
// Member LoanHr = _memberService.Get(_fundEss.Value.LoanHrUser);
// Member Trustee = _memberService.Get(_fundEss.Value.LoanTrustee);
// Member SecondTrustee = _memberService.Get(_fundEss.Value.LoanSecondTrustee);
// loanApplication.ApplyDate = DateTime.Now;
// loanApplication.HRUserID = LoanHr.ID;
// loanApplication.TrusteesID = Trustee.ID;
// loanApplication.SecondTrusteesID = SecondTrustee.ID;
// loanApplication.MemberID = currentUser.MemberID;
// loanApplication.CreatedDate = DateTime.Today;
// _loanApplicationService.Save(loanApplication);
// EmailSettings emailSettings = _emailSettings.Value;
// //send mail to hr
// string temperr = _loanApplicationService.SendMailToTheApprovedLoanHR(loanApplication, emailSettings);
// //send mail to applicant
// temperr = _loanApplicationService.SendMailToTheApplicant(loanApplication, emailSettings);
// //if (temperr != string.Empty)
// //{
// // throw new Exception(temperr);
// //}
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(loanApplication);
//}
//[HttpPost]
//[Route("confirmPFWithdrawalRequestTerms")]
//public ActionResult ConfirmPFWithdrawalRequestTerms(PFWithdrawalRequest pFWithdrawalRequest)
//{
// try
// {
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// Member Hr = _memberService.Get(_fundEss.Value.LoanHrUser);
// pFWithdrawalRequest.Status = EnumPFWithdrawalStatus.Confirmed;
// pFWithdrawalRequest.RequestEmployeeID = (int)currentUser.EmployeeID;
// pFWithdrawalRequest.RequestMemberID = currentUser.MemberID;
// pFWithdrawalRequest.ConfirmDate = DateTime.Today;
// pFWithdrawalRequest.CreatedBy = (int)currentUser.EmployeeID;
// pFWithdrawalRequest.CreatedDate = DateTime.Today;
// _pfWithdrawalRequestService.Save(pFWithdrawalRequest);
// //EmailSettings emailSettings = _emailSettings.Value;
// //string temperr = _pfWithdrawalRequestService.SendMailToPfMembershipWithdrawalHR(pFWithdrawalRequest, emailSettings, Hr.ID);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(pFWithdrawalRequest);
//}
//[HttpPost]
//[Route("savePFWithdrawalRequest")]
//public ActionResult SavePFWithdrawalRequest(PFWithdrawalRequest pFWithdrawalRequest)
//{
// try
// {
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// Member Hr = _memberService.Get(_fundEss.Value.LoanHrUser);
// pFWithdrawalRequest.ConnectionString = Ease.Core.Utility.Global.CipherFunctions.Decrypt("Cel.Admin", _fundEss.Value.MySqlCommandConnection);
// pFWithdrawalRequest.RequestEmployeeID = (int)currentUser.EmployeeID;
// pFWithdrawalRequest.RequestMemberID = currentUser.MemberID;
// pFWithdrawalRequest.RequestDate = DateTime.Today;
// pFWithdrawalRequest.Status = EnumPFWithdrawalStatus.Submitted;
// pFWithdrawalRequest.StatusUpdateDate = DateTime.Today;
// pFWithdrawalRequest.CreatedBy = (int)currentUser.EmployeeID;
// pFWithdrawalRequest.CreatedDate = DateTime.Today;
// if (pFWithdrawalRequest.PfWithdrawalRequestAttachment != null && pFWithdrawalRequest.isRejected != true)
// {
// if (pFWithdrawalRequest.PfWithdrawalRequestAttachment.FileDataString != null)
// {
// string[] items = pFWithdrawalRequest.PfWithdrawalRequestAttachment.FileDataString.Split(new char[] { ',', ' ' }, StringSplitOptions.None);
// byte[] newBytes = Convert.FromBase64String(items[1]);
// pFWithdrawalRequest.PfWithdrawalRequestAttachment.FileDataString = "";
// pFWithdrawalRequest.PfWithdrawalRequestAttachment.FileData = newBytes;
// }
// }
// _pfWithdrawalRequestService.Save(pFWithdrawalRequest);
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _pfWithdrawalRequestService.SendMailToPfMembershipWithdrawalHR(pFWithdrawalRequest, emailSettings, Hr.ID);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(pFWithdrawalRequest);
//}
//[HttpPost]
//[Route("updatePfDepositFlowApproved")]
//public ActionResult UpdatePfDepositFlowApproved(PFDepositFlow oPFDepositFlow)
//{
// try
// {
// Member Hr = _memberService.Get(_fundEss.Value.LoanHrUser);
// oPFDepositFlow.ApprovedDate = DateTime.Now;
// _pFDepositFlowService.UpdateApproved(oPFDepositFlow);
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _pFDepositFlowService.SendMailToHr(emailSettings, Hr.ID);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(oPFDepositFlow);
//}
//[HttpPost]
//[Route("updateLoanApproveByHr")]
//public ActionResult UpdateLoanApproveByHr(LoanApplication oLoanApplication)
//{
// try
// {
// oLoanApplication.HRApproveDate = DateAndTime.Now;
// _loanApplicationService.UpdateLoanApproveByHr(oLoanApplication);
// if (oLoanApplication.isRejected == false)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _loanApplicationService.SendMailToTrustees(oLoanApplication, emailSettings);
// }
// else
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _loanApplicationService.SendMailToTheRejectedLoanApplicant(oLoanApplication, emailSettings);
// }
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(oLoanApplication);
//}
//[HttpPost]
//[Route("updateLoanApproveByTrustees")]
//public ActionResult UpdateLoanApproveByTrustees(LoanApplication oLoanApplication)
//{
// try
// {
// oLoanApplication.TrusteesApproveDate = DateAndTime.Now;
// _loanApplicationService.UpdateLoanApproveByTrustees(oLoanApplication);
// //mail
// if (oLoanApplication.TrusteesApproveDate != null && oLoanApplication.SecondTrusteesApproveDate != null && oLoanApplication.isRejected == false)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _loanApplicationService.SendMailToTheApprovedLoanApplicant(oLoanApplication, emailSettings);
// }
// else if (oLoanApplication.TrusteesApproveDate != null && oLoanApplication.isRejected == true)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _loanApplicationService.SendRejectionMailOfEmployeeToSecondTrustee(oLoanApplication, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = _loanApplicationService.SendMailToTheRejectedLoanApplicant(oLoanApplication, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new LoanApplicationService().SendMailOfTheRejectedLoanApplicantBySecondTrusteeToHR(oLoanApplication, emailSettings);
// }
// else if (oLoanApplication.SecondTrusteesApproveDate != null && oLoanApplication.isRejected == true)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _loanApplicationService.SendRejectionMailOfEmployeeToTrustee(oLoanApplication, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = _loanApplicationService.SendMailToTheRejectedLoanApplicant(oLoanApplication, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new LoanApplicationService().SendMailOfTheRejectedLoanApplicantByFirstTrusteeToHR(oLoanApplication, emailSettings);
// }
// return Ok(oLoanApplication);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
//}
//[HttpPost]
//[Route("updateLoanApproveBySecondTrustees")]
//public ActionResult UpdateLoanApproveBySecondTrustees(LoanApplication oLoanApplication)
//{
// try
// {
// oLoanApplication.SecondTrusteesApproveDate = DateTime.Now;
// _loanApplicationService.UpdateLoanApproveBySecondTrustees(oLoanApplication);
// //mail
// if (oLoanApplication.TrusteesApproveDate != null && oLoanApplication.SecondTrusteesApproveDate != null && oLoanApplication.isRejected == false)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _loanApplicationService.SendMailToTheApprovedLoanApplicant(oLoanApplication, emailSettings);
// }
// else if (oLoanApplication.TrusteesApproveDate != null && oLoanApplication.isRejected == true)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _loanApplicationService.SendRejectionMailOfEmployeeToSecondTrustee(oLoanApplication, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = _loanApplicationService.SendMailToTheRejectedLoanApplicant(oLoanApplication, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new LoanApplicationService().SendMailOfTheRejectedLoanApplicantBySecondTrusteeToHR(oLoanApplication, emailSettings);
// }
// else if (oLoanApplication.SecondTrusteesApproveDate != null && oLoanApplication.isRejected == true)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _loanApplicationService.SendRejectionMailOfEmployeeToTrustee(oLoanApplication, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = _loanApplicationService.SendMailToTheRejectedLoanApplicant(oLoanApplication, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new LoanApplicationService().SendMailOfTheRejectedLoanApplicantByFirstTrusteeToHR(oLoanApplication, emailSettings);
// }
// return Ok(oLoanApplication);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
//}
//[HttpPost]
//[Route("updatePfMembershipWithdrawalApproveByTrustees")]
//public ActionResult UpdatePfMembershipWithdrawalApproveByTrustees(PFWithdrawalRequest oPFWithdrawalRequest)
//{
// try
// {
// oPFWithdrawalRequest.TrusteesApproveDate = DateAndTime.Now;
// if (oPFWithdrawalRequest.TrusteesApproveDate != null && oPFWithdrawalRequest.SecondTrusteesApproveDate != null && oPFWithdrawalRequest.isRejected == false)
// {
// oPFWithdrawalRequest.Status = EnumPFWithdrawalStatus.Approved;
// }
// if (oPFWithdrawalRequest.isRejected == true)
// {
// oPFWithdrawalRequest.Status = EnumPFWithdrawalStatus.Rejected;
// }
// Member Hr = _memberService.Get(_fundEss.Value.LoanHrUser);
// //mail
// if (oPFWithdrawalRequest.TrusteesApproveDate != null && oPFWithdrawalRequest.SecondTrusteesApproveDate != null && oPFWithdrawalRequest.isRejected == false)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _pfWithdrawalRequestService.SendMailToPfMembershipWithdrawalApplicant(oPFWithdrawalRequest, emailSettings);
// }
// else if (oPFWithdrawalRequest.TrusteesApproveDate != null && oPFWithdrawalRequest.isRejected == true)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = new PFWithdrawalRequestService().SendRejectionMailOfEmployeeToSecondTrustee(oPFWithdrawalRequest, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new PFWithdrawalRequestService().SendMailToTheRejectedPFWithdrawalRequestApplicant(oPFWithdrawalRequest, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new PFWithdrawalRequestService().SendMailOfTheRejectedPFWithdrawalBySecondTrusteeToHR(oPFWithdrawalRequest, Hr.EmpCode, emailSettings);
// }
// else if (oPFWithdrawalRequest.SecondTrusteesApproveDate != null && oPFWithdrawalRequest.isRejected == true)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = new PFWithdrawalRequestService().SendRejectionMailOfEmployeeToTrustee(oPFWithdrawalRequest, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new PFWithdrawalRequestService().SendMailToTheRejectedPFWithdrawalRequestApplicant(oPFWithdrawalRequest, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new PFWithdrawalRequestService().SendMailOfTheRejectedPFWithdrawalBySecondTrusteeToHR(oPFWithdrawalRequest, Hr.EmpCode, emailSettings);
// }
// _pfWithdrawalRequestService.UpdatePfMembershipWithdrawalApproveByTrustees(oPFWithdrawalRequest);
// return Ok(oPFWithdrawalRequest);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
//}
//[HttpPost]
//[Route("updatePfMembershipWithdrawalApproveBySecondTrustees")]
//public ActionResult UpdatePfMembershipWithdrawalApproveBySecondTrustees(PFWithdrawalRequest oPFWithdrawalRequest)
//{
// try
// {
// oPFWithdrawalRequest.SecondTrusteesApproveDate = DateTime.Now;
// if (oPFWithdrawalRequest.TrusteesApproveDate != null && oPFWithdrawalRequest.SecondTrusteesApproveDate != null && oPFWithdrawalRequest.isRejected == false)
// {
// oPFWithdrawalRequest.Status = EnumPFWithdrawalStatus.Approved;
// }
// else if (oPFWithdrawalRequest.isRejected == true)
// {
// oPFWithdrawalRequest.Status = EnumPFWithdrawalStatus.Rejected;
// }
// _pfWithdrawalRequestService.UpdatePfMembershipWithdrawalApproveBySecondTrustees(oPFWithdrawalRequest);
// Member Hr = _memberService.Get(_fundEss.Value.LoanHrUser);
// //mail
// if (oPFWithdrawalRequest.TrusteesApproveDate != null && oPFWithdrawalRequest.SecondTrusteesApproveDate != null)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _pfWithdrawalRequestService.SendMailToPfMembershipWithdrawalApplicant(oPFWithdrawalRequest, emailSettings);
// }
// else if (oPFWithdrawalRequest.TrusteesApproveDate != null && oPFWithdrawalRequest.isRejected == true)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = new PFWithdrawalRequestService().SendRejectionMailOfEmployeeToSecondTrustee(oPFWithdrawalRequest, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new PFWithdrawalRequestService().SendMailToTheRejectedPFWithdrawalRequestApplicant(oPFWithdrawalRequest, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new PFWithdrawalRequestService().SendMailOfTheRejectedPFWithdrawalByFirstTrusteeToHR(oPFWithdrawalRequest, Hr.EmpCode, emailSettings);
// }
// else if (oPFWithdrawalRequest.SecondTrusteesApproveDate != null && oPFWithdrawalRequest.isRejected == true)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = new PFWithdrawalRequestService().SendRejectionMailOfEmployeeToTrustee(oPFWithdrawalRequest, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new PFWithdrawalRequestService().SendMailToTheRejectedPFWithdrawalRequestApplicant(oPFWithdrawalRequest, emailSettings);
// emailSettings = _emailSettings.Value;
// temperr = new PFWithdrawalRequestService().SendMailOfTheRejectedPFWithdrawalByFirstTrusteeToHR(oPFWithdrawalRequest, Hr.EmpCode, emailSettings);
// }
// return Ok(oPFWithdrawalRequest);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
//}
//[Route("getMemberLastAuditDate")]
//public ActionResult GetMemberLastAuditDate()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// DateTime? lastAuditDate = null;
// //string AuditDate = string.Empty;
// try
// {
// lastAuditDate = _membersTransactionDetailsService.GetMemberLastAuditDate(currentUser.MemberID);
// //AuditDate = (lastAuditDate != null)? lastAuditDate.ToString() : "NoAudit";
// return Ok(lastAuditDate);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
//}
//[HttpGet]
//[Route("getDashboardData/{memberId}")]
//public ActionResult GetDashboardData(int memberId)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// Member omember = new Member();
// PFWithdrawalRequest pFWithdrawalRequest = new PFWithdrawalRequest();
// if (memberId == -1)
// {
// omember = _memberService.Get(currentUser.MemberID);
// pFWithdrawalRequest = _pfWithdrawalRequestService.GetByMemberID(currentUser.MemberID);
// }
// else
// {
// omember = _memberService.Get(memberId);
// pFWithdrawalRequest = _pfWithdrawalRequestService.GetByMemberID(currentUser.MemberID);
// }
// DataRow odrInfo = null;
// DataTable oDashboardData = new DataTable();
// oDashboardData.Columns.Add("EmpCode", typeof(string));
// oDashboardData.Columns.Add("Designation", typeof(string));
// oDashboardData.Columns.Add("Department", typeof(string));
// oDashboardData.Columns.Add("JoiningDate", typeof(string));
// oDashboardData.Columns.Add("WithdrawalDate", typeof(string));
// oDashboardData.Columns.Add("WithdrawalStatus", typeof(EnumPFWithdrawalStatus));
// oDashboardData.Columns.Add("MembershipDate", typeof(string));
// oDashboardData.Columns.Add("EMAILADDRESS", typeof(string));
// oDashboardData.Columns.Add("Name", typeof(string));
// oDashboardData.Columns.Add("DiscontinueDate", typeof(string));
// oDashboardData.Columns.Add("MOBILENO", typeof(string));
// oDashboardData.Columns.Add("AuditedOwnBalance", typeof(double)).DefaultValue = 0.0;
// oDashboardData.Columns.Add("AuditedCompanyBalance", typeof(double)).DefaultValue = 0.0;
// oDashboardData.Columns.Add("UnAuditedOwnBalance", typeof(double)).DefaultValue = 0.0;
// oDashboardData.Columns.Add("UnAuditedCompanyBalance", typeof(double)).DefaultValue = 0.0;
// oDashboardData.Columns.Add("Conn", typeof(string));
// try
// {
// DataTable oDashboardMember = new DataTable();
// oDashboardMember = _memberService.GetDashboardMember(omember.EmpCode);
// double auditedOwnBalance = 0, auditedCompanyBalance = 0, unAuditedOwnBalance = 0, unAuditedCompanyBalance = 0;
// auditedOwnBalance = _membersTransactionDetailsService.GetDashboardMemberAuditedOwnBalance(omember.ID);
// auditedCompanyBalance = _membersTransactionDetailsService.GetDashboardMemberAuditedCompanyBalance(omember.ID);
// unAuditedOwnBalance = _membersTransactionDetailsService.GetDashboardMemberUnAuditedOwnBalance(omember.ID);
// unAuditedCompanyBalance = _membersTransactionDetailsService.GetDashboardMemberUnAuditedCompanyBalance(omember.ID);
// if (oDashboardMember.Rows.Count > 0)
// {
// odrInfo = oDashboardData.NewRow();
// odrInfo["EmpCode"] = oDashboardMember.Rows[0]["EmpCode"].ToString();
// odrInfo["Name"] = oDashboardMember.Rows[0]["Name"].ToString();
// odrInfo["Designation"] = oDashboardMember.Rows[0]["Designation"].ToString();
// odrInfo["Department"] = oDashboardMember.Rows[0]["Department"].ToString();
// odrInfo["JoiningDate"] = oDashboardMember.Rows[0]["JoiningDate"].ToString();
// odrInfo["WithdrawalDate"] = (pFWithdrawalRequest != null && pFWithdrawalRequest.SettleDate != null) ? pFWithdrawalRequest.SettleDate : null;
// odrInfo["WithdrawalStatus"] = (pFWithdrawalRequest != null) ? pFWithdrawalRequest.Status : EnumPFWithdrawalStatus.None;
// odrInfo["MembershipDate"] = omember.MembershipDate;
// odrInfo["DiscontinueDate"] = oDashboardMember.Rows[0]["DiscontinueDate"].ToString();
// odrInfo["EMAILADDRESS"] = oDashboardMember.Rows[0]["EMAILADDRESS"].ToString();
// odrInfo["MOBILENO"] = oDashboardMember.Rows[0]["EMAILADDRESS"].ToString();
// odrInfo["AuditedOwnBalance"] = auditedOwnBalance;
// odrInfo["AuditedCompanyBalance"] = auditedCompanyBalance;
// odrInfo["UnAuditedOwnBalance"] = unAuditedOwnBalance;
// odrInfo["UnAuditedCompanyBalance"] = unAuditedCompanyBalance;
// odrInfo["Conn"] = Ease.Core.Utility.Global.CipherFunctions.Decrypt("Cel.Admin", _fundEss.Value.MySqlCommandConnection);//_fundEss.Value.MySqlCommandConnection;
// oDashboardData.Rows.Add(odrInfo);
// }
// }
// catch (Exception ex)
// {
// //return ex;
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(oDashboardData);
//}
//[HttpGet]
//[Route("getApproversForLoanApproval/{loanApplicationId}")]
//public ActionResult GetApproversForLoanApproval(int loanApplicationId)
//{
// LoanApplication loanApplication = new LoanApplicationService().GetLoanAppById(loanApplicationId);
// Member LoanHr = _memberService.Get((int)loanApplication.HRUserID);
// Member Trustee = _memberService.Get((int)loanApplication.TrusteesID);
// Member SecondTrustee = _memberService.Get((int)loanApplication.SecondTrusteesID);
// List<Member> _approvers = new List<Member>();
// try
// {
// _approvers.Add(LoanHr);
// _approvers.Add(Trustee);
// _approvers.Add(SecondTrustee);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(_approvers);
//}
//[HttpGet]
//[Route("getApproversForPfDepositApproval")]
//public ActionResult GetApproversForPfDepositApproval()
//{
// Member PFDepositCheckedBy = _memberService.Get(_fundEss.Value.PFDepositCheckedBy);
// Member PFDepositApprovedBy = _memberService.Get(_fundEss.Value.PFDepositApprovedBy);
// List<Member> _approvers = new List<Member>();
// try
// {
// _approvers.Add(PFDepositCheckedBy);
// _approvers.Add(PFDepositApprovedBy);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(_approvers);
//}
//[HttpPost]
//[Route("updateLoanEarlySettlement")]
//public ActionResult UpdateLoanEarlySettlement(FmLoan oLoan)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// oLoan.ConnectionString = Ease.Core.Utility.Global.CipherFunctions.Decrypt("Cel.Admin", _fundEss.Value.MySqlCommandConnection); //_fundEss.Value.MySqlCommandConnection;
// Member LoanHr = _memberService.Get(_fundEss.Value.LoanHrUser);
// EmailSettings emailSettings = _emailSettings.Value;
// try
// {
// if (oLoan.LoanEarlySettlementAttachment != null)
// {
// if (oLoan.LoanEarlySettlementAttachment.FileDataString != null)
// {
// string[] items = oLoan.LoanEarlySettlementAttachment.FileDataString.Split(new char[] { ',', ' ' }, StringSplitOptions.None);
// byte[] newBytes = Convert.FromBase64String(items[1]);
// oLoan.LoanEarlySettlementAttachment.FileDataString = "";
// oLoan.LoanEarlySettlementAttachment.FileData = newBytes;
// }
// }
// if (oLoan.SettleStatus == EnumLoanSettleStatus.Deposited)
// {
// oLoan.DepositDate = DateTime.Now;
// oLoan.ModifiedBy = currentUser.EmployeeID;
// oLoan.ModifiedDate = DateTime.Now;
// _fmLoanService.UpdateLoanEarlySettlement(oLoan);
// string temperr = _fmLoanService.SendMailToLoanEarlySettlementHR(oLoan, emailSettings, LoanHr.ID);
// //if (temperr != string.Empty)
// //{
// // throw new Exception(temperr);
// //}
// }
// else
// {
// oLoan.EarlySettleRequestBy = currentUser.MemberID; // LoanSettlestatus { None =1, request, Checked, deposited, settled}
// oLoan.EarlySettleRequestDate = DateTime.Now;
// oLoan.ModifiedBy = currentUser.EmployeeID;
// oLoan.ModifiedDate = DateTime.Now;
// _fmLoanService.UpdateLoanEarlySettlement(oLoan);
// string temperr = _fmLoanService.SendMailToLoanEarlySettlementHR(oLoan, emailSettings, LoanHr.ID);
// temperr = _fmLoanService.SendMailToLoanEarlySettleApplicant(oLoan, emailSettings);
// //if (temperr != string.Empty)
// //{
// // throw new Exception(temperr);
// //}
// }
// return Ok(oLoan);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
//}
//[HttpPost]
//[Route("updateNewInvestment")]
//public ActionResult UpdateNewInvestment(NewInvestment oNewInvestment)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// try
// {
// Member Hr = _memberService.Get(_fundEss.Value.LoanHrUser);
// _newInvestmentService.UpdateNewInvestmentApproval(oNewInvestment);
// if (oNewInvestment.ApproverOneDate != null && oNewInvestment.ApproverTwoDate != null)
// {
// EmailSettings emailSettings = _emailSettings.Value;
// string temperr = _newInvestmentService.SendMailToHr(emailSettings, Hr.ID);
// }
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(oNewInvestment);
//}
//[HttpGet("getSelectedApproverForLoanApplication/{LoanApplicationID}")]
//public ActionResult GetSelectedApproverForLoanApplication(int LoanApplicationID)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// LoanApplication loanApplication = new LoanApplicationService().GetLoanAppById(LoanApplicationID);
// Member LoanHr = _memberService.Get((int)loanApplication.HRUserID);
// Member Trustee = _memberService.Get((int)loanApplication.TrusteesID);
// Member SecondTrustee = _memberService.Get((int)loanApplication.SecondTrusteesID);
// int selectedApprover = 0;
// try
// {
// if (currentUser.MemberID == LoanHr.ID)
// {
// selectedApprover = 1;
// }
// else if (currentUser.MemberID == Trustee.ID)
// {
// selectedApprover = 2;
// }
// else if (currentUser.MemberID == SecondTrustee.ID)
// {
// selectedApprover = 3;
// }
// else
// {
// selectedApprover = 0;
// }
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(selectedApprover);
//}
//[HttpGet("getSelectedApproverForPfMembershipWithdrawal")]
//public ActionResult GetSelectedApproverForPfMembershipWithdrawal()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// Member Trustee = _memberService.Get(_fundEss.Value.LoanTrustee);
// Member SecondTrustee = _memberService.Get(_fundEss.Value.LoanSecondTrustee);
// int selectedApprover = 0;
// try
// {
// if (currentUser.MemberID == Trustee.ID)
// {
// selectedApprover = 1;
// }
// else if (currentUser.MemberID == SecondTrustee.ID)
// {
// selectedApprover = 2;
// }
// else
// {
// selectedApprover = 0;
// }
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(selectedApprover);
//}
//[HttpPost]
//[Route("getSelectedApproverForInvestment")]
//public ActionResult GetSelectedApproverForInvestment(NewInvestment newInvestment)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// int selectedApprover = 0;
// try
// {
// if (currentUser.MemberID == newInvestment.ApproverOne)
// {
// selectedApprover = 1;
// }
// else if (currentUser.MemberID == newInvestment.ApproverTwo)
// {
// selectedApprover = 2;
// }
// else
// {
// selectedApprover = 0;
// }
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(selectedApprover);
//}
//[HttpPost]
//[Route("saveNewInvestment")]
//public ActionResult SaveNewInvestment(NewInvestment newInvestment)
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// try
// {
// newInvestment.
// _pfWithdrawalRequestService.Save(pFWithdrawalRequest);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(pFWithdrawalRequest);
//}
//[HttpGet("getPFWithdrawalRequest/{PFWithdrawalRequestID}")]
//public ActionResult getPFWithdrawalRequest(int PFWithdrawalRequestID)
//{
// PFWithdrawalRequest pFWithdrawalRequest = new PFWithdrawalRequest();
// try
// {
// pFWithdrawalRequest = _pfWithdrawalRequestService.Get(PFWithdrawalRequestID);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(pFWithdrawalRequest);
//}
//[HttpGet("getPFWithdrawalRequestByMemberID")]
//public ActionResult getPFWithdrawalRequestByMemberID()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// PFWithdrawalRequest pFWithdrawalRequest = new PFWithdrawalRequest();
// try
// {
// pFWithdrawalRequest = _pfWithdrawalRequestService.GetByMemberID(currentUser.MemberID);
// }
// catch (Exception ex)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
// }
// return Ok(pFWithdrawalRequest);
//}
//[HttpPost]
//[Route("viewPfWithdrawalRequestAttachmentPDF")]
//public ActionResult viewPfWithdrawalRequestAttachmentPDF(PFWithdrawalRequest oPFWithdrawalRequest)
//{
// PfWithdrawalRequestAttachment oPfWithdrawalRequestAttachment = new PfWithdrawalRequestAttachment();
// try
// {
// oPfWithdrawalRequestAttachment = _pfWithdrawalRequestService.LoadPfWithdrawalRequestAttachment(oPFWithdrawalRequest);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(oPfWithdrawalRequestAttachment);
//}
//[HttpPost]
//[Route("viewLoanAttachmentPDF")]
//public ActionResult viewLoanAttachmentPDF(PFWithdrawalRequest oPFWithdrawalRequest)
//{
// PfWithdrawalRequestAttachment oPfWithdrawalRequestAttachment = new PfWithdrawalRequestAttachment();
// try
// {
// oPfWithdrawalRequestAttachment = _pfWithdrawalRequestService.LoadPfWithdrawalRequestAttachment(oPFWithdrawalRequest);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(oPfWithdrawalRequestAttachment);
//}
//[HttpPost("getLoanScheduleReport")]
//public ActionResult getLoanScheduleReport(dynamic data)
//{
// var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data));
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// Member omember = _memberService.Get(currentUser.MemberID);
// int LoanId = (int)item["loanappid"].ToObject<int>();
// byte[] bytes = null;
// ReportProcessor reportProcessor = new ReportProcessor();
// LoanApplicationService loanApplicationService = new LoanApplicationService();
// try
// {
// bytes = new LoanReport().getLoanScheduleReport(LoanId, omember);
// }
// catch (Exception e)
// {
// return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
// }
// return Ok(bytes);
//}
//[HttpGet("getSystemDate")]
//public ActionResult getSystemDate()
//{
// CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
// DateTime lastMonthEndDate = new DateTime();
// //PFWithdrawalRequestService pFWithdrawalRequest = new PFWithdrawalRequestService();
// List<DateTime> dateTimeList = new List<DateTime>();
// //lastMonthEndDate = pFWithdrawalRequest.getSystemDate(currentUser.MemberID);
// lastMonthEndDate = DateTime.Today;
// dateTimeList.Add(GlobalFunctions.FirstDateOfMonth(lastMonthEndDate.AddMonths(+1)));
// dateTimeList.Add(GlobalFunctions.LastDateOfMonth(lastMonthEndDate.AddMonths(+1)));
// return Ok(dateTimeList);
//}
#endregion Commented Out Fund-related Codes
[HttpPost("getMemberLedgerBalance")]
public ActionResult GetMemberLedgerBalance(dynamic data)
{
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
Member omember = _memberService.Get(currentUser.LoginID, _fundInfo.Value.FundConnection);
var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data));
DateTime fromDate = item["fromDate"].ToObject<DateTime>();
DateTime toDate = item["toDate"].ToObject<DateTime>();
DataTable oIndividualMemConDataTable = new DataTable();
oIndividualMemConDataTable.Columns.Add("EmployeeNo", typeof(string));
oIndividualMemConDataTable.Columns.Add("Name", typeof(string));
oIndividualMemConDataTable.Columns.Add("Status", typeof(string));
oIndividualMemConDataTable.Columns.Add("Designation", typeof(string));
oIndividualMemConDataTable.Columns.Add("MonthOfContribution", typeof(string));
oIndividualMemConDataTable.Columns.Add("EPFInterest", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("CPFInterest", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("EPFContribution", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("CPFContribution", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("OpeningBalance", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("Description", typeof(string));
oIndividualMemConDataTable.Columns.Add("Total", typeof(double)).DefaultValue = 0.0;
try
{
DateTime tempTranDate = DateTime.MinValue;
DataRow odr = null;
DataRow odrInfo = null;
double dOpeningBalance = 0.0;
string searchCondition = string.Empty;
if (omember != null)
{
searchCondition = SQLParser.MakeSQL(" and TranDate between %d and %d", fromDate, toDate);
dOpeningBalance = _membersTransactionDetailsService.GetOpeningBalance(omember.ID, (int)EnumFundType.PF_EPF, fromDate, _fundInfo.Value.FundConnection);
dOpeningBalance = dOpeningBalance + _membersTransactionDetailsService.GetOpeningBalance(omember.MemberID, (int)EnumFundType.PF_CPF, fromDate, _fundInfo.Value.FundConnection);
List<MembersTransactionDetails> memTranDetailColl = _membersTransactionDetailsService.GetMemberContribution(omember.ID, searchCondition, _fundInfo.Value.FundConnection);
foreach (MembersTransactionDetails memTranDetail in memTranDetailColl)
{
if (memTranDetail.Amount != 0)
{
odr = oIndividualMemConDataTable.NewRow();
odr["MonthOfContribution"] = memTranDetail.TranDate.ToString("dd MMM, yyyy");
EnumMemberTranType otrn = (EnumMemberTranType)memTranDetail.TranTypeID;
odr["Description"] = (string)otrn.ToString().Replace("_", " ");
if (memTranDetail.TranTypeID == (int)EnumMemberTranType.Monthly_Actual_Employee_Provident_Fund_Interest || memTranDetail.TranTypeID == (int)EnumMemberTranType.Opening_Actual_Employee_Provident_Fund_Interest ||
memTranDetail.TranTypeID == (int)EnumMemberTranType.Yearly_Actual_Employee_Provident_Fund_Interest || memTranDetail.TranTypeID == (int)EnumMemberTranType.Settlement_Interest_Employee_Provident_Fund
|| memTranDetail.TranTypeID == (int)EnumMemberTranType.Settlement_Interest_Company_Provident_Fund)
{
odr["EPFInterest"] = memTranDetail.Amount;
}
else if (memTranDetail.TranTypeID == (int)EnumMemberTranType.Monthly_Actual_Company_Provident_Fund_Interest || memTranDetail.TranTypeID == (int)EnumMemberTranType.Opening_Actual_Company_Provident_Fund_Interest ||
memTranDetail.TranTypeID == (int)EnumMemberTranType.Yearly_Actual_Company_Provident_Fund_Interest)
{
odr["CPFInterest"] = memTranDetail.Amount;
}
else if (EnumMemberTranType.Contribution_Of_Employee_Provident_Fund == (EnumMemberTranType)memTranDetail.TranTypeID || EnumMemberTranType.Opening_Employee_Provident_Fund == (EnumMemberTranType)memTranDetail.TranTypeID)
{
odr["EPFContribution"] = memTranDetail.Amount;
}
else if (EnumMemberTranType.Contribution_Of_Company_Provident_Fund == (EnumMemberTranType)memTranDetail.TranTypeID || EnumMemberTranType.Opening_Company_Provident_Fund == (EnumMemberTranType)memTranDetail.TranTypeID)
{
odr["CPFContribution"] = memTranDetail.Amount;
}
else if (EnumMemberTranType.Employee_Provident_Fund_LTA == (EnumMemberTranType)memTranDetail.TranTypeID)
{
odr["EPFContribution"] = memTranDetail.Amount;
}
else if (EnumMemberTranType.Company_Provident_Fund_LTA == (EnumMemberTranType)memTranDetail.TranTypeID)
{
odr["CPFContribution"] = memTranDetail.Amount;
}
else
{
continue;
}
odr["Total"] = memTranDetail.Amount;
oIndividualMemConDataTable.Rows.Add(odr);
}
}
odrInfo = oIndividualMemConDataTable.NewRow();
odrInfo["EmployeeNo"] = omember.EmpCode;
odrInfo["Name"] = omember.Name;
odrInfo["Status"] = omember.Status;
odrInfo["Designation"] = omember.CurrentDesig;
odrInfo["OpeningBalance"] = dOpeningBalance;
odrInfo["EPFContribution"] = DBNull.Value;
odrInfo["CPFContribution"] = DBNull.Value;
odrInfo["EPFInterest"] = DBNull.Value;
odrInfo["CPFInterest"] = DBNull.Value;
oIndividualMemConDataTable.Rows.Add(odrInfo);
}
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(oIndividualMemConDataTable);
}
[HttpPost("getMemberLedgerBalanceReport")]
public ActionResult GetMemberLedgerBalanceReport(dynamic data)
{
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
Member omember = _memberService.Get(currentUser.LoginID, _fundInfo.Value.FundConnection);
var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data));
DateTime fromDate = item["fromDate"].ToObject<DateTime>();
DateTime toDate = item["toDate"].ToObject<DateTime>();
string reportType = item["reportType"].ToObject<string>();
DataTable oIndividualMemConDataTable = new DataTable();
oIndividualMemConDataTable.Columns.Add("EmployeeNo", typeof(string));
oIndividualMemConDataTable.Columns.Add("Name", typeof(string));
oIndividualMemConDataTable.Columns.Add("Status", typeof(string));
oIndividualMemConDataTable.Columns.Add("Designation", typeof(string));
oIndividualMemConDataTable.Columns.Add("MonthOfContribution", typeof(string));
oIndividualMemConDataTable.Columns.Add("EPFInterest", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("CPFInterest", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("EPFContribution", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("CPFContribution", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("OpeningBalance", typeof(double)).DefaultValue = 0.0;
oIndividualMemConDataTable.Columns.Add("Description", typeof(string));
oIndividualMemConDataTable.Columns.Add("Total", typeof(double)).DefaultValue = 0.0;
DateTime tempTranDate = DateTime.MinValue;
DataRow odr = null;
double dOpeningBalance = 0.0;
string searchCondition = string.Empty;
try
{
if (omember != null)
{
searchCondition = SQLParser.MakeSQL(" and TranDate between %d and %d", fromDate, toDate);
dOpeningBalance = _membersTransactionDetailsService.GetOpeningBalance(omember.ID, (int)EnumFundType.PF_EPF, fromDate, _fundInfo.Value.FundConnection);
dOpeningBalance = dOpeningBalance + _membersTransactionDetailsService.GetOpeningBalance(omember.ID, (int)EnumFundType.PF_CPF, fromDate, _fundInfo.Value.FundConnection);
odr = oIndividualMemConDataTable.NewRow();
odr["EmployeeNo"] = omember.EmpCode;
odr["Designation"] = omember.CurrentDesig;
odr["Name"] = omember.Name;
odr["Status"] = omember.Status;
oIndividualMemConDataTable.Rows.Add(odr);
List<MembersTransactionDetails> memTranDetailColl = _membersTransactionDetailsService.GetMemberContribution(omember.ID, searchCondition, _fundInfo.Value.FundConnection);
foreach (MembersTransactionDetails memTranDetail in memTranDetailColl)
{
if (memTranDetail.Amount != 0)
{
odr = oIndividualMemConDataTable.NewRow();
//odr["EmployeeNo"] = omember.EmpCode;
//odr["Designation"] = omember.CurrentDesig;
//odr["Name"] = omember.Name;
//odr["Status"] = omember.Status;
odr["MonthOfContribution"] = memTranDetail.TranDate.ToString("dd MMM, yyyy");
EnumMemberTranType otrn = (EnumMemberTranType)memTranDetail.TranTypeID;
odr["Description"] = (string)otrn.ToString().Replace("_", " ");
if (memTranDetail.TranTypeID == (int)EnumMemberTranType.Monthly_Actual_Employee_Provident_Fund_Interest || memTranDetail.TranTypeID == (int)EnumMemberTranType.Opening_Actual_Employee_Provident_Fund_Interest ||
memTranDetail.TranTypeID == (int)EnumMemberTranType.Yearly_Actual_Employee_Provident_Fund_Interest || memTranDetail.TranTypeID == (int)EnumMemberTranType.Settlement_Interest_Employee_Provident_Fund
|| memTranDetail.TranTypeID == (int)EnumMemberTranType.Settlement_Interest_Company_Provident_Fund)
{
odr["EPFInterest"] = memTranDetail.Amount;
}
else if (memTranDetail.TranTypeID == (int)EnumMemberTranType.Monthly_Actual_Company_Provident_Fund_Interest || memTranDetail.TranTypeID == (int)EnumMemberTranType.Opening_Actual_Company_Provident_Fund_Interest ||
memTranDetail.TranTypeID == (int)EnumMemberTranType.Yearly_Actual_Company_Provident_Fund_Interest)
{
odr["CPFInterest"] = memTranDetail.Amount;
}
else if (EnumMemberTranType.Contribution_Of_Employee_Provident_Fund == (EnumMemberTranType)memTranDetail.TranTypeID || EnumMemberTranType.Opening_Employee_Provident_Fund == (EnumMemberTranType)memTranDetail.TranTypeID)
{
odr["EPFContribution"] = memTranDetail.Amount;
}
else if (EnumMemberTranType.Contribution_Of_Company_Provident_Fund == (EnumMemberTranType)memTranDetail.TranTypeID || EnumMemberTranType.Opening_Company_Provident_Fund == (EnumMemberTranType)memTranDetail.TranTypeID)
{
odr["CPFContribution"] = memTranDetail.Amount;
}
else if (EnumMemberTranType.Employee_Provident_Fund_LTA == (EnumMemberTranType)memTranDetail.TranTypeID)
{
odr["EPFContribution"] = memTranDetail.Amount;
}
else if (EnumMemberTranType.Company_Provident_Fund_LTA == (EnumMemberTranType)memTranDetail.TranTypeID)
{
odr["CPFContribution"] = memTranDetail.Amount;
}
else
{
continue;
}
odr["Total"] = memTranDetail.Amount;
oIndividualMemConDataTable.Rows.Add(odr);
}
}
}
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
oIndividualMemConDataTable.TableName = "FundEssDataSet_MemberBalanceLedger";
DataSet resultDataSet = new DataSet();
resultDataSet.Tables.Add(oIndividualMemConDataTable);
string RDLCName = "HRM.Report.RDLC.rptIndividualMemberConForKCCL.rdlc";
List<ReportParameter> rParamList = new List<ReportParameter>();
ReportParameter rParam = new ReportParameter("OpeningBalance", dOpeningBalance.ToString("#,##0.00"));
rParamList.Add(rParam);
rParam = new ReportParameter("fromDate", fromDate.ToString("dd MMM, yyyy"));
rParamList.Add(rParam);
rParam = new ReportParameter("toDate", toDate.ToString("dd MMM, yyyy"));
rParamList.Add(rParam);
ReportProcessor reportProcessor = new ReportProcessor();
byte[] bytes = null;
bytes = reportProcessor.CommonReportView(null, RDLCName, resultDataSet, null, rParamList, true, 1, reportType);
return Ok(bytes);
}
}
}