private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
 {
     if (clbIncludeSpecialTypes.GetCheckedStringList().Length == 0)
     {
         TVerificationResult VerificationResult = new TVerificationResult(
             Catalog.GetString("Select at least one special type"),
             Catalog.GetString("Please select at least one special type, to avoid listing the whole database!"),
             TResultSeverity.Resv_Critical);
         FPetraUtilsObject.AddVerificationResult(VerificationResult);
     }
 }
Ejemplo n.º 2
0
 private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
 {
     if (clbField.GetCheckedStringList().Length == 0)
     {
         TVerificationResult VerificationResult = new TVerificationResult(
             Catalog.GetString("Select at least one Field"),
             Catalog.GetString("Please select at least one Field as otherwise the Extract cannot be created!"),
             TResultSeverity.Resv_Critical);
         FPetraUtilsObject.AddVerificationResult(VerificationResult);
     }
 }
 private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
 {
     if (!FDirectRelationshipTable.Select(FDirectRelationshipTable.DefaultView.RowFilter).Any(r => (bool)r["Selection"]) &&
         !FReciprocalRelationshipTable.Select(FReciprocalRelationshipTable.DefaultView.RowFilter).Any(r => (bool)r["Selection"]))
     {
         TVerificationResult VerificationResult = new TVerificationResult(
             Catalog.GetString("Select at least one Relationship Type to run the report."),
             Catalog.GetString("No Relationship Type selected!"),
             TResultSeverity.Resv_Critical);
         FPetraUtilsObject.AddVerificationResult(VerificationResult);
     }
 }
Ejemplo n.º 4
0
 private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
 {
     if ((txtThisYear.Text == "0") ||
         (txtLastYear.Text == "0"))
     {
         TVerificationResult VerificationResult = new TVerificationResult(
             Catalog.GetString("No valid year entered."),
             Catalog.GetString("Please enter a valid year."),
             TResultSeverity.Resv_Critical);
         FPetraUtilsObject.AddVerificationResult(VerificationResult);
     }
 }
Ejemplo n.º 5
0
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            // Matching Pattern of the outreach code for sql search.
            // The first two characters refer to the "prefix"
            // The 3. and 4. character refer to the year
            string MatchingPatern = "";

            switch (txtOutreachCode.Text.Length)
            {
            case 1:
                MatchingPatern = txtOutreachCode.Text + "_";
                break;

            case 2:
                MatchingPatern = txtOutreachCode.Text;
                break;

            default:
                break;
            }

            if (txtYear.Text.Length > 0)
            {
                CompleteYearBox();
                int year = Convert.ToInt32(txtYear.Text);

                if ((year < 1900) ||
                    (year > 3000))
                {
                    TVerificationResult VerificationResult = new TVerificationResult("Please insert a reasonable year or leave the year box empty.",
                                                                                     "For example correct year value is 2012",
                                                                                     TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
                else
                {
                    if (MatchingPatern.Length == 0)
                    {
                        MatchingPatern = "__";
                    }

                    MatchingPatern = MatchingPatern + txtYear.Text.Substring(2, 2);
                }
            }

            if (MatchingPatern.Length > 0)
            {
                MatchingPatern = MatchingPatern + "%";
            }

            ACalc.AddParameter("param_matching_pattern", MatchingPatern);
        }
Ejemplo n.º 6
0
        private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            // make sure that for each group one radio button is selected
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(grpLevel, FPetraUtilsObject);
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(rgrRecipientSelection, FPetraUtilsObject);
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(rgrDonorSelection, FPetraUtilsObject);

            if (!dtpEndDate.ValidDate(false) ||
                !dtpStartDate.ValidDate(false))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("Date format problem"),
                    Catalog.GetString("Please check the date entry."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }
            else
            {
                if (dtpStartDate.Date > dtpEndDate.Date)
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("From date is later than to date."),
                        Catalog.GetString("Please change from date or to date."),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }

            if (rbtMiddleDonor.Checked)
            {
                int From = Convert.ToInt32(txtPercentage.Text);
                int To   = Convert.ToInt32(txtToPercentage.Text);

                if (To > From)
                {
                    // From must be bigger than to
                    int TmpNumber = Convert.ToInt32(txtPercentage.Text);
                    txtPercentage.NumberValueInt   = Convert.ToInt32(txtToPercentage.Text);
                    txtToPercentage.NumberValueInt = TmpNumber;
                }
            }

            if (!ucoMotivationCriteria.IsAnyMotivationDetailSelected())
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("No Motivation Detail selected"),
                    Catalog.GetString("Please select at least one Motivation Detail."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }
        }
        private void grdFields_ReadControls(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            int ColumnCounter = 0;

            DataTable ParaTable = ACalc.GetParameters().ToDataTable();

            // We need at least 14 columns (for the details)
            foreach (DataRow Row in ParaTable.Rows)
            {
                if ((String)Row[0] == "param_calculation")
                {
                    ColumnCounter++;
                }
            }

            if (ColumnCounter < 15)
            {
                for (int Counter = ColumnCounter; Counter < 15; ++Counter)
                {
                    ACalc.AddParameter("param_calculation", "DummyValue" + Counter.ToString(), Counter);
                }

                ACalc.AddParameter("MaxDisplayColumns", 15);
            }

            if (rbtFull.Checked)
            {
                ACalc.AddParameter("param_report_detail", "Full");
            }
            else if (rbtSummaries.Checked)
            {
                ACalc.AddParameter("param_report_detail", "Summary");
            }

            String SelectedFields = GetSelectedFieldKeysCSV();

            ACalc.AddStringParameter("param_selected_keys_csv", SelectedFields);

            if ((SelectedFields.Length < 1) &&
                (AReportAction == TReportActionEnum.raGenerate))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("Select at least one Unit Key from the Additional Settings tab."),
                    Catalog.GetString("No Field for the report selected"),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            ACalc.AddParameter("param_today", DateTime.Today);
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);
            ACalc.AddParameter("param_recipientkey", txtRecipient.Text);
            ACalc.AddParameter("param_extract_name", txtExtract.Text);

            if (!dtpFromDate.Date.HasValue || !dtpToDate.Date.HasValue)
            {
                FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                            Catalog.GetString("Please check the entry of the Start and End dates."),
                                                            Catalog.GetString("Invalid Date entered."),
                                                            TResultSeverity.Resv_Critical));
            }
            else
            {
                if (dtpFromDate.Date.Value > dtpToDate.Date.Value)
                {
                    FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                                Catalog.GetString("Start Date must not be later than End Date"),
                                                                Catalog.GetString("Invalid Date period."),
                                                                TResultSeverity.Resv_Critical));
                }
            }

            if (dtpToDate.Date.HasValue)
            {
                Int32 ToDateYear = dtpToDate.Date.Value.Year;
                //TODO: Calendar vs Financial Date Handling - Confirm that these should not be ledger dates, i.e. allowing for >12 periods and non-calendar period boundaries
                DateTime FromDateThisYear     = new DateTime(ToDateYear, 1, 1);
                DateTime ToDatePreviousYear   = new DateTime(ToDateYear - 1, 12, 31);
                DateTime FromDatePreviousYear = new DateTime(ToDateYear - 1, 1, 1);

                ACalc.AddParameter("param_from_date_this_year", FromDateThisYear);
                ACalc.AddParameter("param_to_date_previous_year", ToDatePreviousYear);
                ACalc.AddParameter("param_from_date_previous_year", FromDatePreviousYear);
            }

            int MaxColumns = ACalc.GetParameters().Get("MaxDisplayColumns").ToInt();

            for (int Counter = 0; Counter <= MaxColumns; ++Counter)
            {
                String ColumnName = ACalc.GetParameters().Get("param_calculation", Counter, 0).ToString();

                if (ColumnName == "Gift Amount")
                {
                    ACalc.AddParameter("param_gift_amount_column", Counter);
                }
            }
        }
Ejemplo n.º 9
0
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if (AReportAction == TReportActionEnum.raGenerate)
            {
                if (!dtpFromDate.ValidDate() || !dtpToDate.ValidDate())
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("Date format problem"),
                        Catalog.GetString("Please check the date entry."),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }

                if (dtpFromDate.Date > dtpToDate.Date)
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("From date is later than to date."),
                        Catalog.GetString("Please change from date or to date."),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }

            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);
            ACalc.AddParameter("TransactionCount", 0);
            ACalc.AddParameter("TransactionCountAccount", 0);
            ACalc.AddParameter("SumDebitAccount", 0);
            ACalc.AddParameter("SumCreditAccount", 0);
            ACalc.AddParameter("SumTotalDebitAccount", 0);
            ACalc.AddParameter("SumTotalCreditAccount", 0);

            int MaxColumns = ACalc.GetParameters().Get("MaxDisplayColumns").ToInt();

            for (int Counter = 0; Counter <= MaxColumns; ++Counter)
            {
                String ColumnName = ACalc.GetParameters().Get("param_calculation", Counter, 0).ToString();

                if (ColumnName == "Debits")
                {
                    ACalc.AddParameter("param_debit_column", Counter);
                }

                if (ColumnName == "Credits")
                {
                    ACalc.AddParameter("param_credit_column", Counter);
                }
            }
        }
Ejemplo n.º 10
0
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);
            ACalc.AddParameter("param_recipient_key_n", txtPartnerKey.Text);

            if ((AReportAction == TReportActionEnum.raGenerate) &&
                (txtPartnerKey.Text == "0000000000"))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("No recipient selected."),
                    Catalog.GetString("Please select a recipient."),
                    TResultSeverity.Resv_Critical);

                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }
        }
Ejemplo n.º 11
0
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if (chkOnlyTravelDay.Checked)
            {
                if (!dtpTravelDay.ValidDate(false))
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("Please insert a valid date in the \"Travel Selection\" Settings."),
                        Catalog.GetString("No valid date."),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }

                ACalc.AddParameter("param_dtpTravelDay", this.dtpTravelDay.Date);
            }
        }
Ejemplo n.º 12
0
        private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            // make sure that for each group one radio button is selected
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(grpSelection, FPetraUtilsObject);
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(rgrFormatCurrency, FPetraUtilsObject);

            if ((ucoGiftsInRange.RangeTable == null) || (ucoGiftsInRange.RangeTable.Rows.Count == 0))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("'Gifts In Range' Needed."),
                    Catalog.GetString("Please enter a value for 'Gifts In Range'."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            if ((ucoNoGiftsInRange.RangeTable == null) || (ucoNoGiftsInRange.RangeTable.Rows.Count == 0))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("'No Gifts In Range' Needed."),
                    Catalog.GetString("Please enter a value for 'No Gifts In Range'."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            // check for overlapping in the ranges
            foreach (DataRow Row in ucoGiftsInRange.RangeTable.Rows)
            {
                foreach (DataRow NoRow in ucoNoGiftsInRange.RangeTable.Rows)
                {
                    if ((((Convert.ToDateTime(NoRow["From"]) >= Convert.ToDateTime(Row["From"])) &&
                          (Convert.ToDateTime(NoRow["From"]) <= Convert.ToDateTime(Row["To"]))) ||
                         ((Convert.ToDateTime(NoRow["To"]) >= Convert.ToDateTime(Row["From"])) &&
                          (Convert.ToDateTime(NoRow["To"]) <= Convert.ToDateTime(Row["To"])))) ||
                        (((Convert.ToDateTime(Row["From"]) >= Convert.ToDateTime(NoRow["From"])) &&
                          (Convert.ToDateTime(Row["From"]) <= Convert.ToDateTime(NoRow["To"]))) ||
                         ((Convert.ToDateTime(Row["To"]) >= Convert.ToDateTime(NoRow["From"])) &&
                          (Convert.ToDateTime(Row["To"]) <= Convert.ToDateTime(NoRow["To"])))))
                    {
                        TVerificationResult VerificationResult = new TVerificationResult(
                            Catalog.GetString("Overlapping Ranges"),
                            Catalog.GetString("'Gifts In Range' and 'No Gifts In Range' overlap. This is not allowed."),
                            TResultSeverity.Resv_Critical);
                        FPetraUtilsObject.AddVerificationResult(VerificationResult);
                    }
                }
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if (AReportAction == TReportActionEnum.raGenerate)
            {
                // validate anniversaires (comma seperated integers)
                if (chkAnniversaries.Checked && (string.IsNullOrEmpty(txtAnniversaries.Text) ||
                                                 !Regex.IsMatch(txtAnniversaries.Text, @"^([0-9]+,)*[0-9]+$")))
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("Length of Commitment Report"),
                        Catalog.GetString("Please enter a comma seperated list of anniversaires."),
                        TResultSeverity.Resv_Critical);

                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if (rbtNow.Checked)
            {
                ACalc.AddParameter("param_from_date", DateTime.Today.Date);
                ACalc.AddParameter("param_until_date", DateTime.Today.Date);
            }

            if (clbField.GetCheckedStringList().Length == 0)
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("Generate Extract"),
                    Catalog.GetString("Please select at least one Field!"),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            int  ColumnCounter = 0;
            bool DatesAreValid = (dtpFromDate.ValidDate(false) && dtpToDate.ValidDate(false));

            // Add the columns to the report
            ACalc.AddParameter("param_calculation", "Date", ColumnCounter);
            ACalc.AddParameter("ColumnWidth", (float)2.5, ColumnCounter);
            ColumnCounter++;
            ACalc.AddParameter("param_calculation", "Total", ColumnCounter);
            ACalc.AddParameter("ColumnWidth", "3", ColumnCounter);
            ColumnCounter++;
            ACalc.AddParameter("param_calculation", "Actual", ColumnCounter);
            ACalc.AddParameter("ColumnWidth", "2", ColumnCounter);
            ColumnCounter++;
            ACalc.AddParameter("param_calculation", "Expected", ColumnCounter);
            ACalc.AddParameter("ColumnWidth", "2", ColumnCounter);
            ColumnCounter++;
            ACalc.AddParameter("param_calculation", "Children", ColumnCounter);
            ACalc.AddParameter("ColumnWidth", "2", ColumnCounter);
            ColumnCounter++;

            ACalc.AddParameter("MaxDisplayColumns", ColumnCounter);

            if ((AReportAction == TReportActionEnum.raGenerate) && DatesAreValid)
            {
                if (dtpFromDate.Date > dtpToDate.Date)
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("Change From-Date or To-Date"),
                        Catalog.GetString("From-Date must be earlier than To-Date"),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }

            if (!DatesAreValid)
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("Enter valid From-Date and To-Date."),
                    Catalog.GetString("Dates must be valid"),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }
        }
Ejemplo n.º 16
0
        private void grdChargedFields_ReadControls(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            String SelectedFieldKeys = "";

            if ((FFieldTable != null) &&
                rbtSelectedFields.Checked)
            {
                foreach (DataRow Row in FFieldTable.Rows)
                {
                    if (((bool)Row["Selection"]) &&
                        (ucoConferenceSelection.AllConferenceSelected ||
                         (!ucoConferenceSelection.AllConferenceSelected && (bool)Row["Used_in_Conference"])))
                    {
                        SelectedFieldKeys = SelectedFieldKeys + Row["Unit_Key"].ToString() + ',';
                    }
                }
            }

            if (SelectedFieldKeys.Length > 0)
            {
                // Remove the last comma
                SelectedFieldKeys = SelectedFieldKeys.Remove(SelectedFieldKeys.Length - 1);
            }

            ACalc.AddStringParameter("param_selectedfieldkeys", SelectedFieldKeys);

            if (rbtSelectedFields.Checked)
            {
                ACalc.AddParameter("param_chargedfields", "Selected Fields");

                if ((SelectedFieldKeys.Length == 0) &&
                    (AReportAction == TReportActionEnum.raGenerate))
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("Select at least one field to calculate the extra costs."),
                        Catalog.GetString("No field was selected!"),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }
            else
            {
                ACalc.AddParameter("param_chargedfields", "All Fields");
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            int detailYears  = Convert.ToInt16(txtYearsDetail.Text);
            int summaryYears = Convert.ToInt16(txtYearsSummary.Text);

            if ((AReportAction == TReportActionEnum.raGenerate) &&
                ((detailYears > 99) || (detailYears < 0) || (summaryYears > 99) || (summaryYears < 0)))
            {
                TVerificationResult VerificationMessage = new TVerificationResult(
                    Catalog.GetString("Report Years"),
                    Catalog.GetString("Set the year range between 1 and 99"), TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationMessage);
            }

            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);
            //
            // I need to get the name of the current ledger..

            DataTable LedgerNameTable = TDataCache.TMFinance.GetCacheableFinanceTable(TCacheableFinanceTablesEnum.LedgerNameList);
            DataView  LedgerView      = new DataView(LedgerNameTable);

            LedgerView.RowFilter = "LedgerNumber=" + FLedgerNumber;
            String LedgerName = "";

            if (LedgerView.Count > 0)
            {
                LedgerName = LedgerView[0].Row["LedgerName"].ToString();
            }

            ALedgerTable LedgerDetailsTable = (ALedgerTable)TDataCache.TMFinance.GetCacheableFinanceTable(TCacheableFinanceTablesEnum.LedgerDetails,
                                                                                                          FLedgerNumber);
            ALedgerRow Row          = LedgerDetailsTable[0];
            String     CurrencyName = (cmbCurrency.SelectedItem.ToString() == "Base") ? Row.BaseCurrency : Row.IntlCurrency;

            ACalc.AddStringParameter("param_ledger_name", LedgerName);
            ACalc.AddStringParameter("param_currency_name", CurrencyName);

            Int32    Years     = Math.Max(detailYears, summaryYears);
            DateTime StartDate = new DateTime(DateTime.Now.Year - Years, 1, 1);

            ACalc.AddParameter("param_StartDate", StartDate);
            ACalc.AddParameter("param_DetailYears", detailYears);
            ACalc.AddParameter("param_SummaryYears", summaryYears);
            ACalc.AddParameter("param_TD", FTaxDeductiblePercentageEnabled);
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            String paramDocuments = clbDocuments.GetCheckedStringList(true);

            if (AReportAction == TReportActionEnum.raGenerate)
            {
                if (paramDocuments.Length == 0)
                {
                    TVerificationResult VerificationMessage = new TVerificationResult(
                        Catalog.GetString("Please select at least one document type."),
                        Catalog.GetString("No document types selected!"), TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationMessage);
                }
            }

            paramDocuments = paramDocuments.Replace("\"", "");
            ACalc.AddParameter("param_doctype", paramDocuments);
        }
Ejemplo n.º 19
0
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            //
            // Verify Min and Max amounts:
            if (txtMinAmount.NumberValueInt > txtMaxAmount.NumberValueInt)
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("Gift Limit wrong."),
                    Catalog.GetString("Minimum Amount can't be greater than Maximum Amount."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);
            ACalc.AddParameter("param_donorkey", txtDonor.Text);
            ACalc.AddParameter("param_extract_name", txtExtract.Text);

            //
            // Verify date fields
            if (dtpFromDate.ValidDate(true) && dtpToDate.ValidDate(true))
            {
                ACalc.AddParameter("param_StartDate", this.dtpFromDate.Date);
                ACalc.AddParameter("param_EndDate", this.dtpToDate.Date);
            }
            else
            {
                FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                            Catalog.GetString("Donor Gifts To Field"),
                                                            Catalog.GetString("Incorrect Date Format"),
                                                            TResultSeverity.Resv_Critical));
            }

            if (rbtSelectedFields.Checked)
            {
                if (clbFields.GetCheckedStringList() == "") // An empty selection would cause an SQL error.
                {
                    FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                                Catalog.GetString("Recipient Fields"),
                                                                Catalog.GetString("Select at least one recipient field."),
                                                                TResultSeverity.Resv_Critical));
                }
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if (AReportAction == TReportActionEnum.raGenerate)
            {
                if (!dtpFromDate.ValidDate() || !dtpToDate.ValidDate())
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("Date format problem"),
                        Catalog.GetString("Please check the date entry."),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }

                if (dtpFromDate.Date > dtpToDate.Date)
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("From date is later than to date."),
                        Catalog.GetString("Please change from date or to date."),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }

            ACalc.AddParameter("param_currency", "Base");
            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);
            // Set the values for accumulating the costs to 0
            ACalc.AddParameter("CostCentreCredit", 0);
            ACalc.AddParameter("CostCentreDebit", 0);
            ACalc.AddParameter("AccountCodeCredit", 0);
            ACalc.AddParameter("AccountCodeDebit", 0);
            ACalc.AddParameter("TotalCredit", 0);
            ACalc.AddParameter("TotalDebit", 0);

            int MaxColumns = ACalc.GetParameters().Get("MaxDisplayColumns").ToInt();

            // we need to know some indices of the columns
            for (int Counter = 0; Counter < MaxColumns; ++Counter)
            {
                String ColumnName = "param_column_" + ACalc.GetParameters().Get("param_calculation", Counter, 0).ToString();
                ACalc.AddParameter(ColumnName, Counter);
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if (AReportAction == TReportActionEnum.raGenerate)
            {
                TVerificationResult VerificationResult = null;
                long UnitKey = 0;

                try
                {
                    UnitKey = Convert.ToInt64(txtPartnerKey.Text);
                }
                catch (Exception)
                {
                    UnitKey = 0;
                }

                if (UnitKey == 0)
                {
                    VerificationResult = new TVerificationResult("Insert a valid Key.",
                                                                 "No Unit Key selected!",
                                                                 TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }

            int ColumnCounter;

            ColumnCounter = 0;
            ACalc.AddParameter("param_calculation", "UnitKey", ColumnCounter);
            ACalc.AddParameter("ColumnWidth", "3", ColumnCounter);
            ++ColumnCounter;
            ACalc.AddParameter("param_calculation", "UnitType", ColumnCounter);
            ACalc.AddParameter("ColumnWidth", "4.5", ColumnCounter);
            ++ColumnCounter;
            ACalc.AddParameter("param_calculation", "UnitName", ColumnCounter);
            ACalc.AddParameter("ColumnWidth", "12", ColumnCounter);

            ACalc.SetMaxDisplayColumns(3);

            ACalc.AddParameter("param_txtUnitCode", txtPartnerKey.Text);
        }
Ejemplo n.º 22
0
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            // validation: start date and end date must be provided.
            if (chkUseDate.Checked)
            {
                if (!dtpFromDate.Date.HasValue || !dtpToDate.Date.HasValue || !dtpFromDate.ValidDate(false) || !dtpToDate.ValidDate(false))
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("We need a valid start and end date."),
                        Catalog.GetString("Please select a valid start date and a valid end date."),
                        TResultSeverity.Resv_Critical);

                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
                // validation: start date should be less than end date.
                else if (dtpFromDate.Date.Value > dtpToDate.Date.Value)
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("Invalid date range"),
                        Catalog.GetString("The end date must be after the start date."),
                        TResultSeverity.Resv_Critical);

                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }

            // validation: If "only these anniversaries" is checked, the txt box should not be empty.
            if (chkAnniversaries.Checked)
            {
                if (txtAnniversaries.Text == "")
                {
                    FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                                Catalog.GetString("Empty anniversaries list"),
                                                                Catalog.GetString("Use a comma-separated list like '10,18,21,30,40'"),
                                                                TResultSeverity.Resv_Critical
                                                                ));
                }
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if (txtMinAmount.NumberValueInt > txtMaxAmount.NumberValueInt)
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("Gift Limit wrong."),
                    Catalog.GetString("Minimum Amount can't be greater than Maximum Amount."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);
            ACalc.AddParameter("param_donorkey", txtDonor.Text);
            ACalc.AddParameter("param_extract_name", txtExtract.Text);

            //TODO: Calendar vs Financial Date Handling - Confirm that these should not be ledger dates, i.e. allowing for >12 periods and non-calendar period boundaries
            DateTime FromDateThisYear     = new DateTime(DateTime.Today.Year, 1, 1);
            DateTime ToDatePreviousYear   = new DateTime(DateTime.Today.Year - 1, 12, 31);
            DateTime FromDatePreviousYear = new DateTime(DateTime.Today.Year - 1, 1, 1);

            ACalc.AddParameter("param_to_date_this_year", DateTime.Today);
            ACalc.AddParameter("param_from_date_this_year", FromDateThisYear);
            ACalc.AddParameter("param_to_date_previous_year", ToDatePreviousYear);
            ACalc.AddParameter("param_from_date_previous_year", FromDatePreviousYear);

            ACalc.AddParameter("DonorAddress", "");

            int MaxColumns = ACalc.GetParameters().Get("MaxDisplayColumns").ToInt();

            for (int Counter = 0; Counter <= MaxColumns; ++Counter)
            {
                String ColumnName = ACalc.GetParameters().Get("param_calculation", Counter, 0).ToString();

                if (ColumnName == "Gift Amount")
                {
                    ACalc.AddParameter("param_gift_amount_column", Counter);
                }
            }
        }
Ejemplo n.º 24
0
        private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            // make sure that for each group one radio button is selected
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(rgrRecipientSelection, FPetraUtilsObject);
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(rgrDonorSelection, FPetraUtilsObject);
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(rgrSorting, FPetraUtilsObject);
            TFrmPetraReportingUtils.VerifyRadioButtonSelection(rgrFormatCurrency, FPetraUtilsObject);

            if (!dtpEndDate.ValidDate(false) ||
                !dtpStartDate.ValidDate(false))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("Date format problem"),
                    Catalog.GetString("Please check the date entry."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }
            else
            {
                if (dtpStartDate.Date > dtpEndDate.Date)
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("From date is later than to date."),
                        Catalog.GetString("Please change from date or to date."),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }

            if (!ucoMotivationCriteria.IsAnyMotivationDetailSelected())
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("No Motivation Detail selected"),
                    Catalog.GetString("Please select at least one Motivation Detail."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }
        }
Ejemplo n.º 25
0
 private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
 {
     if (!dtpEndDate.ValidDate(false) ||
         !dtpStartDate.ValidDate(false))
     {
         TVerificationResult VerificationResult = new TVerificationResult(
             Catalog.GetString("Date format problem"),
             Catalog.GetString("Please check the date entry."),
             TResultSeverity.Resv_Critical);
         FPetraUtilsObject.AddVerificationResult(VerificationResult);
     }
     else
     {
         if (dtpStartDate.Date > dtpEndDate.Date)
         {
             TVerificationResult VerificationResult = new TVerificationResult(
                 Catalog.GetString("From date is later than to date."),
                 Catalog.GetString("Please change from date or to date."),
                 TResultSeverity.Resv_Critical);
             FPetraUtilsObject.AddVerificationResult(VerificationResult);
         }
     }
 }
Ejemplo n.º 26
0
        private void ReadControlsVerify(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if (!dtpEndDate.ValidDate(false) ||
                !dtpStartDate.ValidDate(false))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("No valid date."),
                    Catalog.GetString("Please enter a valid date."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }
            else
            {
                if (dtpStartDate.Date > dtpEndDate.Date)
                {
                    TVerificationResult VerificationResult = new TVerificationResult(
                        Catalog.GetString("From date is later than to date."),
                        Catalog.GetString("Please change from date or to date."),
                        TResultSeverity.Resv_Critical);
                    FPetraUtilsObject.AddVerificationResult(VerificationResult);
                }
            }

            if (rbtMiddleDonor.Checked)
            {
                int From = Convert.ToInt32(txtPercentage.Text);
                int To   = Convert.ToInt32(txtToPercentage.Text);

                if (To > From)
                {
                    // From must be biggern than to
                    String TmpString = txtPercentage.Text;
                    txtPercentage.Text   = txtToPercentage.Text;
                    txtToPercentage.Text = TmpString;
                }
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            ACalc.AddParameter("ControlSource", "", ReportingConsts.HEADERCOLUMN);
            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);

            ACalc.AddParameter("param_all_partners", rbtAllPartners.Checked);
            ACalc.AddParameter("param_extract", rbtExtract.Checked);

            if (rbtExtract.Checked)
            {
                ACalc.AddParameter("param_extract_name", txtExtract.Text);
            }

            if ((AReportAction == TReportActionEnum.raGenerate) &&
                rbtExtract.Checked &&
                (txtExtract.Text.Length == 0))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("No recipient selected."),
                    Catalog.GetString("Please select a recipient."),
                    TResultSeverity.Resv_Critical);

                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            int MaxColumns = ACalc.GetParameters().Get("MaxDisplayColumns").ToInt();

            for (int Counter = 0; Counter <= MaxColumns; ++Counter)
            {
                String ColumnName = ACalc.GetParameters().Get("param_calculation", Counter, 0).ToString();

                if (ColumnName == "Total Given")
                {
                    ACalc.AddParameter("param_gift_amount_column", Counter);
                }
            }
        }
        private void ReadControlsManual(TRptCalculator ACalc, TReportActionEnum AReportAction)
        {
            if ((AReportAction == TReportActionEnum.raGenerate) &&
                (rbtPartner.Checked && (txtDonor.Text == "0000000000")))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("No donor selected."),
                    Catalog.GetString("Please select a donor."),
                    TResultSeverity.Resv_Critical);

                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            if ((AReportAction == TReportActionEnum.raGenerate) &&
                rbtExtract.Checked &&
                (txtExtract.Text == ""))
            {
                TVerificationResult VerificationMessage = new TVerificationResult(
                    Catalog.GetString("Enter an extract name"),
                    Catalog.GetString("No extract name entered!"), TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationMessage);
            }

            if ((AReportAction == TReportActionEnum.raGenerate) &&
                (txtMinAmount.NumberValueInt > txtMaxAmount.NumberValueInt))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("Gift Limit wrong."),
                    Catalog.GetString("Minimum Amount can't be greater than Maximum Amount."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            if ((AReportAction == TReportActionEnum.raGenerate) &&
                (cmbReportType.SelectedItem.ToString() == "Complete") &&
                (dtpFromDate.Date > dtpToDate.Date))
            {
                TVerificationResult VerificationResult = new TVerificationResult(
                    Catalog.GetString("From date is later than to date."),
                    Catalog.GetString("Please change from date or to date."),
                    TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            ACalc.AddParameter("param_ledger_number_i", FLedgerNumber);
            ACalc.AddParameter("param_donorkey", txtDonor.Text);
            ACalc.AddParameter("param_extract_name", txtExtract.Text);

            DateTime FromDateThisYear     = new DateTime(DateTime.Today.Year, 1, 1);
            DateTime ToDatePreviousYear   = new DateTime(DateTime.Today.Year - 1, 12, 31);
            DateTime FromDatePreviousYear = new DateTime(DateTime.Today.Year - 1, 1, 1);

            ACalc.AddParameter("param_end_date_this_year", DateTime.Today);
            ACalc.AddParameter("param_start_date_this_year", FromDateThisYear);
            ACalc.AddParameter("param_end_date_previous_year", ToDatePreviousYear);
            ACalc.AddParameter("param_start_date_previous_year", FromDatePreviousYear);

            if (cmbReportType.SelectedItem.ToString() == "Totals")
            {
                DateTime FromDate = new DateTime(DateTime.Today.Year - 3, 1, 1);
                ACalc.RemoveParameter("param_from_date");
                ACalc.RemoveParameter("param_to_date");
                ACalc.AddParameter("param_from_date", FromDate);
                ACalc.AddParameter("param_to_date", DateTime.Today);

                ACalc.AddParameter("Month0", 1);
                ACalc.AddParameter("Month1", 2);
                ACalc.AddParameter("Year0", DateTime.Today.Year);
                ACalc.AddParameter("Year1", DateTime.Today.Year - 1);
                ACalc.AddParameter("Year2", DateTime.Today.Year - 2);
                ACalc.AddParameter("Year3", DateTime.Today.Year - 3);

                int ColumnCounter = 0;
                ACalc.AddParameter("param_calculation", "Month", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)3.0, ColumnCounter);
                ++ColumnCounter;
                ACalc.AddParameter("param_calculation", "Year-0", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)2.0, ColumnCounter);
                ++ColumnCounter;
                ACalc.AddParameter("param_calculation", "Count-0", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)0.8, ColumnCounter);
                ++ColumnCounter;
                ACalc.AddParameter("param_calculation", "Year-1", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)2.0, ColumnCounter);
                ++ColumnCounter;
                ACalc.AddParameter("param_calculation", "Count-1", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)0.8, ColumnCounter);
                ++ColumnCounter;
                ACalc.AddParameter("param_calculation", "Year-2", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)2.0, ColumnCounter);
                ++ColumnCounter;
                ACalc.AddParameter("param_calculation", "Count-2", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)0.8, ColumnCounter);
                ++ColumnCounter;
                ACalc.AddParameter("param_calculation", "Year-3", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)2.0, ColumnCounter);
                ++ColumnCounter;
                ACalc.AddParameter("param_calculation", "Count-3", ColumnCounter);
                ACalc.AddParameter("ColumnWidth", (float)0.8, ColumnCounter);
                ++ColumnCounter;
                ACalc.SetMaxDisplayColumns(ColumnCounter);
            }
            else
            {
                int MaxColumns = ACalc.GetParameters().Get("MaxDisplayColumns").ToInt();

                for (int Counter = 0; Counter <= MaxColumns; ++Counter)
                {
                    String ColumnName = ACalc.GetParameters().Get("param_calculation", Counter, 0).ToString();

                    if (ColumnName == "Gift Amount")
                    {
                        ACalc.AddParameter("param_gift_amount_column", Counter);
                    }
                }
            }
        }
        /// <summary>
        /// Reads the selected values from the controls,
        /// and stores them into the parameter system of FCalculator
        ///
        /// </summary>
        /// <param name="ACalculator"></param>
        /// <param name="AReportAction"></param>
        /// <returns>void</returns>
        public void ReadControls(TRptCalculator ACalculator, TReportActionEnum AReportAction)
        {
            if (rbtSelectedCostCentres.Checked &&
                (clbCostCentres.GetCheckedStringList().Length == 0) &&
                (AReportAction == TReportActionEnum.raGenerate))
            {
                TVerificationResult VerificationResult = new TVerificationResult(Catalog.GetString("Selected Cost Centres"),
                                                                                 Catalog.GetString("No cost centre was selected!"),
                                                                                 TResultSeverity.Resv_Critical);
                FPetraUtilsObject.AddVerificationResult(VerificationResult);
            }

            /* cost centre options */
            if (rbtAccountLevel.Checked)
            {
                ACalculator.AddParameter("param_costcentreoptions", "AccountLevel");
            }
            else if (rbtAllCostCentres.Checked)
            {
                ACalculator.AddParameter("param_costcentreoptions", "AllCostCentres");
            }
            else if (rbtAllActiveCostCentres.Checked)
            {
                ACalculator.AddParameter("param_costcentreoptions", "AllActiveCostCentres");
            }
            else if (rbtSelectedCostCentres.Checked)
            {
                ACalculator.AddParameter("param_costcentreoptions", "SelectedCostCentres");
            }

            ACalculator.AddParameter("param_paginate", chkPaginate.Checked);
            ACalculator.AddParameter("param_auto_email", chkAutoEmail.Checked);

            String CostCentreListTitle;

            if (rbtAllCostCentres.Checked || rbtAllActiveCostCentres.Checked)
            {
                CostCentreListTitle = clbCostCentres.GetAllStringList();
            }
            else
            {
                CostCentreListTitle = clbCostCentres.GetCheckedStringList();
            }

            ACalculator.AddStringParameter("param_cost_centre_codes", CostCentreListTitle);
            CostCentreListTitle = CostCentreListTitle.Replace("\"", "");

            if (CostCentreListTitle.Length > 25)
            {
                CostCentreListTitle = "Selected Cost Centres";
            }

            ACalculator.AddParameter("param_cost_centre_list_title", CostCentreListTitle);

            ACalculator.AddParameter("param_cost_centre_summary", chkCostCentreBreakdown.Checked);
            ACalculator.AddParameter("param_cost_centre_breakdown", chkCostCentreBreakdown.Checked);
            ACalculator.AddParameter("ExcludeInactiveCostCentres", chkExcludeInactiveCostCentres.Checked);

            /* Level of Detail */
            if (this.rbtDetail.Checked)
            {
                ACalculator.AddParameter("param_depth", "detail");
            }
            else if (this.rbtStandard.Checked)
            {
                ACalculator.AddParameter("param_depth", "standard");
            }
            else
            {
                ACalculator.AddParameter("param_depth", "summary");
            }
        }
        /// <summary>
        /// Reads the selected values from the controls,
        /// and stores them into the parameter system of FCalculator
        ///
        /// </summary>
        /// <param name="ACalculator"></param>
        /// <param name="AReportAction"></param>
        /// <returns>void</returns>
        public void ReadControls(TRptCalculator ACalculator, TReportActionEnum AReportAction)
        {
            int      Year      = 0;
            DateTime EndDate   = DateTime.Now;
            DateTime StartDate = DateTime.Now;

            // TODO
            int DiffPeriod = 0;             //(System.Int32)CbB_YearEndsOn.SelectedItem;

            //            DiffPeriod = DiffPeriod - 12;
            ACalculator.AddParameter("param_diff_period_i", DiffPeriod);
            ACalculator.AddParameter("param_start_period_i", 0);
            ACalculator.AddParameter("param_end_period_i", 0);
            ACalculator.AddParameter("param_current_period", FLedgerRow.CurrentPeriod);

            ACalculator.AddParameter("param_account_hierarchy_c", this.cmbAccountHierarchy.GetSelectedString());

            String CurrencyName = "";

            String CurrencySelection = this.cmbCurrency.GetSelectedString();

            ACalculator.AddParameter("param_currency", CurrencySelection);

            if (CurrencySelection == Catalog.GetString("Base"))
            {
                CurrencyName = FLedgerRow.BaseCurrency;
            }
            else if (CurrencySelection == Catalog.GetString("International"))
            {
                CurrencyName = FLedgerRow.IntlCurrency;
            }

            ACalculator.AddParameter("param_currency_name", CurrencyName);

            ACalculator.AddParameter("param_period", rbtPeriod.Checked);
            ACalculator.AddParameter("param_period_breakdown", rbtBreakdown.Checked && rbtBreakdown.Visible);

            ACalculator.AddParameter("param_period_checked", rbtPeriod.Checked);
            ACalculator.AddParameter("param_date_checked", rbtDate.Checked);
            ACalculator.AddParameter("param_quarter_checked", rbtQuarter.Checked);

            if (rbtQuarter.Checked)
            {
                Year = cmbQuarterYear.GetSelectedInt32();
                ACalculator.AddParameter("param_year_i", Year);
                ACalculator.AddParameter("param_real_year", cmbQuarterYear.GetSelectedString(1));
                ACalculator.AddParameter("param_real_year_ending", cmbPeriodYear.GetSelectedString(2));

                int Quarter = (Int32)StringHelper.TryStrToInt(txtQuarter.Text, 1);
                ACalculator.AddParameter("param_quarter", (System.Object)(Quarter));
                ACalculator.AddParameter("param_start_period_i", (System.Object)(Quarter * 3 - 2));
                ACalculator.AddParameter("param_end_period_i", (System.Object)(Quarter * 3));
                StartDate = TRemote.MFinance.GL.WebConnectors.GetPeriodStartDate(FLedgerNumber, Year, DiffPeriod, Quarter * 3 - 2);
                ACalculator.AddParameter("param_start_date", StartDate);
                EndDate = TRemote.MFinance.GL.WebConnectors.GetPeriodEndDate(FLedgerNumber, Year, DiffPeriod, Quarter * 3);
                ACalculator.AddParameter("param_end_date", EndDate);

                //VerificationResult = TFinancialPeriodChecks.ValidQuarter(DiffPeriod, Year, Quarter, "Quarter");
                if (AReportAction == TReportActionEnum.raGenerate)
                {
                    CheckQuarter(Year, Quarter);
                }

                dtpStartDate.Date = TRemote.MFinance.GL.WebConnectors.GetPeriodStartDate(FLedgerNumber, Year, DiffPeriod, (Quarter * 3 - 2));
                dtpEndDate.Date   = TRemote.MFinance.GL.WebConnectors.GetPeriodEndDate(FLedgerNumber, Year, DiffPeriod, Quarter * 3);
            }
            else if (rbtPeriod.Checked)
            {
                Year = cmbPeriodYear.GetSelectedInt32();
                ACalculator.AddParameter("param_year_i", Year);
                ACalculator.AddParameter("param_real_year", cmbPeriodYear.GetSelectedString(1));
                ACalculator.AddParameter("param_real_year_ending", cmbPeriodYear.GetSelectedString(2));

                int EndPeriod = (Int32)StringHelper.TryStrToInt(txtEndPeriod.Text, 1);
                ACalculator.AddParameter("param_end_period_i", EndPeriod);
                StartDate = TRemote.MFinance.GL.WebConnectors.GetPeriodStartDate(FLedgerNumber, Year, DiffPeriod, EndPeriod);
                ACalculator.AddParameter("param_start_date", StartDate);
                EndDate = TRemote.MFinance.GL.WebConnectors.GetPeriodEndDate(FLedgerNumber, Year, DiffPeriod, EndPeriod);
                ACalculator.AddParameter("param_end_date", EndDate);

                CheckPeriod(Year, EndPeriod);
                dtpEndDate.Date = TRemote.MFinance.GL.WebConnectors.GetPeriodEndDate(FLedgerNumber, Year, DiffPeriod, EndPeriod);

                if (!OnlyEndPeriodShown)
                {
                    int StartPeriod = (Int32)StringHelper.TryStrToInt(txtStartPeriod.Text, 1);
                    ACalculator.AddParameter("param_start_period_i", StartPeriod);
                    ACalculator.AddParameter("param_start_date",
                                             TRemote.MFinance.GL.WebConnectors.GetPeriodStartDate(FLedgerNumber, Year, DiffPeriod, StartPeriod));

                    if (AReportAction == TReportActionEnum.raGenerate)
                    {
                        CheckPeriod(Year, StartPeriod);

                        if (StartPeriod > EndPeriod)
                        {
                            FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                                        Catalog.GetString("Start Period must not be bigger than End Period."),
                                                                        Catalog.GetString("Invalid Data entered."),
                                                                        TResultSeverity.Resv_Critical));
                        }
                    }

                    dtpStartDate.Date = TRemote.MFinance.GL.WebConnectors.GetPeriodStartDate(FLedgerNumber, Year, DiffPeriod, StartPeriod);
                }
            }
            else if (rbtDate.Checked)
            {
                if (dtpStartDate.Date.HasValue && dtpEndDate.Date.HasValue)
                {
                    if (dtpStartDate.Date.Value > dtpEndDate.Date.Value)
                    {
                        FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                                    Catalog.GetString("Start Date must not be later than End Date"),
                                                                    Catalog.GetString("Invalid Data entered."),
                                                                    TResultSeverity.Resv_Critical));
                    }
                    else
                    {
                        StartDate = dtpStartDate.Date.Value;
                        ACalculator.AddParameter("param_start_date", StartDate);
                        EndDate = dtpEndDate.Date.Value;
                        ACalculator.AddParameter("param_end_date", EndDate);
                        ACalculator.AddParameter("param_real_year", dtpEndDate.Date.Value.Year);
                    }
                }
            }
            else if (rbtBreakdown.Checked)
            {
                Year = cmbBreakdownYear.GetSelectedInt32();
                ACalculator.AddParameter("param_real_year", cmbBreakdownYear.GetSelectedString(1));
                ACalculator.AddParameter("param_year_i", Year);
                StartDate = TRemote.MFinance.GL.WebConnectors.GetPeriodStartDate(FLedgerNumber, Year, DiffPeriod, 1);
                ACalculator.AddParameter("param_start_date", StartDate);
                //TODO: Calendar vs Financial Date Handling - Check if below has assumed a 12 period financial year
                EndDate = TRemote.MFinance.GL.WebConnectors.GetPeriodEndDate(FLedgerNumber, Year, DiffPeriod, 12);
                ACalculator.AddParameter("param_end_date", EndDate);
            }

            // true if the selected date is in the current financial year
            ACalculator.AddParameter("param_current_financial_year", FLedgerRow.CurrentFinancialYear == Year);

            //
            // I may need to check whether the selected currency has an exchange rate I can use!

            if (CurrencyName == FLedgerRow.IntlCurrency)
            {
                Decimal IntlRate = TRemote.MFinance.GL.WebConnectors.GetCorporateExchangeRate(FLedgerRow.BaseCurrency,
                                                                                              CurrencyName,
                                                                                              StartDate,
                                                                                              EndDate);

                if (IntlRate == 0) // No exchange rate has been specified
                {
                    FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                                Catalog.GetString("International Exchange Rate"),
                                                                Catalog.GetString("No Exchange Rate is available for the requested period."),
                                                                TResultSeverity.Resv_Critical));
                }
            }

            if (Year < 0)
            {
                FPetraUtilsObject.AddVerificationResult(new TVerificationResult(
                                                            Catalog.GetString("Accounting Year was not specified"),
                                                            Catalog.GetString("Invalid Data entered."),
                                                            TResultSeverity.Resv_Critical));
            }
        }