/** * Responds to requests to POST /books/create */ public function postIndex(Request $request) { // first retrieve the salesperson list $salespeople = \App\Salesperson::orderBy('last_name')->get(); // now filter the collection as needed based on user input //first filter on name / id if user entered a string $smatch = strtolower($request->input('salesperson')); if (isset($smatch) && $smatch != '') { $filtered = $salespeople->filter(function ($item) use($smatch) { return is_int(strpos(strtolower($item->last_name), $smatch)) || is_int(strpos(strtolower($item->employee_id), $smatch)) || is_int(strpos(strtolower($item->email), $smatch)); }); $salespeople = $filtered; } // now filter on city $smatch = strtolower($request->input('city')); if (isset($smatch) && $smatch != '') { $filtered = $salespeople->filter(function ($item) use($smatch) { return is_int(strpos(strtolower($item->city), $smatch)); }); $salespeople = $filtered; } // now filter on state $smatch = strtolower($request->input('state')); if (isset($smatch) && $smatch != '') { $filtered = $salespeople->filter(function ($item) use($smatch) { return is_int(strpos(strtolower($item->state), $smatch)); }); $salespeople = $filtered; } //now filter on active if not set to "Both" $active = $request->input('active'); if ($active == 1) { // show only active $filtered = $salespeople->filter(function ($item) { return $item->termination_date == '0000-00-00' || is_null($item->termination_date) || $item->termination_date > getdate(); }); $salespeople = $filtered; } elseif ($active == 0) { // show only active $filtered = $salespeople->filter(function ($item) { return $item->termination_date != '0000-00-00' && $item->termination_date <= getdate(); }); $salespeople = $filtered; } // now return the view with the filtered list $request->session()->put('salespeople', $salespeople); $pcol = $request->session()->get('pcol'); return view('salespeople', ['sortOrder' => $pcol], ['salespeople' => $salespeople]); }
public function postIndex(Request $request, $sid, $mode) { if ($mode == 'Delete') { // use DB facade to delete the row matching $sid \App\Salesperson::destroy($sid); $request->session()->flash('message', 'Employee ID ' . $request->input('employee_id') . ' Deleted'); } else { $this->validate($request, ['employeeID' => 'required|min:5', 'lastName' => 'required|min:2', 'firstName' => 'required|min:2', 'street1' => 'required|min:5', 'city' => 'required|min:2', 'state' => 'required|size:2', 'zipCode' => 'required', 'email' => 'email', 'hireDate' => 'required|date', 'terminationDate' => 'date']); // create a model and set the values, then session_save_path if ($mode == 'Edit') { // get the model from the db $salespeople = \App\Salesperson::where('id', '=', $sid)->get(); $salesperson = $salespeople->first(); } else { // instantiate a new model $salesperson = new \App\Salesperson(); } // now set the model attributes $salesperson->employee_id = $request->input('employeeID'); $salesperson->last_name = $request->input('lastName'); $salesperson->first_name = $request->input('firstName'); $salesperson->street1 = $request->input('street1'); $salesperson->street2 = $request->input('street2'); $salesperson->city = $request->input('city'); $salesperson->state = $request->input('state'); $salesperson->zip_code = $request->input('zipCode'); $salesperson->email = $request->input('email'); $salesperson->hire_date = $request->input('hireDate'); $salesperson->termination_date = $request->input('terminationDate'); if ($mode == 'Edit') { $salesperson->id = $sid; } $salesperson->save(); $request->session()->flash('message', 'Salesperson ID ' . $salesperson->employee_id . ' Updated / Added'); } $scol = $request->session()->get('scol'); $sord = $request->session()->get('sord'); $sord = $sord == 'A' ? 'D' : 'A'; $request->session()->put('sord', $sord); // need to refresh the salespeople collection after changes $salespeople = \App\Salesperson::orderBy('employee_id')->get(); // now put the collection in the session variable $request->session()->put('salespeople', $salespeople); // now direct to the sort route to retain the sort the user had before editing return redirect('salespeople/sort/' . $scol); }
<?php $productlist = \App\Product::orderBy('product_name')->get(); ?> {{-- loop through the product list and add to the dropdown --}} <select id="product" name="product"> <option value="0">Select a Product</option> @foreach ($productlist as $product) <option value="{{ $product->id }}">{{ $product->product_name }}</option> @endforeach </select> </div> <div class="field"> <label for='salesperson'>Salesperson:</label> {{-- first load the salesperson list --}} <?php $salespersonlist = \App\Salesperson::orderBy('last_name')->orderBy('first_name')->get(); ?> {{-- loop through the salesperson list and add to the dropdown --}} <select id="salesperson" name="salesperson"> <option value="0">Select a Salesperson</option> @foreach ($salespersonlist as $salesperson) <option value="{{ $salesperson->id }}">{{ $salesperson->last_name }}, {{ $salesperson->first_name }} ({{ $salesperson->employee_id }})</option> @endforeach </select> </div> <br><br> <label> </label> <a class="formbutton" onclick="hidefilters()" title="Back" alt="Back" href="#">Cancel</a> <button onclick="hidefilters()" type="submit" id="submit" class="btn btn-primary showfilter">Apply</button> </form>