diff --git a/app/DataMapper/CompanySettings.php b/app/DataMapper/CompanySettings.php index a2b8f884690a..276cdca50ff2 100644 --- a/app/DataMapper/CompanySettings.php +++ b/app/DataMapper/CompanySettings.php @@ -238,8 +238,13 @@ class CompanySettings extends BaseSettings public $client_portal_terms = ''; public $client_portal_privacy_policy = ''; public $client_portal_enable_uploads = false; + public $client_portal_allow_under_payment = false; + public $client_portal_allow_over_payment = false; + public static $casts = [ + 'client_portal_allow_under_payment' => 'bool', + 'client_portal_allow_over_payment' => 'bool', 'auto_bill' => 'string', 'lock_invoices' => 'string', 'client_portal_terms' => 'string', diff --git a/app/Http/Controllers/MigrationController.php b/app/Http/Controllers/MigrationController.php index 4b4c755cb3df..cf931a19026b 100644 --- a/app/Http/Controllers/MigrationController.php +++ b/app/Http/Controllers/MigrationController.php @@ -31,7 +31,6 @@ class MigrationController extends BaseController parent::__construct(); } - /** * * Purge Company diff --git a/app/Jobs/Util/Import.php b/app/Jobs/Util/Import.php index f353f22276f2..34ce39061bad 100644 --- a/app/Jobs/Util/Import.php +++ b/app/Jobs/Util/Import.php @@ -227,6 +227,14 @@ class Import implements ShouldQueue unset($data['account_id']); } + if(isset($data['referral_code'])) { + $account = $this->company->account; + $account->referral_code = $data['referral_code']; + $account->save(); + + unset($data['referral_code']); + } + $company_repository = new CompanyRepository(); $company_repository->save($data, $this->company); diff --git a/app/Models/CompanyGateway.php b/app/Models/CompanyGateway.php index b63a81502acd..4c05a86bf22a 100644 --- a/app/Models/CompanyGateway.php +++ b/app/Models/CompanyGateway.php @@ -201,6 +201,23 @@ class CompanyGateway extends BaseModel return floatval($this->fee_amount) || floatval($this->fee_percent); } + /** + * Returns the current test mode of the gateway + * + * @return boolean whether the gateway is in testmode or not. + */ + public function isTestMode() :bool + { + $config = $this->getConfig(); + + if($this->gateway->provider == 'Stripe' && strpos($config->publishableKey, 'test')) + return true; + + if(property_exists($config, 'testMode') && $config->testMode) + return true; + + return false; + } /** * Get Publishable Key * Only works for STRIPE and PAYMILL diff --git a/app/Observers/CompanyGatewayObserver.php b/app/Observers/CompanyGatewayObserver.php index cecd724fb924..77e6d4e8e8cd 100644 --- a/app/Observers/CompanyGatewayObserver.php +++ b/app/Observers/CompanyGatewayObserver.php @@ -14,6 +14,8 @@ class CompanyGatewayObserver */ public function created(CompanyGateway $company_gateway) { + + /* Set company gateway if not exists*/ if(!$company_gateway->label){ $company_gateway->label = $company_gateway->gateway->name; $company_gateway->save(); diff --git a/app/Transformers/CompanyGatewayTransformer.php b/app/Transformers/CompanyGatewayTransformer.php index 6b42722eeaa9..234190f74966 100644 --- a/app/Transformers/CompanyGatewayTransformer.php +++ b/app/Transformers/CompanyGatewayTransformer.php @@ -64,7 +64,7 @@ class CompanyGatewayTransformer extends EntityTransformer 'custom_value4' => $company_gateway->custom_value4 ?: '', 'label' => (string)$company_gateway->label ?: '', 'token_billing' => (string)$company_gateway->token_billing, - 'test_mode' => (bool) $company_gateway->isTestMode(), + 'test_mode' => (bool)$company_gateway->isTestMode(), ]; } diff --git a/database/migrations/2020_08_18_140557_add_is_public_to_documents_table.php b/database/migrations/2020_08_18_140557_add_is_public_to_documents_table.php index 1070bc305127..b9f3c1d386df 100644 --- a/database/migrations/2020_08_18_140557_add_is_public_to_documents_table.php +++ b/database/migrations/2020_08_18_140557_add_is_public_to_documents_table.php @@ -43,6 +43,18 @@ class AddIsPublicToDocumentsTable extends Migration $table->timestamps(6); }); + Schema::table('recurring_invoices', function ($table) { + $table->string('auto_bill'); + }); + + // Schema::table('recurring_expenses', function ($table) { + // $table->string('auto_bill'); + // }); + + Schema::table('companies', function ($table) { + $table->enum('default_auto_bill', ['off', 'always','optin','optout'])->default('off'); + }); + } /**