diff --git a/app/Abstracts/View/Components/Documents/Form.php b/app/Abstracts/View/Components/Documents/Form.php index decc23649..c48e0484b 100644 --- a/app/Abstracts/View/Components/Documents/Form.php +++ b/app/Abstracts/View/Components/Documents/Form.php @@ -763,7 +763,7 @@ abstract class Form extends Component $issuedAt = Date::now()->toDateString(); } - $addDays = setting($this->getSettingKey($type, 'payment_terms'), 0) ?: 0; + $addDays = setting($this->getDocumentSettingKey($type, 'payment_terms'), 0) ?: 0; $dueAt = Date::parse($issuedAt)->addDays($addDays)->toDateString(); @@ -875,7 +875,7 @@ abstract class Form extends Component return $hideItemName; } - $hideItemName = setting($this->getSettingKey($type, 'item_name'), false); + $hideItemName = setting($this->getDocumentSettingKey($type, 'item_name'), false); // if you use settting translation if ($hideItemName === 'hide') { @@ -898,18 +898,18 @@ abstract class Form extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'item_name'), 'items') === 'custom') { - if (empty($textItemName = setting($this->getSettingKey($type, 'item_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'item_name'), 'items') === 'custom') { + if (empty($textItemName = setting($this->getDocumentSettingKey($type, 'item_name_input')))) { $textItemName = 'general.items'; } return $textItemName; } - if (setting($this->getSettingKey($type, 'item_name')) !== null - && (trans(setting($this->getSettingKey($type, 'item_name'))) != setting($this->getSettingKey($type, 'item_name'))) + if (setting($this->getDocumentSettingKey($type, 'item_name')) !== null + && (trans(setting($this->getDocumentSettingKey($type, 'item_name'))) != setting($this->getDocumentSettingKey($type, 'item_name'))) ) { - return setting($this->getSettingKey($type, 'item_name')); + return setting($this->getDocumentSettingKey($type, 'item_name')); } $translation = $this->getTextFromConfig($type, 'items'); @@ -930,7 +930,7 @@ abstract class Form extends Component // if you use settting translation - if (setting($this->getSettingKey($type, 'hide_item_description'), false)) { + if (setting($this->getDocumentSettingKey($type, 'hide_item_description'), false)) { return true; } @@ -964,7 +964,7 @@ abstract class Form extends Component return $hideItemQuantity; } - $hideItemQuantity = setting($this->getSettingKey($type, 'quantity_name'), false); + $hideItemQuantity = setting($this->getDocumentSettingKey($type, 'quantity_name'), false); // if you use settting translation if ($hideItemQuantity === 'hide') { @@ -987,18 +987,18 @@ abstract class Form extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'quantity_name'), 'quantity') === 'custom') { - if (empty($textItemQuantity = setting($this->getSettingKey($type, 'quantity_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'quantity_name'), 'quantity') === 'custom') { + if (empty($textItemQuantity = setting($this->getDocumentSettingKey($type, 'quantity_name_input')))) { $textItemQuantity = 'invoices.quantity'; } return $textItemQuantity; } - if (setting($this->getSettingKey($type, 'quantity_name')) !== null - && (trans(setting($this->getSettingKey($type, 'quantity_name'))) != setting($this->getSettingKey($type, 'quantity_name'))) + if (setting($this->getDocumentSettingKey($type, 'quantity_name')) !== null + && (trans(setting($this->getDocumentSettingKey($type, 'quantity_name'))) != setting($this->getDocumentSettingKey($type, 'quantity_name'))) ) { - return setting($this->getSettingKey($type, 'quantity_name')); + return setting($this->getDocumentSettingKey($type, 'quantity_name')); } $translation = $this->getTextFromConfig($type, 'quantity'); @@ -1016,7 +1016,7 @@ abstract class Form extends Component return $hideItemPrice; } - $hideItemPrice = setting($this->getSettingKey($type, 'price_name'), false); + $hideItemPrice = setting($this->getDocumentSettingKey($type, 'price_name'), false); // if you use settting translation if ($hideItemPrice === 'hide') { @@ -1039,18 +1039,18 @@ abstract class Form extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'price_name'), 'price') === 'custom') { - if (empty($textItemPrice = setting($this->getSettingKey($type, 'price_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'price_name'), 'price') === 'custom') { + if (empty($textItemPrice = setting($this->getDocumentSettingKey($type, 'price_name_input')))) { $textItemPrice = 'invoices.price'; } return $textItemPrice; } - if (setting($this->getSettingKey($type, 'price_name')) !== null - && (trans(setting($this->getSettingKey($type, 'price_name'))) != setting($this->getSettingKey($type, 'price_name'))) + if (setting($this->getDocumentSettingKey($type, 'price_name')) !== null + && (trans(setting($this->getDocumentSettingKey($type, 'price_name'))) != setting($this->getDocumentSettingKey($type, 'price_name'))) ) { - return setting($this->getSettingKey($type, 'price_name')); + return setting($this->getDocumentSettingKey($type, 'price_name')); } $translation = $this->getTextFromConfig($type, 'price'); @@ -1069,7 +1069,7 @@ abstract class Form extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'hide_amount'), false)) { + if (setting($this->getDocumentSettingKey($type, 'hide_amount'), false)) { return true; } @@ -1104,7 +1104,7 @@ abstract class Form extends Component } // if you use settting translation - if ($hideDiscount = setting($this->getSettingKey($type, 'hide_discount'), false)) { + if ($hideDiscount = setting($this->getDocumentSettingKey($type, 'hide_discount'), false)) { return $hideDiscount; } @@ -1125,7 +1125,7 @@ abstract class Form extends Component } // if you use settting translation - if ($settingCharLimit = setting($this->getSettingKey($type, 'item_search_chart_limit'), false)) { + if ($settingCharLimit = setting($this->getDocumentSettingKey($type, 'item_search_chart_limit'), false)) { return $settingCharLimit; } @@ -1149,7 +1149,7 @@ abstract class Form extends Component return $this->document->notes; } - return setting($this->getSettingKey($this->type, 'notes')); + return setting($this->getDocumentSettingKey($this->type, 'notes')); } protected function getTextSectionAdvancedTitle($type, $textSectionAdvancedTitle) @@ -1176,7 +1176,7 @@ abstract class Form extends Component return $titleSetting; } - return setting($this->getSettingKey($type, 'title')); + return setting($this->getDocumentSettingKey($type, 'title')); } protected function getSubheadingSettingValue($type, $subheadingSetting) @@ -1185,7 +1185,7 @@ abstract class Form extends Component return $subheadingSetting; } - return setting($this->getSettingKey($type, 'subheading')); + return setting($this->getDocumentSettingKey($type, 'subheading')); } protected function getFooterValue($footer) @@ -1198,7 +1198,7 @@ abstract class Form extends Component return $this->document->footer; } - return setting($this->getSettingKey($this->type, 'footer')); + return setting($this->getDocumentSettingKey($this->type, 'footer')); } protected function getTypeCategory($type, $typeCategory) diff --git a/app/Abstracts/View/Components/Documents/Show.php b/app/Abstracts/View/Components/Documents/Show.php index 71a4cba51..b104a6ad9 100644 --- a/app/Abstracts/View/Components/Documents/Show.php +++ b/app/Abstracts/View/Components/Documents/Show.php @@ -909,7 +909,7 @@ abstract class Show extends Component return $template; } - $documentTemplate = setting($this->getSettingKey($type, 'template'), 'default'); + $documentTemplate = setting($this->getDocumentSettingKey($type, 'template'), 'default'); return $documentTemplate; } @@ -975,7 +975,7 @@ abstract class Show extends Component } // checking setting color - $key = $this->getSettingKey($type, 'color'); + $key = $this->getDocumentSettingKey($type, 'color'); if (! empty(setting($key))) { $backgroundColor = setting($key); @@ -1000,7 +1000,7 @@ abstract class Show extends Component return $textDocumentTitle; } - $key = $this->getSettingKey($type, 'title'); + $key = $this->getDocumentSettingKey($type, 'title'); if (! empty(setting($key))) { return setting($key); @@ -1021,7 +1021,7 @@ abstract class Show extends Component return $textDocumentSubheading; } - $key = $this->getSettingKey($type, 'subheading'); + $key = $this->getDocumentSettingKey($type, 'subheading'); if (!empty(setting($key))) { return setting($key); @@ -1151,8 +1151,8 @@ abstract class Show extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'item_name'), 'items') == 'custom') { - if (empty($textItems = setting($this->getSettingKey($type, 'item_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'item_name'), 'items') == 'custom') { + if (empty($textItems = setting($this->getDocumentSettingKey($type, 'item_name_input')))) { $textItems = 'general.items'; } @@ -1175,8 +1175,8 @@ abstract class Show extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'quantity_name'), 'quantity') === 'custom') { - if (empty($textQuantity = setting($this->getSettingKey($type, 'quantity_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'quantity_name'), 'quantity') === 'custom') { + if (empty($textQuantity = setting($this->getDocumentSettingKey($type, 'quantity_name_input')))) { $textQuantity = 'invoices.quantity'; } @@ -1199,8 +1199,8 @@ abstract class Show extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'price_name'), 'price') === 'custom') { - if (empty($textPrice = setting($this->getSettingKey($type, 'price_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'price_name'), 'price') === 'custom') { + if (empty($textPrice = setting($this->getDocumentSettingKey($type, 'price_name_input')))) { $textPrice = 'invoices.price'; } @@ -1255,7 +1255,7 @@ abstract class Show extends Component } // if you use settting translation - if ($hideName = setting($this->getSettingKey($type, 'item_name'), false) && $hideName == 'hide') { + if ($hideName = setting($this->getDocumentSettingKey($type, 'item_name'), false) && $hideName == 'hide') { return $hideName; } @@ -1276,7 +1276,7 @@ abstract class Show extends Component } // if you use settting translation - if ($hideDescription = setting($this->getSettingKey($type, 'hide_item_description'), false)) { + if ($hideDescription = setting($this->getDocumentSettingKey($type, 'hide_item_description'), false)) { return $hideDescription; } @@ -1297,7 +1297,7 @@ abstract class Show extends Component } // if you use settting translation - if ($hideQuantity = setting($this->getSettingKey($type, 'hide_quantity'), false) && $hideQuantity == 'hide') { + if ($hideQuantity = setting($this->getDocumentSettingKey($type, 'hide_quantity'), false) && $hideQuantity == 'hide') { return $hideQuantity; } @@ -1318,7 +1318,7 @@ abstract class Show extends Component } // if you use settting translation - if ($hidePrice = setting($this->getSettingKey($type, 'hide_price'), false) && $hidePrice == 'hide') { + if ($hidePrice = setting($this->getDocumentSettingKey($type, 'hide_price'), false) && $hidePrice == 'hide') { return $hidePrice; } @@ -1339,7 +1339,7 @@ abstract class Show extends Component } // if you use settting translation - if ($hideDiscount = setting($this->getSettingKey($type, 'hide_discount'), false)) { + if ($hideDiscount = setting($this->getDocumentSettingKey($type, 'hide_discount'), false)) { return $hideDiscount; } @@ -1360,7 +1360,7 @@ abstract class Show extends Component } // if you use settting translation - if ($hideAmount = setting($this->getSettingKey($type, 'hide_amount'), false)) { + if ($hideAmount = setting($this->getDocumentSettingKey($type, 'hide_amount'), false)) { return $hideAmount; } diff --git a/app/Abstracts/View/Components/Documents/Template.php b/app/Abstracts/View/Components/Documents/Template.php index 76df94424..6f200f21d 100644 --- a/app/Abstracts/View/Components/Documents/Template.php +++ b/app/Abstracts/View/Components/Documents/Template.php @@ -209,7 +209,7 @@ abstract class Template extends Component return $template; } - $documentTemplate = setting($this->getSettingKey($type, 'template'), 'default'); + $documentTemplate = setting($this->getDocumentSettingKey($type, 'template'), 'default'); return $documentTemplate; } @@ -275,7 +275,7 @@ abstract class Template extends Component } // checking setting color - $key = $this->getSettingKey($type, 'color'); + $key = $this->getDocumentSettingKey($type, 'color'); if (! empty(setting($key))) { $backgroundColor = setting($key); @@ -300,7 +300,7 @@ abstract class Template extends Component return $textDocumentTitle; } - $key = $this->getSettingKey($type, 'title'); + $key = $this->getDocumentSettingKey($type, 'title'); if (! empty(setting($key))) { return setting($key); @@ -321,7 +321,7 @@ abstract class Template extends Component return $textDocumentSubheading; } - $key = $this->getSettingKey($type, 'subheading'); + $key = $this->getDocumentSettingKey($type, 'subheading'); if (! empty(setting($key))) { return setting($key); @@ -451,18 +451,18 @@ abstract class Template extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'item_name'), 'items') === 'custom') { - if (empty($textItems = setting($this->getSettingKey($type, 'item_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'item_name'), 'items') === 'custom') { + if (empty($textItems = setting($this->getDocumentSettingKey($type, 'item_name_input')))) { $textItems = 'general.items'; } return $textItems; } - if (setting($this->getSettingKey($type, 'item_name')) !== null - && (trans(setting($this->getSettingKey($type, 'item_name'))) != setting($this->getSettingKey($type, 'item_name'))) + if (setting($this->getDocumentSettingKey($type, 'item_name')) !== null + && (trans(setting($this->getDocumentSettingKey($type, 'item_name'))) != setting($this->getDocumentSettingKey($type, 'item_name'))) ) { - return setting($this->getSettingKey($type, 'item_name')); + return setting($this->getDocumentSettingKey($type, 'item_name')); } $translation = $this->getTextFromConfig($type, 'items'); @@ -481,18 +481,18 @@ abstract class Template extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'quantity_name'), 'quantity') === 'custom') { - if (empty($textQuantity = setting($this->getSettingKey($type, 'quantity_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'quantity_name'), 'quantity') === 'custom') { + if (empty($textQuantity = setting($this->getDocumentSettingKey($type, 'quantity_name_input')))) { $textQuantity = 'invoices.quantity'; } return $textQuantity; } - if (setting($this->getSettingKey($type, 'quantity_name')) !== null - && (trans(setting($this->getSettingKey($type, 'quantity_name'))) != setting($this->getSettingKey($type, 'quantity_name'))) + if (setting($this->getDocumentSettingKey($type, 'quantity_name')) !== null + && (trans(setting($this->getDocumentSettingKey($type, 'quantity_name'))) != setting($this->getDocumentSettingKey($type, 'quantity_name'))) ) { - return setting($this->getSettingKey($type, 'quantity_name')); + return setting($this->getDocumentSettingKey($type, 'quantity_name')); } $translation = $this->getTextFromConfig($type, 'quantity'); @@ -511,18 +511,18 @@ abstract class Template extends Component } // if you use settting translation - if (setting($this->getSettingKey($type, 'price_name'), 'price') === 'custom') { - if (empty($textPrice = setting($this->getSettingKey($type, 'price_name_input')))) { + if (setting($this->getDocumentSettingKey($type, 'price_name'), 'price') === 'custom') { + if (empty($textPrice = setting($this->getDocumentSettingKey($type, 'price_name_input')))) { $textPrice = 'invoices.price'; } return $textPrice; } - if (setting($this->getSettingKey($type, 'price_name')) !== null - && (trans(setting($this->getSettingKey($type, 'price_name'))) != setting($this->getSettingKey($type, 'price_name'))) + if (setting($this->getDocumentSettingKey($type, 'price_name')) !== null + && (trans(setting($this->getDocumentSettingKey($type, 'price_name'))) != setting($this->getDocumentSettingKey($type, 'price_name'))) ) { - return setting($this->getSettingKey($type, 'price_name')); + return setting($this->getDocumentSettingKey($type, 'price_name')); } $translation = $this->getTextFromConfig($type, 'price'); @@ -590,7 +590,7 @@ abstract class Template extends Component } // if you use settting translation - if ($hideName = setting($this->getSettingKey($type, 'item_name'), false) && $hideName == 'hide') { + if ($hideName = setting($this->getDocumentSettingKey($type, 'item_name'), false) && $hideName == 'hide') { return $hideName; } @@ -611,7 +611,7 @@ abstract class Template extends Component } // if you use settting translation - if ($hideDescription = setting($this->getSettingKey($type, 'hide_item_description'), false)) { + if ($hideDescription = setting($this->getDocumentSettingKey($type, 'hide_item_description'), false)) { return $hideDescription; } @@ -632,7 +632,7 @@ abstract class Template extends Component } // if you use settting translation - if ($hideQuantity = setting($this->getSettingKey($type, 'hide_quantity'), false) && $hideQuantity == 'hide') { + if ($hideQuantity = setting($this->getDocumentSettingKey($type, 'hide_quantity'), false) && $hideQuantity == 'hide') { return $hideQuantity; } @@ -653,7 +653,7 @@ abstract class Template extends Component } // if you use settting translation - if ($hidePrice = setting($this->getSettingKey($type, 'hide_price'), false) && $hidePrice == 'hide') { + if ($hidePrice = setting($this->getDocumentSettingKey($type, 'hide_price'), false) && $hidePrice == 'hide') { return $hidePrice; } @@ -674,7 +674,7 @@ abstract class Template extends Component } // if you use settting translation - if ($hideDiscount = setting($this->getSettingKey($type, 'hide_discount'), false)) { + if ($hideDiscount = setting($this->getDocumentSettingKey($type, 'hide_discount'), false)) { return $hideDiscount; } @@ -695,7 +695,7 @@ abstract class Template extends Component } // if you use settting translation - if ($hideAmount = setting($this->getSettingKey($type, 'hide_amount'), false)) { + if ($hideAmount = setting($this->getDocumentSettingKey($type, 'hide_amount'), false)) { return $hideAmount; } diff --git a/app/Abstracts/View/Components/Transactions/Show.php b/app/Abstracts/View/Components/Transactions/Show.php index 509d6a839..143d00940 100644 --- a/app/Abstracts/View/Components/Transactions/Show.php +++ b/app/Abstracts/View/Components/Transactions/Show.php @@ -482,7 +482,7 @@ abstract class Show extends Component return $template; } - $transactionTemplate = setting($this->getSettingKey($type, 'template')) ?: 'default'; + $transactionTemplate = setting($this->getTransactionSettingKey($type, 'template')) ?: 'default'; return $transactionTemplate; } diff --git a/app/Http/Controllers/Modals/DocumentItemColumns.php b/app/Http/Controllers/Modals/DocumentItemColumns.php index be2c3b35b..941434b3c 100644 --- a/app/Http/Controllers/Modals/DocumentItemColumns.php +++ b/app/Http/Controllers/Modals/DocumentItemColumns.php @@ -60,17 +60,17 @@ class DocumentItemColumns extends Controller '90' => trans('settings.invoice.due_days', ['days' => 90]), ]; - $item_name = setting($this->getSettingKey($type, 'item_name')); - $item_name_input = setting($this->getSettingKey($type, 'item_name_input')); - $price_name = setting($this->getSettingKey($type, 'price_name')); - $price_name_input = setting($this->getSettingKey($type, 'price_name_input')); - $quantity_name = setting($this->getSettingKey($type, 'quantity_name')); - $quantity_name_input = setting($this->getSettingKey($type, 'quantity_name_input')); - $hide_item_name = setting($this->getSettingKey($type, 'hide_item_name')); - $hide_item_description = setting($this->getSettingKey($type, 'hide_item_description')); - $hide_quantity = setting($this->getSettingKey($type, 'hide_quantity')); - $hide_price = setting($this->getSettingKey($type, 'hide_price')); - $hide_amount = setting($this->getSettingKey($type, 'hide_amount')); + $item_name = setting($this->getDocumentSettingKey($type, 'item_name')); + $item_name_input = setting($this->getDocumentSettingKey($type, 'item_name_input')); + $price_name = setting($this->getDocumentSettingKey($type, 'price_name')); + $price_name_input = setting($this->getDocumentSettingKey($type, 'price_name_input')); + $quantity_name = setting($this->getDocumentSettingKey($type, 'quantity_name')); + $quantity_name_input = setting($this->getDocumentSettingKey($type, 'quantity_name_input')); + $hide_item_name = setting($this->getDocumentSettingKey($type, 'hide_item_name')); + $hide_item_description = setting($this->getDocumentSettingKey($type, 'hide_item_description')); + $hide_quantity = setting($this->getDocumentSettingKey($type, 'hide_quantity')); + $hide_price = setting($this->getDocumentSettingKey($type, 'hide_price')); + $hide_amount = setting($this->getDocumentSettingKey($type, 'hide_amount')); $html = view('modals.documents.item_columns', compact( 'type', @@ -117,7 +117,7 @@ class DocumentItemColumns extends Controller } foreach ($fields as $key => $value) { - $real_key = $this->getSettingKey($type, $key); + $real_key = $this->getDocumentSettingKey($type, $key); // Don't process unwanted keys if (in_array($key, $this->skip_keys)) { diff --git a/app/Listeners/Document/SettingFieldCreated.php b/app/Listeners/Document/SettingFieldCreated.php index a5f0c9aeb..7b26bb791 100644 --- a/app/Listeners/Document/SettingFieldCreated.php +++ b/app/Listeners/Document/SettingFieldCreated.php @@ -47,7 +47,7 @@ class SettingFieldCreated continue; } - $real_key = $this->getSettingKey($type, $key); + $real_key = $this->getDocumentSettingKey($type, $key); setting()->set($real_key, $value); } @@ -71,7 +71,7 @@ class SettingFieldCreated continue; } - $real_key = setting($this->getSettingKey($type, $key)); + $real_key = setting($this->getDocumentSettingKey($type, $key)); setting()->set($real_key, $value); } diff --git a/app/Traits/Documents.php b/app/Traits/Documents.php index 8192592f4..a8a6a17ac 100644 --- a/app/Traits/Documents.php +++ b/app/Traits/Documents.php @@ -29,6 +29,21 @@ trait Documents return ! $this->isRecurring(); } + public function getRecurringDocumentTypes() : array + { + $types = array_keys(config('type.document')); + + $recurring_types = []; + + foreach ($types as $type) { + if (Str::endsWith($type, '-recurring')) { + $recurring_types[] = $type; + } + } + + return $recurring_types; + } + public function getNextDocumentNumber(string $type): string { if ($alias = config('type.document.' . $type . '.alias')) { @@ -138,7 +153,13 @@ trait Documents return 'documents.statuses.'; } + // This function will be remoed in the future protected function getSettingKey($type, $setting_key) + { + return $this->getDocumentSettingKey($type, $setting_key); + } + + protected function getDocumentSettingKey($type, $setting_key) { $key = ''; $alias = config('type.document.' . $type . '.alias'); diff --git a/app/Traits/Transactions.php b/app/Traits/Transactions.php index d0954f8c5..4caf83921 100644 --- a/app/Traits/Transactions.php +++ b/app/Traits/Transactions.php @@ -132,7 +132,7 @@ trait Transactions return Str::slug($transaction->id, $separator, language()->getShortCode()); } - protected function getSettingKey(string $type, string $setting_key): string + protected function getTransactionSettingKey(string $type, string $setting_key): string { $key = ''; $alias = config('type.transaction.' . $type . '.alias');