using framework_library; using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Net.Mail; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Web; namespace framework_business { public class xSurfaceCustomMethod { /// /// Generate SBF Profile Report /// /// public static string GenerateSBFProfileReport(int surfaceId, int surfaceItemId) { string reportBody = ""; foreach (oTemplate template in xData.GetTypedByCriteriaSpecific("recId", typeof(oTemplate), "templateName", "SBF Candidate")) { reportBody = template.templateContent; } //CVH 2018-03-07 Add page break before STAFF ONLY, can't just add to template, the wyziwyg breaks it reportBody = reportBody.Replace("{pagebreak}", "
"); DataTable surfaceItemData = xData.GetSurfaceQueryItemData(surfaceId, surfaceItemId); DataRow surfaceItemRow = surfaceItemData.Rows[0]; int childSurfaceId = 0; int grandChildSurfaceId = 0; int childSurfaceItemId = 0; DataTable primaryCaregivers = new DataTable(); DataTable otherHouseholdMembers = new DataTable(); DataTable monthlyHouseholdIncome = new DataTable(); DataTable dtLeadershipXp = new DataTable(); DataTable dtExtramural = new DataTable(); DataTable dtApplicantResults = new DataTable(); DataTable dtHighSchoolApplications = new DataTable(); DataTable dtOtherScholarships = new DataTable(); DataTable dtApplicantAndRecruitment = new DataTable(); DataRow dtApplicantAndRecruitmentRow = null; DataTable dtNotesPartA = new DataTable(); DataTable dtNotesPartB = new DataTable(); DataTable dtNotesPartC = new DataTable(); DataTable dtNotesPartD = new DataTable(); foreach (oSurfaceField gridField in xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceField), "surfaceId,surfaceFieldTypeId", surfaceId + "," + (int)pNums.FieldType.Grid)) { foreach (oSurface surf in xData.GetTypedByCriteriaSpecific("recId", typeof(oSurface), "name", gridField.relationalSurface)) { childSurfaceId = surf.recId; break; } switch (gridField.surfaceFieldName) { case "ApplicationandRecruitment_ApplicationForm_ApplicationForm": dtApplicantAndRecruitment = xData.GetChildSurfaceQueryData(childSurfaceId, surfaceItemId); foreach (oSurfaceField childGridField in xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceField), "surfaceId,surfaceFieldTypeId", childSurfaceId + "," + (int)pNums.FieldType.Grid)) { foreach (oSurface surf in xData.GetTypedByCriteriaSpecific("recId", typeof(oSurface), "name", childGridField.relationalSurface)) { grandChildSurfaceId = surf.recId; dtApplicantAndRecruitmentRow = dtApplicantAndRecruitment.Rows[0]; childSurfaceItemId = Convert.ToInt32(dtApplicantAndRecruitmentRow["itemID"].ToString()); break; } switch (childGridField.surfaceFieldName) { case "PartCHouseholdMembers_PartCDETAILSOFHOUSEHOLDMEMBERS_DetailsofPrimaryCaregivers": primaryCaregivers = xData.GetChildSurfaceQueryData(grandChildSurfaceId, childSurfaceItemId); break; case "PartCHouseholdMembers_PartCDETAILSOFHOUSEHOLDMEMBERS_OtherHouseholdFamilyMembers": otherHouseholdMembers = xData.GetChildSurfaceQueryData(grandChildSurfaceId, childSurfaceItemId); break; case "PartDHouseholdFinances_MonthlyHouseholdIncomeContributions_MonthlyHouseholdIncome": monthlyHouseholdIncome = xData.GetChildSurfaceQueryDataSummarized(grandChildSurfaceId, childSurfaceItemId); break; case "ApplicantInformation_ApplicantInformation_LeadershipExperiences": dtLeadershipXp = xData.GetChildSurfaceQueryData(grandChildSurfaceId, childSurfaceItemId); break; case "ApplicantInformation_ApplicantInformation_Extramurals": dtExtramural = xData.GetChildSurfaceQueryData(grandChildSurfaceId, childSurfaceItemId); break; case "Results_ApplicantResults_ApplicantResultsGrid": dtApplicantResults = xData.GetChildSurfaceQueryData(grandChildSurfaceId, childSurfaceItemId); break; case "ApplicantInformation_ApplicantInformation_HighSchoolApplication": dtHighSchoolApplications = xData.GetChildSurfaceQueryData(grandChildSurfaceId, childSurfaceItemId); break; case "ApplicantInformation_ApplicantInformation_OtherScholarships": dtOtherScholarships = xData.GetChildSurfaceQueryData(grandChildSurfaceId, childSurfaceItemId); break; } } foreach (oSurfaceField noteField in xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceField), "surfaceId,surfaceFieldTypeId", childSurfaceId + "," + (int)pNums.FieldType.Control)) { switch (noteField.surfaceFieldName) { case "PartADETAILSOFAPPLICANT_PartADetailsofApplicantPageNotes_Notes": dtNotesPartA = xData.GetTypedByCriteriaSpecificTable("recId", typeof(ovNoteDetail), "typeId,isActive,entityId,fieldName", "1,1," + childSurfaceItemId.ToString() + "," + noteField.recId.ToString() + "", "dateSaved DESC", "pal_"); break; case "PartBApplicantDayDocumentChecklist_PartBDocumentChecklist_PartBPageNotes": dtNotesPartB = xData.GetTypedByCriteriaSpecificTable("recId", typeof(ovNoteDetail), "typeId,isActive,entityId,fieldName", "1,1," + childSurfaceItemId.ToString() + "," + noteField.recId.ToString() + "", "dateSaved DESC", "pal_"); break; case "PartCHouseholdMembers_PartCPageNotes_PartCPageNotes": dtNotesPartC = xData.GetTypedByCriteriaSpecificTable("recId", typeof(ovNoteDetail), "typeId,isActive,entityId,fieldName", "1,1," + childSurfaceItemId.ToString() + "," + noteField.recId.ToString() + "", "dateSaved DESC", "pal_"); break; case "PartDHouseholdFinances_PartDHouseholdFinancesPageNotes_Notes": dtNotesPartD = xData.GetTypedByCriteriaSpecificTable("recId", typeof(ovNoteDetail), "typeId,isActive,entityId,fieldName", "1,1," + childSurfaceItemId.ToString() + "," + noteField.recId.ToString() + "", "dateSaved DESC", "pal_"); break; default: break; } } break; default: break; } } if (surfaceItemRow["ProfileHeader_ProfilePicture"].ToString() == "") reportBody = reportBody.Replace("{profileImage}", $"/upload/image/{handler.ReturnSetup().logoUploaded}"); else reportBody = reportBody.Replace("{profileImage}", $"/upload/surface/{surfaceItemRow["ProfileHeader_ProfilePicture"].ToString()}"); reportBody = reportBody.Replace("{year}", dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_ApplicationYear"].ToString()); #region general reportBody = reportBody.Replace("{general.name}", (dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_PreferredName"].ToString().Trim() == String.Empty ? dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_FirstName"].ToString() : dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_PreferredName"].ToString()) + " " + dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_Surname"].ToString()); //$"{dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_PreferredName"].ToString()} {dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_Surname"].ToString()}"); reportBody = reportBody.Replace("{general.dateOfBirth}", Convert.ToDateTime(dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_DateofBirth"]).ToString("MMMM dd yyyy")); reportBody = reportBody.Replace("{general.gender}", dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_Gender"].ToString()); string country = dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_SouthAfricanCitizen"].ToString() == "Yes" ? "South Africa" : dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_OtherCitizenship"].ToString(); reportBody = reportBody.Replace("{general.countryOfCitizenShip}", country); string permitType = ""; if (dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_IfForeignNationalIndicateTypeofPermitHeld"].ToString() != "") { permitType = $"{dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_IfForeignNationalIndicateTypeofPermitHeld"].ToString()}, {dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_IfForeignNationalYearandMonthofArrivalinSA"].ToString()}"; } reportBody = reportBody.Replace("{general.permitType_arrivalInSA}", permitType); #endregion #region household reportBody = reportBody.Replace("{household.familySuburb}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_Suburb"].ToString()); StringBuilder householdComposition = new StringBuilder(); /* * 1. Applicant, 12 * 2. Grandmother, 55, Matric, Employed, Tea Lady, DHK * 3. Great Aunt, 48, No Matric, Domestic Worker * 4. Cousin, 6, Student, Vukamanzi Primary */ householdComposition.AppendLine($"1. Applicant, {dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_Age"].ToString()}"); int houseNum = 2; foreach (DataRow parentRow in primaryCaregivers.Rows) { if (parentRow["PartCDetailsofPrimaryCaregivers_PrimaryCareGivers_RelationshiptoApplicant"].ToString() != "") { string stringLine = "
" + houseNum.ToString() + ". "; stringLine += $"{parentRow["PartCDetailsofPrimaryCaregivers_PrimaryCareGivers_RelationshiptoApplicant"]}, "; stringLine += $"{parentRow["PartCDetailsofPrimaryCaregivers_Other_Age"]}, "; //CVH 2017-08-02 Field change PartCDetailsofPrimaryCaregivers_Other_HighestEducationalQualification to PartCDetailsofPrimaryCaregivers_OtherDetailsforPrimaryCaregiver_HighestEducationalQualification if (parentRow["PartCDetailsofPrimaryCaregivers_OtherDetailsforPrimaryCaregiver_HighestEducationalQualification"].ToString() != "") stringLine += $", {parentRow["PartCDetailsofPrimaryCaregivers_OtherDetailsforPrimaryCaregiver_HighestEducationalQualification"]}"; if (parentRow["PartCDetailsofPrimaryCaregivers_PrimaryCareGivers_EmploymentStatus"].ToString() != "") stringLine += $", {parentRow["PartCDetailsofPrimaryCaregivers_PrimaryCareGivers_EmploymentStatus"]}"; if (parentRow["PartCDetailsofPrimaryCaregivers_Other_Occupation"].ToString() != "") stringLine += $", {parentRow["PartCDetailsofPrimaryCaregivers_Other_Occupation"]}"; if (parentRow["PartCDetailsofPrimaryCaregivers_PrimaryCareGivers_IfStudyingorWorkingNameofSchoolorInstitution"].ToString() != "") stringLine += $", {parentRow["PartCDetailsofPrimaryCaregivers_PrimaryCareGivers_IfStudyingorWorkingNameofSchoolorInstitution"]}"; householdComposition.AppendLine(stringLine); houseNum++; } } foreach (DataRow parentRow in otherHouseholdMembers.Rows) { if (parentRow["HouseholdFamilyMemberDetails_DetailsofOtherHouseholdFamilyMembers_RelationshiptoApplicant"].ToString() != "") { string stringLine = "
" + houseNum.ToString() + ". "; stringLine += $"{parentRow["HouseholdFamilyMemberDetails_DetailsofOtherHouseholdFamilyMembers_RelationshiptoApplicant"]}, "; stringLine += $"{parentRow["HouseholdFamilyMemberDetails_Other_Age"]}, "; if (parentRow["HouseholdFamilyMemberDetails_Other_HighestEducationalQualification"].ToString() != "") stringLine += $", {parentRow["HouseholdFamilyMemberDetails_Other_HighestEducationalQualification"]}"; if (parentRow["HouseholdFamilyMemberDetails_Other_EmploymentType"].ToString() != "") stringLine += $", {parentRow["HouseholdFamilyMemberDetails_Other_EmploymentType"]}"; if (parentRow["HouseholdFamilyMemberDetails_Details_Occupation"].ToString() != "") stringLine += $", {parentRow["HouseholdFamilyMemberDetails_Details_Occupation"]}"; if (parentRow["HouseholdFamilyMemberDetails_DetailsofOtherHouseholdFamilyMembers_IfStudyingorWorkingNameofSchoolorInstitution"].ToString() != "") stringLine += $", {parentRow["HouseholdFamilyMemberDetails_DetailsofOtherHouseholdFamilyMembers_IfStudyingorWorkingNameofSchoolorInstitution"]}"; householdComposition.AppendLine(stringLine); houseNum++; } } reportBody = reportBody.Replace("{household.composition}", householdComposition.ToString()); reportBody = reportBody.Replace("{household.dwelling}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_TypeofDwelling"].ToString()); reportBody = reportBody.Replace("{household.parentRelationship}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_ApplicantParentsMaritalStatus"].ToString()); #endregion #region monthlyIncome //reportBody = reportBody.Replace("{monthlyIncome.grossHousehold}", // dtApplicantAndRecruitmentRow["PartDHouseholdFinances_MonthlyHouseholdIncomeContributions_TotalMonthlyIncome"].ToString()); PartDHouseholdFinances_MonthlyHouseholdIncomeContributions_PortionofTotalMonthlyIncomeContributedtoHouseholdExpenses reportBody = reportBody.Replace("{monthlyIncome.grossHousehold}", dtApplicantAndRecruitmentRow["PartDHouseholdFinances_MonthlyHouseholdIncomeContributions_PortionofTotalMonthlyIncomeContributedtoHouseholdExpenses"].ToString()); reportBody = reportBody.Replace("{monthlyIncome.numberPersons}", dtApplicantAndRecruitmentRow["PartCHouseholdMembers_PartCDETAILSOFHOUSEHOLDMEMBERS_Numberofpeoplelivinginthehome"].ToString()); reportBody = reportBody.Replace("{monthlyIncome.pci}", dtApplicantAndRecruitmentRow["PartDHouseholdFinances_MonthlyHouseholdIncomeContributions_PerCapitaIncome"].ToString()); string sourcesOfIncome = ""; foreach (DataRow incomeRow in monthlyHouseholdIncome.Rows) { if (incomeRow["MonthlyHouseholdIncome_MonthlyHouseholdIncome_AmountPerMonthPostInterview"].ToString() != "" && Convert.ToDecimal(incomeRow["MonthlyHouseholdIncome_MonthlyHouseholdIncome_AmountPerMonthPostInterview"].ToString()) > 0) { if (sourcesOfIncome != "") sourcesOfIncome += ", "; sourcesOfIncome += incomeRow["MonthlyHouseholdIncome_MonthlyHouseholdIncome_TypeofIncome"].ToString(); } } reportBody = reportBody.Replace("{monthlyIncome.source}", sourcesOfIncome); #endregion #region primarySchool reportBody = reportBody.Replace("{primarySchool.primarySchool}", dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_PrimarySchool"].ToString()); reportBody = reportBody.Replace("{primarySchool.fees}", $"{dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_SchoolFeesPerYear"].ToString()}, {dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_SchoolFeeStatus"].ToString()}"); reportBody = reportBody.Replace("{primarySchool.maths}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_FinalGrade6Maths"].ToString()); reportBody = reportBody.Replace("{primarySchool.english}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_FinalGrade6English"].ToString()); reportBody = reportBody.Replace("{primarySchool.reference}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_PrimarySchoolReference"].ToString()); #endregion #region other string leadershipXp = ""; foreach (DataRow leadershipXpRow in dtLeadershipXp.Rows) { if (leadershipXp != "" && leadershipXpRow["LeadershipExperience_LeadershipExperience_LeadershipExperience"].ToString() != "") leadershipXp += ", "; leadershipXp += $"{leadershipXpRow["LeadershipExperience_LeadershipExperience_LeadershipExperience"]}"; } reportBody = reportBody.Replace("{other.leadership}", leadershipXp); string extramural = ""; foreach (DataRow extramuralRow in dtExtramural.Rows) { if (extramural != "" && extramuralRow["Extramurals_ExtramuralsGroup_Extramural"].ToString() != "") extramural += ", "; extramural += $"{extramuralRow["Extramurals_ExtramuralsGroup_Extramural"]}"; } reportBody = reportBody.Replace("{other.extramural}", extramural); reportBody = reportBody.Replace("{other.career}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_CurrentCareerInterest"].ToString()); #endregion #region results foreach (DataRow applicantResultsRow in dtApplicantResults.Rows) { reportBody = reportBody.Replace("{results.maths}", applicantResultsRow["ApplicantSBFExamResults_SBFExamResults_SBFMaths"].ToString()); reportBody = reportBody.Replace("{results.nonVerbal}", applicantResultsRow["ApplicantSBFExamResults_SBFExamResults_NonVerbal"].ToString()); reportBody = reportBody.Replace("{results.quantitative}", applicantResultsRow["ApplicantSBFExamResults_SBFExamResults_Quantitative"].ToString()); reportBody = reportBody.Replace("{results.english}", applicantResultsRow["ApplicantSBFExamResults_SBFExamResults_SBFEnglish"].ToString()); reportBody = reportBody.Replace("{results.verbal}", applicantResultsRow["ApplicantSBFExamResults_SBFExamResults_Verbal"].ToString()); reportBody = reportBody.Replace("{results.essay}", applicantResultsRow["ApplicantSBFExamResults_SBFExamResults_SBFEssay"].ToString()); reportBody = reportBody.Replace("{results.interview}", applicantResultsRow["ApplicantSBFExamResults_SBFExamResults_Interview"].ToString()); reportBody = reportBody.Replace("{results.groupAssessment}", applicantResultsRow["ApplicantSBFExamResults_SBFExamResults_GroupAssessment"].ToString()); } #endregion #region status reportBody = reportBody.Replace("{status.recommendation}", dtApplicantAndRecruitmentRow["Results_ApplicantInterview_CandidateStatus"].ToString()); reportBody = reportBody.Replace("{status.strengths}", dtApplicantAndRecruitmentRow["Results_ApplicantInterview_Strengths"].ToString()); reportBody = reportBody.Replace("{status.concerns}", dtApplicantAndRecruitmentRow["Results_ApplicantInterview_Concerns"].ToString()); reportBody = reportBody.Replace("{status.boarding}", $"{dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_BoardingRecommendation"].ToString()}, {dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_RationaleForBoardingRecommendation"].ToString()}"); #endregion #region otherApplications string otherScholarships = ""; foreach (DataRow otherScholarshipsRow in dtOtherScholarships.Rows) { if (otherScholarshipsRow["OtherScholarships_OtherScholarships_Scholarship"].ToString() != "") { if (otherScholarships != "") otherScholarships += "
"; otherScholarships += $"{otherScholarshipsRow["OtherScholarships_OtherScholarships_Scholarship"]}, {otherScholarshipsRow["OtherScholarships_OtherScholarships_Status"]}, {otherScholarshipsRow["OtherScholarships_OtherScholarships_DecisionDate"]}"; } } reportBody = reportBody.Replace("{otherApplications.scholarships}", otherScholarships); string highSchoolApplications = ""; foreach (DataRow highSchoolApplicationsRow in dtHighSchoolApplications.Rows) { if (highSchoolApplicationsRow["HighSchoolApplication_HighSchoolApplication_HighSchool"].ToString() != "") { if (highSchoolApplications != "") highSchoolApplications += "
"; highSchoolApplications += $"{highSchoolApplicationsRow["HighSchoolApplication_HighSchoolApplication_HighSchool"]}, {highSchoolApplicationsRow["HighSchoolApplication_HighSchoolApplication_DecisionDate"]}"; } } reportBody = reportBody.Replace("{otherApplications.highSchools}", highSchoolApplications); #endregion #region comments reportBody = reportBody.Replace("{comments.expenditure}", dtApplicantAndRecruitmentRow["PartDHouseholdFinances_PartDDetailsofHouseholdFinances_IncomeExpenditureAssetComments"].ToString()); reportBody = reportBody.Replace("{comments.sumExpenses}", dtApplicantAndRecruitmentRow["PartDHouseholdFinances_PartDDetailsofHouseholdFinances_ReportExpenseTotal"].ToString()); reportBody = reportBody.Replace("{comments.interview}", dtApplicantAndRecruitmentRow["Results_ApplicantInterview_InterviewComments"].ToString()); reportBody = reportBody.Replace("{comments.partner}", dtApplicantAndRecruitmentRow["Results_ApplicantInterview_SuggestedSchools"].ToString()); reportBody = reportBody.Replace("{comments.essay}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_SBFEssayComments"].ToString()); reportBody = reportBody.Replace("{comments.general}", dtApplicantAndRecruitmentRow["Results_ApplicantInterview_GeneralComments"].ToString()); #endregion #region boarding reportBody = reportBody.Replace("{boarding.notConductive}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_IsThereAnyReasonWhyTheHomeEnvironmentIsNotConduciveToStudying"].ToString()); reportBody = reportBody.Replace("{boarding.ssTravel}", $"{dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_HowLongWouldItTakeForTheApplicantToTravelFromHomeToaSchoolInTheSouthernSuburbs"].ToString()}, {dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_HowWouldTheApplicantTravelFromHomeToaSchoolInTheSouthernSuburbs"].ToString()}"); reportBody = reportBody.Replace("{boarding.cbTravel}", $"{dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_HowLongWouldItTakeApplicantToTravelFromHomeToaSchoolInCampsBay"].ToString()}, {dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_HowWouldTheApplicantTravelFromHomeToaSchoolInCampsBay"].ToString()}"); reportBody = reportBody.Replace("{boarding.parent}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantInformation_IfBoardingIsToBeLookedAtIsThereParentSupport"].ToString()); #endregion #region doc reportBody = reportBody.Replace("{doc.communityLeaderRef}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_CommunityLeaderReference"].ToString()); reportBody = reportBody.Replace("{doc.primarySchoolRef}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_PrimarySchoolReference"].ToString()); reportBody = reportBody.Replace("{doc.knowYou}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_Gettingtoknow"].ToString()); reportBody = reportBody.Replace("{doc.grade6}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_Grade6Report"].ToString()); reportBody = reportBody.Replace("{doc.absent}", dtApplicantAndRecruitmentRow["ApplicantInformation_ApplicantDocumentsReviewed_DaysAbsentlastyear"].ToString()); string yearPast = ""; if (dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_ApplicationYear"] != null) { int appYear = 0; if (int.TryParse(dtApplicantAndRecruitmentRow["PartADETAILSOFAPPLICANT_PartADETAILSOFAPPLICANT_ApplicationYear"].ToString(), out appYear)) { yearPast = (appYear - 1).ToString(); } } reportBody = reportBody.Replace("{doc.yearPast}", yearPast); #endregion #region notes string notesPartA = ""; foreach (DataRow notesPartARow in dtNotesPartA.Rows) { if (notesPartA != "" && notesPartARow["caption"].ToString() != "") notesPartA += ". "; notesPartA += $"{notesPartARow["caption"]}"; } reportBody = reportBody.Replace("{notes.partA}", notesPartA); string notesPartB = ""; foreach (DataRow notesPartBRow in dtNotesPartB.Rows) { if (notesPartB != "" && notesPartBRow["caption"].ToString() != "") notesPartB += ". "; notesPartB += $"{notesPartBRow["caption"]}"; } reportBody = reportBody.Replace("{notes.partB}", notesPartB); string notesPartC = ""; foreach (DataRow notesPartCRow in dtNotesPartC.Rows) { if (notesPartC != "" && notesPartCRow["caption"].ToString() != "") notesPartC += ". "; notesPartC += $"{notesPartCRow["caption"]}"; } reportBody = reportBody.Replace("{notes.partC}", notesPartC); string notesPartD = ""; foreach (DataRow notesPartDRow in dtNotesPartD.Rows) { if (notesPartD != "" && notesPartDRow["caption"].ToString() != "") notesPartD += ". "; notesPartD += $"{notesPartDRow["caption"]}"; } reportBody = reportBody.Replace("{notes.partD}", notesPartD); string familyMemberNotes = ""; foreach (DataRow parentRow in primaryCaregivers.Rows) { if (parentRow["PartCDetailsofPrimaryCaregivers_DocumentChecklistforPrimaryCaregiver_Note"].ToString() != "") { familyMemberNotes += $""; familyMemberNotes += $""; } } foreach (DataRow parentRow in otherHouseholdMembers.Rows) { if (parentRow["HouseholdFamilyMemberDetails_DocumentChecklistforHouseholdFamilyChecklist_Note"].ToString() != "") { familyMemberNotes += $""; familyMemberNotes += $""; } } familyMemberNotes += "
 Family Member Notes
{parentRow["PartCDetailsofPrimaryCaregivers_PrimaryCareGivers_RelationshiptoApplicant"]}{parentRow["PartCDetailsofPrimaryCaregivers_DocumentChecklistforPrimaryCaregiver_Note"]}
{parentRow["HouseholdFamilyMemberDetails_DetailsofOtherHouseholdFamilyMembers_RelationshiptoApplicant"]}{parentRow["HouseholdFamilyMemberDetails_DocumentChecklistforHouseholdFamilyChecklist_Note"]}
"; reportBody = reportBody.Replace("{notes.familyMembers}", familyMemberNotes); #endregion return reportBody; } /// /// Replace Temp Tags From Table /// /// /// /// private static string ReplaceTempTagsFromTable(string content, DataTable dt) { try { //replace temp tags foreach (DataColumn col in dt.Columns) { //not using field list, just checking if content contains the columnname tag, but skipping columnnames that are not field names (no _) if (!col.ColumnName.Contains("_")) continue; string value = dt.Rows[0][col].ToString(); if (value != String.Empty && col.ColumnName == "StudentReport_AdditionalStudentReportInformation_HighSchoolAggregate") value += "%"; value = value.Replace("\n", "
"); content = content.Replace("{" + col.ColumnName + "}", value); } return content; } catch (Exception ex) { exception.HandleException("customAction:", MethodBase.GetCurrentMethod().Name, ex, null); return content; } } /// /// Generate SBF Profile Report /// /// public static string GenerateSBFStudentProfileReport(int profileSurfaceId, int profileItemId) { string reportBody = String.Empty; foreach (oTemplate template in xData.GetTypedByCriteriaSpecific("recId", typeof(oTemplate), "templateName", "SBF Student Profile")) { reportBody = template.templateContent; } //hardcoding int studentSurfaceId = 3101; int tertiarySurfaceId = 3048; //get profile data DataTable dtProfileData = xData.GetSurfaceQueryItemData(profileSurfaceId, profileItemId); DataTable dtStudentData = xData.GetChildSurfaceQueryData(studentSurfaceId, profileItemId, true); DataTable dtTertiaryData = xData.GetChildSurfaceQueryData(tertiarySurfaceId, profileItemId, true); reportBody = reportBody.Replace("src=\"/images/", "src=\"" + ConfigurationManager.AppSettings["WebAddy"].ToString() + "/images/"); string studentPic = String.Empty; if (dtProfileData.Columns["ProfileHeader_ProfilePicture"] != null) studentPic = dtProfileData.Rows[0]["ProfileHeader_ProfilePicture"].ToString(); if (studentPic != String.Empty) studentPic = ConfigurationManager.AppSettings["WebAddy"].ToString() + "/upload/surface/" + studentPic; reportBody = reportBody.Replace("{StudentPic}", studentPic); //calculating Year Matriculated as Intake Year + 4 string matriculatedIn = String.Empty; if (dtProfileData.Columns["ProfileHeader_IntakeYear"] != null) { int intakeYear = 0; int.TryParse(dtProfileData.Rows[0]["ProfileHeader_IntakeYear"].ToString(), out intakeYear); if (intakeYear > 0) matriculatedIn = (intakeYear + 4).ToString(); } reportBody = reportBody.Replace("{YearMatriculated}", matriculatedIn); //calculating GPA as previous year highest semester int gpa = 0; if (dtTertiaryData.Rows.Count > 0 && dtTertiaryData.Columns["Alumni_TertiaryReview_CourseAggregate"] != null && dtTertiaryData.Columns["Alumni_TertiaryReview_Semester"] != null && dtTertiaryData.Columns["Alumni_TertiaryReview_Year"] != null) { DataRow[] rows = dtTertiaryData.Select("Alumni_TertiaryReview_Year = '" + System.DateTime.Now.AddYears(-1).Year + "'", "Alumni_TertiaryReview_Semester DESC"); if (rows != null && rows.Count() > 0) { int.TryParse(rows[0]["Alumni_TertiaryReview_CourseAggregate"].ToString(), out gpa); } } if (gpa > 0) reportBody = reportBody.Replace("{GPA}", gpa + "%"); else reportBody = reportBody.Replace("{GPA}", ""); //replace Profile tags reportBody = ReplaceTempTagsFromTable(reportBody, dtProfileData); //replace Student tags reportBody = ReplaceTempTagsFromTable(reportBody, dtStudentData); //loop through and replace all remaining temp tags with empty string int tagStart = reportBody.IndexOf("{"); int tagEnd = reportBody.IndexOf("}"); while (tagStart >= 0 && tagEnd > 0 && tagEnd > tagStart && tagEnd < reportBody.Length) { string tempTag = reportBody.Substring(tagStart, tagEnd - tagStart + 1); reportBody = reportBody.Replace(tempTag, ""); tagStart = reportBody.IndexOf("{"); tagEnd = reportBody.IndexOf("}"); } return reportBody; } /// /// Generate SBF PrepProgramme Report /// /// /// /// public static string GenerateSBFPrepProgrammeReport(int surfaceItemId) { string reportBody = ""; foreach (oTemplate template in xData.GetTypedByCriteriaSpecific("recId", typeof(oTemplate), "templateName", "SBF Prep Report")) { reportBody = template.templateContent; } List listPrim = new List(); oDynamicParam param1 = new oDynamicParam(); param1.paramDisplayName = "itemId"; param1.paramObject = surfaceItemId; listPrim.Add(param1); DataTable dtReportData = xData.GetTypedTableByProc("recId", typeof(oSurfaceFieldData), "sp_STUD_1_GetReportPrepPage", listPrim); DataRow dtReportDataRow = dtReportData.Rows[0]; reportBody = reportBody.Replace("{companyImage}", $"/upload/image/{handler.ReturnSetup().logoUploaded}"); reportBody = reportBody.Replace("{companySlogan}", $"/images/sbf_slogan.png"); reportBody = reportBody.Replace("{data.scholarName}", dtReportDataRow["scholarName"].ToString()); reportBody = reportBody.Replace("{data.attendance}", dtReportDataRow["attendance"].ToString()); reportBody = reportBody.Replace("{data.mathsTeachers}", dtReportDataRow["mathsTeachers"].ToString()); reportBody = reportBody.Replace("{data.englishTeachers}", dtReportDataRow["englishTeachers"].ToString()); reportBody = reportBody.Replace("{data.mathsComment}", dtReportDataRow["mathsComment"].ToString()); reportBody = reportBody.Replace("{data.englishComment}", dtReportDataRow["englishComment"].ToString()); return reportBody; } public static bool CreateOpenSurgeryWriteUpTSP(string openSurgeryName, string bodyData, oAccount accountMain, string webAddress, string icd10, ref string statementPath, ref string statementFile) { bool result = false; try { string headerData = String.Empty; oMedicalPractice practice = new oMedicalPractice(); foreach (oTemplate headTemplate in xData.GetTypedByCriteriaSpecific("recId", typeof(oTemplate), "templateName", "OS Header")) { headerData = headTemplate.templateContent; } //get practice foreach (oMedicalPractice prac in xData.GetTypedByCriteriaSpecific("recId", typeof(oMedicalPractice), "name", "The Shoulder Practice")) { practice = prac; break; } utils.MergeHTMData(ref headerData, utils.BuildFieldCodeList(practice, true)); headerData = headerData.Replace("{PatientNumber}", accountMain.patientNumber.ToString()); headerData = headerData.Replace("{Patient}", accountMain.patientName + " " + accountMain.patientSurname); headerData = headerData.Replace("{WriteUpName}", openSurgeryName); headerData = headerData.Replace("{ICD10}", icd10); headerData = headerData.Replace("{Date}", System.DateTime.Now.ToString("yyyy/MM/dd")); headerData = headerData.Replace("{WebAddress}", webAddress); headerData = headerData.Replace("src=\"/images/", "src=\"" + webAddress + "/images/"); headerData = headerData.Replace("src=\"/upload/image/", "src=\"" + webAddress + "/upload/image/"); string writeup = String.Empty; if (headerData == String.Empty) writeup = bodyData; else writeup = headerData.Replace("{WriteUpBody}", bodyData); //OpenSurgery_[WriteUpName]_[PatientNumber]_[PatientInitials.PatientSurname]_[DateTimestamp].pdf //OpenSugery_OpenRotatorCuffReairDeltoidSplit_1997_V.Wolfeschlegelsteinhausenbergerdorff_20170831095101.pdf statementFile = "OpenSugery_" + utils.stripCharacters(openSurgeryName) + "_" + accountMain.patientNumber + "_" + utils.stripCharacters(accountMain.patientInitials) + "." + utils.stripCharacters(accountMain.patientSurname) + "_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf"; statementPath = HttpContext.Current.Server.MapPath("~/upload/documents/"); utils.validateFolder(statementPath); result = utils.ConvertHTMLToPDFFile(writeup, statementPath + statementFile, true, "", ""); return result; } catch (Exception ex) { throw new Exception(MethodBase.GetCurrentMethod().Name + ":" + ex.Message); } //return result; } #region Send Order Mail public static bool OrderTemplateMail(int itemId, oUser user) { string emailBody = string.Empty, reportPath = string.Empty; oEmail mail = new oEmail(); bool emailSent = false; try { string query = $"SELECT publ.itemID,Orders_OrderDetails_Attention,Orders_OrderDetails_StyleCode, SupplierProfile_SupplierName,SupplierProfile_OrderEmail, Orders_OrderDetails_OrderNumber, Orders_OrderDetails_OrderDate " + $"FROM publ_Orders publ inner join qt_Suppliers qt on publ.Orders_OrderDetails_Supplier = qt.SupplierProfile_SupplierName " + $"where publ.itemID = " + itemId + " and publ.SurfaceId = 3070 and publ.isActive = 1"; DataTable dt = xData.GetCustomTypedTable(query); if (dt.Rows.Count > 0) { if (!string.IsNullOrEmpty(Convert.ToString(dt.Rows[0]["SupplierProfile_OrderEmail"]))) { foreach (oTemplate orderTemplate in xData.GetTypedByCriteriaSpecific("recId", typeof(oTemplate), "templateTypeId", ((int)pNums.TemplateType.Sales).ToString())) { if (orderTemplate.templateName == "Style Order Email Template") { emailBody = orderTemplate.templateContent; break; } } encryption encrypt = new encryption("p@l3tt3"); string encryptedId = encrypt.encryptValue(Convert.ToString(dt.Rows[0]["itemID"])); string OrderDate = Convert.ToDateTime(dt.Rows[0]["Orders_OrderDetails_OrderDate"]).ToString("yyyy/MM/dd"); emailBody = emailBody.Replace("src=\"/images", "src=\"" + ConfigurationManager.AppSettings["WebAddy"] + "/images"); emailBody = emailBody.Replace("src=\"/upload", "src=\"" + ConfigurationManager.AppSettings["WebAddy"] + "/upload"); emailBody = emailBody.Replace("{itemID}", "&ID=" + encryptedId + ""); emailBody = emailBody.Replace("{Name}", Convert.ToString(dt.Rows[0]["Orders_OrderDetails_Attention"])); emailBody = emailBody.Replace("{OrderDate}", OrderDate); emailBody = emailBody.Replace("{OrderNumber}", Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"])); emailBody = emailBody.Replace("{username}", Convert.ToString(user.userDisplay)); oSetup setup = handler.ReturnSetup(); mail.fromAddress = ConfigurationManager.AppSettings["from"]; if (user.email != "") mail.ccAddress = user.email; mail.toAddress = Convert.ToString(dt.Rows[0]["SupplierProfile_OrderEmail"]); mail.Body = emailBody; string pdfFile = OrderPDFAttachment(Convert.ToInt32(dt.Rows[0]["itemID"])); if (!string.IsNullOrEmpty(pdfFile)) { reportPath = HttpContext.Current.Server.MapPath("~/upload/documents/" + pdfFile); mail.Attachments.Add(reportPath); } mail.Subject = "Superbalist - Style : " + Convert.ToString(dt.Rows[0]["Orders_OrderDetails_StyleCode"]) + " (Order " + Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"]) + ")"; emailSent = communication.SendAnEmail(mail); if (System.IO.File.Exists(reportPath)) File.Delete(reportPath); } } return emailSent; } catch (Exception ex) { throw new Exception(MethodBase.GetCurrentMethod().Name + ":" + ex.Message); } } #endregion #region Order PDF Attachment public static string OrderPDFAttachment(int itemId) { string PDFBody = string.Empty, pdfFile = string.Empty; string query = $"SELECT * FROM publ_Orders publ inner join qt_Suppliers qt on publ.Orders_OrderDetails_Supplier = qt.SupplierProfile_SupplierName " + $"where publ.itemID = " + itemId + " and publ.SurfaceId = 3070 and publ.isActive = 1"; DataTable dt = xData.GetCustomTypedTable(query); if (dt.Rows.Count > 0) { foreach (oTemplate orderTemplate in xData.GetTypedByCriteriaSpecific("recId", typeof(oTemplate), "templateTypeId", ((int)pNums.TemplateType.Sales).ToString())) { if (orderTemplate.templateName == "Order PDF Template") { PDFBody = orderTemplate.templateContent; break; } } string OrderDate = Convert.ToDateTime(dt.Rows[0]["Orders_OrderDetails_OrderDate"]).ToString("yyyy/MM/dd"); PDFBody = PDFBody.Replace("src=\"/images", "src=\"" + ConfigurationManager.AppSettings["WebAddy"] + "/images"); PDFBody = PDFBody.Replace("{SupplierName}", Convert.ToString(dt.Rows[0]["SupplierProfile_SupplierName"])); PDFBody = PDFBody.Replace("{Attention}", Convert.ToString(dt.Rows[0]["Orders_OrderDetails_Attention"])); PDFBody = PDFBody.Replace("{DeliveryDate}", Convert.ToDateTime(dt.Rows[0]["Orders_OrderDetails_DeliveryDate"]).ToString("yyyy/MM/dd")); PDFBody = PDFBody.Replace("{Note}", Convert.ToString(dt.Rows[0]["Orders_OrderDetails_Instructions"])); PDFBody = PDFBody.Replace("{BrandName}", Convert.ToString(dt.Rows[0]["Orders_OrderDetails_Brand"])); PDFBody = PDFBody.Replace("{OrderDate}", OrderDate); PDFBody = PDFBody.Replace("{OrderNumber}", Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"])); PDFBody = PDFBody.Replace("{StyleCode}", Convert.ToString(dt.Rows[0]["Orders_OrderDetails_StyleCode"])); if (string.IsNullOrEmpty(dt.Rows[0]["Orders_OrderDetails_AmendmentDate"].ToString())) PDFBody = PDFBody.Replace("{Print}", ""); else PDFBody = PDFBody.Replace("{Print}", "Amended : " + Convert.ToDateTime(dt.Rows[0]["Orders_OrderDetails_AmendmentDate"]).ToString("yyyy/MM/dd")); string supplyType = Convert.ToString(dt.Rows[0]["Orders_OrderDetails_SupplyType"]); List listDevice = new List(); oDynamicParam param1 = new oDynamicParam(); param1.paramDisplayName = "ParentSurfaceItemId"; param1.paramObject = Convert.ToString(dt.Rows[0]["itemID"]); listDevice.Add(param1); oDynamicParam param2 = new oDynamicParam(); param2.paramDisplayName = "OrderNo"; param2.paramObject = Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"]); listDevice.Add(param2); oDynamicParam param3 = new oDynamicParam(); param3.paramDisplayName = "SupplyType"; param3.paramObject = Convert.ToInt32(supplyType); listDevice.Add(param3); DataTable childData = xData.GetTypedTableByProc("recId", typeof(oSurfaceFieldData), "SP_OrderPDFDetails", listDevice); StringBuilder sb = new StringBuilder(); decimal totalprice = 0; switch (supplyType) { case "1086": //Fabric #region PDFBody = PDFBody.Replace("{FABRICORDER}", "FABRIC ORDER"); //Table start. sb.Append(""); //Adding HeaderRow. sb.Append(""); foreach (DataColumn column in childData.Columns) { column.ColumnName = column.ColumnName.Replace("OrderFabrics_FabricDetails_", "").ToString(); switch (column.ColumnName) { case "SupplierReference": column.ColumnName = "Supplier Reference"; sb.Append(""); break; case "QualityReference": column.ColumnName = "Quality Reference"; sb.Append(""); break; case "TotalPrice": column.ColumnName = "Total Price"; sb.Append(""); break; case "Extra": column.ColumnName = "Extra %"; sb.Append(""); break; case "TotalMeters": column.ColumnName = "Total Meters"; sb.Append(""); break; case "Description": sb.Append(""); break; default: sb.Append(""); break; } } sb.Append(""); if (childData.Rows.Count > 0) { foreach (DataRow row in childData.Rows) { sb.Append(""); foreach (DataColumn column in childData.Columns) { if (column.ColumnName == "Total Price") totalprice += Convert.ToDecimal(row[column.ColumnName]); if (column.ColumnName == "Supplier Reference" || column.ColumnName == "Quality Reference" || column.ColumnName == "Description" || column.ColumnName == "Colour") sb.Append(""); else sb.Append(""); } sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); } sb.Append(""); sb.Append(""); //Table end. sb.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
Total Amount (Excl. VAT): R " + totalprice.ToString() + "
"); PDFBody += sb.ToString(); break; #endregion case "1083": //Binding #region Binding PDFBody = PDFBody.Replace("{FABRICORDER}", "BINDING ORDER"); //Table start. sb.Append(""); //Adding HeaderRow. sb.Append(""); foreach (DataColumn column in childData.Columns) { column.ColumnName = column.ColumnName.Replace("OrderBinding_BindingDetails_", "").ToString(); if (column.ColumnName == "FabricQualityReference") { column.ColumnName = "Fabric Quality Reference"; sb.Append(""); } else if (column.ColumnName == "FabricDescription") { column.ColumnName = "Fabric Description"; sb.Append(""); } else if (column.ColumnName == "FabricColour") { column.ColumnName = "Fabric Colour"; sb.Append(""); } else if (column.ColumnName == "BindingDescription") { column.ColumnName = "Binding Description"; sb.Append(""); } else if (column.ColumnName == "TotalPrice") { column.ColumnName = "Total Price"; sb.Append(""); } else { sb.Append(""); } } sb.Append(""); //Adding DataRow. if (childData.Rows.Count > 0) { foreach (DataRow row in childData.Rows) { sb.Append(""); foreach (DataColumn column in childData.Columns) { if (column.ColumnName == "Total Price") { totalprice += Convert.ToDecimal(row[column.ColumnName]); } sb.Append(""); } sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); } sb.Append(""); sb.Append(""); //Table end. sb.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "
No data available in table
Total Amount (Excl. VAT): R " + totalprice.ToString() + "
"); PDFBody += sb.ToString(); break; #endregion case "1084": //CMT #region PDFBody = PDFBody.Replace("{FABRICORDER}", "CMT ORDER"); //Table start. sb.Append(""); //Adding HeaderRow. sb.Append(""); foreach (DataColumn column in childData.Columns) { column.ColumnName = column.ColumnName.Replace("OrderCMT_CMTDetails_", "").ToString(); if (column.ColumnName == "StyleDescription") { column.ColumnName = "Style Description"; sb.Append(""); } else if (column.ColumnName == "StyleColour") { column.ColumnName = "Style Colour"; sb.Append(""); } else if (column.ColumnName == "StyleUnits") { column.ColumnName = "Style Units"; sb.Append(""); } else if (column.ColumnName == "OutworkRequired") { column.ColumnName = "Outwork Required"; sb.Append(""); } else if (column.ColumnName == "CMTUnitPrice") { column.ColumnName = "CMT Unit Price"; sb.Append(""); } else if (column.ColumnName == "StandardMinuteValue") { column.ColumnName = "SMV"; sb.Append(""); } else if (column.ColumnName == "CMTUnitPrice") { column.ColumnName = "CMT Unit Price"; sb.Append(""); } else if (column.ColumnName == "TotalPrice") { column.ColumnName = "Total Price"; sb.Append(""); } } sb.Append(""); //Adding DataRow. if (childData.Rows.Count > 0) { foreach (DataRow row in childData.Rows) { sb.Append(""); foreach (DataColumn column in childData.Columns) { if (column.ColumnName == "Total Price") totalprice += Convert.ToDecimal(row[column.ColumnName]); if (column.ColumnName == "Total Price" || column.ColumnName == "SMV" || column.ColumnName == "CMT Unit Price") sb.Append(""); else sb.Append(""); } sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); } sb.Append(""); sb.Append(""); //Table end. sb.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
Total Amount (Excl. VAT): R " + totalprice.ToString() + "
"); sb.Append("
"); PDFBody += sb.ToString(); StringBuilder intake = new StringBuilder(); intake.Append(""); intake.Append(""); intake.Append(""); intake.Append(""); intake.Append(""); intake.Append(""); intake.Append(""); intake.Append("
Intake Year: " + Convert.ToString(dt.Rows[0]["Orders_SupplyDetails_CMTIntakeYear"]) + " Intake Month: " + Convert.ToString(dt.Rows[0]["Orders_SupplyDetails_CMTIntakeMonth"]) + "
"); PDFBody += intake.ToString(); break; #endregion case "1085": //Cutting #region Cutting PDFBody = PDFBody.Replace("{FABRICORDER}", "CUTTING ORDER"); string cutting = $"select OrderCutting_CuttingDetails_FabricQualityReference,OrderCutting_CuttingDetails_FabricDescription," + $"OrderCutting_CuttingDetails_FabricColour,OrderCutting_CuttingDetails_Width, OrderCutting_CuttingDetails_InternalRating" + $",OrderCutting_CuttingDetails_MarkerRating from publ_OrderCutting" + $" where ParentSurfaceItemId= " + Convert.ToString(dt.Rows[0]["itemID"]) + " and " + $"OrderCutting_OrderDetails_OrderNumber='" + Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"]) + "' " + "and surfaceId = 3080 and isActive = 1"; DataTable dtcuttingdata = xData.GetCustomTypedTable(cutting); //Table start. sb.Append(""); //Adding HeaderRow. sb.Append(""); foreach (DataColumn column in dtcuttingdata.Columns) { column.ColumnName = column.ColumnName.Replace("OrderCutting_CuttingDetails_", "").ToString(); if (column.ColumnName == "FabricQualityReference") { column.ColumnName = "Fabric Quality Reference"; sb.Append(""); } else if (column.ColumnName == "FabricDescription") { column.ColumnName = "Fabric Description"; sb.Append(""); } else if (column.ColumnName == "FabricColour") { column.ColumnName = "Fabric Colour"; sb.Append(""); } else if (column.ColumnName == "InternalRating") { column.ColumnName = "Internal Rating"; sb.Append(""); } else if (column.ColumnName == "MarkerRating") { column.ColumnName = "Marker Rating"; sb.Append(""); } else { sb.Append(""); } } sb.Append(""); if (dtcuttingdata.Rows.Count > 0) { //Adding DataRow. foreach (DataRow row in dtcuttingdata.Rows) { sb.Append(""); foreach (DataColumn column in dtcuttingdata.Columns) { if (column.ColumnName == "Fabric Quality Reference" || column.ColumnName == "Fabric Description" || column.ColumnName == "Fabric Colour") sb.Append(""); else sb.Append(""); } sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); } //Table end. sb.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
"); PDFBody += sb.ToString(); string cuttingsizequery = $"select OrderCuttingSizes_CuttingSizes_SizeName,OrderCuttingSizes_CuttingSizes_SizeUnits from publ_OrderCuttingSizes" + $" where ParentSurfaceItemId= " + Convert.ToString(dt.Rows[0]["itemID"]) + " and " + $"OrderCuttingSizes_OrderDetails_OrderNumber='" + Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"]) + "' " + "and surfaceId = 3081 and isActive = 1"; DataTable dtcuttingsizedata = xData.GetCustomTypedTable(cuttingsizequery); StringBuilder cuttingsize = new StringBuilder(); //Table start. cuttingsize.Append("
"); cuttingsize.Append(""); //Adding HeaderRow. cuttingsize.Append(""); foreach (DataColumn column in dtcuttingsizedata.Columns) { column.ColumnName = column.ColumnName.Replace("OrderCuttingSizes_CuttingSizes_", "").ToString(); if (column.ColumnName == "SizeName") { column.ColumnName = "Size Name"; cuttingsize.Append(""); } else if (column.ColumnName == "SizeUnits") { column.ColumnName = "Size Units"; cuttingsize.Append(""); } } cuttingsize.Append(""); if (dtcuttingsizedata.Rows.Count > 0) { //Adding DataRow. foreach (DataRow row in dtcuttingsizedata.Rows) { cuttingsize.Append(""); foreach (DataColumn column in dtcuttingsizedata.Columns) { if (column.ColumnName == "Size Name") cuttingsize.Append(""); else cuttingsize.Append(""); } cuttingsize.Append(""); } } else { cuttingsize.Append(""); cuttingsize.Append(""); cuttingsize.Append(""); } //Table end. cuttingsize.Append("
" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
"); cuttingsize.Append("
"); PDFBody += cuttingsize.ToString(); StringBuilder cs = new StringBuilder(); cs.Append(""); cs.Append(""); cs.Append(""); cs.Append(""); cs.Append(""); cs.Append(""); cs.Append(""); cs.Append("
Master Size: " + Convert.ToString(dt.Rows[0]["Orders_SupplyDetails_CuttingMasterSize"]) + "Marker Maker: " + Convert.ToString(dt.Rows[0]["Orders_SupplyDetails_CuttingMarkerMaker"]) + "
"); PDFBody += cs.ToString(); break; #endregion case "1087": //Outwork #region Outwork PDFBody = PDFBody.Replace("{FABRICORDER}", "OUTWORK ORDER"); //Table start. sb.Append(""); //Adding HeaderRow. sb.Append(""); foreach (DataColumn column in childData.Columns) { column.ColumnName = column.ColumnName.Replace("OrderOutwork_OutworkDetails_", "").ToString(); if (column.ColumnName == "UnitsorMeters") { column.ColumnName = "Units or Meters"; sb.Append(""); } else if (column.ColumnName == "TotalUnitsorMeters") { column.ColumnName = "Total Units/Meters"; sb.Append(""); } else if (column.ColumnName == "TotalPrice") { column.ColumnName = "Total Price"; sb.Append(""); } else { sb.Append(""); } } sb.Append(""); if (childData.Rows.Count > 0) { foreach (DataRow row in childData.Rows) { sb.Append(""); foreach (DataColumn column in childData.Columns) { if (column.ColumnName == "Total Price") totalprice += Convert.ToDecimal(row[column.ColumnName]); if (column.ColumnName == "Reference" || column.ColumnName == "Description" || column.ColumnName == "Colour") sb.Append(""); else sb.Append(""); } sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); } sb.Append(""); sb.Append(""); //Table end. sb.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
Total Amount (Excl. VAT): R " + totalprice.ToString() + "
"); PDFBody += sb.ToString(); break; #endregion case "1137": //Reshaping #region Reshaping PDFBody = PDFBody.Replace("{FABRICORDER}", "RESHAPING ORDER"); //Table start. sb.Append(""); //Adding HeaderRow. sb.Append(""); foreach (DataColumn column in childData.Columns) { column.ColumnName = column.ColumnName.Replace("OrderReshaping_ReshapingDetails_", "").ToString(); if (column.ColumnName == "FabricQualityReference") { column.ColumnName = "Fabric Quality Reference"; sb.Append(""); } else if (column.ColumnName == "FabricDescription") { column.ColumnName = "Fabric Description"; sb.Append(""); } else if (column.ColumnName == "FabricColour") { column.ColumnName = "Fabric Colour"; sb.Append(""); } else if (column.ColumnName == "InternalRating") { column.ColumnName = "Internal Rating"; sb.Append(""); } else if (column.ColumnName == "MarkerRating") { column.ColumnName = "Marker Rating"; sb.Append(""); } else { sb.Append(""); } } sb.Append(""); if (childData.Rows.Count > 0) { //Adding DataRow. foreach (DataRow row in childData.Rows) { sb.Append(""); foreach (DataColumn column in childData.Columns) { if (column.ColumnName == "Fabric Quality Reference" || column.ColumnName == "Fabric Description" || column.ColumnName == "Fabric Colour") sb.Append(""); else sb.Append(""); } sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); } //Table end. sb.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
"); PDFBody += sb.ToString(); string reshapingsizequery = $"select OrderReshapingSizes_ReshapingSizes_SizeName,OrderReshapingSizes_ReshapingSizes_SizeUnits from publ_OrderReshapingSizes " + $" where ParentSurfaceItemId= " + Convert.ToString(dt.Rows[0]["itemID"]) + " and " + $"OrderReshapingSizes_OrderDetails_OrderNumber='" + Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"]) + "' " + "and surfaceId = 3083 and isActive = 1"; DataTable dtreshapingsizedata = xData.GetCustomTypedTable(reshapingsizequery); StringBuilder reshapingsize = new StringBuilder(); //Table start. reshapingsize.Append("
"); reshapingsize.Append(""); //Adding HeaderRow. reshapingsize.Append(""); foreach (DataColumn column in dtreshapingsizedata.Columns) { column.ColumnName = column.ColumnName.Replace("OrderReshapingSizes_ReshapingSizes_", "").ToString(); if (column.ColumnName == "SizeName") { column.ColumnName = "Size Name"; reshapingsize.Append(""); } else if (column.ColumnName == "SizeUnits") { column.ColumnName = "Size Units"; reshapingsize.Append(""); } } reshapingsize.Append(""); if (dtreshapingsizedata.Rows.Count > 0) { //Adding DataRow. foreach (DataRow row in dtreshapingsizedata.Rows) { reshapingsize.Append(""); foreach (DataColumn column in dtreshapingsizedata.Columns) { if (column.ColumnName == "Size Name") reshapingsize.Append(""); else reshapingsize.Append(""); } reshapingsize.Append(""); } } else { reshapingsize.Append(""); reshapingsize.Append(""); reshapingsize.Append(""); } //Table end. reshapingsize.Append("
" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
"); reshapingsize.Append("
"); PDFBody += reshapingsize.ToString(); StringBuilder rs = new StringBuilder(); rs.Append(""); rs.Append(""); rs.Append(""); rs.Append(""); rs.Append(""); rs.Append(""); rs.Append(""); rs.Append("
Master Size: " + Convert.ToString(dt.Rows[0]["Orders_SupplyDetails_ReshapingMasterSize"]) + "Marker Maker: " + Convert.ToString(dt.Rows[0]["Orders_SupplyDetails_ReshapingMarkerMaker"]) + "
"); PDFBody += rs.ToString(); break; #endregion case "1090": //Trim #region Trim PDFBody = PDFBody.Replace("{FABRICORDER}", "TRIM ORDER"); //Table start. sb.Append(""); //Adding HeaderRow. sb.Append(""); foreach (DataColumn column in childData.Columns) { column.ColumnName = column.ColumnName.Replace("OrderTrims_TrimDetails_", "").ToString(); if (column.ColumnName == "SupplierReference") { column.ColumnName = "Supplier Reference"; sb.Append(""); } else if (column.ColumnName == "QualityReference") { column.ColumnName = "Quality Reference"; sb.Append(""); } else if (column.ColumnName == "TotalPrice") { column.ColumnName = "Total Price"; sb.Append(""); } else if (column.ColumnName == "TrimColour") { column.ColumnName = "Trim Colour"; sb.Append(""); } else if (column.ColumnName == "UnitsorMetres") { column.ColumnName = "Units or Metres"; sb.Append(""); } else if (column.ColumnName == "TotalUnitsorMeters") { column.ColumnName = "Total Units/Meters"; sb.Append(""); } else { sb.Append(""); } } sb.Append(""); //Adding DataRow. if (childData.Rows.Count > 0) { foreach (DataRow row in childData.Rows) { sb.Append(""); foreach (DataColumn column in childData.Columns) { if (column.ColumnName == "Total Price") totalprice += Convert.ToDecimal(row[column.ColumnName]); if (column.ColumnName == "Total Price" || column.ColumnName == "Total Units/Meters" || column.ColumnName == "Units or Metres" || column.ColumnName == "Price") sb.Append(""); else sb.Append(""); } sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); } sb.Append(""); sb.Append(""); //Table end. sb.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
Total Amount (Excl. VAT): R " + totalprice.ToString() + "
"); PDFBody += sb.ToString(); break; #endregion case "1091": //Zip #region Zip //Table start. sb.Append(""); //Adding HeaderRow. sb.Append(""); foreach (DataColumn column in childData.Columns) { column.ColumnName = column.ColumnName.Replace("OrderZips_ZipDetails_", "").ToString(); if (column.ColumnName == "SupplierReference") { column.ColumnName = "Supplier Reference"; sb.Append(""); } else if (column.ColumnName == "QualityReference") { column.ColumnName = "Quality Reference"; sb.Append(""); } else if (column.ColumnName == "TotalPrice") { column.ColumnName = "Total Price"; sb.Append(""); } else if (column.ColumnName == "TotalUnits") { column.ColumnName = "Total Units"; sb.Append(""); } else if (column.ColumnName == "UnitPrice") { column.ColumnName = "Unit Price"; sb.Append(""); } else if (column.ColumnName == "ZipColour") { column.ColumnName = "Zip Colour"; sb.Append(""); } else { sb.Append(""); } } sb.Append(""); //Adding DataRow. if (childData.Rows.Count > 0) { foreach (DataRow row in childData.Rows) { sb.Append(""); foreach (DataColumn column in childData.Columns) { if (column.ColumnName == "Total Price") totalprice += Convert.ToDecimal(row[column.ColumnName]); if (column.ColumnName == "Supplier Reference" || column.ColumnName == "Quality Reference" || column.ColumnName == "Zip Colour" || column.ColumnName == "Description") sb.Append(""); else sb.Append(""); } sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); } sb.Append(""); sb.Append(""); //Table end. sb.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
No data available in table
Total Amount (Excl. VAT): R " + totalprice.ToString() + "
"); PDFBody += sb.ToString(); string parentId = "0"; string zipsizequery = $"select OrderZipSizes_ZipSizeDetails_ZipSize"; if (Convert.ToInt32(dt.Rows[0]["ParentSurfaceItemId"]) != 0) { parentId = Convert.ToString(dt.Rows[0]["itemID"]); zipsizequery += $",OrderZipSizes_ZipSizeDetails_StyleSize"; } else { parentId = Convert.ToString(childData.Rows[0]["itemID"]); zipsizequery += $", OrderZipSizes_ZipSizeDetails_Units"; } zipsizequery += $" from publ_OrderZipSizes where ParentSurfaceItemId= " + parentId + " and " + $"OrderZipSizes_ZipSizeDetails_OrderNumber='" + Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"]) + "' " + "and surfaceId = 3086 and isActive = 1"; DataTable dtzipsizedata = xData.GetCustomTypedTable(zipsizequery); StringBuilder zipsize = new StringBuilder(); //Table start. zipsize.Append("
"); zipsize.Append(""); //Adding HeaderRow. zipsize.Append(""); foreach (DataColumn column in dtzipsizedata.Columns) { column.ColumnName = column.ColumnName.Replace("OrderZipSizes_ZipSizeDetails_", "").ToString(); if (column.ColumnName == "StyleSize") column.ColumnName = "Style Size"; else if (column.ColumnName == "ZipSize") column.ColumnName = "Zip Size"; else if (column.ColumnName == "Units") column.ColumnName = "Units Per Size"; zipsize.Append(""); } zipsize.Append(""); decimal totalUnits = 0; if (dtzipsizedata.Rows.Count > 0) { //Adding DataRow. foreach (DataRow row in dtzipsizedata.Rows) { zipsize.Append(""); foreach (DataColumn column in dtzipsizedata.Columns) { if (column.ColumnName == "Units Per Size") { totalUnits += Convert.ToDecimal(row[column.ColumnName]); } zipsize.Append(""); } zipsize.Append(""); } } else { zipsize.Append(""); zipsize.Append(""); zipsize.Append(""); } if (Convert.ToInt32(dt.Rows[0]["ParentSurfaceItemId"]) == 0) { zipsize.Append(""); zipsize.Append(""); } //Table end. zipsize.Append("
" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "
No data available in table
Total Units : " + totalUnits.ToString() + "
"); zipsize.Append("
"); PDFBody += zipsize.ToString(); break; #endregion } string reportBody = PDFBody; string OrderNumber = Convert.ToString(dt.Rows[0]["Orders_OrderDetails_OrderNumber"]).Replace(":", "-"); string reportFile = "Order_" + OrderNumber + "_" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm") + ".pdf"; string reportPath = HttpContext.Current.Server.MapPath("~/upload/documents/"); utils.validateFolder(reportPath); utils.ConvertHTMLToPDFFile(reportBody, reportPath + reportFile, true, "", "", false); pdfFile = reportFile; } return pdfFile; } #endregion #region TrimPack PDF Print public static string TrimPackPDFPrint(int itemId) { string PDFBody = string.Empty, pdfFile = string.Empty; List listDevice = new List(); oDynamicParam param2 = new oDynamicParam(); param2.paramDisplayName = "ParentItemId"; param2.paramObject = itemId; listDevice.Add(param2); DataSet childData = xData.GetTypedDataSetByProc("recId", typeof(oSurfaceFieldData), "SP_GetAllTrimPackDetails", listDevice); DataTable dtStyleTrimPackData = childData.Tables[0]; if (dtStyleTrimPackData.Rows.Count > 0) { StringBuilder sbTrimPackLabel = new StringBuilder(); sbTrimPackLabel.Append(""); sbTrimPackLabel.Append(""); sbTrimPackLabel.Append(""); sbTrimPackLabel.Append(""); sbTrimPackLabel.Append("
Style TrimPack :
"); PDFBody += sbTrimPackLabel.ToString(); StringBuilder sbStyleDetail = new StringBuilder(); sbStyleDetail.Append("
"); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append(""); sbStyleDetail.Append("
Style ID : " + Convert.ToString(dtStyleTrimPackData.Rows[0]["StyleDetails_StyleID"]) + " Brand Name : " + Convert.ToString(dtStyleTrimPackData.Rows[0]["StyleDetails_BrandName"]) + "
Style Code : " + Convert.ToString(dtStyleTrimPackData.Rows[0]["StyleDetails_StyleCode"]) + " Colour : " + Convert.ToString(dtStyleTrimPackData.Rows[0]["StyleDetails_StyleColour"]) + "
"); PDFBody += sbStyleDetail.ToString(); #region wash care and general items StringBuilder sbWashCareLabel = new StringBuilder(); sbWashCareLabel.Append("
"); sbWashCareLabel.Append(""); sbWashCareLabel.Append(""); sbWashCareLabel.Append(""); sbWashCareLabel.Append(""); sbWashCareLabel.Append(""); sbWashCareLabel.Append("
Wash Cares : General Items :
"); PDFBody += sbWashCareLabel.ToString(); StringBuilder sbWashCare = new StringBuilder(); DataTable dtGeneralItem = childData.Tables[2]; DataTable dtWashCaredata = childData.Tables[1]; sbWashCare.Append("
"); sbWashCare.Append(""); sbWashCare.Append(""); sbWashCare.Append(""); sbWashCare.Append(""); sbWashCare.Append(""); sbWashCare.Append("
"); #region wash care table sbWashCare.Append(""); sbWashCare.Append(""); foreach (DataColumn column in dtWashCaredata.Columns) { column.ColumnName = column.ColumnName.Replace("TrimpackWashCares_WashCareNumbers_", "").ToString(); if (column.ColumnName == "SizeName") { column.ColumnName = "Size Name"; } sbWashCare.Append(""); } sbWashCare.Append(""); if (dtWashCaredata.Rows.Count > 0) { //Adding DataRow. foreach (DataRow row in dtWashCaredata.Rows) { sbWashCare.Append(""); foreach (DataColumn column in dtWashCaredata.Columns) { sbWashCare.Append(""); } sbWashCare.Append(""); } } else { sbWashCare.Append(""); sbWashCare.Append(""); sbWashCare.Append(""); } sbWashCare.Append("
" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "
No data available in table
"); #endregion sbWashCare.Append("
"); #region general table sbWashCare.Append(""); sbWashCare.Append(""); foreach (DataColumn column in dtGeneralItem.Columns) { column.ColumnName = column.ColumnName.Replace("TrimpackGeneralItems_GeneralItemNumbers_", "").ToString(); sbWashCare.Append(""); } sbWashCare.Append(""); if (dtGeneralItem.Rows.Count > 0) { //Adding DataRow. foreach (DataRow row in dtGeneralItem.Rows) { sbWashCare.Append(""); foreach (DataColumn column in dtGeneralItem.Columns) { sbWashCare.Append(""); } sbWashCare.Append(""); } } else { sbWashCare.Append(""); sbWashCare.Append(""); sbWashCare.Append(""); } sbWashCare.Append("
" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "
No data available in table
"); #endregion sbWashCare.Append("
"); PDFBody += sbWashCare.ToString(); #endregion StringBuilder sbTrimpackData = new StringBuilder(); sbTrimpackData.Append("
"); sbTrimpackData.Append(""); sbTrimpackData.Append(""); sbTrimpackData.Append(""); sbTrimpackData.Append(""); sbTrimpackData.Append(""); sbTrimpackData.Append(""); sbTrimpackData.Append("
Fabric Content : " + Convert.ToString(dtStyleTrimPackData.Rows[0]["Trimpack_StyleTrimpack_FabricContent"]) + " SKU Price: " + Convert.ToString(dtStyleTrimPackData.Rows[0]["Trimpack_StyleTrimpack_SKUPrice"]) + " SKU Total Price: " + Convert.ToString(dtStyleTrimPackData.Rows[0]["Trimpack_StyleTrimpack_SKUTotalPrice"]) + "
"); PDFBody += sbTrimpackData.ToString(); #region Binding DataTable dtbindingdata = childData.Tables[3]; StringBuilder sbBindingLabel = new StringBuilder(); sbBindingLabel.Append("
"); sbBindingLabel.Append(""); sbBindingLabel.Append(""); sbBindingLabel.Append(""); sbBindingLabel.Append(""); sbBindingLabel.Append("
Binding :
"); PDFBody += sbBindingLabel.ToString(); StringBuilder sbBinding = new StringBuilder(); sbBinding.Append(""); sbBinding.Append(""); foreach (DataColumn column in dtbindingdata.Columns) { column.ColumnName = column.ColumnName.Replace("TrimpackBinding_BindingDetails_", "").ToString(); switch (column.ColumnName) { case "FabricQualityReference": column.ColumnName = "Fabric Quality Reference"; sbBinding.Append(""); break; case "FabricDescription": column.ColumnName = "Fabric Description"; sbBinding.Append(""); break; case "FabricColour": column.ColumnName = "Fabric Colour"; sbBinding.Append(""); break; case "BindingDescription": column.ColumnName = "Binding Description"; sbBinding.Append(""); break; default: sbBinding.Append(""); break; } } sbBinding.Append(""); //Adding DataRow. if (dtbindingdata.Rows.Count > 0) { foreach (DataRow row in dtbindingdata.Rows) { sbBinding.Append(""); foreach (DataColumn column in dtbindingdata.Columns) { sbBinding.Append(""); } sbBinding.Append(""); } } else { sbBinding.Append(""); sbBinding.Append(""); sbBinding.Append(""); } //Table end. sbBinding.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "
No data available in table
"); PDFBody += sbBinding.ToString(); #endregion #region Trims DataTable dttrimdata = childData.Tables[4]; StringBuilder sbTrimLabel = new StringBuilder(); sbTrimLabel.Append("
"); sbTrimLabel.Append(""); sbTrimLabel.Append(""); sbTrimLabel.Append(""); sbTrimLabel.Append(""); sbTrimLabel.Append("
Trims :
"); PDFBody += sbTrimLabel.ToString(); StringBuilder sbTrim = new StringBuilder(); //Table start. sbTrim.Append(""); //Adding HeaderRow. sbTrim.Append(""); foreach (DataColumn column in dttrimdata.Columns) { column.ColumnName = column.ColumnName.Replace("TrimpackTrims_TrimDetails_", "").ToString(); switch (column.ColumnName) { case "QualityReference": column.ColumnName = "Quality Reference"; sbTrim.Append(""); break; case "Description": sbTrim.Append(""); break; case "TrimColour": column.ColumnName = "Trim Colour"; sbTrim.Append(""); break; case "UnitsorMeters": column.ColumnName = "Units or Metres"; sbTrim.Append(""); break; default: sbTrim.Append(""); break; } } sbTrim.Append(""); //Adding DataRow. if (dttrimdata.Rows.Count > 0) { foreach (DataRow row in dttrimdata.Rows) { sbTrim.Append(""); foreach (DataColumn column in dttrimdata.Columns) { sbTrim.Append(""); } sbTrim.Append(""); } } else { sbTrim.Append(""); sbTrim.Append(""); sbTrim.Append(""); } //Table end. sbTrim.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "
No data available in table
"); PDFBody += sbTrim.ToString(); #endregion #region Zips and Zip Size DataTable dtzipdata = childData.Tables[5]; StringBuilder sbZipLabel = new StringBuilder(); sbZipLabel.Append("
"); sbZipLabel.Append(""); sbZipLabel.Append(""); sbZipLabel.Append(""); sbZipLabel.Append(""); sbZipLabel.Append("
Zips :
"); PDFBody += sbZipLabel.ToString(); StringBuilder sbZip = new StringBuilder(); //Table start. sbZip.Append(""); //Adding HeaderRow. sbZip.Append(""); foreach (DataColumn column in dtzipdata.Columns) { column.ColumnName = column.ColumnName.Replace("TrimpackZips_ZipDetails_", "").ToString(); switch (column.ColumnName) { case "QualityReference": column.ColumnName = "Quality Reference"; sbZip.Append(""); break; case "Description": sbZip.Append(""); break; case "ZipColour": column.ColumnName = "Zip Colour"; sbZip.Append(""); break; case "ZipID": break; case "ParentSurfaceItemId": break; default: sbZip.Append(""); break; } } sbZip.Append(""); string zipID = string.Empty; //Adding DataRow. if (dtzipdata.Rows.Count > 0) { foreach (DataRow row in dtzipdata.Rows) { sbZip.Append(""); foreach (DataColumn column in dtzipdata.Columns) { if (column.ColumnName == "Quality Reference" || column.ColumnName == "Zip Colour" || column.ColumnName == "Description") { sbZip.Append(""); } else if (column.ColumnName == "ZipID" || column.ColumnName == "ParentSurfaceItemId") { if (column.ColumnName == "ZipID") zipID = row[column.ColumnName].ToString(); } else { sbZip.Append(""); } } sbZip.Append(""); sbZip.Append(""); var trimpackZipSizes = "SELECT TrimpackZipSizes_ZipSizeDetails_StyleSize,TrimpackZipSizes_ZipSizeDetails_ZipSize," + "TrimpackZipSizes_ZipSizeDetails_Quantity FROM publ_TrimpackZipSizes WHERE ParentSurfaceItemId = '" + Convert.ToString(dtzipdata.Rows[0]["ParentSurfaceItemId"]) + "'" + "and TrimpackZipSizes_ZipSizeDetails_ZipID ='" + zipID.ToString() + "'"; DataTable dtzipsize = xData.GetCustomTypedTable(trimpackZipSizes); foreach (DataColumn column in dtzipsize.Columns) { column.ColumnName = column.ColumnName.Replace("TrimpackZipSizes_ZipSizeDetails_", "").ToString(); if (column.ColumnName == "StyleSize") { column.ColumnName = "Style Size"; } else if (column.ColumnName == "ZipSize") { column.ColumnName = "Zip Size"; } sbZip.Append(""); } sbZip.Append(""); sbZip.Append(""); if (dtzipsize.Rows.Count > 0) { //Adding DataRow. foreach (DataRow rW in dtzipsize.Rows) { sbZip.Append(""); foreach (DataColumn column in dtzipsize.Columns) { sbZip.Append(""); } sbZip.Append(""); sbZip.Append(""); } } else { sbZip.Append(""); sbZip.Append(""); sbZip.Append(""); } } } else { sbZip.Append(""); sbZip.Append(""); sbZip.Append(""); } //Table end. sbZip.Append("
" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "" + column.ColumnName + "
" + row[column.ColumnName].ToString() + "" + row[column.ColumnName].ToString() + "
" + column.ColumnName + "
" + rW[column.ColumnName].ToString() + "
No data available in table
No data available in table
"); PDFBody += sbZip.ToString(); #endregion StringBuilder sbNotes = new StringBuilder(); sbNotes.Append("
"); sbNotes.Append(""); sbNotes.Append(""); sbNotes.Append(""); sbNotes.Append(""); sbNotes.Append(""); sbNotes.Append("
Notes/Instructions : " + Convert.ToString(childData.Tables[0].Rows[0]["Trimpack_StyleTrimpack_Instructions"]) + "
"); PDFBody += sbNotes.ToString(); } string reportBody = PDFBody; string reportFile = "TrimPack_" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm") + ".pdf"; string reportPath = HttpContext.Current.Server.MapPath("~/upload/documents/"); utils.validateFolder(reportPath); utils.ConvertHTMLToPDFFile(reportBody, reportPath + reportFile, true, "", "", false); pdfFile = reportFile; return pdfFile; } #endregion } }