/** * Apply the updates to our resource */ public function update($id, PalletRequest $request) { // if guest or cannot pallet.edit, redirect -> home if (Entrust::can('pallet.edit') == false) { return redirect()->route('home'); } //dd(__METHOD__.'('.__LINE__.')',compact('id','request')); if (isset($request->btn_Cancel)) { return redirect()->route('pallet.show', ['id' => $id]); } $this->transaction(function ($this) use($id, $request) { // using an implementation of the Pallet Repository Interface $this->palletRepository->update($id, $request->all()); }); // FWP and RES carts don't need to be located, redirect to show $pallet = $this->palletRepository->find($id); //Log::debug('pallet->Pallet_ID: >'.$pallet->Pallet_ID.'<'); //TODO learn how to write library functions like: str_begins($pallet->Pallet_ID, ['FWP', 'RES']); if (isset($pallet->Pallet_ID) and strlen($pallet->Pallet_ID) > 3 and (substr($pallet->Pallet_ID, 0, 3) == 'FWP' or substr($pallet->Pallet_ID, 0, 3) == 'RES')) { return redirect()->route('pallet.show', ['id' => $id])->with(['status' => Lang::get('internal.updated', ['class' => Pallet::TABLE_SYNONYM])]); } else { // when our pallet is located, redirect to show $locations = $this->locationRepository->filterOn(['container.child' => $id]); if (isset($locations) and count($locations) > 0) { return redirect()->route('pallet.show', ['id' => $id])->with(['status' => Lang::get('internal.updated', ['class' => Pallet::TABLE_NAME])]); } } return redirect()->route('pallet.edit', ['id' => $id])->with(['status' => Lang::get('internal.updated', ['class' => Pallet::TABLE_NAME]), 'warning' => Lang::get('internal.errors.noParent') . ' ' . Lang::get('labels.titles.Move_Pallet')]); }
/** * Check articles of provided UPCs, are they all comingled? * @param $upcIDs, array of UPCs to explode * @return false if any article is found that is not comingled */ protected function checkIfComingled($upcIDs) { $isComingled = true; // are we given at least one UPC->objectID if (isset($upcIDs) and count($upcIDs) > 0) { foreach ($upcIDs as $inUPC) { $articles = $this->articleRepository->getUPCArticles($inUPC, 0); if (isset($articles) == false or count($articles) == 0) { Log::warning('this->articleRepository->getUPCArticles(' . $inUPC . ', 0); produced no articles!'); } if (isset($articles) and count($articles) > 0) { foreach ($articles as $article) { Log::debug('article: ' . $article->objectID . ($article->isSplit() ? ' is split' : ' is comingled')); if ($article->isSplit()) { $isComingled = false; break 2; } } } else { Log::debug('defaulting to is split'); $isComingled = false; break; } } } return $isComingled; }
/** * Put a pallet into a Location. * ComingleRules verifies move this pallet into this Location is allowed. * * Returns true if it was successful, otherwise returns an error message. */ public function putPalletIntoLocation($palletID, $locationID) { Log::info("putPalletIntoLocation( {$palletID}, {$locationID} )"); $result = $this->comingleRules->isPutPalletIntoLocationAllowed($palletID, $locationID); Log::debug($result); if ($result === true) { // update container set parentID = $id where objectID = $pltID; $result = $this->transaction(function ($this) use($palletID, $locationID) { return $this->locationRepository->putPalletIntoLocation($palletID, $locationID); }); } return $result; }