public ActionResult IVS283_GenerateReport(doIVS283SearchCondition reportParam) { IVS283_ScreenParameter param = GetScreenObject <IVS283_ScreenParameter>(); ObjectResultData res = new ObjectResultData(); res.MessageType = MessageModel.MESSAGE_TYPE.WARNING; try { if (reportParam == null || reportParam.InstrumentCodeSelected == null || reportParam.InstrumentCodeSelected.Length == 0) { res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0006); } else { if (param.LastSearchParam == null) { param.LastSearchParam = reportParam; } IInventoryHandler service = ServiceContainer.GetService <IInventoryHandler>() as IInventoryHandler; var lst = service.GetStockReport_Movement(param.LastSearchParam.ReportType, string.Join(",", reportParam.InstrumentCodeSelected), reportParam.YearMonth); IInventoryDocumentHandler docService = ServiceContainer.GetService <IInventoryDocumentHandler>() as IInventoryDocumentHandler; param.PendingDownloadFilePath = docService.GenerateIVS283MovementReport(param.LastSearchParam.ReportType, lst); param.PendingDownloadFileName = "MovementReport.xlsx"; res.ResultData = true; } } catch (Exception ex) { res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION; res.AddErrorMessage(ex); } return(Json(res)); }