protected static Letter.FileContents GenerteLetter(Booking booking, Letter.FileFormat fileFormat, Hashtable lettersHash, Site[] sites) { try { bool isClinic = booking.Organisation.OrganisationType.OrganisationTypeGroup.ID == 5; bool isAgedCare = booking.Organisation.OrganisationType.OrganisationTypeGroup.ID == 6; Site site = null; for (int i = 0; i < sites.Length; i++) { if ((isClinic && sites[i].SiteType.ID == 1) || (isAgedCare && sites[i].SiteType.ID == 2)) { site = sites[i]; } } // get letter and make sure it exists Letter letter = (Letter)lettersHash[booking.Offering.ReminderLetterID]; string sourchTemplatePath = letter.GetFullPath(site.SiteID); if (!System.IO.File.Exists(sourchTemplatePath)) { throw new CustomMessageException("File doesn't exist."); } Letter.FileContents fileContents = Letter.CreateLetter( fileFormat, site, booking.Offering.ReminderLetterID, booking.Organisation.OrganisationID, booking.Patient.PatientID, booking.Provider.StaffID, booking.BookingID, -1, 1, null, false, 1); return(fileContents); } catch (Exception ex) { Logger.LogException(ex); return(null); } }
public static BulkLetterSendingQueueAdditionalLetter GetFileInfo(Letter.FileFormat fileFormat, Booking booking, Patient patient, HealthCard hc, Letter.TreatmentLetterType treatmentLetterType, Booking.InvoiceType invType, int fieldID, int siteID, int staffID, Referrer referrer, bool keepInHistory, int letterPrintHistorySendMethodID) { // 1. Add to healthcardaction int healthCardActionID = -1; if (treatmentLetterType == Letter.TreatmentLetterType.First || treatmentLetterType == Letter.TreatmentLetterType.Last || treatmentLetterType == Letter.TreatmentLetterType.LastWhenReplacingEPC) { healthCardActionID = HealthCardActionDB.Insert(hc.HealthCardID, Letter.GetHealthCardActionTypeID(treatmentLetterType), DateTime.Now); } // 2.create document and put it in history int letterID = Letter.GetLetterIDByTreatmentLetterTypeAndInvoiceType(treatmentLetterType, invType, fieldID, siteID); if (letterID == -1) { return(null); } string lettersDir = Letter.GetLettersDirectory(); if (!Directory.Exists(lettersDir)) { throw new CustomMessageException("Letters directory doesn't exist"); } Letter letter = LetterDB.GetByID(letterID); bool useDefaultDocs = letter.Organisation == null ? true : !LetterDB.OrgHasdocs(letter.Organisation.OrganisationID); string sourceTemplatePath = lettersDir + (useDefaultDocs ? @"Default\" + letter.Site.SiteID + @"\" : letter.Organisation.OrganisationID + @"\") + letter.Docname; if (!File.Exists(sourceTemplatePath)) { throw new CustomMessageException("File doesn't exist: " + Path.GetFileName(sourceTemplatePath)); } // get temp directory string tmpLettersDirectory = Letter.GetTempLettersDirectory(); if (!Directory.Exists(tmpLettersDirectory)) { throw new CustomMessageException("Temp letters directory doesn't exist"); } return(new BulkLetterSendingQueueAdditionalLetter( -1, -1, letter.LetterID, keepInHistory && Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["StoreLettersHistoryInDB"]), keepInHistory && Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["StoreLettersHistoryInFlatFile"]), letterPrintHistorySendMethodID, Letter.GetLettersHistoryDirectory(booking.Organisation.OrganisationID), letter.Docname.Replace(".dot", ".doc"), siteID, booking.Organisation.OrganisationID, booking.BookingID, patient.PatientID, -1, // register_referrer_id_to_use_instead_of_patients_reg_ref staffID, healthCardActionID, sourceTemplatePath, tmpLettersDirectory + letter.Docname.Replace(".dot", ".doc"), true, "", "" )); }
protected static BulkLetterSendingQueueAdditionalLetter[] GetFilesInfo(Booking booking, Letter.FileFormat fileFormat, Patient patient, HealthCard hc, int fieldID, Referrer referrer, bool keepInHistory, bool needToGenerateFirstLetter, bool needToGenerateLastLetter, bool needToGenerateTreatmentLetter, int siteID, int staffID, int letterPrintHistorySendMethodID) { System.Collections.ArrayList lettersList = new System.Collections.ArrayList(); if (needToGenerateFirstLetter) { lettersList.Add(GetFileInfo(fileFormat, booking, patient, hc, Letter.TreatmentLetterType.First, Booking.InvoiceType.Medicare, fieldID, siteID, staffID, null, keepInHistory, letterPrintHistorySendMethodID)); } if (needToGenerateLastLetter) { lettersList.Add(GetFileInfo(fileFormat, booking, patient, hc, Letter.TreatmentLetterType.Last, Booking.InvoiceType.Medicare, fieldID, siteID, staffID, null, keepInHistory, letterPrintHistorySendMethodID)); } if (needToGenerateTreatmentLetter) { lettersList.Add(GetFileInfo(fileFormat, booking, patient, hc, Letter.TreatmentLetterType.TreatmentNotes, Booking.InvoiceType.Medicare, fieldID, siteID, staffID, referrer, keepInHistory, letterPrintHistorySendMethodID)); } return((BulkLetterSendingQueueAdditionalLetter[])lettersList.ToArray(typeof(BulkLetterSendingQueueAdditionalLetter))); }