Exemplo n.º 1
0
        private static void CalculateData(ref HtmlDocument html, DataTable partners, HTMLTemplateProcessor templateProcessor)
        {
            var partnerTemplate   = HTMLTemplateProcessor.SelectSingleNode(html.DocumentNode, "//div[@id='partner_template']");
            var partnerParentNode = partnerTemplate.ParentNode;

            int countRow = 0;

            foreach (DataRow partner in partners.Rows)
            {
                if (partner["p_partner_class_c"].ToString() == "FAMILY")
                {
                    partner["PartnerName"] = Calculations.FormatShortName(partner["PartnerName"].ToString(), eShortNameFormat.eReverseShortname);
                }

                templateProcessor.AddParametersFromRow(partner);

                var    newPartnerRow = partnerTemplate.Clone();
                string partnerId     = "partner" + countRow.ToString();
                newPartnerRow.SetAttributeValue("id", partnerId);
                partnerParentNode.AppendChild(newPartnerRow);
                newPartnerRow.InnerHtml = templateProcessor.InsertParameters("{", "}", newPartnerRow.InnerHtml,
                                                                             HTMLTemplateProcessor.ReplaceOptions.NoQuotes);

                countRow++;
            }
            partnerTemplate.Remove();
        }
Exemplo n.º 2
0
        private static void CalculateData(ref HtmlDocument html, DataTable balances, DataTable transactions, HTMLTemplateProcessor templateProcessor)
        {
            var balanceTemplate   = HTMLTemplateProcessor.SelectSingleNode(html.DocumentNode, "//div[@id='costcentreaccount_template']");
            var balanceParentNode = balanceTemplate.ParentNode;

            int countBalanceRow     = 0;
            int countTransactionRow = 0;

            foreach (DataRow balance in balances.Rows)
            {
                // skip account/costcentre combination if there are no transations and the balance is 0
                if ((Decimal)balance["end_balance"] == 0.0m)
                {
                    bool transactionExists = false;
                    foreach (DataRow transaction in transactions.Rows)
                    {
                        if ((transaction["a_account_code_c"].ToString() == balance["a_account_code_c"].ToString()) &&
                            (transaction["a_cost_centre_code_c"].ToString() == balance["a_cost_centre_code_c"].ToString()))
                        {
                            transactionExists = true;
                            break;
                        }
                    }

                    if (!transactionExists)
                    {
                        continue;
                    }
                }

                templateProcessor.AddParametersFromRow(balance);

                var    newBalanceRow = balanceTemplate.Clone();
                string balanceId     = "acccc" + countBalanceRow.ToString();
                newBalanceRow.SetAttributeValue("id", balanceId);
                balanceParentNode.AppendChild(newBalanceRow);
                countBalanceRow++;

                var FooterDiv = HTMLTemplateProcessor.SelectSingleNode(newBalanceRow, ".//div[@class='row']");

                Decimal TotalCredit = 0.0m;
                Decimal TotalDebit  = 0.0m;
                foreach (DataRow transaction in transactions.Rows)
                {
                    if (!((transaction["a_account_code_c"].ToString() == balance["a_account_code_c"].ToString()) &&
                          (transaction["a_cost_centre_code_c"].ToString() == balance["a_cost_centre_code_c"].ToString())))
                    {
                        continue;
                    }

                    TVariant amount = new TVariant(transaction["a_transaction_amount_n"]);
                    if ((bool)transaction["a_debit_credit_indicator_l"])
                    {
                        TotalDebit += amount.ToDecimal();
                    }
                    else
                    {
                        TotalCredit += amount.ToDecimal();
                    }

                    countTransactionRow++;
                }

                templateProcessor.SetParameter("total_debit", new TVariant(TotalDebit));
                templateProcessor.SetParameter("total_credit", new TVariant(TotalCredit));
                FooterDiv.InnerHtml = templateProcessor.InsertParameters("{", "}", FooterDiv.InnerHtml,
                                                                         HTMLTemplateProcessor.ReplaceOptions.NoQuotes);
            }

            balanceTemplate.Remove();
        }