Completed
Push — dev5 ( 1ecb99...000e6d )
by Ron
09:05
created

CustomerDetailsController::store()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 30
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 21
nc 1
nop 1
dl 0
loc 30
rs 9.584
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 Illuminate\Support\Facades\Log;
9
use Illuminate\Support\Facades\Auth;
10
use App\Http\Controllers\Controller;
11
12
class CustomerDetailsController extends Controller
13
{
14
    public function __construct()
15
    {
16
        $this->middleware('auth');
17
    }
18
    
19
    /**
20
     * Display a listing of the resource.
21
     *
22
     * @return \Illuminate\Http\Response
23
     */
24
    public function index()
25
    {
26
        //
27
    }
28
29
    //  New Customer Form
30
    public function create()
31
    {
32
        return view('customer.newCustomer');
33
    }
34
35
    //  Submit the new customer form
36
    public function store(Request $request)
37
    {
38
        $request->validate([
39
            'custID'   => 'required|numeric|unique:customers,cust_id',
40
            'custName' => 'required', // |unique:customers,name',
41
            'custDBA'  => 'nullable',
42
            'custAddr' => 'required',
43
            'custCity' => 'required',
44
            'custZip'  => 'required|numeric'
45
        ]);
46
        
47
        //  Remove any forward slash (/) from the Customer name field
48
        $request->merge(['custName' => str_replace('/', '-', $request->custName)]);
49
        
50
        Customers::create([
51
            'cust_id'  => $request->custID,
52
            'name'     => $request->custName,
53
            'dba_name' => $request->custDBA,
54
            'address'  => $request->custAddr,
55
            'city'     => $request->custCity,
56
            'state'    => $request->selectedState,
57
            'zip'      => $request->custZip,
58
            'active'   => 1
59
        ]);
60
        
61
        Log::info('New Customer ID-'.$request->custID.' created by User ID-'.Auth::user()->user_id);
62
        
63
        return response()->json([
64
            'success' => true, 
65
            'url' => route('customer.details', [$request->custID, urlencode($request->custName)])]);
66
    }
67
    
68
    //  Show the customer details
69
    public function details($id, $name)
70
    {
71
        $custDetails = Customers::find($id);
72
        poop
73
        if(empty($custDetails))
0 ignored issues
show
Bug introduced by
A parse error occurred: Syntax error, unexpected T_IF on line 73 at column 8
Loading history...
74
        {
75
            return view('err.customerNotFound');
76
        }
77
        
78
        $custFav = CustomerFavs::where('user_id', Auth::user()->user_id)->where('cust_id', $custDetails->cust_id)->first();
79
        
80
        Log::debug($custFav);
81
        
82
        return view('customer.details', [
83
            'details' => $custDetails,
84
            'isFav'   => empty($custFav) ? false : true
85
        ]);
86
    }
87
88
    //  Get the basic details of the customer
89
    public function show($id)
90
    {
91
        $details = Customers::find($id);
92
        
93
        if(empty($details))
94
        {
95
            return response()->json(['error' => 'Customer Not Found']);
96
        }
97
        
98
        return response()->json($details);
99
    }
100
101
    /**
102
     * Show the form for editing the specified resource.
103
     *
104
     * @param  int  $id
105
     * @return \Illuminate\Http\Response
106
     */
107
    public function edit($id)
108
    {
109
        //
110
    }
111
112
    //  Update the customer details
113
    public function update(Request $request, $id)
114
    {
115
        $request->validate([
116
            'name'     => 'required',
117
            'dba_name' => 'nullable',
118
            'address'  => 'required',
119
            'city'     => 'required',
120
            'state'    => 'required',
121
            'zip'      => 'required|numeric'
122
        ]);
123
        
124
        Customers::find($id)->update([
125
            'name'     => $request->name,
126
            'dba_name' => $request->dba_name,
127
            'address'  => $request->address,
128
            'city'     => $request->city,
129
            'state'    => $request->state,
130
            'zip'      => $request->zip
131
        ]);
132
        
133
        return response()->json([
134
            'success' => true
135
        ]);
136
    }
137
138
    /**
139
     * Remove the specified resource from storage.
140
     *
141
     * @param  int  $id
142
     * @return \Illuminate\Http\Response
143
     */
144
    public function destroy($id)
145
    {
146
        //
147
    }
148
}
149