Example #1
0
        private static void StoreCommitmentTotal(LengthOfCommitmentReportTDSPmStaffDataRow PreviousRow,
                                                 Int32 daysServed,
                                                 DateTime AReportStartDate,
                                                 DateTime AReportEndDate,
                                                 DateTime previousStartDate,
                                                 DateTime?previousEndDate,
                                                 LengthOfCommitmentReportTDSPmStaffDataTable Anniversaries,
                                                 List <Int32> ASpecialAnniversaries)
        {
            DateTime ThisWorkerEndDate;

            if (!previousEndDate.HasValue)
            {
                daysServed += ElapsedDays(AReportEndDate - previousStartDate);

                ThisWorkerEndDate = AReportEndDate;
            }
            else
            {
                if (AReportEndDate < previousEndDate)
                {
                    daysServed       += ElapsedDays(AReportEndDate - previousStartDate);
                    ThisWorkerEndDate = AReportEndDate;
                }
                else
                {
                    daysServed       += ElapsedDays(previousEndDate.Value - previousStartDate);
                    ThisWorkerEndDate = previousEndDate.Value;
                }
            }

            // we need the date where an anniversary happens, in the report time
            int TotalYears = Convert.ToInt32(daysServed / 365);

            DateTime anniversaryDate = AnniversaryDate(daysServed, ThisWorkerEndDate);

            bool doStore = (
                (anniversaryDate.DayOfYear >= AReportStartDate.DayOfYear) &&
                (anniversaryDate.DayOfYear <= AReportEndDate.DayOfYear));

            if (ASpecialAnniversaries.Count > 0)
            {
                if (!ASpecialAnniversaries.Contains(TotalYears))
                {
                    doStore = false;
                }
            }

            if (doStore)
            {
                // this is a special anniversary
                // store the number of years, and the anniversary date
                LengthOfCommitmentReportTDSPmStaffDataRow newAnniversary = Anniversaries.NewRowTyped();
                newAnniversary.Key            = PreviousRow.Key;
                newAnniversary.SiteKey        = PreviousRow.SiteKey;
                newAnniversary.PartnerKey     = PreviousRow.PartnerKey;
                newAnniversary.TotalYears     = TotalYears;
                newAnniversary.AnniversaryDay = anniversaryDate;
                newAnniversary.PartnerName    = PreviousRow.PartnerName;
                newAnniversary.FirstName      = PreviousRow.FirstName;
                newAnniversary.Surname        = PreviousRow.Surname;
                newAnniversary.Gender         = PreviousRow.Gender;
                Anniversaries.Rows.Add(newAnniversary);
            }
        }
        private static void StoreCommitmentTotal(LengthOfCommitmentReportTDSPmStaffDataRow PreviousRow,
            Int32 daysServed,
            DateTime AReportStartDate,
            DateTime AReportEndDate,
            DateTime previousStartDate,
            DateTime? previousEndDate,
            LengthOfCommitmentReportTDSPmStaffDataTable Anniversaries,
            List <Int32>ASpecialAnniversaries)
        {
            DateTime ThisWorkerEndDate;

            if (!previousEndDate.HasValue)
            {
                daysServed += ElapsedDays(AReportEndDate - previousStartDate);

                ThisWorkerEndDate = AReportEndDate;
            }
            else
            {
                if (AReportEndDate < previousEndDate)
                {
                    daysServed += ElapsedDays(AReportEndDate - previousStartDate);
                    ThisWorkerEndDate = AReportEndDate;
                }
                else
                {
                    daysServed += ElapsedDays(previousEndDate.Value - previousStartDate);
                    ThisWorkerEndDate = previousEndDate.Value;
                }
            }

            // we need the date where an anniversary happens, in the report time
            int TotalYears = Convert.ToInt32(daysServed / 365);

            DateTime anniversaryDate = AnniversaryDate(daysServed, ThisWorkerEndDate);

            bool doStore = (
                (anniversaryDate.DayOfYear >= AReportStartDate.DayOfYear)
                && (anniversaryDate.DayOfYear <= AReportEndDate.DayOfYear));

            if (ASpecialAnniversaries.Count > 0)
            {
                if (!ASpecialAnniversaries.Contains(TotalYears))
                {
                    doStore = false;
                }
            }

            if (doStore)
            {
                // this is a special anniversary
                // store the number of years, and the anniversary date
                LengthOfCommitmentReportTDSPmStaffDataRow newAnniversary = Anniversaries.NewRowTyped();
                newAnniversary.Key = PreviousRow.Key;
                newAnniversary.SiteKey = PreviousRow.SiteKey;
                newAnniversary.PartnerKey = PreviousRow.PartnerKey;
                newAnniversary.TotalYears = TotalYears;
                newAnniversary.AnniversaryDay = anniversaryDate;
                newAnniversary.PartnerName = PreviousRow.PartnerName;
                newAnniversary.FirstName = PreviousRow.FirstName;
                newAnniversary.Surname = PreviousRow.Surname;
                newAnniversary.Gender = PreviousRow.Gender;
                Anniversaries.Rows.Add(newAnniversary);
            }
        }