1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 21:22:58 +01:00

Merge pull request #4710 from turbo124/v5-develop

Fixes for how we login a client contact
This commit is contained in:
David Bomba 2021-01-19 07:55:57 +11:00 committed by GitHub
commit a2ef4f6ec7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 58 additions and 30 deletions

View File

@ -37,9 +37,12 @@ class FeesAndLimits
public $adjust_fee_percent = false;
public $is_enabled = true;
//public $gateway_type_id = 1;
public static $casts = [
'is_enabled' => 'bool',
'gateway_type_id' => 'int',
'min_limit' => 'float',
'max_limit' => 'float',

View File

@ -22,6 +22,7 @@ use App\Models\GroupSetting;
use App\Repositories\GroupSettingRepository;
use App\Transformers\GroupSettingTransformer;
use App\Utils\Traits\MakesHash;
use App\Utils\Traits\SavesDocuments;
use App\Utils\Traits\Uploadable;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Http\Request;
@ -32,6 +33,7 @@ class GroupSettingController extends BaseController
use DispatchesJobs;
use Uploadable;
use MakesHash;
use SavesDocuments;
protected $entity_type = GroupSetting::class;
@ -357,6 +359,9 @@ class GroupSettingController extends BaseController
$this->uploadLogo($request->file('company_logo'), $group_setting->company, $group_setting);
if ($request->has('documents'))
$this->saveDocuments($request->input('documents'), $group_setting, false);
return $this->itemResponse($group_setting);
}

View File

@ -58,7 +58,7 @@ class ReminderJob implements ShouldQueue
Invoice::where('next_send_date', Carbon::today()->format('Y-m-d'))->with('invitations')->cursor()->each(function ($invoice) {
if ($invoice->isPayable()) {
$reminder_template = $invoice->calculateTemplate('invoice');
$invoice->service()->touchReminder($this->reminder_template)->save();
$invoice->service()->touchReminder($reminder_template)->save();
$invoice->invitations->each(function ($invitation) use ($invoice, $reminder_template) {
EmailEntity::dispatch($invitation, $invitation->company, $reminder_template);

View File

@ -87,6 +87,12 @@ class ClientContact extends Authenticatable implements HasLocalePreference
'client_id',
];
/* Changing the username to id allows us to login() a contact that doesn't have an email address set*/
public function username()
{
return 'id';
}
public function getEntityType()
{
return self::class;

View File

@ -51,6 +51,11 @@ class GroupSetting extends StaticModel
return $this->hasMany(Client::class, 'id', 'group_settings_id');
}
public function documents()
{
return $this->morphMany(Document::class, 'documentable');
}
/**
* Retrieve the model for a bound value.
*

View File

@ -202,10 +202,6 @@ class BaseRepository
/* Model now persisted, now lets do some child tasks */
/* If client currency differs from the company default currency, then insert the client exchange rate on the model.*/
if($client->currency()->id != (int) $model->company->settings->currency_id)
$model->exchange_rate = $client->currency()->exchange_rate;
/* Save any documents */
if (array_key_exists('documents', $data))
$this->saveDocuments($data['documents'], $model);

View File

@ -76,6 +76,7 @@ class ClientContactRepository extends BaseRepository
$new_contact->client_id = $client->id;
$new_contact->contact_key = Str::random(40);
$new_contact->is_primary = true;
$new_contact->confirmed = true;
$new_contact->save();
}
}

View File

@ -102,17 +102,21 @@ class CreditService
{
$settings = $this->credit->client->getMergedSettings();
if (! $this->credit->design_id) {
if (! $this->credit->design_id)
$this->credit->design_id = $this->decodePrimaryKey($settings->credit_design_id);
}
if (!isset($this->credit->footer)) {
if (!isset($this->credit->footer))
$this->credit->footer = $settings->credit_footer;
}
if (!isset($this->credit->terms)) {
if (!isset($this->credit->terms))
$this->credit->terms = $settings->credit_terms;
}
/* If client currency differs from the company default currency, then insert the client exchange rate on the model.*/
if(!isset($this->credit->exchange_rate) && $this->credit->client->currency()->id != (int) $this->credit->company->settings->currency_id)
$this->credit->exchange_rate = $this->credit->client->currency()->exchange_rate;
if (!isset($this->credit->public_notes))
$this->credit->public_notes = $this->credit->client->public_notes;
return $this;

View File

@ -364,17 +364,21 @@ class InvoiceService
{
$settings = $this->invoice->client->getMergedSettings();
if (! $this->invoice->design_id) {
if (! $this->invoice->design_id)
$this->invoice->design_id = $this->decodePrimaryKey($settings->invoice_design_id);
}
if (!isset($this->invoice->footer)) {
if (!isset($this->invoice->footer))
$this->invoice->footer = $settings->invoice_footer;
}
if (!isset($this->invoice->terms)) {
if (!isset($this->invoice->terms))
$this->invoice->terms = $settings->invoice_terms;
}
if (!isset($this->invoice->public_notes))
$this->invoice->public_notes = $this->invoice->client->public_notes;
/* If client currency differs from the company default currency, then insert the client exchange rate on the model.*/
if(!isset($this->invoice->exchange_rate) && $this->invoice->client->currency()->id != (int) $this->invoice->company->settings->currency_id)
$this->invoice->exchange_rate = $this->invoice->client->currency()->exchange_rate;
return $this;
}

View File

@ -159,18 +159,21 @@ class QuoteService
{
$settings = $this->quote->client->getMergedSettings();
if (! $this->quote->design_id) {
if (! $this->quote->design_id)
$this->quote->design_id = $this->decodePrimaryKey($settings->quote_design_id);
}
if (!isset($this->quote->footer)) {
if (!isset($this->quote->footer))
$this->quote->footer = $settings->quote_footer;
}
if (!isset($this->quote->terms)) {
if (!isset($this->quote->terms))
$this->quote->terms = $settings->quote_terms;
}
/* If client currency differs from the company default currency, then insert the client exchange rate on the model.*/
if(!isset($this->quote->exchange_rate) && $this->quote->client->currency()->id != (int) $this->quote->company->settings->currency_id)
$this->quote->exchange_rate = $this->quote->client->currency()->exchange_rate;
if (!isset($this->quote->public_notes))
$this->quote->public_notes = $this->quote->client->public_notes;
return $this;
}

View File

@ -75,6 +75,7 @@ class AccountTransformer extends EntityTransformer
'archived_at' => (int) $account->deleted_at,
'report_errors' => (bool) $account->report_errors,
'debug_enabled' => (bool) config('ninja.debug_enabled'),
'is_docker' => (bool) config('ninja.is_docker'),
];
}

View File

@ -33,7 +33,7 @@ return [
'phantomjs_secret' => env('PHANTOMJS_SECRET', false),
'phantomjs_pdf_generation' => env('PHANTOMJS_PDF_GENERATION', true),
'trusted_proxies' => env('TRUSTED_PROXIES', false),
'is_docker' => env('IS_DOCKER', false),
'sentry_dsn' => env('SENTRY_LARAVEL_DSN', 'https://9b4e15e575214354a7d666489783904a@sentry.invoicing.co/6'),
'environment' => env('NINJA_ENVIRONMENT', 'selfhost'), // 'hosted', 'development', 'selfhost', 'reseller'