private void PrintPFIMailers(PFIMailerOption pfiMailerOption) { //Create output variables string errorCode; string errorText; var businessRulesProcedures = new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession); var pfiMailerAdjustmentDays = businessRulesProcedures.GetNumberOfDaysToAddForPFIMailer(GlobalDataAccessor.Instance.CurrentSiteId); var pfiMailerList = new List <ReportObject.PFIMailer>(); var pfiMailerFilesToDeleteList = new List <String>(); var retVal = false; switch (pfiMailerOption) { case PFIMailerOption.PrintPFIMailers: retVal = PawnProcedures.ExecuteGetPFIMailerData(GlobalDataAccessor.Instance.OracleDA, pfiMailerOption, out pfiMailerList, out errorCode, out errorText, pfiMailerAdjustmentDays, pfiDate: ShopDateTime.Instance.ShopDate); break; case PFIMailerOption.ReprintMailbook: retVal = PawnProcedures.ExecuteGetPFIMailerData(GlobalDataAccessor.Instance.OracleDA, pfiMailerOption, out pfiMailerList, out errorCode, out errorText, pfiDate: Utilities.GetDateTimeValue(this.dateReprintMailbook.SelectedDate)); break; case PFIMailerOption.ReprintPFIMailersByDate: retVal = PawnProcedures.ExecuteGetPFIMailerData(GlobalDataAccessor.Instance.OracleDA, pfiMailerOption, out pfiMailerList, out errorCode, out errorText, pfiDate: Utilities.GetDateTimeValue(this.dateReprintMailers.SelectedDate)); break; case PFIMailerOption.ReprintPFIMailersByTicket: retVal = PawnProcedures.ExecuteGetPFIMailerData(GlobalDataAccessor.Instance.OracleDA, pfiMailerOption, out pfiMailerList, out errorCode, out errorText, startTicketNumber: Utilities.GetIntegerValue(this.txtBeginTicket.Text), endTicketNumber: Utilities.GetIntegerValue(this.txtEndTicket.Text), pfiDate: Utilities.GetDateTimeValue(this.dateTicketRange.SelectedDate)); break; case PFIMailerOption.GetTodaysPrintedPFIMailerTickets: retVal = PawnProcedures.ExecuteGetPFIMailerData( GlobalDataAccessor.Instance.OracleDA, pfiMailerOption, out pfiMailerList, out errorCode, out errorText, pfiDate: Utilities.GetDateTimeValue(this.dateTicketRange.SelectedDate)); break; default: System.Diagnostics.Debug.Assert(false, "Unexpected Default case. Forget to add handler?"); break; } if (retVal) { if (pfiMailerOption == PFIMailerOption.GetTodaysPrintedPFIMailerTickets) { if (pfiMailerList.Count > 0) { txtBeginTicket.Text = pfiMailerList[0].ticketNumber.ToString(); txtEndTicket.Text = pfiMailerList[pfiMailerList.Count - 1].ticketNumber.ToString(); } } else if (pfiMailerOption == PFIMailerOption.ReprintMailbook) { PrintMailingBook(pfiMailerFilesToDeleteList, pfiMailerList); MessageBox.Show(@"PFI Mailbook Printing Complete"); } else { if (DisplayPrintPFIMailersConfirmationBox(pfiMailerList.Count, PFIMailerOption.ReprintPFIMailersByTicket == pfiMailerOption)) { if (pfiMailerList.Count > 0) { var mailFee = businessRulesProcedures.GetPFIMailerFee(GlobalDataAccessor.Instance.CurrentSiteId); var ticketNumberList = new List <int>(); var originalPFINoteList = new List <DateTime>(); var pfiEligibleDateList = new List <DateTime>(); var pfiMailerFileNamesToMerge = new List <String>(); var recordCount = 1; foreach (var pfiMailer in pfiMailerList) { var pfiMailerLocal = pfiMailer; if (pfiMailerOption == PFIMailerOption.PrintPFIMailers) // Spec Change //pfiMailerOption == PFIMailerOption.ReprintPFIMailersByTicket || //pfiMailerOption == PFIMailerOption.ReprintPFIMailersByDate) { // pfiMailerLocal.pfiEligibleDate = GetPFIEligibleDate(); //process pfi eligible date adjustment if (ShopDateTime.Instance.ShopDate > pfiMailerLocal.originalPFINote) { // Special Rule PWN_BR-33 Adjustment pfiMailerLocal.pfiEligibleDate = GetPFIDateAdjustmentRule33(pfiMailerLocal.pfiEligibleDate); } //PawnProcedures.ExecuteUpdatePFIMailerData( // GlobalDataAccessor.Instance.OracleDA, // out errorCode, // out errorText, // pfiMailerLocal.storeNumber, // pfiMailerLocal.ticketNumber, // mailFee, // pfiMailerLocal.originalPFINote, // "Y", // pfiEligibleDate); ticketNumberList.Add(pfiMailerLocal.ticketNumber); originalPFINoteList.Add(pfiMailerLocal.originalPFINote); pfiEligibleDateList.Add(pfiMailerLocal.pfiEligibleDate); } var pfiMailerDocument = new PFIMailerDocument(PdfLauncher.Instance); var pfiMailerFileName = "PFIMailer" + recordCount + ".pdf"; var reportObject = new ReportObject { ReportTempFileFullName = Path.Combine( SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration.BaseLogPath, pfiMailerFileName) }; pfiMailerDocument.ReportObject = reportObject; pfiMailerDocument.CreateReport(pfiMailerLocal); if (FileLogger.Instance.IsLogInfo) { FileLogger.Instance.logMessage( LogLevel.INFO, "PFI_Mailers", "Creating PFI Mailer {0}, Ticket Number {1}", pfiMailerFileName, pfiMailer.ticketNumber); } //var strReturnMessage = // PrintingUtilities.printDocument( // reportObject.ReportTempFileFullName, // GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress, // GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port, 1); // //if (!strReturnMessage.Contains("SUCCESS")) //{ // FileLogger.Instance.logMessage(LogLevel.ERROR, this, "PFI Mailer : " + strReturnMessage); //} pfiMailerFileNamesToMerge.Add(Path.Combine(SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration.BaseLogPath, pfiMailerFileName)); recordCount++; } // foreach (var pfiMailer in pfiMailerList) // Merge PFIMailerX.pdf doc's var mergedOutputFile = Path.Combine(SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration.BaseLogPath, "PFIMailer.pdf"); var wasPDFMergeSuccessful = PDFITextSharpUtilities.MergePDFFiles(mergedOutputFile, pfiMailerFileNamesToMerge.ToArray()); if (wasPDFMergeSuccessful) { var strReturnMessage = PrintingUtilities.printDocument( mergedOutputFile, GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress, GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port, 1); if (FileLogger.Instance.IsLogInfo) { FileLogger.Instance.logMessage( LogLevel.INFO, "PFI_Mailers", "Printing PFI Mailer {0}", mergedOutputFile); } if (!strReturnMessage.Contains("SUCCESS")) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, "PFI Mailer : " + strReturnMessage); } } if (pfiMailerOption == PFIMailerOption.PrintPFIMailers) { PawnProcedures.ExecuteAddPFIMailerDataArray( GlobalDataAccessor.Instance.OracleDA, out errorCode, out errorText, int.Parse(GlobalDataAccessor.Instance.DesktopSession.CurrentSiteId.StoreNumber), ticketNumberList, originalPFINoteList, pfiEligibleDateList, mailFee); } // Spec Change //else if (pfiMailerOption == PFIMailerOption.ReprintPFIMailersByDate || // pfiMailerOption == PFIMailerOption.ReprintPFIMailersByTicket) //{ // PawnProcedures.ExecuteAddPFIMailerDataArray( // GlobalDataAccessor.Instance.OracleDA, // out errorCode, // out errorText, // int.Parse(GlobalDataAccessor.Instance.DesktopSession.CurrentSiteId.StoreNumber), // ticketNumberList, // originalPFINoteList, // pfiEligibleDateList, // mailFee); //} // Spec Change //if (pfiMailerOption != PFIMailerOption.ReprintPFIMailersByTicket) { PrintMailingBook(pfiMailerFilesToDeleteList, pfiMailerList); } } } } } else { if (pfiMailerOption == PFIMailerOption.ReprintMailbook) { MessageBox.Show(@"There is no Mail Book for this date."); } //else if (pfiMailerOption == PFIMailerOption.GetTodaysPrintedPFIMailerTickets) //{ // MessageBox.Show(@"There are no PFI Mailers to be printed for this ticket range."); //} else { MessageBox.Show(@"There are no PFI Mailers to be printed for this date."); } } }
/// <summary> /// Retrieves PFI Mailer data based on selected PFI Mailer option and parameters /// </summary> /// <param name="dataAccessor"></param> /// <param name="pfiMailerOption"></param> /// <param name="pfiMailerObjects"></param> /// <param name="errorCode"></param> /// <param name="errorText"></param> /// <param name="pfiMailerAdjustmentDays"></param> /// <param name="startTicketNumber"></param> /// <param name="endTicketNumber"></param> /// <param name="pfiDate"></param> /// <returns></returns> public static bool ExecuteGetPFIMailerData( OracleDataAccessor dataAccessor, PFIMailerOption pfiMailerOption, out List <ReportObject.PFIMailer> pfiMailerObjects, out string errorCode, out string errorText, int pfiMailerAdjustmentDays = 0, int startTicketNumber = 0, int endTicketNumber = 0, DateTime pfiDate = new DateTime() ) { // initialize error output variables pfiMailerObjects = new List <ReportObject.PFIMailer>(); errorCode = String.Empty; errorText = String.Empty; // Ensure the data accessor is valid if (dataAccessor == null || !dataAccessor.Initialized) { BasicExceptionHandler.Instance.AddException("ExecuteGetPFIMailerData Failed", new ApplicationException("ExecuteGetPFIMailerData Failed: Data accessor instance is invalid")); return(false); } // Set up input variables var inParams = new List <OracleProcParam> { new OracleProcParam("p_pfi_date", pfiDate.ToShortDateString()), new OracleProcParam("p_store_number", GlobalDataAccessor.Instance.DesktopSession.CurrentSiteId.StoreNumber), new OracleProcParam("p_pfi_mailer_adjustment_days", pfiMailerAdjustmentDays), new OracleProcParam("p_startTicketNumber", startTicketNumber), new OracleProcParam("p_endTicketNumber", endTicketNumber), new OracleProcParam("p_pfiMailerOption", (int)pfiMailerOption) }; // Set up output DataSet outputDataSet; var retVal = false; var refCursArr = new List <PairType <string, string> > { new PairType <string, string>("pfi_mailer_info", "o_pfi_mailer_info") }; try { retVal = dataAccessor.issueSqlStoredProcCommand( "ccsowner", "pawn_mdse_procs", "get_pfi_mailer_data", inParams, refCursArr, "o_return_code", "o_return_text", out outputDataSet); errorCode = dataAccessor.ErrorCode; errorText = dataAccessor.ErrorDescription; } catch (OracleException oEx) { BasicExceptionHandler.Instance.AddException("ExecuteGetPFIMailerData Failed", oEx); errorCode = " --- ExecuteGetPFIMailerData"; errorText = " --- OracleException thrown: " + oEx.Message; return(false); } if (retVal == false) { BasicExceptionHandler.Instance.AddException("ExecuteGetPFIMailerData Failed: return value is false", new ApplicationException()); errorCode = dataAccessor.ErrorCode + " -- ExecuteGetPFIMailerData"; errorText = dataAccessor.ErrorDescription + " -- Return value is false"; return(false); } if (outputDataSet == null || !outputDataSet.IsInitialized || (outputDataSet.Tables.Count <= 0)) { return(false); } pfiMailerObjects = new List <ReportObject.PFIMailer>(); ReportObject.PFIMailer pfiMailerObject; foreach (DataRow pfiMailerDataRow in outputDataSet.Tables[0].Rows) { var pfiMailerFee = new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).GetPFIMailerFee(GlobalDataAccessor.Instance.CurrentSiteId); pfiMailerObject = new ReportObject.PFIMailer(); pfiMailerObject.ticketNumber = Utilities.GetIntegerValue(pfiMailerDataRow["ticket_number"]); pfiMailerObject.customerNumber = Utilities.GetIntegerValue(pfiMailerDataRow["customer_number"]); pfiMailerObject.originalPFINote = Utilities.GetDateTimeValue(pfiMailerDataRow["PFI_NOTE"]); pfiMailerObject.printNotice = pfiMailerDataRow["PRINT_NOTICE"].ToString(); pfiMailerObject.customerName = pfiMailerDataRow["customer_name"].ToString(); pfiMailerObject.customerId = pfiMailerDataRow["customer_id"].ToString(); pfiMailerObject.customerAddress = pfiMailerDataRow["customer_address"].ToString(); pfiMailerObject.customerCity = pfiMailerDataRow["customer_city"].ToString(); pfiMailerObject.customerState = pfiMailerDataRow["customer_state"].ToString(); pfiMailerObject.customerZipCode = pfiMailerDataRow["customer_zipCode"].ToString(); pfiMailerObject.pfiEligibleDate = Utilities.GetDateTimeValue(pfiMailerDataRow["pfi_eligible_date"]); pfiMailerObject.storeName = pfiMailerDataRow["store_name"].ToString(); pfiMailerObject.storeNumber = Utilities.GetIntegerValue(pfiMailerDataRow["store_number"]); pfiMailerObject.storeAddress = pfiMailerDataRow["store_address"].ToString(); pfiMailerObject.storeCity = pfiMailerDataRow["store_city"].ToString(); pfiMailerObject.storeState = pfiMailerDataRow["store_state"].ToString(); pfiMailerObject.storeZipCode = pfiMailerDataRow["store_zipCode"].ToString(); pfiMailerObject.storePhone = pfiMailerDataRow["store_phone"].ToString(); pfiMailerObject.pfiMailerFee = pfiMailerFee; pfiMailerObjects.Add(pfiMailerObject); } // method completed successfully return(true); }