Completed
Push — dev5 ( 8afe4d...7a94ca )
by Ron
09:32
created

CustomerDetailsController::index()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 0
nc 1
nop 0
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace App\Http\Controllers\Customers;
4
5
use App\Customers;
6
use App\CustomerFavs;
7
use Illuminate\Http\Request;
8
use App\Http\Traits\SystemsTrait;
9
use Illuminate\Support\Facades\Log;
10
use Illuminate\Support\Facades\Auth;
11
use App\Http\Controllers\Controller;
12
13
class CustomerDetailsController extends Controller
14
{
15
    use SystemsTrait;
1 ignored issue
show
introduced by
The trait App\Http\Traits\SystemsTrait requires some properties which are not provided by App\Http\Controllers\Cus...stomerDetailsController: $cat_name, $sys_id, $name
Loading history...
16
    
17
    public function __construct()
18
    {
19
        $this->middleware('auth');
20
    }
21
22
    //  New Customer Form
23
    public function create()
24
    {
25
        return view('customer.newCustomer');
26
    }
27
28
    //  Submit the new customer form
29
    public function store(Request $request)
30
    {
31
        $request->validate([
32
            'custID'   => 'required|numeric|unique:customers,cust_id',
33
            'custName' => 'required', // |unique:customers,name',
34
            'custDBA'  => 'nullable',
35
            'custAddr' => 'required',
36
            'custCity' => 'required',
37
            'custZip'  => 'required|numeric'
38
        ]);
39
        
40
        //  Remove any forward slash (/) from the Customer name field
41
        $request->merge(['custName' => str_replace('/', '-', $request->custName)]);
42
        
43
        Customers::create([
44
            'cust_id'  => $request->custID,
45
            'name'     => $request->custName,
46
            'dba_name' => $request->custDBA,
47
            'address'  => $request->custAddr,
48
            'city'     => $request->custCity,
49
            'state'    => $request->selectedState,
50
            'zip'      => $request->custZip,
51
            'active'   => 1
52
        ]);
53
        
54
        Log::info('New Customer ID-'.$request->custID.' created by User ID-'.Auth::user()->user_id);
55
        
56
        return response()->json([
57
            'success' => true, 
58
            'url' => route('customer.details', [$request->custID, urlencode($request->custName)])]);
59
    }
60
    
61
    //  Show the customer details
62
    public function details($id, $name)
63
    {
64
        $custDetails = Customers::find($id);
65
        $allSystems  = $this->getAllSystems();
66
        
67
        if(empty($custDetails))
68
        {
69
            return view('err.customerNotFound');
70
        }
71
        
72
        $custFav = CustomerFavs::where('user_id', Auth::user()->user_id)->where('cust_id', $custDetails->cust_id)->first();
73
                
74
        return view('customer.details', [
75
            'details' => $custDetails,
76
            'isFav'   => empty($custFav) ? false : true,
77
            'sysList' => $allSystems
78
        ]);
79
    }
80
81
    //  Get the basic details of the customer
82
    public function show($id)
83
    {
84
        $details = Customers::find($id);
85
        
86
        if(empty($details))
87
        {
88
            return response()->json(['error' => 'Customer Not Found']);
89
        }
90
        
91
        return response()->json($details);
92
    }
93
94
    //  Update the customer details
95
    public function update(Request $request, $id)
96
    {
97
        $request->validate([
98
            'name'     => 'required',
99
            'dba_name' => 'nullable',
100
            'address'  => 'required',
101
            'city'     => 'required',
102
            'state'    => 'required',
103
            'zip'      => 'required|numeric'
104
        ]);
105
        
106
        Customers::find($id)->update([
107
            'name'     => $request->name,
108
            'dba_name' => $request->dba_name,
109
            'address'  => $request->address,
110
            'city'     => $request->city,
111
            'state'    => $request->state,
112
            'zip'      => $request->zip
113
        ]);
114
        
115
        return response()->json([
116
            'success' => true
117
        ]);
118
    }
119
120
    /**
121
     * Remove the specified resource from storage.
122
     *
123
     * @param  int  $id
124
     * @return \Illuminate\Http\Response
125
     */
126
    public function destroy($id)
127
    {
128
        //
129
    }
130
}
131