public function postIndex(Request $request, $txid, $mode) { if ($mode == 'Delete') { // use DB facade to delete the row matching $pid $salestransactions = \App\Sales_transaction::where('id', '=', $txid)->get(); $salestransaction = $salestransactions->first(); \App\Sales_transaction::destroy($txid); $request->session()->flash('message', 'Sales Transaction for ' . $salestransaction->salesperson->last_name . ', ' . $salestransaction->salesperson->first_name . ' on ' . $request->input('transactionDate') . ' Deleted'); } else { // create a model and set the values, then session_save_path $this->validate($request, ['transactionDate' => 'required|date|before:tomorrow', 'product' => 'required', 'salesperson' => 'required', 'discount' => 'required|numeric|min:0', 'quantity' => 'required|numeric|min:1']); if ($mode == 'Edit') { // get the model from the db $salestransactions = \App\Sales_transaction::where('id', '=', $txid)->get(); $salestransaction = $salestransactions->first(); } else { // instantiate a new model $salestransaction = new \App\Sales_transaction(); } // now set the model attributes $salestransaction->transaction_date = $request->input('transactionDate'); $salestransaction->product_id = $request->input('product'); $salestransaction->salesperson_id = $request->input('salesperson'); $salestransaction->quantity = $request->input('quantity'); $salestransaction->discount = $request->input('discount'); $salestransaction->comments = $request->input('comments'); if ($mode == 'Edit') { $salestransaction->id = $txid; } $salestransaction->save(); $request->session()->flash('message', 'Sales Transaction for ' . $salestransaction->salesperson->last_name . ', ' . $salestransaction->salesperson->first_name . ' on ' . $request->input('transactionDate') . ' Updated / Added'); } $txcol = $request->session()->get('txcol'); $txord = $request->session()->get('txord'); $txord = $txord == 'A' ? 'D' : 'A'; $request->session()->put('txord', $txord); // need to refresh the products collection after changes $salestransactions = \App\Sales_transaction::orderBy('transaction_date', 'desc')->take(100)->get(); $request->session()->flash('show100', 'Showing last 100 transaction by default - use the filter option to see more transactions.'); // now put the collection in the session variable $request->session()->put('salestransactions', $salestransactions); // now direct to the sort route to retain the sort the user had before editing return redirect('salestransactions/sort/' . $txcol); }
public function postIndex(Request $request) { // first retrieve the transaction based on date - if no dates, get most recent 100 transactions $this->validate($request, ['fromDate' => 'date|before:tomorrow', 'thruDate' => 'date|after:fromDate']); $fromDate = $request->input('fromDate'); $thruDate = $request->input('thruDate'); if ((is_null($fromDate) || $fromDate == '') && (is_null($thruDate) || $thruDate == '')) { // no dates, so get last 100 transactions $salestransactions = \App\Sales_transaction::orderBy('transaction_date', 'desc')->take(100)->get(); $request->session()->flash('show100', 'Showing last 100 transaction by default - use the filter option to see more transactions.'); } elseif (is_null($fromDate) || $fromDate == '') { // get tx's before thru date $salestransactions = \App\Sales_transaction::where('transaction_date', '<=', $thruDate)->orderBy('transaction_date', 'desc')->get(); } elseif (is_null($thruDate) || $thruDate == '') { // get tx's before thru date $salestransactions = \App\Sales_transaction::where('transaction_date', '>=', $fromDate)->orderBy('transaction_date', 'desc')->get(); } else { // get tx's between both dates $salestransactions = \App\Sales_transaction::whereBetween('transaction_date', [$fromDate, $thruDate])->orderBy('transaction_date', 'desc')->get(); } // now filter the collection as needed based on user input // first filter by category $cat = $request->input('cat'); if (isset($cat) && $cat > 0) { $filtered = $salestransactions->filter(function ($item) use($cat) { return $item->product->category->id == $cat; }); $salestransactions = $filtered; } // now filter by product $product = $request->input('product'); if (isset($product) && $product > 0) { $filtered = $salestransactions->filter(function ($item) use($product) { return $item->product->id == $product; }); $salestransactions = $filtered; } // now filter by salesperson $salesperson = $request->input('salesperson'); if (isset($salesperson) && $salesperson > 0) { $filtered = $salestransactions->filter(function ($item) use($salesperson) { return $item->salesperson->id == $salesperson; }); $salestransactions = $filtered; } // now return the view with the filtered list $request->session()->put('salestransactions', $salestransactions); $pcol = $request->session()->get('pcol'); return view('salestransactions', ['sortOrder' => $pcol], ['salestransactions' => $salestransactions]); }
?> </div> <br> <label>Active:</label> <input type="radio" name="active" id="Yes" value="1" {{ $active == '1' ? 'checked' : ''}} {{ $mode == 'Delete' ? 'disabled':''}}> Yes <input type="radio" name="active" id="No" value="0" {{ $active == '0' ? 'checked' : ''}} {{ $mode == 'Delete' ? 'disabled':''}}> No <?php $errorDisplay->showError($errors, 'active'); ?> <br><br><label for="submit"> </label> <a class="formbutton" title="Back" alt="Back" href="{{URL::to('/products')}}">Cancel</a> <?php $stx = \App\Sales_transaction::where('product_id', '=', $pid)->get(); $count = $stx->count(); ?> @if ($mode == 'Delete') @if ($count < '1') <button type="submit" id="submit" class="btn btn-primary">DELETE (permanent!)</button> @else <span class="msg">Cannot delete a product that has been used in a sales transaction!</span> @endif @else <button type="submit" id="submit" class="btn btn-primary">Save</button> @endif </div>
<input type="date" id="hireDate" name="hireDate" placeholder="Hire date" value="{{ $hireDate }}" {{ $mode == 'Delete' ? 'readonly':''}}> <label class="secondary">Termination Date:</label>  <input type="date" id="terminationDate" name="terminationDate" placeholder="Term date" value="{{ $terminationDate }}" {{ $mode == 'Delete' ? 'readonly':''}}> <?php $errorDisplay->showError($errors, 'hireDate'); ?> <?php $errorDisplay->showError($errors, 'terminationDate'); ?> </div> <br><br><label for="submit"> </label> <a class="formbutton" title="Back" alt="Back" href="{{URL::to('/salespeople')}}">Cancel</a> <?php $stx = \App\Sales_transaction::where('salesperson_id', '=', $sid)->get(); $count = $stx->count(); ?> @if ($mode == 'Delete') @if ($count < '1') <button type="submit" id="submit" class="btn btn-primary">DELETE (permanent!)</button> @else <span class="msg">Cannot delete a salesperson that has been used in a sales transaction!</span> @endif @else <button type="submit" id="submit" class="btn btn-primary">Save</button> @endif </div>