diff --git a/app/Models/Bank.php b/app/Models/Bank.php index c6309aa2faab..bf71eeef3e31 100644 --- a/app/Models/Bank.php +++ b/app/Models/Bank.php @@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model; /** * Class Bank. */ -class Bank extends BaseModel +class Bank extends Model { /** * @var bool diff --git a/app/Models/Client.php b/app/Models/Client.php index 224cc0f137e8..b93af483ca13 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -115,14 +115,17 @@ class Client extends BaseModel */ public function getSettingsByKey($key) { - /* Does Setting Exist @ client level */ if(isset($this->getSettings()->{$key})) - { + { + //Log::error('harvesting client settings for key = '. $key . ' and it has the value = '. $this->getSettings()->{$key}); + //Log::error(print_r($this->getSettings(),1)); return $this->getSettings(); } - else - return new CompanySettings($this->company->settings); + else { + //Log::error('harvesting company settings for key = '. $key); + return new CompanySettings($this->company->settings); + } } @@ -130,14 +133,14 @@ class Client extends BaseModel { switch ($entity) { case Client::class: - Log::error('saving client settings'); + // Log::error('saving client settings'); $this->settings = $settings; $this->save(); break; case Company::class: - Log::error('saving company settings'); + // Log::error('saving company settings'); $this->company->settings = $settings; - $this->push(); + $this->company->save(); break; default: diff --git a/app/Models/ClientLocation.php b/app/Models/ClientLocation.php deleted file mode 100644 index bcfcd357a223..000000000000 --- a/app/Models/ClientLocation.php +++ /dev/null @@ -1,30 +0,0 @@ -encodePrimaryKey($this->id); - } - - public function client() - { - return $this->belongsTo(Client::class); - } -} diff --git a/app/Models/Currency.php b/app/Models/Currency.php index 59890cd5df93..82dd07a0ec6a 100644 --- a/app/Models/Currency.php +++ b/app/Models/Currency.php @@ -4,7 +4,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; -class Currency extends BaseModel +class Currency extends Model { public $timestamps = false; diff --git a/app/Models/Gateway.php b/app/Models/Gateway.php index 6c0904816da9..9732a915070b 100644 --- a/app/Models/Gateway.php +++ b/app/Models/Gateway.php @@ -4,7 +4,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; -class Gateway extends BaseModel +class Gateway extends Model { // } diff --git a/app/Models/Industry.php b/app/Models/Industry.php index f092b4adc587..305e942c0531 100644 --- a/app/Models/Industry.php +++ b/app/Models/Industry.php @@ -4,7 +4,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; -class Industry extends BaseModel +class Industry extends Model { // } diff --git a/app/Models/Language.php b/app/Models/Language.php index ce7e72fb4c83..b8ae1e58c21d 100644 --- a/app/Models/Language.php +++ b/app/Models/Language.php @@ -4,7 +4,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; -class Language extends BaseModel +class Language extends Model { public $timestamps = false; diff --git a/app/Utils/Traits/GeneratesNumberCounter.php b/app/Utils/Traits/GeneratesNumberCounter.php index 89a26cd93083..f416f4adb67b 100644 --- a/app/Utils/Traits/GeneratesNumberCounter.php +++ b/app/Utils/Traits/GeneratesNumberCounter.php @@ -68,8 +68,8 @@ trait GeneratesNumberCounter public function hasSharedCounter() : bool { - - return $this->getSettingsByKey('shared_invoice_quote_counter')->shared_invoice_quote_counter; + Log::error('The Shared Counter = '. $this->getSettingsByKey('shared_invoice_quote_counter')->shared_invoice_quote_counter); + return $this->getSettingsByKey('shared_invoice_quote_counter')->shared_invoice_quote_counter === TRUE; } @@ -125,20 +125,20 @@ trait GeneratesNumberCounter $counter = $this->entityName($entity) . '_number_counter'; - Log::error($counter); + //Log::error($counter); $entity_settings = $this->getSettingsByKey( $counter ); - Log::error(print_r($entity_settings,1)); + //Log::error(print_r($entity_settings,1)); $entity_settings->{$counter} = $entity_settings->{$counter} + 1; - Log::error($entity_settings->{$counter}); - Log::error($entity_settings->entity); + //Log::error($entity_settings->{$counter}); + //Log::error($entity_settings->entity); $this->setSettingsByEntity($entity_settings->entity, $entity_settings); - Log::error(print_r($entity_settings,1)); + //Log::error(print_r($entity_settings,1)); } diff --git a/database/factories/ClientFactory.php b/database/factories/ClientFactory.php index 1675b98a38a0..396e4eb5de13 100644 --- a/database/factories/ClientFactory.php +++ b/database/factories/ClientFactory.php @@ -28,6 +28,6 @@ $factory->define(App\Models\Client::class, function (Faker $faker) { 'shipping_state' => $faker->state, 'shipping_postal_code' => $faker->postcode, 'shipping_country_id' => 4, - 'settings' => ClientSettings::buildClientSettings(new CompanySettings(CompanySettings::defaults()), new ClientSettings(ClientSettings::defaults())), + 'settings' => new ClientSettings(ClientSettings::defaults()), ]; }); diff --git a/tests/Unit/GenerateNumberTest.php b/tests/Unit/GenerateNumberTest.php index 76672dcbfd4d..c1f215f821ff 100644 --- a/tests/Unit/GenerateNumberTest.php +++ b/tests/Unit/GenerateNumberTest.php @@ -4,6 +4,8 @@ namespace Tests\Unit; use App\DataMapper\DefaultSettings; use App\Models\Client; +use App\Models\Credit; +use App\Models\Invoice; use App\Models\RecurringInvoice; use App\Utils\Traits\GeneratesNumberCounter; use App\Utils\Traits\MakesHash; @@ -32,19 +34,8 @@ class GenerateNumberTest extends TestCase $this->faker = \Faker\Factory::create(); Model::reguard(); - } - - public function testEntityName() - { - - $this->assertEquals($this->entityName(Client::class), 'client'); - - } - - public function testCounterVariables() - { - $account = factory(\App\Models\Account::class)->create(); + $account = factory(\App\Models\Account::class)->create(); $company = factory(\App\Models\Company::class)->create([ 'account_id' => $account->id, ]); @@ -95,20 +86,81 @@ class GenerateNumberTest extends TestCase }); - $client = Client::whereUserId($user->id)->whereCompanyId($company->id)->first(); + $this->client = Client::whereUserId($user->id)->whereCompanyId($company->id)->first(); + } - $this->assertEquals($client->getCounter(Client::class), 1); - $this->assertEquals($client->getNextNumber(Client::class),1); + public function testEntityName() + { - $settings = $client->getSettingsByKey('recurring_invoice_number_prefix'); - $settings->recurring_invoice_number_prefix = 'R'; - $client->setSettingsByEntity($settings->entity, $settings); + $this->assertEquals($this->entityName(Client::class), 'client'); - $this->assertEquals($client->getNextNumber(RecurringInvoice::class), 'R1'); - - $client->incrementCounter(Client::class); - - $this->assertEquals($client->getCounter(Client::class), 2); } + + public function testSharedCounter() + { + + $this->assertFalse($this->client->hasSharedCounter()); + + } + + public function testClientCounterValue() + { + + $this->assertEquals($this->client->getCounter(Client::class), 1); + + } + + public function testClientNextNumber() + { + + $this->assertEquals($this->client->getNextNumber(Client::class),1); + + } + + public function testRecurringInvoiceNumberPrefix() + { + + $settings = $this->client->getSettingsByKey('recurring_invoice_number_prefix'); + $settings->recurring_invoice_number_prefix = 'R'; + $this->client->setSettingsByEntity($settings->entity, $settings); + + $this->assertEquals($this->client->getNextNumber(RecurringInvoice::class), 'R1'); + } + + public function testClientIncrementer() + { + $this->client->incrementCounter(Client::class); + + $this->assertEquals($this->client->getCounter(Client::class), 2); + } + + public function testCounterValues() + { + + + $this->assertEquals($this->client->getCounter(Invoice::class), 1); + $this->assertEquals($this->client->getCounter(RecurringInvoice::class), 1); + $this->assertEquals($this->client->getCounter(Credit::class), 1); + + + } + + public function testClassIncrementers() + { + + $this->client->incrementCounter(Invoice::class); + $this->client->incrementCounter(RecurringInvoice::class); + $this->client->incrementCounter(Credit::class); + + $this->assertEquals($this->client->getCounter(Invoice::class), 3); + $this->assertEquals($this->client->getCounter(RecurringInvoice::class), 3); + $this->assertEquals($this->client->getCounter(Credit::class), 2); + } + + public function testClientNumberPattern() + { + + } + }