public void ContactForm(ProspectInfo p) { /* There is no look up table for Contact Results because they are hardcoded into the form for actually adding a contact to a record * Another Setting is used to allow for customization of the blank Contact Form. It is called "ContactFormResults" * The code takes a semi-colon seperated string stored in ContactFormResults and converts it to a list. * If ContactFormResults does not exist in Settings then the default list is used. * * However, because the results are hardcoded, there will be no translation between the results on this form and the results on the Contact page itself. * We will implement extra values for this table to accomodate this at some point. * */ var Db = DbUtil.Db; List <string> ContactResult = Db.Setting( "ContactFormResults", "Not at Home;Left Door Hanger;Left Message;Contact Made;Gospel Shared;Profession of Faith;Prayer Request Rec'd;Prayed for Person;Already Saved" ).Split(';').ToList(); doc.NewPage(); var t = new PdfPTable(2); t.SetNoBorder(); t.AddCentered("InReach/Outreach Card for {0} ({1})".Fmt(p.Name, p.PeopleId), 2, h1font); t.AddCentered("Contact Summary", 2, h2font); /* Added line for noting the Ministry recording the contact*/ t.AddLeft("Ministry: ______________________", 1, bfont); t.AddRight("Contact Date: _______________", 1, bfont); doc.Add(t); var ContactReason = Db.ContactReasons.Select(rr => rr.Description).Take(10).ToList(); var ContactType = Db.ContactTypes.Select(rr => rr.Description).Take(10).ToList(); DisplayTable("Contact Reason", 5.7f, 1.2f, 24.2f, ContactReason); DisplayTable("Type of Contact", 5.7f, 8f, 24.2f, ContactType); DisplayTable("Results", 5.7f, 14.5f, 24.2f, ContactResult); DisplayNotes("Team Members", 3, 6f, 13.7f, 6.5f); DisplayNotes("Specific Comments on Contact", 5, 18.5f, 1.2f, 13f); DisplayTable("Actions to be taken", 12f, 1f, 6.5f, new List <string> { "Recycle to me on ____/____/____", "Random Recycle", "Follow-up Completed", "Other Action:___________________________________", }); var t2 = new PdfPTable(1); t2.TotalWidth = 7.5f * 72f; t2.SetNoBorder(); t2.LockedWidth = true; t2.AddCentered("Internal Use Only", 1, smallfont); t2.WriteSelectedRows(0, -1, 36f, 56f, dc); }
private void DisplayTable(string title, float width, float x, float y, List <string> reasons) { var t = new PdfPTable(new float[] { 1.3f, width - 1.3f }); t.TotalWidth = width * cm2pts; t.SetNoBorder(); t.LockedWidth = true; t.DefaultCell.MinimumHeight = 1f * cm2pts; t.DefaultCell.VerticalAlignment = PdfPCell.ALIGN_MIDDLE; t.AddPlainRow(title, bfont); foreach (var r in reasons) { t.AddRight("_____", font); t.Add(r, font); } t.WriteSelectedRows(0, -1, x * cm2pts, y * cm2pts, dc); }
public override void ExecuteResult(ControllerContext context) { var Response = context.HttpContext.Response; Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "filename=foo.pdf"); dt = Util.Now; doc = new Document(PageSize.LETTER.Rotate(), 36, 36, 64, 64); var w = PdfWriter.GetInstance(doc, Response.OutputStream); var roles = DbUtil.Db.CurrentRoles(); var i = (from o in DbUtil.Db.Organizations where o.LimitToRole == null || roles.Contains(o.LimitToRole) where o.OrganizationId == orgid select new { o.OrganizationName, o.LeaderName, o.FirstMeetingDate }).SingleOrDefault(); w.PageEvent = new HeadFoot { HeaderText = $"Recent Attendee Report: {i.OrganizationName} - {i.LeaderName} ({(i.FirstMeetingDate.HasValue ? "since " + i.FirstMeetingDate.FormatDate() : "no First Meeting Date set")})", FooterText = "Recent Attendee Report" }; doc.Open(); var q = Attendees(orgid.Value); if (!orgid.HasValue || i == null || !q.Any()) { doc.Add(new Phrase("no data")); } else { var mt = new PdfPTable(1); mt.SetNoPadding(); mt.HeaderRows = 1; float[] widths = new float[] { 4f, 6f, 7f, 2.6f, 2f, 3f }; var t = new PdfPTable(widths); t.DefaultCell.Border = PdfPCell.NO_BORDER; t.DefaultCell.VerticalAlignment = PdfPCell.ALIGN_TOP; t.DefaultCell.SetLeading(2.0f, 1f); t.WidthPercentage = 100; t.AddHeader("Name", boldfont); t.AddHeader("Address", boldfont); t.AddHeader("Phone/Email", boldfont); t.AddHeader("Last Att.", boldfont); t.AddHeader("Birthday", boldfont); t.AddHeader("Status", boldfont); mt.AddCell(t); var color = BaseColor.BLACK; bool?v = null; foreach (var p in q) { if (color == BaseColor.WHITE) { color = new GrayColor(240); } else { color = BaseColor.WHITE; } t = new PdfPTable(widths); t.SetNoBorder(); t.DefaultCell.VerticalAlignment = Element.ALIGN_TOP; t.DefaultCell.BackgroundColor = color; if (v != p.visitor) { t.Add($" ------ {(p.visitor ? "Guests and Previous Members" : "Members")} ------", 6, bigboldfont); } v = p.visitor; t.Add(p.Name, font); var ph = new Paragraph(); ph.AddLine(p.Address, font); ph.AddLine(p.Address2, font); ph.AddLine(p.CSZ, font); t.AddCell(ph); ph = new Paragraph(); ph.AddLine(p.HomePhone.FmtFone("H"), font); ph.AddLine(p.CellPhone.FmtFone("C"), font); ph.AddLine(p.Email, font); t.AddCell(ph); t.Add(p.LastAttend.FormatDate(), font); t.Add(p.Birthday, font); t.Add(p.AttendType, font); t.CompleteRow(); t.Add("", font); t.Add(p.AttendStr, 4, monofont); t.AddRight($"{p.AttendPct:n1}{(p.AttendPct.HasValue ? "%" : "")}", font); mt.AddCell(t); } doc.Add(mt); } doc.Close(); }
public override void ExecuteResult(ControllerContext context) { var Response = context.HttpContext.Response; Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "filename=foo.pdf"); dt = Util.Now; doc = new Document(PageSize.LETTER.Rotate(), 36, 36, 64, 64); var w = PdfWriter.GetInstance(doc, Response.OutputStream); var i = (from m in DbUtil.Db.Meetings where m.MeetingId == mtgid select new { m.Organization.OrganizationName, m.Organization.LeaderName, m.MeetingDate }).SingleOrDefault(); w.PageEvent = new HeadFoot { HeaderText = $"Attendee Report: {i.OrganizationName} - {i.LeaderName} {i.MeetingDate:g}", FooterText = "Attendee Report" }; doc.Open(); var q = Attendees(mtgid.Value); if (!mtgid.HasValue || i == null || !q.Any()) { doc.Add(new Phrase("no data")); } else { var mt = new PdfPTable(1); mt.SetNoPadding(); mt.HeaderRows = 1; float[] widths = { 4f, 6f, 7f, 2.6f, 2f, 3f }; var t = new PdfPTable(widths); t.DefaultCell.Border = PdfPCell.NO_BORDER; t.DefaultCell.VerticalAlignment = PdfPCell.ALIGN_TOP; t.DefaultCell.SetLeading(2.0f, 1f); t.WidthPercentage = 100; t.AddHeader("Name", boldfont); t.AddHeader("Address", boldfont); t.AddHeader("Phone/Email", boldfont); t.AddHeader("Last Att.", boldfont); t.AddHeader("Birthday", boldfont); t.AddHeader("Status", boldfont); mt.AddCell(t); var color = BaseColor.BLACK; foreach (var p in q) { if (color == BaseColor.WHITE) { color = new GrayColor(240); } else { color = BaseColor.WHITE; } t = new PdfPTable(widths); t.DefaultCell.Border = PdfPCell.NO_BORDER; t.DefaultCell.VerticalAlignment = PdfPCell.ALIGN_TOP; t.DefaultCell.SetLeading(2.0f, 1f); t.DefaultCell.BackgroundColor = color; t.WidthPercentage = 100; t.Add(p.Name, font); var ph = new Paragraph(); ph.AddLine(p.Address, font); ph.AddLine(p.Address2, font); ph.AddLine(p.CSZ, font); t.AddCell(ph); ph = new Paragraph(); ph.AddLine(p.HomePhone.FmtFone("H"), font); ph.AddLine(p.CellPhone.FmtFone("C"), font); ph.AddLine(p.Email, font); t.AddCell(ph); t.Add(p.LastAttend.FormatDate(), font); t.Add(p.Birthday, font); t.Add(p.Status, font); t.CompleteRow(); t.Add("", font); t.Add(p.AttendStr, 4, monofont); t.AddRight($"{p.AttendPct:n1}{(p.AttendPct.HasValue ? "%" : "")}", font); mt.AddCell(t); } doc.Add(mt); } doc.Close(); }
public override void ExecuteResult(ControllerContext context) { var Response = context.HttpContext.Response; Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "filename=foo.pdf"); doc = new Document(PageSize.LETTER, 36, 36, 36, 36); var w = PdfWriter.GetInstance(doc, Response.OutputStream); doc.Open(); dc = w.DirectContent; doc.NewPage(); var t = new PdfPTable(1); t.SetNoBorder(); t.AddCentered("In-Reach/Outreach Card", 1, h1font); t.AddCentered("Contact Summary", 1, h2font); t.AddRight("Contact Date: _______________", bfont); doc.Add(t); DisplayTable("Contact Reason", 5.7f, 1.2f, 24f, new List <string> { "Out-Reach (not a church member)", "In-Reach (church/group member)", "Information", "Bereavement", "Health", "Personal", "Other" }); DisplayTable("Type of Contact", 5.7f, 8f, 24f, new List <string> { "Personal Visit", "Phone Call", "Card Sent", "Email Sent", }); DisplayTable("Results", 5.7f, 14.5f, 24f, new List <string> { "Not at Home", "Left Door Hanger", "Left Message", "Contact Made", "Gospel Shared", "Profession of Faith", "Prayer Request Rec'd", "Prayed for Person", "Already Saved", }); DisplayNotes("Team Members", 4, 7.5f, 6f, 18.5f); DisplayNotes("Specific Comments on Contact", 5, 18.5f, 1.2f, 13f); DisplayTable("Actions to be taken", 12f, 1f, 6.5f, new List <string> { "Recycle to me on ____/____/____", "Random Recycle", "Follow-up Completed", }); var t2 = new PdfPTable(1); t2.TotalWidth = 7.5f * 72f; t2.SetNoBorder(); t2.LockedWidth = true; t2.AddCentered("Internal Use Only", 1, smallfont); t2.WriteSelectedRows(0, -1, 36f, 46f, dc); doc.Close(); }
public void ContactForm() { doc.NewPage(); var t = new PdfPTable(1); t.SetNoBorder(); t.AddCentered("InReach/Outreach Card", 1, h1font); t.AddCentered("Contact Summary", 1, h2font); t.AddRight("Contact Date: _______________", bfont); doc.Add(t); DisplayTable("Contact Reason", 5.7f, 1.2f, 24f, new List <string> { "Out-Reach (not a church member)", "In-Reach (church/group member)", "Information", "Bereavement", "Health", "Personal", "Other" }); DisplayTable("Type of Contact", 5.7f, 8f, 24f, new List <string> { "Personal Visit", "Phone Call", "Card Sent", "Email Sent", }); DisplayTable("Results", 5.7f, 14.5f, 24f, new List <string> { "Not at Home", "Left Door Hanger", "Left Message", "Contact Made", "Gospel Shared", "Profession of Faith", "Prayer Request Rec'd", "Prayed for Person", "Already Saved", }); DisplayNotes("Team Members", 4, 7.5f, 6f, 18.5f); DisplayNotes("Specific Comments on Contact", 5, 18.5f, 1.2f, 13f); DisplayTable("Actions to be taken", 12f, 1f, 6.5f, new List <string> { "Recycle to me on ____/____/____", "Random Recycle", "Follow-up Completed", }); var t2 = new PdfPTable(1); t2.TotalWidth = 7.5f * 72f; t2.SetNoBorder(); t2.LockedWidth = true; t2.AddCentered("Internal Use Only", 1, smallfont); t2.WriteSelectedRows(0, -1, 36f, 56f, dc); }