/** * @param $search * @return \Illuminate\Http\JsonResponse */ public function getDatatable($search) { $datatable = new VendorDatatable(); $query = $this->vendorRepo->find($search); if (!Utils::hasPermission('view_all')) { $query->where('vendors.user_id', '=', Auth::user()->id); } return $this->datatableService->createDatatable($datatable, $query); }
public function importExpenses($bankId = 0, $input) { $vendorMap = $this->createVendorMap(); $countVendors = 0; $countExpenses = 0; foreach ($input as $transaction) { $vendorName = $transaction['vendor']; $key = strtolower($vendorName); $info = $transaction['info']; // find vendor otherwise create it if (isset($vendorMap[$key])) { $vendor = $vendorMap[$key]; } else { $field = $this->determineInfoField($info); $vendor = $this->vendorRepo->save([$field => $info, 'name' => $vendorName, 'transaction_name' => $transaction['vendor_orig'], 'vendor_contact' => []]); $vendorMap[$key] = $vendor; $vendorMap[$transaction['vendor_orig']] = $vendor; $countVendors++; } // create the expense record $this->expenseRepo->save(['vendor_id' => $vendor->id, 'amount' => $transaction['amount'], 'public_notes' => $transaction['memo'], 'expense_date' => $transaction['date'], 'transaction_id' => $transaction['id'], 'bank_id' => $bankId, 'should_be_invoiced' => true]); $countExpenses++; } return trans('texts.imported_expenses', ['count_vendors' => $countVendors, 'count_expenses' => $countExpenses]); }