mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 21:14:35 -04:00
working on type casting
This commit is contained in:
parent
859efb9445
commit
7a4decdd3d
@ -207,6 +207,8 @@ class CompanyController extends BaseController
|
|||||||
|
|
||||||
$company = CreateCompany::dispatchNow($request->all(), auth()->user()->company()->account);
|
$company = CreateCompany::dispatchNow($request->all(), auth()->user()->company()->account);
|
||||||
|
|
||||||
|
$company->saveSettings($request->input('settings'));
|
||||||
|
|
||||||
$this->uploadLogo($request->file('company_logo'), $company, $company);
|
$this->uploadLogo($request->file('company_logo'), $company, $company);
|
||||||
|
|
||||||
auth()->user()->companies()->attach($company->id, [
|
auth()->user()->companies()->attach($company->id, [
|
||||||
|
@ -41,6 +41,8 @@ trait CompanySettingsSaver
|
|||||||
foreach($settings as $key => $value)
|
foreach($settings as $key => $value)
|
||||||
$company_settings->{$key} = $value;
|
$company_settings->{$key} = $value;
|
||||||
|
|
||||||
|
//$company_settings = CompanySettings::setCasts($company_settings, CompanySettings::$casts);
|
||||||
|
|
||||||
$this->settings = $company_settings;
|
$this->settings = $company_settings;
|
||||||
$this->save();
|
$this->save();
|
||||||
}
|
}
|
||||||
@ -57,10 +59,9 @@ trait CompanySettingsSaver
|
|||||||
$value = "integer";
|
$value = "integer";
|
||||||
|
|
||||||
if($this->checkAttribute($value, $settings->{$key})){
|
if($this->checkAttribute($value, $settings->{$key})){
|
||||||
\Log::error("System says true {$key} a {$value} = ".$settings->{$key});
|
settype($settings->{$key}, $value);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
\Log::error('popping '.$key.' '.$value.' '.$settings->{$key}.' off the stack');
|
|
||||||
unset($settings->{$key});
|
unset($settings->{$key});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,20 +70,18 @@ trait CompanySettingsSaver
|
|||||||
|
|
||||||
/* Handles unset settings or blank strings */
|
/* Handles unset settings or blank strings */
|
||||||
if(is_null($settings->{$key}) || !isset($settings->{$key}) || $settings->{$key} == ''){
|
if(is_null($settings->{$key}) || !isset($settings->{$key}) || $settings->{$key} == ''){
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Catch all filter */
|
/*Catch all filter */
|
||||||
if($this->checkAttribute($value, $settings->{$key})){
|
if($this->checkAttribute($value, $settings->{$key})){
|
||||||
\Log::error("System says true {$key} a {$value} = ".$settings->{$key});
|
settype($settings->{$key}, $value);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
unset($settings->{$key});
|
unset($settings->{$key});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
\Log::error(print_r($settings,1));
|
|
||||||
return $settings;
|
return $settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,8 +92,6 @@ trait CompanySettingsSaver
|
|||||||
{
|
{
|
||||||
case 'int':
|
case 'int':
|
||||||
case 'integer':
|
case 'integer':
|
||||||
//return is_int($value);
|
|
||||||
//return strval($value) === strval(intval($value)) ;
|
|
||||||
return ctype_digit(strval($value));
|
return ctype_digit(strval($value));
|
||||||
case 'real':
|
case 'real':
|
||||||
case 'float':
|
case 'float':
|
||||||
@ -104,7 +101,8 @@ trait CompanySettingsSaver
|
|||||||
return method_exists($value, '__toString' ) || is_null($value) || is_string($value);
|
return method_exists($value, '__toString' ) || is_null($value) || is_string($value);
|
||||||
case 'bool':
|
case 'bool':
|
||||||
case 'boolean':
|
case 'boolean':
|
||||||
return is_bool($value);
|
//\Log::error("is {$value} boolean ? = ".is_bool($value) || (int) filter_var($value, FILTER_VALIDATE_BOOLEAN));
|
||||||
|
return is_bool($value) || (int) filter_var($value, FILTER_VALIDATE_BOOLEAN);
|
||||||
case 'object':
|
case 'object':
|
||||||
return is_object($value);
|
return is_object($value);
|
||||||
case 'array':
|
case 'array':
|
||||||
@ -117,13 +115,7 @@ trait CompanySettingsSaver
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// \Log::error('popping '.$key.' '.$value.' '.$settings->{$key}.' off the stack');
|
||||||
|
// \Log::error('popping '.$key.' '.$value.' '.$settings->{$key}.' off the stack');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -22,6 +22,7 @@ use Tests\TestCase;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
|
* @covers App\Utils\Traits\CompanySettingsSaver
|
||||||
*/
|
*/
|
||||||
class CompanySettingsTest extends TestCase
|
class CompanySettingsTest extends TestCase
|
||||||
{
|
{
|
||||||
@ -117,5 +118,32 @@ class CompanySettingsTest extends TestCase
|
|||||||
$this->assertEquals($arr['data']['settings']['tax_rate3'],10.5);
|
$this->assertEquals($arr['data']['settings']['tax_rate3'],10.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testBoolEdgeCases()
|
||||||
|
{
|
||||||
|
$settings = $this->company->settings;
|
||||||
|
|
||||||
|
$settings->require_invoice_signature = true;
|
||||||
|
$settings->require_quote_signature = true;
|
||||||
|
$settings->show_accept_quote_terms = false;
|
||||||
|
$settings->show_accept_invoice_terms = "TRUE";
|
||||||
|
$settings->show_tasks_in_portal = "FALSE";
|
||||||
|
|
||||||
|
$this->company->settings = $settings;
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-Token' => $this->token,
|
||||||
|
])->put('/api/v1/companies/'.$this->encodePrimaryKey($this->company->id), $this->company->toArray());
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
|
||||||
|
$arr = $response->json();
|
||||||
|
|
||||||
|
$this->assertEquals($arr['data']['settings']['require_invoice_signature'],1);
|
||||||
|
$this->assertEquals($arr['data']['settings']['require_quote_signature'],1);
|
||||||
|
$this->assertEquals($arr['data']['settings']['show_accept_quote_terms'],0);
|
||||||
|
$this->assertEquals($arr['data']['settings']['show_accept_invoice_terms'],1);
|
||||||
|
$this->assertEquals($arr['data']['settings']['show_tasks_in_portal'],0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user