/**
  * @param Request                    $request
  * @param JournalRepositoryInterface $repository
  *
  * @return \Illuminate\Http\JsonResponse
  */
 public function reorder(Request $request, JournalRepositoryInterface $repository)
 {
     $ids = $request->get('items');
     $date = new Carbon($request->get('date'));
     if (count($ids) > 0) {
         $order = 0;
         foreach ($ids as $id) {
             $journal = $repository->find(intval($id));
             if ($journal && $journal->date->format('Y-m-d') == $date->format('Y-m-d')) {
                 $journal->order = $order;
                 $order++;
                 $journal->save();
             }
         }
     }
     Preferences::mark();
     return Response::json([true]);
 }
Ejemplo n.º 2
0
 /**
  * @param MassEditJournalRequest     $request
  * @param JournalRepositoryInterface $repository
  *
  * @return mixed
  */
 public function massUpdate(MassEditJournalRequest $request, JournalRepositoryInterface $repository)
 {
     $journalIds = $request->get('journals');
     $count = 0;
     if (is_array($journalIds)) {
         foreach ($journalIds as $journalId) {
             $journal = $repository->find(intval($journalId));
             if ($journal) {
                 // get optional fields:
                 $what = strtolower(TransactionJournal::transactionTypeStr($journal));
                 $sourceAccountId = $request->get('source_account_id')[$journal->id] ?? 0;
                 $sourceAccountName = $request->get('source_account_name')[$journal->id] ?? '';
                 $destAccountId = $request->get('destination_account_id')[$journal->id] ?? 0;
                 $destAccountName = $request->get('destination_account_name')[$journal->id] ?? '';
                 $budgetId = $journal->budgets->first() ? $journal->budgets->first()->id : 0;
                 $category = $request->get('category')[$journal->id];
                 $tags = $journal->tags->pluck('tag')->toArray();
                 // build data array
                 $data = ['id' => $journal->id, 'what' => $what, 'description' => $request->get('description')[$journal->id], 'source_account_id' => intval($sourceAccountId), 'source_account_name' => $sourceAccountName, 'destination_account_id' => intval($destAccountId), 'destination_account_name' => $destAccountName, 'amount' => round($request->get('amount')[$journal->id], 4), 'user' => auth()->user()->id, 'amount_currency_id_amount' => intval($request->get('amount_currency_id_amount_' . $journal->id)), 'date' => new Carbon($request->get('date')[$journal->id]), 'interest_date' => $journal->interest_date, 'book_date' => $journal->book_date, 'process_date' => $journal->process_date, 'budget_id' => $budgetId, 'category' => $category, 'tags' => $tags];
                 // call repository update function.
                 $repository->update($journal, $data);
                 $count++;
             }
         }
     }
     Preferences::mark();
     Session::flash('success', trans('firefly.mass_edited_transactions_success', ['amount' => $count]));
     // redirect to previous URL:
     return redirect(session('transactions.mass-edit.url'));
 }