diff --git a/app/DataMapper/InvoiceItem.php b/app/DataMapper/InvoiceItem.php index f15e288a12e5..42fbfea892ae 100644 --- a/app/DataMapper/InvoiceItem.php +++ b/app/DataMapper/InvoiceItem.php @@ -51,10 +51,10 @@ class InvoiceItem public $custom_value4 = ''; - public $line_item_type_id = 1; //1 = product, 2 = service, 3 unpaid gateway fee, 4 paid gateway fee + public $type_id = 1; //1 = product, 2 = service, 3 unpaid gateway fee, 4 paid gateway fee public static $casts = [ - 'line_item_type_id' => 'string', + 'type_id' => 'string', 'quantity' => 'float', 'cost' => 'float', 'product_key' => 'string', diff --git a/app/Models/Client.php b/app/Models/Client.php index 9cea5f3756e2..4aa889b77467 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -464,19 +464,24 @@ class Client extends BaseModel implements HasLocalePreference return $this->company->company_key . '/'; } - public function setCompanyDefaults($data, $entity_name) + public function setCompanyDefaults($data, $entity_name) :array { + $defaults = []; if(!(array_key_exists('terms', $data) && strlen($data['terms']) > 1)) - $data['terms'] = $this->getSetting($entity_name.'_terms'); + $defaults['terms'] = $this->getSetting($entity_name.'_terms'); + elseif(array_key_exists('terms', $data)) + $defaults['terms'] = $data['terms']; if(!(array_key_exists('footer', $data) && strlen($data['footer']) > 1)) - $data['footer'] = $this->getSetting($entity_name.'_footer'); + $defaults['footer'] = $this->getSetting($entity_name.'_footer'); + elseif(array_key_exists('footer', $data)) + $defaults['footer'] = $data['footer']; if(strlen($this->public_notes) >=1) - $data['public_notes'] = $this->public_notes; + $defaults['public_notes'] = $this->public_notes; - return $data; + return $defaults; } } diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 96d1112b55b3..2edf1f4396d7 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -201,8 +201,10 @@ class BaseRepository $state['starting_amount'] = $model->amount; if (!$model->id) { - $data = $client->setCompanyDefaults($data,lcfirst($resource)); + $company_defaults = $client->setCompanyDefaults($data,lcfirst($resource)); $model->uses_inclusive_taxes = $client->getSetting('inclusive_taxes'); + + $data = array_merge($company_defaults, $data); } $model->fill($data);