/** * updates activity recipient region * @param $id * @param Request $request * @param RecipientRegionRequestManager $recipientRegionRequestManager * @return \Illuminate\Http\RedirectResponse */ public function update($id, Request $request, RecipientRegionRequestManager $recipientRegionRequestManager) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorizeByRequestType($activityData, 'recipient_region'); $activityTransactions = $this->transactionManager->getTransactions($id); $count = 0; if ($activityTransactions) { foreach ($activityTransactions as $transactions) { $transactionDetail = $transactions->transaction; removeEmptyValues($transactionDetail); if (!empty($transactionDetail['recipient_country']) || !empty($transactionDetail['recipient_region'])) { $count++; } } } if ($count > 0) { $response = ['type' => 'warning', 'code' => ['message', ['message' => 'You cannot save Recipient Region in activity level because you have already saved recipient country or region in transaction level.']]]; return redirect()->back()->withInput()->withResponse($response); } $recipientRegions = $request->all(); foreach ($recipientRegions['recipient_region'] as &$recipientRegion) { $recipientRegion['region_vocabulary'] != '' ?: ($recipientRegion['region_vocabulary'] = '1'); } if ($this->recipientRegionManager->update($recipientRegions, $activityData)) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['updated', ['name' => 'Recipient Region']]]; return redirect()->to(sprintf('/activity/%s', $id))->withResponse($response); } $response = ['type' => 'danger', 'code' => ['update_failed', ['name' => 'Recipient Region']]]; return redirect()->back()->withInput()->withResponse($response); }
/** * show the activity details * @param $id * @return \Illuminate\View\View */ public function show($id) { $activityData = $this->activityManager->getActivityData($id); if ($activityData->activity_workflow == 3) { $filename = $this->getPublishedActivityFilename($this->organization_id, $activityData); $activityPublishedStatus = $this->getPublishedActivityStatus($filename, $this->organization_id); $message = $this->getMessageForPublishedActivity($activityPublishedStatus, $filename); } if (Gate::denies('ownership', $activityData)) { return redirect()->route('activity.index')->withResponse($this->getNoPrivilegesMessage()); } $activityDataList = $activityData->activity_data_list; $activityResult = $this->resultManager->getResults($id)->toArray(); $activityTransaction = $this->transactionManager->getTransactions($id)->toArray(); $activityDocumentLinks = $this->documentLinkManager->getDocumentLinks($id)->toArray(); $activityDataList['results'] = $activityResult; $activityDataList['transaction'] = $activityTransaction; $activityDataList['document_links'] = $activityDocumentLinks; $activityDataList['reporting_org'] = $activityData->organization->reporting_org; if ($activityDataList['activity_workflow'] == 0) { $nextRoute = route('activity.complete', $id); } elseif ($activityDataList['activity_workflow'] == 1) { $nextRoute = route('activity.verify', $id); } else { $nextRoute = route('activity.publish', $id); } return view('Activity.show', compact('activityDataList', 'id', 'filename', 'activityPublishedStatus', 'message', 'nextRoute')); }
/** * deletes data block from transaction * @param $id * @param $transactionId * @param $jsonPath */ public function deleteBlock($id, $transactionId, $jsonPath) { $result = $this->transactionManager->deleteBlock($transactionId, $jsonPath); if ($result) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['transaction_block_removed', ['element' => 'activity']]]; } else { $response = ['type' => 'danger', 'code' => ['transaction_block_not_removed', ['element' => 'activity']]]; } return redirect()->back()->withResponse($response); }