public void Insert(Int32 PeriodID, Int32 AccountID)
        {

            /* step 1 is to create our row in BillingPeriodAccounts table */

            BillingAccount billingAccount = new BillingAccountController().FetchByID(AccountID)[0];

            Insert(PeriodID, AccountID, billingAccount.Defaultperdiemrate, false, null, null, null, null, billingAccount.Defaultmileagerate);

            BillingPeriodAccount current = new BillingPeriodAccountCollection().Where(BillingPeriodAccount.Columns.Periodid, PeriodID).Where(BillingPeriodAccount.Columns.Accountid, AccountID).Load()[0];

            int periodaccountid = current.Id;

            /* step 2 is for each rate group, pull out the default value from DefaultBillingRates and Insert into BillingRates for this BillingPeriodAccount*/

            BillingRateController billingRateController = new BillingRateController();
            foreach (RateGroup rategroup in new RateGroupController().FetchAll())
            {
                double defaultrate = new DefaultBillingRateController().FetchRate(AccountID, rategroup.Id);

                billingRateController.Insert(periodaccountid, rategroup.Id, defaultrate, false, null, null, null, null);
            }

            /* step 3 is for each City Per Diem rate record, pull out the default value from  BillingDefaultCityRates and Insert into BillingCityRates for this BillingPeriodAccount*/
            var billingCityRateController = new BillingCityRateController();

            foreach (var cityRateGroup in new BillingDefaultCityRateController().FetchAllActiveByAccountId(AccountID))
            {
                billingCityRateController.Insert(cityRateGroup.Id, periodaccountid, cityRateGroup.DefaultPerDiemRate);
            }
        }
        public void Insert(Int32 PeriodID, Int32 AccountID)
        {
            /* step 1 is to create our row in BillingPeriodAccounts table */

            BillingAccount billingAccount = new BillingAccountController().FetchByID(AccountID)[0];

            Insert(PeriodID, AccountID, billingAccount.Defaultperdiemrate, false, null, null, null, null, billingAccount.Defaultmileagerate);

            BillingPeriodAccount current = new BillingPeriodAccountCollection().Where(BillingPeriodAccount.Columns.Periodid, PeriodID).Where(BillingPeriodAccount.Columns.Accountid, AccountID).Load()[0];

            int periodaccountid = current.Id;

            /* step 2 is for each rate group, pull out the default value from DefaultBillingRates and Insert into BillingRates for this BillingPeriodAccount*/

            BillingRateController billingRateController = new BillingRateController();

            foreach (RateGroup rategroup in new RateGroupController().FetchAll())
            {
                double defaultrate = new DefaultBillingRateController().FetchRate(AccountID, rategroup.Id);

                billingRateController.Insert(periodaccountid, rategroup.Id, defaultrate, false, null, null, null, null);
            }

            /* step 3 is for each City Per Diem rate record, pull out the default value from  BillingDefaultCityRates and Insert into BillingCityRates for this BillingPeriodAccount*/
            var billingCityRateController = new BillingCityRateController();

            foreach (var cityRateGroup in new BillingDefaultCityRateController().FetchAllActiveByAccountId(AccountID))
            {
                billingCityRateController.Insert(cityRateGroup.Id, periodaccountid, cityRateGroup.DefaultPerDiemRate);
            }
        }