diff --git a/app/Http/Requests/Client/StoreClientRequest.php b/app/Http/Requests/Client/StoreClientRequest.php index ec70c6374c..e02194dc59 100644 --- a/app/Http/Requests/Client/StoreClientRequest.php +++ b/app/Http/Requests/Client/StoreClientRequest.php @@ -11,7 +11,9 @@ namespace App\Http\Requests\Client; +use App\DataMapper\ClientSettings; use App\Http\Requests\Request; +use App\Http\ValidationRules\ValidSettingsRule; use App\Models\Client; use Illuminate\Support\Facades\Log; @@ -32,11 +34,12 @@ class StoreClientRequest extends Request public function rules() { + $this->sanitize(); /* Ensure we have a client name, and that all emails are unique*/ $rules['name'] = 'required|min:1'; $rules['id_number'] = 'unique:clients,id_number,' . $this->id . ',id,company_id,' . $this->company_id; - //$rules['settings'] = 'json'; + $rules['settings'] = new ValidSettingsRule(); $contacts = request('contacts'); @@ -58,8 +61,8 @@ class StoreClientRequest extends Request public function sanitize() { $input = $this->all(); - - $input['settings'] = new \stdClass; + + $input['settings'] = ClientSettings::defaults(); $this->replace($input); diff --git a/app/Http/Requests/Client/UpdateClientRequest.php b/app/Http/Requests/Client/UpdateClientRequest.php index c7df402a8d..3ce792eddd 100644 --- a/app/Http/Requests/Client/UpdateClientRequest.php +++ b/app/Http/Requests/Client/UpdateClientRequest.php @@ -12,6 +12,7 @@ namespace App\Http\Requests\Client; use App\Http\Requests\Request; +use App\Http\ValidationRules\ValidSettingsRule; use Illuminate\Support\Facades\Log; use Illuminate\Validation\Rule; @@ -40,6 +41,7 @@ class UpdateClientRequest extends Request $rules['shipping_country_id'] = 'integer|nullable'; //$rules['id_number'] = 'unique:clients,id_number,,id,company_id,' . auth()->user()->company()->id; $rules['id_number'] = 'unique:clients,id_number,' . $this->id . ',id,company_id,' . $this->company_id; + $rules['settings'] = new ValidSettingsRule(); // $rules['settings'] = 'json'; diff --git a/app/Http/Requests/GroupSetting/CreateGroupSettingRequest.php b/app/Http/Requests/GroupSetting/CreateGroupSettingRequest.php index 1108eb8ef0..672a6e425b 100644 --- a/app/Http/Requests/GroupSetting/CreateGroupSettingRequest.php +++ b/app/Http/Requests/GroupSetting/CreateGroupSettingRequest.php @@ -12,6 +12,7 @@ namespace App\Http\Requests\GroupSetting; use App\Http\Requests\Request; +use App\Http\ValidationRules\ValidSettingsRule; use App\Models\GroupSetting; class CreateGroupSettingRequest extends Request @@ -27,4 +28,5 @@ class CreateGroupSettingRequest extends Request return auth()->user()->can('create', GroupSetting::class); } + } \ No newline at end of file diff --git a/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php b/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php index bc38c71d62..e512ae60a9 100644 --- a/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php +++ b/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php @@ -11,7 +11,9 @@ namespace App\Http\Requests\GroupSetting; +use App\DataMapper\ClientSettings; use App\Http\Requests\Request; +use App\Http\ValidationRules\ValidSettingsRule; use App\Models\GroupSetting; use Illuminate\Support\Facades\Log; @@ -32,22 +34,25 @@ class StoreGroupSettingRequest extends Request public function rules() { + $this->sanitize(); - return [ - 'name' => 'required', - // 'settings' => 'json', - ]; + $rules['name'] = 'required'; + $rules['settings'] = new ValidSettingsRule(); + return $rules; } - public function sanitize() { $input = $this->all(); - + + $input['settings'] = ClientSettings::defaults(); + $this->replace($input); + } + public function messages() { return [ diff --git a/app/Http/Requests/GroupSetting/UpdateGroupSettingRequest.php b/app/Http/Requests/GroupSetting/UpdateGroupSettingRequest.php index 49691601f1..09efcdf504 100644 --- a/app/Http/Requests/GroupSetting/UpdateGroupSettingRequest.php +++ b/app/Http/Requests/GroupSetting/UpdateGroupSettingRequest.php @@ -12,6 +12,7 @@ namespace App\Http\Requests\GroupSetting; use App\Http\Requests\Request; +use App\Http\ValidationRules\ValidSettingsRule; use Illuminate\Support\Facades\Log; use Illuminate\Validation\Rule; @@ -31,9 +32,9 @@ class UpdateGroupSettingRequest extends Request public function rules() { - return [ - // 'settings' => 'json', - ]; + $rules['settings'] = new ValidSettingsRule(); + + return $rules; } diff --git a/app/Libraries/MultiDB.php b/app/Libraries/MultiDB.php index 0aa88669f9..c68d49169a 100644 --- a/app/Libraries/MultiDB.php +++ b/app/Libraries/MultiDB.php @@ -143,7 +143,7 @@ class MultiDB public static function findAndSetDbByDomain($domain) :bool { -//\Log::error("searching for {$domain}"); + //\Log::error("searching for {$domain}"); foreach (self::$dbs as $db) { diff --git a/database/migrations/2014_10_13_000000_create_users_table.php b/database/migrations/2014_10_13_000000_create_users_table.php index 6f92b7a248..132b28dad7 100644 --- a/database/migrations/2014_10_13_000000_create_users_table.php +++ b/database/migrations/2014_10_13_000000_create_users_table.php @@ -148,6 +148,7 @@ class CreateUsersTable extends Migration $table->boolean('custom_surcharge_taxes2')->default(false); $table->boolean('custom_surcharge_taxes3')->default(false); $table->boolean('custom_surcharge_taxes4')->default(false); + $table->boolean('show_product_cost')->default(false); $table->unsignedInteger('enabled_tax_rates')->default(1); // $table->string('website')->nullable();