/// <summary> /// Reprint Data and get document list for printing /// </summary> /// <param name="data"></param> /// <returns></returns> public ActionResult CMS460_ReprintData(CMS460_ScreenInputValidate data) { ObjectResultData res = new ObjectResultData(); try { //Check permission if (!CheckUserPermission(ScreenID.C_SCREEN_ID_REPRINT_BILLING_RELATED_DOCUMENT, FunctionID.C_FUNC_ID_VIEW) == false) { res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0007); return(Json(res)); } //Check Require field if (ModelState.IsValid == false) { res.MessageType = MessageModel.MESSAGE_TYPE.WARNING; ValidatorUtil.BuildErrorMessage(res, this); return(Json(res)); } IDocumentHandler handler = ServiceContainer.GetService <IDocumentHandler>() as IDocumentHandler; ILogHandler WriteLog = ServiceContainer.GetService <ILogHandler>() as ILogHandler; ICommonHandler comHandler = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler; //Add by Jutarat A. on 17092013 List <dtDocumentListForPrining> lst = handler.GetDocumentListForPrining(DocumentType.C_DOCUMENT_TYPE_INCOME, DocumentType.C_DOCUMENT_TYPE_COMMON, data.IssueDate, data.ManagementNoFrom, data.ManagementNoTo); if (lst == null || lst.Count <= 0) { res.ResultData = false; res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0001); return(Json(res)); } else { //WriteLog.SearchFoxitProcess("CMS460"); //Add by Jutarat A. on 20082013 //Add by Jutarat A. on 17092013 string strErrorMessage = string.Empty; bool bResult = comHandler.AllocatePrintingProcess(PrintingFlag.C_PRINTING_FLAG_CMS460, ScreenID.C_SCREEN_ID_REPRINT_BILLING_RELATED_DOCUMENT, ref strErrorMessage); if (bResult) //End Add { foreach (dtDocumentListForPrining doclist in lst) { // doDocumentDownloadLog doDocumentDownloadLog cond = new doDocumentDownloadLog(); cond.DocumentNo = doclist.DocumentNo; cond.DocumentCode = doclist.DocumentCode; cond.DocumentOCC = doclist.DocumentOCC; cond.DownloadDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime; cond.DownloadBy = CommonUtil.dsTransData.dtUserData.EmpNo; int isSuccess = WriteLog.WriteDocumentDownloadLog(cond); if (doclist.DocumentCode == ReportID.C_REPORT_ID_ISSUE_LIST) { // print per page string temPath = PathUtil.GetTempFileName(".pdf"); FileInfo fileInfo = new FileInfo(temPath); if (Directory.Exists(fileInfo.DirectoryName) == false) { Directory.CreateDirectory(fileInfo.DirectoryName); } int?PageFrom = 0; int?PageTo = 0; if (data.ManagementNoTo <= doclist.MaxManagementNo) { if (data.ManagementNoFrom < doclist.MinManagementNo) { PageFrom = 1; PageTo = (data.ManagementNoTo - doclist.MinManagementNo) + 1; } else { PageFrom = (data.ManagementNoFrom - doclist.MinManagementNo) + 1; PageTo = (data.ManagementNoTo - doclist.MinManagementNo) + 1; } } else { if (data.ManagementNoFrom < doclist.MinManagementNo) { PageFrom = 1; PageTo = (doclist.MaxManagementNo - doclist.MinManagementNo) + 1; } else { PageFrom = (data.ManagementNoFrom - doclist.MinManagementNo) + 1; PageTo = (doclist.MaxManagementNo - doclist.MinManagementNo) + 1; } } bool iSuccess = ReportUtil.PDFSplitPage(doclist.FilePathDocument, (PageFrom ?? 0), (PageTo ?? 0), temPath); if (iSuccess) { //PrintPDF(temPath); comHandler.PrintPDF(temPath); //Modify by Jutarat A. on 17092013 } System.IO.File.Delete(temPath); } else { FileInfo fileInfo = new FileInfo(doclist.FilePathDocument); if (fileInfo.Exists) { //PrintPDF(doclist.FilePathDocument); comHandler.PrintPDF(doclist.FilePathDocument); //Modify by Jutarat A. on 17092013 } } } bResult = comHandler.ResetPrintingProcess(ProcessID.C_PROCESS_ID_PRINTING_SERVICE); //Add by Jutarat A. on 17092013 } //Add by Jutarat A. on 17092013 else { res.ResultData = false; res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0160); return(Json(res)); } //End Add } } catch (Exception ex) { res.AddErrorMessage(ex); return(Json(res)); } return(Json(res)); }