Exemple #1
0
        /// <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));
        }