middleware('admin'); $this->leadRepo = $leadRepo; $this->custRepo = $custRepo; } public function index($step = false) { $data = [ 'step' => $step ]; return view('lead.index', $data); } public function detail($id) { if($id === "new") { $lead = new Lead(); $id = 'new'; }else{ $lead = Lead::findOrFail($id); $id = $lead->id; } $data = [ 'lead' => $lead, 'id' => $id, ]; return view('lead.detail', $data); } public function store($id) { $data = Request::all(); if($data['action'] === 'saveCustomer'){ $customer = $this->custRepo->updateCustomerFromLead($id, $data); \Session()->flash('alert-save', '1'); return redirect(route('lead_detail', [$id]).'#collapseLeadCustomer'); } if($data['action'] === 'saveLead'){ $lead = $this->leadRepo->updateLead($id, $data); \Session()->flash('alert-save', '1'); return redirect(route('lead_detail', [$id]).'#collapseLeadDetail'); } if($data['action'] === 'saveStatus'){ $lead = $this->leadRepo->updateLeadStatus($id, $data); \Session()->flash('alert-save', '1'); return redirect(route('lead_detail', [$id]).'#collapseLeadStatus'); } if($data['action'] === 'save_notice'){ $lead = $this->leadRepo->updateNotice($id, $data); \Session()->flash('alert-save', '1'); return redirect(route('lead_detail', [$lead->id])."#collapseLeadNotice"); } if($data['action'] === 'edit_notice'){ $lead = $this->leadRepo->updateNotice($id, $data); \Session()->flash('alert-save', '1'); return redirect(route('lead_detail', [$lead->id])."#collapseLeadNotice"); } return back(); } public function loadModal(){ $data = Request::all(); $ret = ""; if(Request::ajax()) { if($data['action'] === "edit_notice") { $value = LeadNotice::findOrFail($data['id']); $ret = view("lead.edit_notice_modal", compact('data', 'value'))->render(); } } return response()->json(['response' => $data, 'html'=>$ret]); } public function delete($id, $del="lead"){ if($del === 'lead') { $lead = Lead::findOrFail($id); dump($lead); dd('TODO check delete'); //Files $leadFiles = LeadFile::where('lead_id', $lead->id)->get(); foreach ($leadFiles as $leadFile) { $fileRepo = new LeadFileRepository($leadFile); $fileRepo->_set('disk', 'lead'); $fileRepo->delete(); $leadFile->delete(); } //Mails Files CASCADE $lead->delete(); \Session()->flash('alert-success', __('Anfrage gelöscht')); } if($del === 'lead_notice'){ $leadNotice = LeadNotice::findOrFail($id); $lead = $leadNotice->lead; $leadNotice->delete(); \Session()->flash('alert-success', 'Notiz gelöscht'); return redirect(route('lead_detail', [$lead->id])); } if($del === 'lead_files'){ $leadFile = LeadFile::findOrFail($id); $lead = $leadFile->lead; $fileRepo = new LeadFileRepository($leadFile); $fileRepo->_set('disk', 'lead'); $fileRepo->delete(); $leadFile->delete(); \Session()->flash('alert-success', 'Datei gelöscht'); return redirect(route('lead_detail', [$lead->id])); } return redirect(route('leads')); } public function getLeads() { $query = Lead::with('customer')->with('sf_guard_user')->with('status')->select('lead.*'); return \DataTables::eloquent($query) ->addColumn('action_edit', function (Lead $lead) { return ''; }) ->addColumn('id', function (Lead $lead) { return ''.$lead->id.''; }) ->addColumn('customer_id', function (Lead $lead) { return ''.$lead->customer_id.''; }) ->addColumn('request_date', function (Lead $lead) { return Carbon::parse($lead->request_date)->format(\Util::formatDateDB()); }) ->addColumn('status', function (Lead $lead) { //umbuchen return $lead->getStatusBadge(); }) ->orderColumn('id', 'id $1') ->orderColumn('customer_id', 'customer_id $1') ->orderColumn('status', 'status_id $1') ->filterColumn('id', function($query, $keyword) { if($keyword != ""){ $query->where('id', 'LIKE', '%'.$keyword.'%'); } }) ->filterColumn('customer_id', function($query, $keyword) { if($keyword != ""){ $query->where('customer_id', 'LIKE', '%'.$keyword.'%'); } }) ->rawColumns(['action_edit', 'customer_id', 'sf_guard_user_id', 'id', 'status']) ->make(true); } }