diff --git a/.env.example b/.env.example index f84708528ee5..76a3928a4063 100644 --- a/.env.example +++ b/.env.example @@ -5,20 +5,14 @@ APP_DEBUG=false APP_URL=http://localhost -DB_CONNECTION=db-ninja-01 +DB_CONNECTION=mysql MULTI_DB_ENABLED=false -DB_HOST1=localhost -DB_DATABASE1=ninja -DB_USERNAME1=ninja -DB_PASSWORD1=ninja -DB_PORT1=3306 - -DB_HOST2=localhost -DB_DATABASE2=ninja2 -DB_USERNAME2=ninja -DB_PASSWORD2=ninja -DB_PORT2=3306 +DB_HOST=localhost +DB_DATABASE=ninja +DB_USERNAME=ninja +DB_PASSWORD=ninja +DB_PORT=3306 DEMO_MODE=false diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index b788f816bf0b..d726225f0cb7 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -109,11 +109,11 @@ class SetupController extends Controller 'REQUIRE_HTTPS' => $request->input('https') ? 'true' : 'false', 'APP_DEBUG' => 'false', - 'DB_HOST1' => $request->input('db_host'), - 'DB_PORT1' => $request->input('db_port'), - 'DB_DATABASE1' => $request->input('db_database'), - 'DB_USERNAME1' => $request->input('db_username'), - 'DB_PASSWORD1' => $request->input('db_password'), + 'DB_HOST' => $request->input('db_host'), + 'DB_PORT' => $request->input('db_port'), + 'DB_DATABASE' => $request->input('db_database'), + 'DB_USERNAME' => $request->input('db_username'), + 'DB_PASSWORD' => $request->input('db_password'), 'MAIL_MAILER' => $mail_driver, 'MAIL_PORT' => $request->input('mail_port'), @@ -125,6 +125,7 @@ class SetupController extends Controller 'MAIL_PASSWORD' => $request->input('mail_password'), 'NINJA_ENVIRONMENT' => 'selfhost', + 'DB_CONNECTION' => 'mysql', ]; if (config('ninja.db.multi_db_enabled')) { @@ -133,11 +134,11 @@ class SetupController extends Controller if (config('ninja.preconfigured_install')) { // Database connection was already configured. Don't let the user override it. - unset($env_values['DB_HOST1']); - unset($env_values['DB_PORT1']); - unset($env_values['DB_DATABASE1']); - unset($env_values['DB_USERNAME1']); - unset($env_values['DB_PASSWORD1']); + unset($env_values['DB_HOST']); + unset($env_values['DB_PORT']); + unset($env_values['DB_DATABASE']); + unset($env_values['DB_USERNAME']); + unset($env_values['DB_PASSWORD']); } try { diff --git a/app/Services/Client/ClientService.php b/app/Services/Client/ClientService.php index 7b1b27dcfcad..9289a53604f1 100644 --- a/app/Services/Client/ClientService.php +++ b/app/Services/Client/ClientService.php @@ -51,6 +51,7 @@ class ClientService $credits = $this->client->credits ->where('is_deleted', false) ->where('balance', '>', 0) + ->where('due_date', '<=', now()) ->sortBy('created_at'); return Number::roundValue($credits->sum('balance'), $this->client->currency()->precision); diff --git a/config/ninja.php b/config/ninja.php index 675ce11ae92d..53dd12331057 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -14,8 +14,8 @@ return [ 'require_https' => env('REQUIRE_HTTPS', true), 'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'), - 'app_version' => '5.2.7', - 'app_tag' => '5.2.7', + 'app_version' => '5.2.8', + 'app_tag' => '5.2.8', 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', ''), diff --git a/tests/MockUnitData.php b/tests/MockUnitData.php new file mode 100644 index 000000000000..c0baea083e25 --- /dev/null +++ b/tests/MockUnitData.php @@ -0,0 +1,71 @@ +faker = \Faker\Factory::create(); + + $this->account = Account::factory()->create(); + + $this->user = User::factory()->create([ + 'account_id' => $this->account->id, + 'email' => $this->faker->safeEmail + ]); + + $this->company = Company::factory()->create([ + 'account_id' => $this->account->id + ]); + + $this->client = Client::factory()->create([ + 'user_id' => $this->user->id, + 'company_id' => $this->company->id + ]); + + $this->primary_contact = ClientContact::factory()->create([ + 'user_id' => $this->user->id, + 'client_id' => $this->client->id, + 'company_id' => $this->company->id, + 'is_primary' => 1, + ]); + + ClientContact::factory()->count(2)->create([ + 'user_id' => $this->user->id, + 'client_id' => $this->client->id, + 'company_id' => $this->company->id, + ]); + + } +} \ No newline at end of file diff --git a/tests/Unit/CreditBalanceTest.php b/tests/Unit/CreditBalanceTest.php new file mode 100644 index 000000000000..263409b4a854 --- /dev/null +++ b/tests/Unit/CreditBalanceTest.php @@ -0,0 +1,67 @@ +makeTestData(); + } + + public function testCreditBalance() + { + + $credit = Credit::factory()->create([ + 'user_id' => $this->user->id, + 'company_id' => $this->company->id, + 'client_id' => $this->client->id, + 'balance' => 10, + 'number' => 'testing-number-01', + 'status_id' => Credit::STATUS_SENT, + ]); + + $this->assertEquals($this->client->service()->getCreditBalance(), 10); + } + + + public function testExpiredCreditBalance() + { + + $credit = Credit::factory()->create([ + 'user_id' => $this->user->id, + 'company_id' => $this->company->id, + 'client_id' => $this->client->id, + 'balance' => 10, + 'due_date' => now()->addDays(5), + 'number' => 'testing-number-02', + 'status_id' => Credit::STATUS_SENT, + ]); + + $this->assertEquals($this->client->service()->getCreditBalance(), 0); + + } +}