public function getWeighInEntryData() { $fishingCategories = array_filter((new CategoryTransformer())->transformCollection(Category::all()->toArray())); $fishingLocations = array_filter((new LocationTransformer())->transformCollection(Location::all()->toArray())); $fishingSectors = array_filter((new SectorTransformer())->transformCollection(Sector::all()->toArray())); $speciesList = array_filter((new SpeciesTransformer())->transformCollection(Species::with(['type', 'weights'])->get()->toArray())); return $this->respond(['fishingCategories' => $fishingCategories ?: null, 'fishingLocations' => $fishingLocations ?: null, 'fishingSectors' => $fishingSectors ?: null, 'speciesList' => $speciesList ?: null]); }
/** * Run the database seeds. * * @return void */ public function run() { $weights = [['name' => 'Angler / Monkfish', 'type_id' => '1', 'weights' => [3 => ['lbs' => 25, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 30, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 30, 'oz' => 0, 'dr' => 0]]], ['name' => 'Bass', 'type_id' => '1', 'weights' => [3 => ['lbs' => 6, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 7, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 8, 'oz' => 0, 'dr' => 0]]], ['name' => 'Bream (Black)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 12, 'dr' => 0], 2 => ['lbs' => 3, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 3, 'oz' => 12, 'dr' => 0]]], ['name' => 'Bream (Gilthead)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 4, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 5, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 5, 'oz' => 0, 'dr' => 0]]], ['name' => 'Bream (Red)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 2, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 3, 'oz' => 8, 'dr' => 0]]], ['name' => 'Brill', 'type_id' => '2', 'weights' => [3 => ['lbs' => 2, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 4, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 5, 'oz' => 8, 'dr' => 0]]], ['name' => 'Bull Huss', 'type_id' => '3', 'weights' => [3 => ['lbs' => 9, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 10, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 10, 'oz' => 0, 'dr' => 0]]], ['name' => 'Coalfish', 'type_id' => '1', 'weights' => [3 => ['lbs' => 2, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 8, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 15, 'oz' => 0, 'dr' => 0]]], ['name' => 'Cod', 'type_id' => '1', 'weights' => [3 => ['lbs' => 5, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 12, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 17, 'oz' => 0, 'dr' => 0]]], ['name' => 'Conger', 'type_id' => '1', 'weights' => [3 => ['lbs' => 20, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 35, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 55, 'oz' => 0, 'dr' => 0]]], ['name' => 'Dab', 'type_id' => '2', 'weights' => [3 => ['lbs' => 1, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 1, 'oz' => 2, 'dr' => 0], 1 => ['lbs' => 1, 'oz' => 2, 'dr' => 0]]], ['name' => 'Flounder', 'type_id' => '2', 'weights' => [3 => ['lbs' => 1, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 2, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 2, 'oz' => 0, 'dr' => 0]]], ['name' => 'Garfish', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 4, 'dr' => 0], 2 => ['lbs' => 1, 'oz' => 12, 'dr' => 0], 1 => ['lbs' => 1, 'oz' => 12, 'dr' => 0]]], ['name' => 'Gurnard (Red)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 1, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 1, 'oz' => 8, 'dr' => 0]]], ['name' => 'Gurnard (Tub)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 2, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 3, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 4, 'oz' => 8, 'dr' => 0]]], ['name' => 'John Dory', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 4, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 4, 'oz' => 0, 'dr' => 0]]], ['name' => 'L.S. Dogfish', 'type_id' => '3', 'weights' => [3 => ['lbs' => 2, 'oz' => 6, 'dr' => 0], 2 => ['lbs' => 2, 'oz' => 12, 'dr' => 0], 1 => ['lbs' => 2, 'oz' => 12, 'dr' => 0]]], ['name' => 'Ling', 'type_id' => '1', 'weights' => [3 => ['lbs' => 5, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 13, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 18, 'oz' => 0, 'dr' => 0]]], ['name' => 'Mackerel', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 10, 'dr' => 0], 2 => ['lbs' => 2, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 2, 'oz' => 4, 'dr' => 0]]], ['name' => 'Mullet (Golden Grey)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 2, 'oz' => 4, 'dr' => 0], 2 => ['lbs' => 2, 'oz' => 4, 'dr' => 0], 1 => ['lbs' => 2, 'oz' => 4, 'dr' => 0]]], ['name' => 'Mullet (Grey)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 4, 'oz' => 4, 'dr' => 0], 2 => ['lbs' => 4, 'oz' => 4, 'dr' => 0], 1 => ['lbs' => 4, 'oz' => 4, 'dr' => 0]]], ['name' => 'Mullet (Red)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 4, 'dr' => 0], 2 => ['lbs' => 1, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 1, 'oz' => 8, 'dr' => 0]]], ['name' => 'Mullet (Thin Lipped)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 4, 'oz' => 4, 'dr' => 0], 2 => ['lbs' => 4, 'oz' => 4, 'dr' => 0], 1 => ['lbs' => 4, 'oz' => 4, 'dr' => 0]]], ['name' => 'Plaice', 'type_id' => '2', 'weights' => [3 => ['lbs' => 2, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 3, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 3, 'oz' => 0, 'dr' => 0]]], ['name' => 'Pollack', 'type_id' => '1', 'weights' => [3 => ['lbs' => 2, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 6, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 13, 'oz' => 0, 'dr' => 0]]], ['name' => 'Pouting', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 2, 'dr' => 0], 2 => ['lbs' => 2, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 2, 'oz' => 12, 'dr' => 0]]], ['name' => 'Ray (Blonde)', 'type_id' => '3', 'weights' => [3 => ['lbs' => 10, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 22, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 22, 'oz' => 0, 'dr' => 0]]], ['name' => 'Ray (Small Eyed)', 'type_id' => '3', 'weights' => [3 => ['lbs' => 7, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 9, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 9, 'oz' => 8, 'dr' => 0]]], ['name' => 'Ray (Spotted)', 'type_id' => '3', 'weights' => [3 => ['lbs' => 4, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 4, 'oz' => 8, 'dr' => 0], 1 => ['lbs' => 4, 'oz' => 8, 'dr' => 0]]], ['name' => 'Ray (Thornback)', 'type_id' => '3', 'weights' => [3 => ['lbs' => 9, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 10, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 10, 'oz' => 0, 'dr' => 0]]], ['name' => 'Rockling (3 Bearded)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 1, 'oz' => 12, 'dr' => 0], 1 => ['lbs' => 1, 'oz' => 12, 'dr' => 0]]], ['name' => 'Scad', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 1, 'oz' => 2, 'dr' => 0], 1 => ['lbs' => 1, 'oz' => 2, 'dr' => 0]]], ['name' => 'Smoothound (All)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 8, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 10, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 10, 'oz' => 0, 'dr' => 0]]], ['name' => 'Sole', 'type_id' => '2', 'weights' => [3 => ['lbs' => 1, 'oz' => 12, 'dr' => 0], 2 => ['lbs' => 1, 'oz' => 12, 'dr' => 0], 1 => ['lbs' => 1, 'oz' => 12, 'dr' => 0]]], ['name' => 'Spurdog', 'type_id' => '3', 'weights' => [3 => ['lbs' => 5, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 10, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 10, 'oz' => 0, 'dr' => 0]]], ['name' => 'Trigger Fish', 'type_id' => '1', 'weights' => [3 => ['lbs' => 2, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 2, 'oz' => 12, 'dr' => 0], 1 => ['lbs' => 2, 'oz' => 12, 'dr' => 0]]], ['name' => 'Turbot', 'type_id' => '2', 'weights' => [3 => ['lbs' => 5, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 12, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 15, 'oz' => 0, 'dr' => 0]]], ['name' => 'Whiting', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 0, 'dr' => 0], 2 => ['lbs' => 2, 'oz' => 2, 'dr' => 0], 1 => ['lbs' => 2, 'oz' => 2, 'dr' => 0]]], ['name' => 'Wrasse (Ballan)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 4, 'oz' => 8, 'dr' => 0], 2 => ['lbs' => 5, 'oz' => 0, 'dr' => 0], 1 => ['lbs' => 5, 'oz' => 0, 'dr' => 0]]], ['name' => 'Wrasse (Cuckoo)', 'type_id' => '1', 'weights' => [3 => ['lbs' => 1, 'oz' => 2, 'dr' => 0], 2 => ['lbs' => 1, 'oz' => 4, 'dr' => 0], 1 => ['lbs' => 1, 'oz' => 8, 'dr' => 0]]]]; foreach ($weights as $request) { // Create ne Species $species = new Species(); $species->name = $request['name']; // Assign type and persist changes $species->type()->associate(Type::findOrFail($request['type_id'])); $species->save(); ksort($request['weights']); // Iterate through weights array and save it to the database foreach ($request['weights'] as $sectorId => $speciesWeight) { $weight = new Weight(); $weight->weight = $speciesWeight; $weight->sector()->associate(Sector::findOrFail($sectorId)); $weight->species()->associate($species); $weight->save(); } } }
/** * Store a newly created resource in storage. * * @param SpeciesRequest|Request $request * @return \Illuminate\Http\Response */ public function store(SpeciesRequest $request) { DB::transaction(function () use($request) { // Create ne Species $species = new Species(); $species->name = $request['name']; // Assign type and persist changes $species->type()->associate(Type::findOrFail($request['type_id'])); $species->save(); // Iterate through weights array and save it to the database foreach ($request['weights'] as $sectorId => $speciesWeight) { $weight = new Weight(); $weight->weight = $speciesWeight; $weight->sector()->associate(Sector::findOrFail($sectorId)); $weight->species()->associate($species); $weight->save(); } }); flash()->success('Success!', "New species has been created!"); return redirect(route('admin.settings.species.index')); }
/** * Store a newly created resource in storage. * * @param WeighInsRequest|Request $request * @return \Illuminate\Http\Response */ public function store(WeighInsRequest $request) { // TODO: extract this as it is also used in weigh ins request // Clear up the entries $request['entries'] = array_filter(array_map(function ($entry) { return array_filter($entry); }, $request['entries'])); // If any exceptions are thrown any DB operations // will be automatically rolled back. DB::transaction(function () use($request) { $weighIn = new WeighIn(); // Deal with boat section if (!empty($request['boat']) && !empty($request['boat']['name'])) { if (isset($request['boat']['id'])) { // assign a boat to the weigh-in $boat = Boat::findOrFail($request['boat']['id']); } else { // create a new boat $boat = new Boat(); $boat->name = $request['boat']['name']; $boat->charter = isset($request['boat']['charter']) ? true : false; if (!empty($request['boat']['skipper']['id'])) { $boat->skipper()->associate(User::find($request['boat']['skipper']['id'])); } $boat->save(); } $weighIn->boat()->associate($boat); } // TODO: discuss with Rob if it makes sense // if(!empty($request['team_id'])){ // $weighIn->team()->associate(Team::find($request['team_id'])); // } $weighIn->date = $request['date']; $weighIn->entry_ticket_number = $request['entry_ticket_number']; $weighIn->sheet_number = $request['sheet_number']; $weighIn->team_number = !empty($request['team_number']) ? $request['team_number'] : null; $weighIn->event()->associate(Event::find($request['event_id'])); $weighIn->site()->associate(Site::find($request['weigh_in_site_id'])); $weighIn->user()->associate(User::find($request['user_id'])); $weighIn->save(); foreach ($request['entries'] as $e) { $entry = new Entry(); $entry->weight = Helpers::toDrams($e['species_weight']); $entry->percentage = Weight::calculatePercentage($e['species_id'], $e['sector_id'], $e['species_weight']); $entry->sector()->associate(Sector::find($e['sector_id'])); $entry->location()->associate(Location::find($e['location_id'])); $entry->event()->associate(Event::find($request['event_id'])); $entry->species()->associate(Species::find($e['species_id'])); $entry->user()->associate(User::find($request['user_id'])); $entry->weighIn()->associate($weighIn); $entry->save(); if (isset($e['categories'])) { $categories = []; foreach ($e['categories'] as $catId) { $categories[$catId] = ['event_id' => (int) $request['event_id']]; } $entry->categories()->sync($categories); } } //dd($request); }); flash()->success('Success!', "New weigh-in has been created!"); return redirect(route('admin.weigh-ins.create')); }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $sector = Sector::findOrFail($id); $sectorName = $sector->name; $sector->delete(); flash()->success('Success!', "{$sectorName} sector has been created!"); return redirect(route('admin.settings.fishing.sectors.index')); }
/** * @return mixed */ public function index() { $sectors = Sector::orderBy('id')->get(); return $this->respond(['data' => $this->sectorsTransformer->transformCollection($sectors->all())]); }
/** * Returns an array of Weigh-In Sites * * @return array */ public static function getWeighInSectors() { $sectors = []; foreach (Sector::all() as $sector) { $sectors[$sector->id] = $sector->name; } return $sectors; }
/** * Run the database seeds. * * @return void */ public function run() { Sector::create(['name' => 'Wreck', 'description' => 'Wreck sector description.']); Sector::create(['name' => 'Boat', 'description' => 'Boat sector description.']); Sector::create(['name' => 'Shore', 'description' => 'Shore sector description.']); }