From 147dbc4eccd2cba0d7bca7f22def1292441aa973 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 25 Oct 2017 12:22:01 +0300 Subject: [PATCH] Add four month frequency --- app/Constants.php | 5 +++-- app/Models/Traits/GeneratesNumbers.php | 3 +++ app/Models/Traits/HasRecurrence.php | 5 +++++ .../migrations/2017_10_17_083846_add_default_rates.php | 10 ++++++++++ database/seeds/FrequencySeeder.php | 1 + resources/lang/en/texts.php | 1 + 6 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/Constants.php b/app/Constants.php index c7a309df7870..81c6785b12c6 100644 --- a/app/Constants.php +++ b/app/Constants.php @@ -224,8 +224,9 @@ if (! defined('APP_NAME')) { define('FREQUENCY_MONTHLY', 4); define('FREQUENCY_TWO_MONTHS', 5); define('FREQUENCY_THREE_MONTHS', 6); - define('FREQUENCY_SIX_MONTHS', 7); - define('FREQUENCY_ANNUALLY', 8); + define('FREQUENCY_FOUR_MONTHS', 7); + define('FREQUENCY_SIX_MONTHS', 8); + define('FREQUENCY_ANNUALLY', 9); define('SESSION_TIMEZONE', 'timezone'); define('SESSION_CURRENCY', 'currency'); diff --git a/app/Models/Traits/GeneratesNumbers.php b/app/Models/Traits/GeneratesNumbers.php index 310788607ef6..643d4232763d 100644 --- a/app/Models/Traits/GeneratesNumbers.php +++ b/app/Models/Traits/GeneratesNumbers.php @@ -345,6 +345,9 @@ trait GeneratesNumbers case FREQUENCY_THREE_MONTHS: $resetDate->addMonths(3); break; + case FREQUENCY_FOUR_MONTHS: + $resetDate->addMonths(4); + break; case FREQUENCY_SIX_MONTHS: $resetDate->addMonths(6); break; diff --git a/app/Models/Traits/HasRecurrence.php b/app/Models/Traits/HasRecurrence.php index 9757fa0e1758..d4e63d552e56 100644 --- a/app/Models/Traits/HasRecurrence.php +++ b/app/Models/Traits/HasRecurrence.php @@ -63,6 +63,8 @@ trait HasRecurrence return $monthsSinceLastSent >= 2; case FREQUENCY_THREE_MONTHS: return $monthsSinceLastSent >= 3; + case FREQUENCY_FOUR_MONTHS: + return $monthsSinceLastSent >= 4; case FREQUENCY_SIX_MONTHS: return $monthsSinceLastSent >= 6; case FREQUENCY_ANNUALLY: @@ -100,6 +102,9 @@ trait HasRecurrence case FREQUENCY_THREE_MONTHS: $rule = 'FREQ=MONTHLY;INTERVAL=3;'; break; + case FREQUENCY_FOUR_MONTHS: + $rule = 'FREQ=MONTHLY;INTERVAL=4;'; + break; case FREQUENCY_SIX_MONTHS: $rule = 'FREQ=MONTHLY;INTERVAL=6;'; break; diff --git a/database/migrations/2017_10_17_083846_add_default_rates.php b/database/migrations/2017_10_17_083846_add_default_rates.php index 12fa48b4aaed..4a74f5d1be17 100644 --- a/database/migrations/2017_10_17_083846_add_default_rates.php +++ b/database/migrations/2017_10_17_083846_add_default_rates.php @@ -23,6 +23,16 @@ class AddDefaultRates extends Migration Schema::table('projects', function ($table) { $table->decimal('task_rate', 12, 4)->default(0); }); + + // Add 'Four Months' frequency option + if (DB::table('frequencies')->count() == 8) { + DB::table('frequencies')->where('id', '=', 7)->update(['name' => 'Four months']); + DB::table('frequencies')->where('id', '=', 8)->update(['name' => 'Six months']); + DB::table('frequencies')->insert(['name' => 'Annually']); + DB::statement('update invoices set frequency_id = frequency_id + 1 where frequency_id >= 7'); + DB::statement('update recurring_expenses set frequency_id = frequency_id + 1 where frequency_id >= 7'); + DB::statement('update accounts set reset_counter_frequency_id = reset_counter_frequency_id + 1 where reset_counter_frequency_id >= 7'); + } } /** diff --git a/database/seeds/FrequencySeeder.php b/database/seeds/FrequencySeeder.php index 437898dccece..23d80adba9d7 100644 --- a/database/seeds/FrequencySeeder.php +++ b/database/seeds/FrequencySeeder.php @@ -15,6 +15,7 @@ class FrequencySeeder extends Seeder ['name' => 'Monthly'], ['name' => 'Two months'], ['name' => 'Three months'], + ['name' => 'Four months'], ['name' => 'Six months'], ['name' => 'Annually'], ]; diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 96555a3af257..ea280effd2cb 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -1385,6 +1385,7 @@ $LANG = array( 'freq_four_weeks' => 'Four weeks', 'freq_monthly' => 'Monthly', 'freq_three_months' => 'Three months', + 'freq_four_months' => 'Four months', 'freq_six_months' => 'Six months', 'freq_annually' => 'Annually',