diff --git a/app/Http/Controllers/OrganiserController.php b/app/Http/Controllers/OrganiserController.php
index a9261025..fa64af95 100644
--- a/app/Http/Controllers/OrganiserController.php
+++ b/app/Http/Controllers/OrganiserController.php
@@ -40,6 +40,11 @@ class OrganiserController extends MyBaseController
{
$organiser = Organiser::createNew(false, false, true);
+ $chargeTax = $request->get('charge_tax');
+
+ if ($chargeTax == 'Yes') {
+ $organiser->addExtraValidationRules();
+ }
if (!$organiser->validate($request->all())) {
return response()->json([
'status' => 'error',
@@ -53,13 +58,11 @@ class OrganiserController extends MyBaseController
$organiser->facebook = $request->get('facebook');
$organiser->twitter = $request->get('twitter');
$organiser->confirmation_key = str_random(15);
- $organiser->taxname = $request->get('taxname');
- $organiser->taxvalue = $request->get('taxvalue');
- $organiser->taxid = $request->get('taxid');
- $organiser->taxname = $request->get('taxname');
- $organiser->taxvalue = round($request->get('taxvalue'),2);
- $organiser->taxid = $request->get('taxid');
+ $organiser->tax_name = $request->get('tax_name');
+ $organiser->tax_value = round($request->get('tax_value'),2);
+ $organiser->tax_id = $request->get('tax_id');
+ $organiser->charge_tax = ($chargeTax == 'Yes') ? 1 : 0;
if ($request->hasFile('organiser_logo')) {
$organiser->setLogo($request->file('organiser_logo'));
diff --git a/app/Http/Controllers/OrganiserCustomizeController.php b/app/Http/Controllers/OrganiserCustomizeController.php
index a50b8c37..92ed3b4d 100644
--- a/app/Http/Controllers/OrganiserCustomizeController.php
+++ b/app/Http/Controllers/OrganiserCustomizeController.php
@@ -50,9 +50,12 @@ class OrganiserCustomizeController extends MyBaseController
$organiser->enable_organiser_page = $request->get('enable_organiser_page');
$organiser->facebook = $request->get('facebook');
$organiser->twitter = $request->get('twitter');
- $organiser->taxname = $request->get('taxname');
- $organiser->taxvalue = $request->get('taxvalue');
- $organiser->taxid = $request->get('taxid');
+ $organiser->tax_name = $request->get('tax_name');
+ $organiser->tax_value = $request->get('tax_value');
+ $organiser->tax_id = $request->get('tax_id');
+ $organiser->charge_tax = ($request->get('charge_tax') == 1) ? 1 : 0;
+
+ //var_dump($organiser->charge_tax);
if ($request->get('remove_current_image') == '1') {
$organiser->logo_path = '';
diff --git a/app/Models/Organiser.php b/app/Models/Organiser.php
index 900d5ba1..89aa5cac 100644
--- a/app/Models/Organiser.php
+++ b/app/Models/Organiser.php
@@ -2,12 +2,15 @@
namespace App\Models;
+use Illuminate\Auth\Authenticatable;
use Illuminate\Http\UploadedFile;
+use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Str;
use Image;
-class Organiser extends MyBaseModel
+class Organiser extends MyBaseModel implements AuthenticatableContract
{
+ use Authenticatable;
/**
* The validation rules for the model.
*
@@ -16,21 +19,24 @@ class Organiser extends MyBaseModel
protected $rules = [
'name' => ['required'],
'email' => ['required', 'email'],
- 'taxname' => ['required','max:15'],
- 'taxvalue' => ['required','numeric'],
- 'taxid' => ['required','max:100'],
'organiser_logo' => ['mimes:jpeg,jpg,png', 'max:10000'],
];
+ protected $extra_rules = [
+ 'tax_name' => ['required','max:15'],
+ 'tax_value' => ['required','numeric'],
+ 'tax_id' => ['required','max:100'],
+ ];
+
/**
* The validation rules for the model.
*
* @var array $attributes
*/
protected $attributes = [
- 'taxname' => 'Tax Name',
- 'taxvalue' => 'Tax Rate',
- 'taxid' => 'Tax ID',
+ 'tax_name' => 'Tax Name',
+ 'tax_value' => 'Tax Rate',
+ 'tax_id' => 'Tax ID',
];
/**
@@ -161,5 +167,12 @@ class Organiser extends MyBaseModel
$this->logo_path = $relativePath;
}
}
+
+ /**
+ * Adds extra validator rules to the organiser object depending on whether tax is required or not
+ */
+ public function addExtraValidationRules() {
+ $this->rules = $this->rules + $this->extra_rules;
+ }
}
diff --git a/database/migrations/2018_07_09_133243_additional_tax_field_rename_current_tax_fields.php b/database/migrations/2018_07_09_133243_additional_tax_field_rename_current_tax_fields.php
new file mode 100644
index 00000000..f4544bd0
--- /dev/null
+++ b/database/migrations/2018_07_09_133243_additional_tax_field_rename_current_tax_fields.php
@@ -0,0 +1,37 @@
+boolean('charge_tax')->default(0);
+ $table->renameColumn('taxname', 'tax_name');
+ $table->renameColumn('taxvalue', 'tax_value');
+ $table->renameColumn('taxid', 'tax_id');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('organisers', function (Blueprint $table) {
+ $table->dropColumn('charge_tax');
+ $table->renameColumn('tax_name', 'taxname');
+ $table->renameColumn('tax_value', 'taxvalue');
+ $table->renameColumn('tax_id', 'taxid');
+ });
+ }
+}
diff --git a/phpunit.xml b/phpunit.xml
index f1bd8182..5a2c22ea 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -19,7 +19,7 @@
Do you want to Charge Tax at your Events?
+ {!! Form::label('Yes', 'Yes', array('class'=>'control-label', 'id' => 'charge_yes')) !!} + {{ Form::radio('charge_tax', 'Yes' , false) }} + {!! Form::label('No', 'No', array('class'=>'control-label','id' => 'charge_no')) !!} + {{ Form::radio('charge_tax', 'No' , true) }} +Do you want to Charge Tax at your Events?
+ + charge_tax == 1 ? 'checked' : '' }}> + + charge_tax == 0 ? 'checked' : '' }}>