Edit / PDF / Mail / ->Leads
This commit is contained in:
parent
5d55e5be3f
commit
66ca252bfa
43 changed files with 2915 additions and 76 deletions
|
|
@ -2,20 +2,27 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Lead;
|
||||
use App\Repositories\LeadRepository;
|
||||
use Carbon;
|
||||
use Request;
|
||||
use App\Models\Lead;
|
||||
use App\Models\LeadFile;
|
||||
use App\Models\LeadNotice;
|
||||
use App\Repositories\LeadRepository;
|
||||
use App\Repositories\CustomerRepository;
|
||||
use App\Repositories\LeadFileRepository;
|
||||
|
||||
class LeadController extends Controller
|
||||
{
|
||||
|
||||
protected $leadRepo;
|
||||
protected $custRepo;
|
||||
|
||||
public function __construct(LeadRepository $leadRepo)
|
||||
public function __construct(LeadRepository $leadRepo, CustomerRepository $custRepo)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
$this->leadRepo = $leadRepo;
|
||||
$this->custRepo = $custRepo;
|
||||
|
||||
}
|
||||
|
||||
public function index($step = false)
|
||||
|
|
@ -46,18 +53,92 @@ class LeadController extends Controller
|
|||
|
||||
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();
|
||||
/* $data = Request::all();
|
||||
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect(route('lead_detail', [$lead->id]));*/
|
||||
|
||||
}
|
||||
|
||||
public function delete($id){
|
||||
/*
|
||||
\Session()->flash('alert-success', __('Eintrag gelöscht'));
|
||||
return redirect(route('lead_detail', [$lead->id]));*/
|
||||
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()
|
||||
|
|
@ -77,8 +158,14 @@ class LeadController extends Controller
|
|||
->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.'%');
|
||||
|
|
@ -89,7 +176,7 @@ class LeadController extends Controller
|
|||
$query->where('customer_id', 'LIKE', '%'.$keyword.'%');
|
||||
}
|
||||
})
|
||||
->rawColumns(['action_edit', 'customer_id', 'sf_guard_user_id', 'id'])
|
||||
->rawColumns(['action_edit', 'customer_id', 'sf_guard_user_id', 'id', 'status'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue