using HRM.Report; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using HRM.BO; using System.Net.Http.Headers; using HRM.DA; using System.Data; using Microsoft.Reporting.NETCore; using AutoMapper.Configuration.Conventions; using Org.BouncyCastle.Ocsp; using Microsoft.ReportingServices.Interfaces; using static iTextSharp.text.pdf.AcroFields; using Ubiety.Dns.Core.Common; using NPOI.SS.Formula.Functions; using HRM.BO.Report; using HRM.Report.PayrollDataSet; using Newtonsoft.Json; namespace HRM.UI.Controllers.Report { [Route("api/Report")] [ApiController] [Authorize] public class ReportController : ControllerBase { private readonly IEmployeeService _employeeService; public ReportController(IEmployeeService employeeService) { this._employeeService = employeeService; } #region Employee [HttpPost("getEmpBasicInfo")] public ActionResult getEmpBasicInfo(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string sEmpID = (string)items["empIds"].ToObject(); string empBasicInfo = string.Empty; try { rptEmployee rptEmployee = new rptEmployee(); empBasicInfo = rptEmployee.GetEmpDetails(sEmpID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(empBasicInfo); } #endregion #region CommonReportData [HttpPost("getCommonReportData")] public ActionResult getCommonReportData(dynamic data) { // *** please talk to shamim, if you need to change this function code CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); EnumReportType reportid = (EnumReportType)items["reportid"].ToObject(); int itemid = 0; if (items["itemid"] != null) itemid = (int)items["itemid"].ToObject(); DateTime fromDate = DateTime.Today; DateTime toDate = DateTime.Today; string selectedReport = ""; string sEmpIDs = (string)items["empIds"].ToObject(); if (items["selectedReport"] != null) selectedReport = (string)items["selectedReport"].ToObject(); string reportType = (string)items["reportType"].ToObject(); if (items["fromDate"] != null) fromDate = (DateTime)items["fromDate"].ToObject(); if (items["toDate"] != null) toDate = (DateTime)items["toDate"].ToObject(); int bankId = 0; if (items["bankId"] != null) bankId = (int)items["bankId"].ToObject(); string locationIds = string.Empty; if (items["locationIds"] != null) { locationIds = (string)items["locationIds"].ToObject(); } int loanIssueId = 0; if (items["loanIssueId"] != null) { loanIssueId = (int)items["loanIssueId"].ToObject(); } int locationId = 0; if (items["locationId"] != null) { locationId = (int)items["locationId"].ToObject(); } // ****please talk to shamim, if you need to change this function code // string empBasicInfo = string.Empty; byte[] bytes = null; int employeeId = currentUser.EmployeeID.GetValueOrDefault(); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); DateTime nextPayProcessDate = currentUser.NextPayProcessDate.GetValueOrDefault(); bool isForESS = false; try { switch (reportid) { case EnumReportType.None: break; case EnumReportType.DLP: break; case EnumReportType.Grade: break; case EnumReportType.GradeSegment: break; case EnumReportType.Designations: break; case EnumReportType.Categiries: break; case EnumReportType.Employees: break; case EnumReportType.EmployeePosting: break; case EnumReportType.EmployeeAllInfo: break; case EnumReportType.EmpCostCenter: break; case EnumReportType.BankGuarantee: break; case EnumReportType.EmpIndvidualDetail: break; case EnumReportType.EmpUpcomingInfo: break; case EnumReportType.EmpHistory: break; case EnumReportType.EmpRetirement: break; case EnumReportType.EmpService: break; case EnumReportType.EmpEnvelop: break; case EnumReportType.OTHour: break; case EnumReportType.OTPaySlip: break; case EnumReportType.OTBankAdvice: break; case EnumReportType.OTHourSheet: bytes = new OTReport().OTMonthlySheet((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.EmpServiceBook: bytes = new rptEmployee().EmpServiceBook((int)currentUser.PayrollTypeID, sEmpIDs); break; case EnumReportType.OTMonthRange: break; case EnumReportType.OTBranch: break; case EnumReportType.OTDivision: break; case EnumReportType.OTCostCenter: bytes = new OTReport().OTCostCenter((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.OTBankDisbursement: bytes = new OTReport().OTBankDisbursement((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.BankAdvice: rptBankAdvice rptBankAdvice = new rptBankAdvice(); bytes = rptBankAdvice.ShowNewBankDisbursmentReport((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, bankId, reportType); break; case EnumReportType.NewBankAdvice: rptBankAdvice newRptBankAdvice = new rptBankAdvice(); bytes = newRptBankAdvice.ShowNewBankDisbursmentReport((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, bankId, reportType); break; case EnumReportType.BankAdviceWithRoutingNo: rptBankAdviceWithRoutingNo rptBankAdviceWithRoutingNo = new rptBankAdviceWithRoutingNo(); bytes = rptBankAdviceWithRoutingNo.ShowBankDisbursmentReportWithRoutingNo((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, bankId, reportType); break; case EnumReportType.CashDisbursement: break; case EnumReportType.PayRegister: break; case EnumReportType.OverAllSummary: bytes = new PaySlip().ReportOverAllSummary((int)currentUser.PayrollTypeID, sEmpIDs, fromDate, reportType); break; case EnumReportType.SalaryControl: break; case EnumReportType.PaySlip: if (reportType == "EMAIL") { //bool isForESS = false; //if (sEmpIDs.Length == 0) //{ // isForESS = true; // sEmpIDs = employeeId.ToString(); //} //bytes = new PaySlip().PayslipMail((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, isForESS); } else { if (sEmpIDs.Length == 0) { isForESS = true; sEmpIDs = employeeId.ToString(); } bytes = new PaySlip().ShowReportNew((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, isForESS); } break; case EnumReportType.Envelop: break; case EnumReportType.SalaryReconcil: bytes = new rptSalarySheet().ShowSalaryReconNew(toDate, fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.SalaryReconcilSGS: bytes = new rptSalarySheet().ShowSalaryReconSGS(fromDate, toDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.SalaryReconcilItemWise: break; case EnumReportType.SalaryControl1Page: break; case EnumReportType.IndvSalaryComponent: break; case EnumReportType.ChangeNotes: break; case EnumReportType.ChangeNotesSummary: break; case EnumReportType.CCSalaryDetails: bytes = new rptSalarySheet().ShowDetailSalarySheetByCC((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.CCSalarySummary: bytes = new rptSalarySheet().CCWiseSalarySummary((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.CCSalarySheet: break; case EnumReportType.SalaryComparison: break; case EnumReportType.Memorandum: break; case EnumReportType.SalarySMS: break; case EnumReportType.SalarySheetSummary: rptSalarySheet rptSalarySheet = new rptSalarySheet(); bool bfixedAmount = new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "costcenter", "manadatoryinsalary"); if (bfixedAmount) { bytes = rptSalarySheet.ShowReport((int)currentUser.PayrollTypeID, fromDate, (int)EnumReportType.SalarySheetSummary, sEmpIDs, reportType); } else { bytes = rptSalarySheet.ShowReportWithoutCostcenter((int)currentUser.PayrollTypeID, fromDate, (int)EnumReportType.SalarySheetSummary, sEmpIDs, reportType); } break; case EnumReportType.ExtendedSalarySheet: //bytes = new rptSalarySheet().ShowReportWithoutCostCenterOT((int)currentUser.PayrollTypeID, fromDate, // (int)EnumReportType.SalarySheetSummary, sEmpIDs, reportType); bytes = new rptSalarySheet().ShowExtendedSalarySheet((int)currentUser.PayrollTypeID, fromDate.LastDateOfMonth(), (int)EnumReportType.SalarySheetSummary, sEmpIDs, reportType); break; case EnumReportType.SalarySheetArrear: bytes = new rptSalarySheet().ShowreportForManagement(fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.SalaryWithheldSheetSummary: bytes = new rptSalarySheet().ShowreportForManagement(fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.SalaryBankSummary: break; case EnumReportType.SalaryByMonthAndYear: break; case EnumReportType.SalarySheetForIDLC: break; case EnumReportType.SalarySheetWithOPIItems: break; case EnumReportType.SalarySheetForIDLCWithOPIItems: break; case EnumReportType.PayrollSummary: break; case EnumReportType.BranchWiseSalarySummary: break; case EnumReportType.CostCenterWiseSalaryDetails: break; case EnumReportType.DivisionWiseReport: break; case EnumReportType.DepartmentWiseReport: break; case EnumReportType.CTCDetail: break; case EnumReportType.CCReportToFinance: break; case EnumReportType.CostCenterWiseSummary: break; case EnumReportType.PreRequisite: break; case EnumReportType.CTCComparison: break; case EnumReportType.PromotionSalarySheetDetail: break; case EnumReportType.PromotionSalarySheetSummary: break; case EnumReportType.ChangeInLocation: break; case EnumReportType.JoiningReport: break; case EnumReportType.IncrementDetail: break; case EnumReportType.IncrementSummary: break; case EnumReportType.IncrementComparison: break; case EnumReportType.BranchWiseSalaryDetail: break; case EnumReportType.BranchWiseOPIDetails: break; case EnumReportType.BranchWiseDeductionDetails: break; case EnumReportType.CashAdviceReport: break; case EnumReportType.DivisionWiseSalary: break; case EnumReportType.CostCenterWise: break; case EnumReportType.SalarySheetExtended: break; case EnumReportType.CostInformation: break; case EnumReportType.SalarySheetBuyerWise: break; case EnumReportType.SalarySheetDeptWise: break; case EnumReportType.BanglaPayslip: bytes = new rptEcho().ShowBanglaPaySlip((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, (int)EnumReportType.BanglaPayslip, reportType, (EnumBankCash)itemid); break; case EnumReportType.BuyerWiseBanglaPayslip: break; case EnumReportType.SalaryStracture: break; case EnumReportType.SalaryReconciliationSummary: bytes = new rptSalarySheet().SalaryReconciliationSummary(fromDate, toDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.ItemWiseSalary: List payrollComponentList = new List(); List payrollComponentListtemp = new List(); if (itemid > 0) { payrollComponentList = new PayrollComponentListService().ConstantItemsForSalary((int)currentUser.PayrollTypeID); payrollComponentListtemp = payrollComponentList.Where(x => x.PKID == itemid).ToList(); } bytes = new rptSalarySheet().ItemWiseSalary(GlobalFunctions.FirstDateOfMonth(fromDate), GlobalFunctions.LastDateOfMonth(toDate), payrollComponentListtemp, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.SalaryreconciliationForAllitems: break; case EnumReportType.SalaryCertificate: break; case EnumReportType.EmployeesMasterData: break; case EnumReportType.StuffListWithoutSalary: break; case EnumReportType.StuffAccountWithoutSalary: break; case EnumReportType.SalaryComparisonNew: break; case EnumReportType.AuditReport: break; case EnumReportType.PFLedger: break; case EnumReportType.PFRegister: break; case EnumReportType.PFCertificate: break; case EnumReportType.PFYrlyRegister: break; case EnumReportType.PFTotalInvestment: break; case EnumReportType.ITAnnual: break; case EnumReportType.ITMonthly: break; case EnumReportType.ITRegister: break; case EnumReportType.ITIndividual: break; case EnumReportType.ITInvestment: break; case EnumReportType.ITPerquisite: break; case EnumReportType.ITReport108: RptIncomeTax incomeTax = new RptIncomeTax(); bytes = incomeTax.GetDataReport108(itemid, sEmpIDs, currentUser.PayrollTypeID.GetValueOrDefault(), currentUser.TaxParamID.GetValueOrDefault(), nextPayProcessDate, reportType); break; case EnumReportType.ITReport177: RptIncomeTax rptTaxes = new RptIncomeTax(); bytes = rptTaxes.GetDataReport177(sEmpIDs, currentUser.PayrollTypeID.GetValueOrDefault(), GlobalFunctions.LastDateOfMonth(fromDate), reportType); break; case EnumReportType.EmployeeTaxDetails: break; case EnumReportType.ITReportWithoutProjection: break; case EnumReportType.EmployeesTaxDeducted: break; case EnumReportType.ITReport108onPaidAmount: break; case EnumReportType.TaxInvestment: break; case EnumReportType.TaxChallan: break; case EnumReportType.BonusBankAdvice: bytes = new rptBonus().BonusBankAdvice(itemid, fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.BonusRegister: bytes = new rptBonus().BonusRegister(itemid, fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.PaySlipForBonus: isForESS = false; if (sEmpIDs.Length == 0) { isForESS = true; sEmpIDs = employeeId.ToString(); } //if (string.IsNullOrEmpty(sEmpIDs)) //{ // sEmpIDs = currentUser.EmployeeID.ToString(); //} bytes = new rptBonus().BonusPaySlip(itemid, fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType, isForESS); break; case EnumReportType.LoanIssue: bytes = new LoanReport().MonthlyLoanReport(fromDate, (int)currentUser.PayrollTypeID, reportType, locationIds); break; case EnumReportType.LoanDue: bytes = new LoanReport().LoanPaymentDue(fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.Loan: bytes = new LoanReport().LatestIndividualLoanReport(itemid, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.OutPayslip: break; case EnumReportType.OutPayRegister: break; case EnumReportType.OutCashDisbursementRegister: break; case EnumReportType.OutPayBankAdvice: break; case EnumReportType.OutPaymentRegister: break; case EnumReportType.OutPayLedger: break; case EnumReportType.OutPayEmployeeCost: break; case EnumReportType.DetailOtherPayrollItem: break; case EnumReportType.DeductionReport: break; case EnumReportType.CostCenterWiseOPIDetails: break; case EnumReportType.OPIPayslip: break; case EnumReportType.IDLCOPIRegister: break; case EnumReportType.UnAuthorizedLeave: break; case EnumReportType.EmpWorkingHours: break; case EnumReportType.EmpITInvestment: break; case EnumReportType.MarketSurvey: break; case EnumReportType.URBProvision: break; case EnumReportType.Appraisal: break; case EnumReportType.URBRegister: break; case EnumReportType.URBDetail: break; case EnumReportType.PTCHistry: break; case EnumReportType.FinalSattlement: break; case EnumReportType.BankLetter: break; case EnumReportType.EmployeeHistory: break; case EnumReportType.PermissionList: break; case EnumReportType.ChangeHistry: break; case EnumReportType.PositionWiseSalary: break; case EnumReportType.Payscale: break; case EnumReportType.EmailPayslip: break; case EnumReportType.DailyAttendance: break; case EnumReportType.MonthlyAttendances: break; case EnumReportType.MonthlyLateAtten: break; case EnumReportType.FASSalaryAllocation: break; case EnumReportType.FASSWJV: break; case EnumReportType.PFrevenue: break; case EnumReportType.GL: break; case EnumReportType.DailyInOut: break; case EnumReportType.DailyAbsent: break; case EnumReportType.MonthlyAttendance: break; case EnumReportType.MonthlyDetailAttendance: bytes = new rptEcho().GetMonthlyDetailAttendance(GlobalFunctions.FirstDateOfMonth(fromDate), sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.AttendanceInformation: break; case EnumReportType.DailyInOutAndAbsent: break; case EnumReportType.SingleEmpJobCard: bytes = new AttendanceReport().MonthlyJobCard(fromDate, toDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.MultipleEmpJobCard: bytes = new AttendanceReport().ShowDateRangeJobCardMultiple(fromDate, toDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.AttendanceSummary: bytes = new AttendanceReport().GetAttendanceSummary(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.AttendanceSummaryWithInOut: bytes = new AttendanceReport().GetMonthlyAttendanceReportNew(fromDate, toDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.DailyInOutForBuyer: break; case EnumReportType.DailyAbsentForBuyer: break; case EnumReportType.MonthlyAttendanceForBuyer: break; case EnumReportType.MonthlyDetailAttendanceForBuyer: break; case EnumReportType.JVReport: break; case EnumReportType.EmployeeWiseJVReport: break; case EnumReportType.CCWiseJVReport: break; case EnumReportType.JVSummaryReport: break; case EnumReportType.FinalSettlement: break; case EnumReportType.EmpLifeCycle: break; case EnumReportType.Workflow: break; case EnumReportType.EssTaxCard: RptIncomeTax rptIncomeTax = new RptIncomeTax(); int taxParamId = currentUser.TaxParamID.GetValueOrDefault(); if (sEmpIDs.Length > 0) { employeeId = Convert.ToInt32(sEmpIDs); } bytes = rptIncomeTax.showTaxCard(employeeId, true, itemid, taxParamId, nextPayProcessDate, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.MultipleTaxCard: taxParamId = currentUser.TaxParamID.GetValueOrDefault(); bytes = new RptIncomeTax().ShowMultipleTaxCard(sEmpIDs, true, itemid, taxParamId, nextPayProcessDate, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.MultipleEmpLeaveBalance: MultipleEmpLeaveBalance multipleEmpLeaveBalance = new MultipleEmpLeaveBalance(); bytes = multipleEmpLeaveBalance.ShowMultipleEmpLeaveBalance(itemid, payrollTypeId, sEmpIDs, reportType); break; case EnumReportType.EmpLeaveLedger: bytes = new EmpLeaveLedger().ShowReportNew(sEmpIDs, itemid, payrollTypeId, reportType); break; case EnumReportType.MultipleEmpLeaveLedger: bytes = new EmpLeaveLedger().ShowReport(sEmpIDs, fromDate, toDate, itemid, payrollTypeId, reportType); break; case EnumReportType.CashRegister: bytes = new rptSalarySheet().ShowCashRegisterReport(fromDate, sEmpIDs, payrollTypeId, reportType); break; case EnumReportType.TaxCertificate: bytes = new RptIncomeTax().ShowTaxCertificate(sEmpIDs, itemid, payrollTypeId, currentUser.TaxParamID.GetValueOrDefault(), "PDF"); break; case EnumReportType.HnMEmpLeaveLedger: rptLeave rptLeave = new rptLeave(); bytes = rptLeave.ShowEmployeeWiseLeaveLedger(sEmpIDs, /*fromDate, toDate,*/ itemid, payrollTypeId, reportType); break; case EnumReportType.LeaveRegister: rptLeave = new rptLeave(); if (string.IsNullOrEmpty(sEmpIDs)) { throw new Exception("Select employee"); } bytes = rptLeave.ShowLeaveRegister(sEmpIDs, itemid, bankId, payrollTypeId, reportType); break; case EnumReportType.LeaveEncashmentBankAdvice: rptLeave = new rptLeave(); bytes = rptLeave.ShowLeaveEncashmentReports(sEmpIDs, itemid, selectedReport, payrollTypeId, reportType); break; case EnumReportType.CCWiseLeaveEncashmentReturn: rptLeave = new rptLeave(); bytes = rptLeave.ShowCCWiseLeaveEncashmentReturn(itemid, payrollTypeId, reportType); break; case EnumReportType.DigitalServiceBook: bytes = new rptDigitalServiceBook().DigitalServiceBook(currentUser.EmployeeID.HasValue ? currentUser.EmployeeID.Value : 0, (int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.SalaryAllocationReportEmployeeWise: bytes = new rptJV().showJVSalaryDetailEmployeeWReport(1, GlobalFunctions.LastDateOfMonth(fromDate), null, payrollTypeId, reportType); break; case EnumReportType.SalaryAllocationReportCostCenterWise: //if (locationIds.Length > 1) //{ // throw new Exception("Select Single Locaion"); // Convert.ToInt32(locationIds); //} bytes = new rptJV().showJVLoactionWReport(1, GlobalFunctions.LastDateOfMonth(fromDate), null, payrollTypeId, reportType); break; case EnumReportType.SalaryAllocationSummaryReport: bytes = new rptJV().showJVSummaryReport(1, GlobalFunctions.LastDateOfMonth(fromDate), locationId, payrollTypeId, reportType); break; case EnumReportType.PaySlipEcho: if (reportType == "EMAIL") { //bool isForESS = false; //if (sEmpIDs.Length == 0) //{ // isForESS = true; // sEmpIDs = employeeId.ToString(); //} //bytes = new PaySlip().PayslipMail((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, isForESS); } else { if (sEmpIDs.Length == 0) { isForESS = true; sEmpIDs = employeeId.ToString(); } bytes = new rptEcho().ShowPaySlipEcho((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, isForESS); } break; case EnumReportType.EchoSalarySheet: bytes = new rptEcho().ShowSalarySheet((int)currentUser.PayrollTypeID, fromDate, (int)EnumReportType.EchoSalarySheet, sEmpIDs, reportType); break; case EnumReportType.SalarySheetEcho: break; case EnumReportType.SalarySheetEchoNew: bytes = new rptEcho().ShowSalarySheetEchoNew((int)currentUser.PayrollTypeID, fromDate, (int)EnumReportType.EchoSalarySheet, sEmpIDs, reportType); break; case EnumReportType.BanglaPaySlipEcho: bytes = new rptEcho().ShowBanglaPaySlip((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, (int)EnumReportType.BanglaPayslip, reportType, (EnumBankCash)itemid); break; case EnumReportType.BankAdviceEcho: bytes = new rptEcho().ShowBankAdviceReportEcho((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, bankId, reportType); break; case EnumReportType.CashAdviceEcho: break; case EnumReportType.ItemWiseSalaryEcho: break; case EnumReportType.OverallSummaryEcho: break; case EnumReportType.SalaryReconEcho: break; case EnumReportType.SalaryReconSummaryEcho: break; case EnumReportType.MultipleEmployeeJobCardEcho: bytes = new rptEcho().ShowJobCardMultiple(fromDate, toDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.DailyPresentEcho: bytes = new rptEcho().ShowDailyPresent(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.DailyAbsentEcho: bytes = new rptEcho().ShowDailyAbsent(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.OtBankDisbursementHnm: bytes = new rptHnm().OTBankDisbursementHnm((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.BonusRegisterHnm: bytes = new rptHnm().BonusRegisterHNM(itemid, fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.BankAdviceSalaryHnm: bytes = new rptHnm().ShowNewBankDisbursmentReport((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, bankId, reportType); break; case EnumReportType.BonusBankAdviceHnm: bytes = new rptHnm().BonusBankAdvice(itemid, fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.OpiBankDisbursementHnm: bytes = new rptHnm().OpiBankDisbursementHnm((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, bankId, reportType); break; case EnumReportType.OpiRegisterForTotalValue: bytes = new rptHnm().OpiRegisterForTotalValue((int)currentUser.PayrollTypeID, fromDate, toDate, sEmpIDs, itemid, reportType); break; case EnumReportType.AttendanceInformationEcho: bytes = new rptEcho().GetEmpAttenInfo((int)currentUser.PayrollTypeID, sEmpIDs, reportType); break; case EnumReportType.DailyInOutEcho: bytes = new rptEcho().ShowDailyInOut(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.DailyAttnSummaryEcho: bytes = new rptEcho().ShowDailyAttnSummary(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.InOutMissingEcho: bytes = new rptEcho().ShowInOutMissing(fromDate, toDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.MonthlyKpiEcho: bytes = new rptEcho().ShowMonthlyKPI(fromDate, toDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.EmployeeBasicInformationSGS: bytes = new rptEmployee().GetEmpBasicInfo(sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.EmployeeCurrentPostingDetailSGS: bytes = new rptEmployee().GetEmpPostings(sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.EmployeesCostAllocationDetailsSGS: bytes = new rptEmployee().GetCostAllocationDetails(fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.EmployeesCostInformationDetailsSGS: bytes = new rptEmployee().ShowCCInformation(fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.ShowItInvestmentSGS: bytes = new RptIncomeTax().ShowITPfAndOtherDetails(reportType, sEmpIDs, (int)currentUser.PayrollTypeID, (int)currentUser.TaxParamID); break; case EnumReportType.CCSalaryDetailsSGS: bytes = new rptSalarySheet().ShowDetailSalarySheetByCC((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.CCSalarySummarySGS: bytes = new rptSalarySheet().CCWiseSalarySummary((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType); break; case EnumReportType.EmployeeWiseCardInfoEcho: bytes = new rptEmployee().EmployeeWiseCardInfo((int)currentUser.PayrollTypeID, sEmpIDs, reportType); break; case EnumReportType.SingleJobCardLiNFunf: bytes = new AttendanceReport().ShowDateRangeJobCardSingleForLiFung(fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.MultipleEmployeeJobCardLiNFunf: bytes = new AttendanceReport().ShowDateRangeJobCardMultipleForLiFung(fromDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; case EnumReportType.DailyPresentLiFung: bytes = new AttendanceReport().DailyPresentForLiFung(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.DailyAbsentLiFung: bytes = new AttendanceReport().DailyAbsentForLiFung(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.DailyOddLiFung: bytes = new AttendanceReport().DailyOddForLiFung(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.DailyAttnLiFung: bytes = new AttendanceReport().DailyAttnForLiFung(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.AttendanceSummaryLiFung: bytes = new AttendanceReport().GetAttendanceSummaryForLiFung(fromDate, sEmpIDs, reportType, (int)currentUser.PayrollTypeID); break; case EnumReportType.CostCenterWiseSalaryDetailsHNM: bytes = new rptHnm().ShowSalarySheetReportByCC((int)currentUser.PayrollTypeID, fromDate, sEmpIDs, reportType, (int)EnumReportType.CostCenterWiseSalaryDetailsHNM); break; case EnumReportType.TaxPerquisite: RptIncomeTax rptTax = new RptIncomeTax(); bytes = rptTax.ShowTaxPerquisite(fromDate, toDate, sEmpIDs, (int)currentUser.PayrollTypeID, reportType); break; default: break; } } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } //fdata.CopyTo(ms); //item.fileData = ms.ToArray(); //byte[] textAsBytes = ms.ToArray(); //this._hrEmployeeService.uplaodFile(item); //string base64String = Convert.ToBase64String(bytes); //Add default file name that can be used by client code for both MIME transfer and AJAX Blob. return Ok(bytes); // return Ok(File(bytes, "application/pdf")); } [HttpPost("getExceptionReport")] public ActionResult GetExceptionReport(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int itemId = (int)items["itemId"].ToObject(); DateTime fromDate = (DateTime)items["fromDate"].ToObject(); string reportType = (string)items["reportType"].ToObject(); DateTime toDate = (DateTime)items["toDate"].ToObject(); int subItemId = (int)items["subItemId"].ToObject(); string subItemName = (string)items["subItemName"].ToObject(); byte[] bytes = null; int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); ReportProcessor reportProcessor = new ReportProcessor(); rptEmployee rptEmp = new rptEmployee(); DataSet resultDataSet = new DataSet(); try { switch (itemId) { case 1: // Employee Joining DataTable ds = rptEmp.GetEmpJoining(fromDate, toDate, payrollTypeId); bytes = reportProcessor.ShowForEmpJoiningExceptionReport(null, ds, fromDate.ToString("dd MMM yyyy") + " - " + toDate.ToString("dd MMM yyyy"), payrollTypeId, reportType); break; case 2: // Discontinue DataTable oEmpHis = rptEmp.GetEmpHistories(fromDate, toDate, payrollTypeId); bytes = reportProcessor.ShowForDiscontinueExceptionReport(null, oEmpHis, payrollTypeId, reportType); break; case 3: // Basic And Grade DataTable basicGrade = rptEmp.GetEmpPromotion(fromDate, toDate, payrollTypeId); //DataTable basicGrade = rptEmp.GetEmpBasicGrade(fromDate, toDate, payrollTypeId); bytes = reportProcessor.ShowForBasicAndGradeReport(null, basicGrade, payrollTypeId, reportType); break; case 4: // Designation Change DataTable designationChange = rptEmp.GetDesignationChange(fromDate, toDate, payrollTypeId); bytes = reportProcessor.ShowForDesignationExceptionReport(null, designationChange, payrollTypeId, reportType); break; case 6: // Allowance DataTable allowance = rptEmp.GetEmpAllowDeduct(fromDate, toDate, subItemId, subItemName + " Allowance", payrollTypeId); bytes = reportProcessor.ShowForEmpAllowDeduct(null, allowance, fromDate, toDate, payrollTypeId, reportType); break; case 7: // Deduction DataTable deduction = rptEmp.GetEmpAllowDeduct(fromDate, toDate, subItemId, subItemName + " Deduction", payrollTypeId); bytes = reportProcessor.ShowForEmpAllowDeduct(null, deduction, fromDate, toDate, payrollTypeId, reportType); break; case 8: // Bank Advice bytes = new rptEmployee().GetEmpBankHistory(fromDate, toDate, payrollTypeId, reportType); //bytes = reportProcessor.ShowDlgForEmpBankHistory(null, bankAccount, fromDate, toDate, payrollTypeId, reportType); break; case 9: // Employee Continue From Discontinue bytes = new rptEmployee().GetAllTransferDataForContinueFromDiscontinue(fromDate, toDate, payrollTypeId, reportType); break; case 10: // Employee Cost Center Allocation bytes = new rptEmployee().ShowCCInformationByMonth(fromDate, toDate, payrollTypeId, reportType); break; case 11: //PF And Confirmation bytes = new rptEmployee().PrepareDataForExceptionPFandConfirmation(fromDate, toDate, payrollTypeId, reportType); break; default: break; } } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } #endregion #region Production Bonus Report [HttpPost("getProductionBonusReport")] public ActionResult getProductionBonusReport(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int itemId = (int)items["itemId"].ToObject(); DateTime salaryMonth = (DateTime)items["salaryMonth"].ToObject(); string reportType = (string)items["reportType"].ToObject(); int designId = (int)items["designId"].ToObject(); //int subItemId = (int)items["subItemId"].ToObject(); //string subItemName = (string)items["subItemName"].ToObject(); byte[] bytes = null; int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); rptBonus rptBonus = new rptBonus(); try { switch (itemId) { case 1: // Monthly_Production_Bonus bytes = rptBonus.MonthlyProdBonus(salaryMonth, payrollTypeId, reportType); break; case 2: // Employee and Design Wise bytes = rptBonus.EmpDesignWiseProdBonus(salaryMonth, payrollTypeId, reportType); break; case 3: // Production Bonus Detail bytes = rptBonus.ProdBonusDetail(designId, salaryMonth, payrollTypeId, reportType); break; case 4: // Design Wise Prod Bonus Attendance bytes = rptBonus.DesignWiseProdBonusAttendance(designId, salaryMonth, payrollTypeId, reportType); break; default: break; } } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } #endregion Production Bonus Report [HttpGet("getEstimatedConfirmation")] public ActionResult GetEstimatedConfirmation() { DataSet ds = new DataSet(); try { ds = _employeeService.GetEstimatedConfirmationReport(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(ds); } [HttpGet("getEstimatedRetirement")] public ActionResult GetEstimatedRetirement() { DataSet ds = new DataSet(); try { ds = _employeeService.GetEstimatedRetirementReport(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(ds); } [HttpGet("getListOfPromotion")] public ActionResult GetListOfPromotion() { DataSet ds = new DataSet(); try { ds = _employeeService.GetListOfPromotion(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(ds); } [HttpGet("getListOfTransfer")] public ActionResult GetListOfTransfer() { DataSet ds = new DataSet(); try { ds = _employeeService.GetListOfTransfer(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(ds); } [HttpGet("getJobSeparationList")] public ActionResult GetJobSeparationList() { DataSet ds = new DataSet(); try { ds = _employeeService.GetJobSeparationList(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(ds); } [HttpGet("getConfirmedEmployeeList")] public ActionResult GetConfirmedEmployeeList() { DataSet ds = new DataSet(); try { ds = _employeeService.GetConfirmedEmployeeList(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(ds); } [HttpPost("getFstranReportCalculation")] public ActionResult GetFstranReportCalculation(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int itemId = (int)items["tranId"].ToObject(); byte[] bytes = null; ReportProcessor reportProcessor = new ReportProcessor(); rptFSTran rptFstran = new rptFSTran(); try { bytes = rptFstran.ShowFSPaymentCalculationReport(itemId, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getEmpConfirmData")] public ActionResult GetEmpConfirmData(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); DateTime confirmationDate = DateTime.Today; if (items["confirmationDate"] != null) confirmationDate = (DateTime)items["confirmationDate"].ToObject(); byte[] bytes = null; rptEmployee rptEmployee = new rptEmployee(); try { bytes = rptEmployee.EmployeeConfirmationReport(confirmationDate, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } #region Attendance [HttpPost("getPaymentAdviceReportData")] public ActionResult getPaymentAdviceReportData(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int itemid = 0; if (items["settlementAdviceId"] != null) itemid = (int)items["settlementAdviceId"].ToObject(); string reportType = (string)items["reportType"].ToObject(); //string reportType = null; int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); byte[] bytes = null; try { bytes = new rptFSTran().ShowReport(itemid, reportType, payrollTypeId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } #endregion #region assetReport [HttpPost("getAssetAcknowledgementReport")] public ActionResult GetAssetAcknowledgementReport(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int itemid = (int)items["itemid"].ToObject(); int employeeid = (int)items["employeeid"].ToObject(); byte[] bytes = null; ReportProcessor reportProcessor = new ReportProcessor(); rptAssetSerial rptAssetSerial = new rptAssetSerial(); try { bytes = rptAssetSerial.GetAssetAcknowledgementdata(itemid, "PDF", (int)currentUser.PayrollTypeID, employeeid); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } #endregion [HttpPost("exportCSVReportData")] public ActionResult exportCSVReportData(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); EnumReportType reportid = (EnumReportType)items["reportid"].ToObject(); int itemid = 0; if (items["itemid"] != null) itemid = (int)items["itemid"].ToObject(); DateTime fromDate = DateTime.Today; DateTime toDate = DateTime.Today; string selectedReport = ""; string sEmpIDs = (string)items["empIds"].ToObject(); if (items["selectedReport"] != null) selectedReport = (string)items["selectedReport"].ToObject(); string reportType = (string)items["reportType"].ToObject(); if (items["fromDate"] != null) fromDate = (DateTime)items["fromDate"].ToObject(); if (items["toDate"] != null) toDate = (DateTime)items["toDate"].ToObject(); int bankId = 0; if (items["bankId"] != null) bankId = (int)items["bankId"].ToObject(); string locationIds = string.Empty; if (items["locationIds"] != null) { locationIds = (string)items["locationIds"].ToObject(); } int loanIssueId = 0; if (items["loanIssueId"] != null) { loanIssueId = (int)items["loanIssueId"].ToObject(); } // string empBasicInfo = string.Empty; byte[] bytes = null; int employeeId = currentUser.EmployeeID.GetValueOrDefault(); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); DateTime nextPayProcessDate = currentUser.NextPayProcessDate.GetValueOrDefault(); bool isForESS = false; DataTable dt = null; try { switch (reportid) { case EnumReportType.BankAdvice: //rptBankAdvice rptBankAdvice = new rptBankAdvice(); //bytes = rptBankAdvice.ShowNewBankDisbursmentReport((int)currentUser.PayrollTypeID, fromDate, // sEmpIDs, bankId, reportType); if (sEmpIDs == "") throw new Exception("Please Select Employee to Export"); DataTable oEmpBankAcc = new EmployeeBankAccountService().GetEmpBankAdvice2(GlobalFunctions.LastDateOfMonth(fromDate), sEmpIDs); dt = oEmpBankAcc; break; case EnumReportType.BonusBankAdvice: if (sEmpIDs == "") throw new Exception("Please Select Employee to Export"); DataTable oBonusBankAdvice = (new BonusProcessService().GetBonusBankAdvice(itemid, GlobalFunctions.LastDateOfMonth(fromDate), sEmpIDs, payrollTypeId)).Tables[0]; dt = oBonusBankAdvice; break; default: break; } } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } //fdata.CopyTo(ms); //item.fileData = ms.ToArray(); //byte[] textAsBytes = ms.ToArray(); //this._hrEmployeeService.uplaodFile(item); //string base64String = Convert.ToBase64String(bytes); //Add default file name that can be used by client code for both MIME transfer and AJAX Blob. return Ok(dt); // return Ok(File(bytes, "application/pdf")); } [HttpGet("GetLocationsByTier2")] public ActionResult GetByTier(int employeeID) { try { List oLocations = new LocationService().GetByTier(2); return Ok(oLocations); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } [HttpPost("getLeaveEncashmentData")] public ActionResult getLeaveEncashmentData(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); string sEmpIDs = (string)items["empIds"].ToObject(); DateTime encashDate = (DateTime)items["encashDate"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new rptHnm().LeaveEncashmentSeparation(sEmpIDs, reportType, encashDate, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getCCWisePFNewMemberWithAmount")] public ActionResult getCCWisePFNewMemberWithAmount(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); int locationId = (int)items["locationIds"].ToObject(); DateTime pfMonth = (DateTime)items["pfMonth"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new rptHnm().CCWisePFNewMemberWithAmount(locationId, reportType, pfMonth, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getEmployeeMaternityLeaveReport")] public ActionResult getEmployeeMaternityLeaveReport(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int empId = (int)items["employeeID"].ToObject(); string employeeShift = (string)items["employeeShift"].ToObject(); string reportType = (string)items["reportType"].ToObject(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // string empBasicInfo = string.Empty; byte[] bytes = null; try { bytes = new rptEmpMaternityReport().getEmployeeMaternityLeaveReport(empId, employeeShift, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getLeaveApplication")] public ActionResult getLeaveApplication(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int empId = (int)items["employeeID"].ToObject(); //string reportType = (string)items["reportType"].ToObject(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // string empBasicInfo = string.Empty; int payrolltypeID = (int)currentUser.PayrollTypeID; DateTime NextPayProcessDate = (DateTime)currentUser.NextPayProcessDate; byte[] bytes = null; try { bytes = new rptLeave().getLeaveApplication(empId, payrolltypeID, NextPayProcessDate); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getAppointmentLetter")] public ActionResult getAppointmentLetter(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int empId = (int)items["employeeID"].ToObject(); HREmployee employee = new HREmployeeService().Get(empId); string report = (string)items["employeeType"].ToObject(); bool isPhotoNeeded = false; //string reportType = (string)items["reportType"].ToObject(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // string empBasicInfo = string.Empty; int payrolltypeID = (int)currentUser.PayrollTypeID; DateTime NextPayProcessDate = (DateTime)currentUser.NextPayProcessDate; byte[] bytes = null; try { bytes = new rptEmployee().CollectDataForBanglaAppointment(employee, report, isPhotoNeeded); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getCostCenterWiseOpiData")] public ActionResult getCostCenterWiseOpiData(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); DateTime fromDate = (DateTime)items["fromDate"].ToObject(); int opiItemCode = (int)items["opiItemCode"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new rptHnm().CostCenterWiseOpi(reportType, fromDate, opiItemCode, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getCostCenterWiseBonusReportData")] public ActionResult getCostCenterWiseBonusReportData(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); DateTime fromDate = (DateTime)items["fromDate"].ToObject(); string bonusTypeName = (string)items["bonusTypeName"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new rptHnm().CostCenterWiseBonusSummary(reportType, fromDate, bonusTypeName, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getIdCardPrint")] public ActionResult getIdCardPrint(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); string sEmpIDs = (string)items["empIds"].ToObject(); //comma seperated int authorizedPerson = (int)items["selectedAuthorizePersonid"].ToObject(); int reportCategory = (int)items["selectedReportTypeid"].ToObject(); DateTime issueDate = (DateTime)items["issueDate"].ToObject(); string expireYear = (string)items["expireYear"].ToObject(); byte[] bytes = null; // CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { string RDLC = string.Empty; if (reportCategory == 1) { RDLC = "IDCardPrint.rdlc"; bytes = new AttendanceReport().ShowEmpCardInfoPerPage(sEmpIDs, authorizedPerson, RDLC, true, expireYear, issueDate, reportCategory);//EmpSign and EmpPhoto Hardcoded as the data not available in database } else if (reportCategory == 2) { RDLC = "IDCardBothSidePrint.rdlc"; bytes = new AttendanceReport().ShowEmpCardInfoPerPage(sEmpIDs, authorizedPerson, RDLC, true, expireYear, issueDate, reportCategory); } else if (reportCategory == 3) { RDLC = "IDCardPrintBangla.rdlc"; bytes = new AttendanceReport().ShowEmpCardInfoPerPageBangla(sEmpIDs, authorizedPerson, RDLC, true, expireYear, issueDate); } else if (reportCategory == 4) { RDLC = "IDCardBothSidePrintBangla.rdlc"; bytes = new AttendanceReport().ShowEmpCardInfoPerPageBangla(sEmpIDs, authorizedPerson, RDLC, true, expireYear, issueDate); } } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getUpComingConfirmationEmployee")] public ActionResult getUpComingConfirmationEmployee(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); int dayCount = (int)items["dayCount"].ToObject(); DateTime fromDate = (DateTime)items["fromDate"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new rptEmployee().GetUpCommingEmpConfirmationForRekit(reportType, fromDate, dayCount, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getOtMonthRange")] public ActionResult getOtMonthRange(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); DateTime fromDate = (DateTime)items["fromDate"].ToObject(); DateTime toDate = (DateTime)items["toDate"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new OTReport().OTMonthRange(reportType, fromDate, PayrollGlobalFunctions.PayrollLastDateOfMonth(toDate), (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getOtBranchWise")] public ActionResult getOtBranchWise(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); DateTime fromDate = (DateTime)items["fromDate"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new OTReport().OTBranchWise(reportType, fromDate, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getOtDivisionWise")] public ActionResult getOtDivisionWise(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); DateTime fromYear = (DateTime)items["fromDate"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new OTReport().OTLocationWise(reportType, fromYear, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getPRBCalculationSGS")] public ActionResult getPRBCalculationSGS(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int empId = (int)items["employeeId"].ToObject(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); byte[] bytes = null; try { DateTime prbYear = (DateTime)items["prbYear"].ToObject(); bytes = new rptBonus().PRBBonusCalculation(empId, prbYear); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpGet("getMaternityLeaveReport/{id}")] public ActionResult getMaternityLeaveReport(int id) { //var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); //int empId = (int)items["employeeId"].ToObject(); MaternityLeave maternityLeave = new MaternityLeaveService().Get(id); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); byte[] bytes = null; try { bytes = new rptLeave().GetMaternityLeaveReport(maternityLeave, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpGet("showTaxCardMaternityLeave/{employeeId}")] public ActionResult showTaxCardMaternityLeave(int employeeId) { //var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); //int employeeId = (int)items["employeeId"].ToObject(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); byte[] bytes = null; try { bytes = new RptIncomeTax().showTaxCard(employeeId, true, currentUser.TaxParamID.GetValueOrDefault(), currentUser.TaxParamID.GetValueOrDefault(), currentUser.NextPayProcessDate.GetValueOrDefault(), (int)currentUser.PayrollTypeID, "PDF"); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getPFLedgerDataForReport")] public ActionResult getPFLedgerDataForReport(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); int sEmpID = (int)items["empID"].ToObject(); DateTime fromDate = (DateTime)items["fromDate"].ToObject(); DateTime toDate = (DateTime)items["toDate"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new rptHnm().GetPFLedger(sEmpID, reportType, fromDate, toDate, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getPFExceptionReport")] public ActionResult getPFExceptionReport(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); string sEmpID = (string)items["empIds"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new rptHnm().getPFExceptionReport(sEmpID, reportType, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getCandidateInterviewAssesment")] public ActionResult getCandidateInterviewAssesment(dynamic data) { InterviewSession obs = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int interviewSessionId = (int)items["interviewSessionId"].ToObject(); byte[] bytes = null; try { obs = new RecruitementProcessService().GetInterveiwSessionReport(interviewSessionId); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); rptCandidateInfo rptcInfo = new rptCandidateInfo(); bytes = rptcInfo.GetCandidatedata(obs, payrollTypeId); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(bytes); } [HttpPost("getCCWiseSalarySummary")] public ActionResult getCCWiseSalarySummary(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string reportType = (string)items["reportType"].ToObject(); bool nonexpat = (bool)items["nonexpat"].ToObject(); DateTime salaryMonth = (DateTime)items["salaryMonth"].ToObject(); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { bytes = new rptHnm().CCWiseSalarySummary((int)currentUser.PayrollTypeID, reportType, nonexpat, salaryMonth); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } [HttpPost("getPMSReportData/{pmpYearID}/{pmsReportType}")] public ActionResult getPMSReportData(int pmpYearID, int pmsReportType, List emps) { DataSet ds = new DataSet(); try { ds = new ObjectiveService().getPMSReportData(pmpYearID, pmsReportType, SearchEmployee.getEmpID(emps)); //switch (pmsReportType) //{ // case 1: // break; // case 2: // break; // default: // break; //} } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ds.Tables[0]); } [HttpPost("getAttendanceReport/{reportType}")] public ActionResult getAttendanceReport(List data, string reportType) { var json = JsonConvert.SerializeObject(data); DataTable dataTable = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable))); byte[] bytes = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); ReportProcessor reportProcessor = new ReportProcessor(); try { bytes = reportProcessor.getAttendanceReport(null, dataTable, payrollTypeId, reportType); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(bytes); } } }