Exemple #1
0
        public static WordTable GetSummaryWordTable(DocumentDataSet ws)
        {
            string date_format   = @"dd-MMM-yyyy";
            string number_format = @"#,##0.00;(#,##0.00)";

            int firstColW = (int)(115.7 * 56.7), secondColW = (int)(37.6 * 56.7), thirdColW = (int)(36.5 * 56.7);

            var wordTable = new WordTable(3);

            foreach (var item in DocumentGeneratorHelper.RmaCompanyInformation)
            {
                wordTable.AddInvoiceRow(item.Item1, item.Item2);
            }
            wordTable.AddInvoiceRow(string.Format("Date:{0}", DateTime.Now.ToString(date_format)));
            wordTable.AddInvoiceRow(" ");
            wordTable.AddInvoiceRow(string.Format("To:{0}", ws.AssumingCompanyName));
            wordTable.AddInvoiceRow("Attn: Reinsurance Department");
            wordTable.AddInvoiceRow(string.Format("Re: {0} Business as of {1}", ws.AssumingCompanyName, ws.QuarterEndDate.ToString(date_format)));

            wordTable.AddInvoiceRow("Management Fees Summary", true, 1);
            wordTable.MergeCurrentRow(1, 1);
            wordTable.CurrentRow[1].H_Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;
            wordTable.CurrentRow[1].FontSize    = 12;
            wordTable.CurrentRow[1].Width       = (secondColW + thirdColW);

            wordTable.AddInvoiceRow("Current Period", true, 1);
            wordTable.MergeCurrentRow(1, 1);
            wordTable.CurrentRow[1].H_Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;
            wordTable.CurrentRow[1].Width       = (secondColW + thirdColW);

            wordTable.AddInvoiceRow(" ");
            wordTable.AddInvoiceRow("ALL UW YEARS COMBINED", "Business In CAD", "Business In USD", true);
            var claimSummaries = ws.ReportDtos ?? new List <DocumentDataDto>();

            var group1 = claimSummaries.GroupBy(a => a.FeeType).OrderBy(a => a.Key);

            decimal total1 = 0.0m, total2 = 0.0m;

            foreach (var g1 in group1)
            {
                wordTable.AddInvoiceRow(" ");
                var feeTypeDesc = g1.Key == FeeTypeEnum.TotalManagementFees ? "Total Management Fees" : "Total Profit Commission & Management Fee Adjustments";

                wordTable.AddInvoiceRow(feeTypeDesc, true);

                var group2 = g1.GroupBy(a => a.UnderwritingYear).OrderBy(a => a.Key);

                decimal subTotal1 = 0.0m, subTotal2 = 0.0m;
                foreach (var g2 in group2)
                {
                    var val1 = string.Format("UW Year {0}", g2.Key.ToString());
                    var val2 = g2.Sum(a => a.BusinessInCAD).ToString(number_format);
                    var val3 = g2.Sum(a => a.BusinessInUSD).ToString(number_format);
                    wordTable.AddInvoiceRow(val1, val2, val3);
                    wordTable.CurrentRow[1].H_Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.RIGHT;
                    wordTable.CurrentRow[2].H_Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.RIGHT;

                    subTotal1 += g2.Sum(a => a.BusinessInCAD);
                    subTotal2 += g2.Sum(a => a.BusinessInUSD);
                }
                wordTable.AddInvoiceRow(string.Empty, "-------------------------", "-------------------------");
                wordTable.AddInvoiceRow("Sub Total", subTotal1.ToString(number_format), subTotal2.ToString(number_format), true);

                total1 += subTotal1;
                total2 += subTotal2;
            }

            wordTable.AddInvoiceRow(" ");
            var totalV1 = "Total Amount Due to RMA this Quarter";

            wordTable.AddInvoiceRow(totalV1, total1.ToString(number_format), total2.ToString(number_format), true);

            //bottom
            wordTable.AddInvoiceRow(" ");
            wordTable.AddInvoiceRow("Please wire these funds to our account within 10 working days.");
            wordTable.AddInvoiceRow(" ");
            wordTable.AddInvoiceRow("Best regards,");

            wordTable.AddInvoiceRow(" ");
            wordTable.AddInvoiceRow(" ");

            wordTable.AddInvoiceRow("Anna Lee");
            wordTable.AddInvoiceRow("Associate Director,");
            wordTable.AddInvoiceRow("Life Reinsurance Administration and Financial Reporting");

            //
            wordTable.ColumnWidth = new List <int>()
            {
                firstColW, secondColW, thirdColW
            };
            wordTable.AdjustColumnWidth();

            return(wordTable);
        }
Exemple #2
0
        public static WordTable GetUWYearWordTable(DocumentDataSet ws)
        {
            string date_format   = @"dd-MMM-yyyy";
            string number_format = @"#,##0.00;(#,##0.00)";

            int firstColW = (int)(115.7 * 56.7), secondColW = (int)(37.6 * 56.7), thirdColW = (int)(36.5 * 56.7);

            var wordTable = new WordTable(3);

            foreach (var item in DocumentGeneratorHelper.RmaCompanyInformation)
            {
                wordTable.AddInvoiceRow(item.Item1, item.Item2);
            }

            wordTable.AddInvoiceRow("Management Fees Summary", true, 1);
            wordTable.MergeCurrentRow(1, 1);
            wordTable.CurrentRow[1].H_Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;
            wordTable.CurrentRow[1].FontSize    = 12;
            wordTable.CurrentRow[1].Width       = (secondColW + thirdColW);

            wordTable.AddInvoiceRow("Current Period", true, 1);
            wordTable.MergeCurrentRow(1, 1);
            wordTable.CurrentRow[1].H_Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;
            wordTable.CurrentRow[1].Width       = (secondColW + thirdColW);

            wordTable.AddInvoiceRow(" ");
            wordTable.AddInvoiceRow(string.Format("Underwriting Year - {0}", ws.UnderwritingYear.ToString()), "Business In CAD", "Business In USD", true);
            var claimSummaries = ws.ReportDtos ?? new List <DocumentDataDto>();

            var group1 = claimSummaries.GroupBy(a => a.FeeType).OrderBy(a => a.Key);

            decimal total1 = 0.0m, total2 = 0.0m;

            foreach (var g1 in group1)
            {
                wordTable.AddInvoiceRow(" ");
                var feeTypeDesc = g1.Key == FeeTypeEnum.TotalManagementFees ? "Total Management Fees" : "Total Profit Commission & Management Fee Adjustments";

                wordTable.AddInvoiceRow(feeTypeDesc, true);

                var group2 = g1.GroupBy(a => new { a.TreatyId, a.TreatyNumber, a.TreatyName }).OrderBy(a => a.Key.TreatyName);

                decimal subTotal1 = 0.0m, subTotal2 = 0.0m;
                foreach (var g2 in group2)
                {
                    var val1 = string.Format("{0} {1}", g2.Key.TreatyNumber, g2.Key.TreatyName);
                    var val2 = g2.Sum(a => a.BusinessInCAD).ToString(number_format);
                    var val3 = g2.Sum(a => a.BusinessInUSD).ToString(number_format);
                    wordTable.AddInvoiceRow(val1, val2, val3);
                    wordTable.CurrentRow[1].H_Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.RIGHT;
                    wordTable.CurrentRow[2].H_Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.RIGHT;

                    subTotal1 += g2.Sum(a => a.BusinessInCAD);
                    subTotal2 += g2.Sum(a => a.BusinessInUSD);
                }
                wordTable.AddInvoiceRow(string.Empty, "-------------------------", "-------------------------");
                wordTable.AddInvoiceRow("Sub Total", subTotal1.ToString(number_format), subTotal2.ToString(number_format), true);

                total1 += subTotal1;
                total2 += subTotal2;
            }

            wordTable.AddInvoiceRow(" ");
            var totalV1 = "Net Amount Due to RMA this Quarter";

            wordTable.AddInvoiceRow(totalV1, total1.ToString(number_format), total2.ToString(number_format), true);

            //
            wordTable.ColumnWidth = new List <int>()
            {
                firstColW, secondColW, thirdColW
            };
            wordTable.AdjustColumnWidth();

            return(wordTable);
        }
        public static void ExportDocumentWithDataTable(XWPFDocument docx, DocumentSetting setting, WordTable wordTable)
        {
            if (wordTable == null || wordTable.Rows == null || wordTable.Rows.Count == 0)
            {
                return;
            }

            CT_P p = docx.Document.body.AddNewP();

            p.AddNewPPr().AddNewJc().val = ST_Jc.center;

            var Rows = wordTable.Rows;

            XWPFTable table = docx.CreateTable(1, wordTable.ColumnCount);

            table.RemoveRow(0);//remove first blank row
            table.Width = wordTable.Width;

            for (var i = 0; i < Rows.Count; i++)
            {
                var row = Rows[i];
                if (row == null || row.Count == 0)
                {
                    continue;
                }

                CT_Row       nr = new CT_Row();
                XWPFTableRow mr = new XWPFTableRow(nr, table);
                table.AddRow(mr);

                for (var j = 0; j < row.Count; j++)
                {
                    var cell = row[j];

                    var c1 = mr.CreateCell();
                    var ct = c1.GetCTTc();
                    var cp = ct.AddNewTcPr();
                    cp.gridSpan     = new CT_DecimalNumber();
                    cp.gridSpan.val = Convert.ToString(cell.MergeColumnNumber);

                    var tblW = cp.AddNewTcW();
                    tblW.type = ST_TblWidth.dxa;
                    tblW.w    = cell.Width.ToString();

                    c1.SetParagraph(SetCellText(docx, table, cell));

                    c1.SetBorderTop(XWPFTable.XWPFBorderType.NONE, 0, 0, "#FFFFFF");
                    c1.SetBorderRight(XWPFTable.XWPFBorderType.NONE, 0, 0, "#FFFFFF");
                    c1.SetBorderLeft(XWPFTable.XWPFBorderType.NONE, 0, 0, "#FFFFFF");
                    c1.SetBorderBottom(XWPFTable.XWPFBorderType.NONE, 0, 0, "#FFFFFF");
                }
            }
        }