diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 3004e2efa75e..4d460b7b12e7 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -51,6 +51,7 @@ class Expense extends EntityModel 'payment_type_id', 'transaction_reference', 'invoice_documents', + 'should_be_invoiced', ]; public static function getImportColumns() diff --git a/app/Models/RecurringExpense.php b/app/Models/RecurringExpense.php index 2068bedb2f7b..5c150a039590 100644 --- a/app/Models/RecurringExpense.php +++ b/app/Models/RecurringExpense.php @@ -43,6 +43,10 @@ class RecurringExpense extends EntityModel 'tax_name1', 'tax_rate2', 'tax_name2', + 'should_be_invoiced', + 'start_date', + 'end_date', + 'frequency_id', ]; /** diff --git a/app/Ninja/Datatables/RecurringExpenseDatatable.php b/app/Ninja/Datatables/RecurringExpenseDatatable.php index 497fbc0396c8..4ecafef47459 100644 --- a/app/Ninja/Datatables/RecurringExpenseDatatable.php +++ b/app/Ninja/Datatables/RecurringExpenseDatatable.php @@ -91,6 +91,15 @@ class RecurringExpenseDatatable extends EntityDatatable return $model->public_notes != null ? substr($model->public_notes, 0, 100) : ''; }, ], + [ + 'frequency', + function ($model) { + $frequency = strtolower($model->frequency); + $frequency = preg_replace('/\s/', '_', $frequency); + + return link_to("recurring_expenses/{$model->public_id}/edit", trans('texts.freq_'.$frequency))->toHtml(); + }, + ], ]; } diff --git a/app/Ninja/Repositories/ExpenseRepository.php b/app/Ninja/Repositories/ExpenseRepository.php index ba539eb254a7..867c0af93635 100644 --- a/app/Ninja/Repositories/ExpenseRepository.php +++ b/app/Ninja/Repositories/ExpenseRepository.php @@ -176,8 +176,6 @@ class ExpenseRepository extends BaseRepository $expense->payment_date = Utils::toSqlDate($input['payment_date']); } - $expense->should_be_invoiced = isset($input['should_be_invoiced']) && floatval($input['should_be_invoiced']) || $expense->client_id ? true : false; - if (! $expense->expense_currency_id) { $expense->expense_currency_id = \Auth::user()->account->getCurrencyId(); } @@ -195,7 +193,7 @@ class ExpenseRepository extends BaseRepository // Documents $document_ids = ! empty($input['document_ids']) ? array_map('intval', $input['document_ids']) : []; - ; + foreach ($document_ids as $document_id) { // check document completed upload before user submitted form if ($document_id) { diff --git a/app/Ninja/Repositories/RecurringExpenseRepository.php b/app/Ninja/Repositories/RecurringExpenseRepository.php index 4fd5faf2e5c9..5b299f9eed98 100644 --- a/app/Ninja/Repositories/RecurringExpenseRepository.php +++ b/app/Ninja/Repositories/RecurringExpenseRepository.php @@ -33,6 +33,7 @@ class RecurringExpenseRepository extends BaseRepository ->leftjoin('clients', 'clients.id', '=', 'recurring_expenses.client_id') ->leftJoin('contacts', 'contacts.client_id', '=', 'clients.id') ->leftjoin('vendors', 'vendors.id', '=', 'recurring_expenses.vendor_id') + ->join('frequencies', 'frequencies.id', '=', 'recurring_expenses.frequency_id') ->leftJoin('expense_categories', 'recurring_expenses.expense_category_id', '=', 'expense_categories.id') ->where('recurring_expenses.account_id', '=', $accountid) ->where('contacts.deleted_at', '=', null) @@ -58,6 +59,7 @@ class RecurringExpenseRepository extends BaseRepository 'recurring_expenses.user_id', 'recurring_expenses.tax_rate1', 'recurring_expenses.tax_rate2', + 'frequencies.name as frequency', 'expense_categories.name as category', 'expense_categories.user_id as category_user_id', 'expense_categories.public_id as category_public_id', @@ -110,23 +112,21 @@ class RecurringExpenseRepository extends BaseRepository // First auto fill $expense->fill($input); - /* - if (isset($input['expense_date'])) { - $expense->expense_date = Utils::toSqlDate($input['expense_date']); + if (isset($input['start_date'])) { + $expense->start_date = Utils::toSqlDate($input['start_date']); } - if (isset($input['payment_date'])) { - $expense->payment_date = Utils::toSqlDate($input['payment_date']); + if (isset($input['end_date'])) { + $expense->end_date = Utils::toSqlDate($input['end_date']); } - $expense->should_be_invoiced = isset($input['should_be_invoiced']) && floatval($input['should_be_invoiced']) || $expense->client_id ? true : false; - if (! $expense->expense_currency_id) { $expense->expense_currency_id = \Auth::user()->account->getCurrencyId(); } + + /* if (! $expense->invoice_currency_id) { $expense->invoice_currency_id = \Auth::user()->account->getCurrencyId(); } - $rate = isset($input['exchange_rate']) ? Utils::parseFloat($input['exchange_rate']) : 1; $expense->exchange_rate = round($rate, 4); if (isset($input['amount'])) { diff --git a/resources/views/expenses/edit.blade.php b/resources/views/expenses/edit.blade.php index 309308ec59bc..4cfc4cdd7a9e 100644 --- a/resources/views/expenses/edit.blade.php +++ b/resources/views/expenses/edit.blade.php @@ -58,11 +58,13 @@ ->data_placeholder(Utils::getFromCache($account->getCurrencyId(), 'currencies')->name) ->fromQuery($currencies, 'name', 'id') !!} - {!! Former::text('expense_date') - ->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT, DEFAULT_DATE_PICKER_FORMAT)) - ->addGroupClass('expense_date') - ->label(trans('texts.date')) - ->append('') !!} + @if (! $isRecurring) + {!! Former::text('expense_date') + ->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT, DEFAULT_DATE_PICKER_FORMAT)) + ->addGroupClass('expense_date') + ->label(trans('texts.date')) + ->append('') !!} + @endif @if ($expense && $expense->invoice_id) {!! Former::plaintext() @@ -191,8 +193,8 @@