/** * updates activity sector * @param $id * @param Request $request * @param SectorRequestManager $sectorRequestManager * @return \Illuminate\Http\RedirectResponse */ public function update($id, Request $request, SectorRequestManager $sectorRequestManager) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorizeByRequestType($activityData, 'sector'); $sectors = $request->all(); foreach ($sectors['sector'] as &$sector) { if ($sector['sector_vocabulary'] == 1 || $sector['sector_vocabulary'] == '') { $sector['sector_vocabulary'] = 1; $sector['sector_category_code'] = ''; $sector['sector_text'] = ''; } elseif ($sector['sector_vocabulary'] == 2) { $sector['sector_code'] = ''; $sector['sector_text'] = ''; } else { $sector['sector_code'] = ''; $sector['sector_category_code'] = ''; } } if ($this->sectorManager->update($sectors, $activityData)) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['updated', ['name' => 'Sector']]]; return redirect()->to(sprintf('/activity/%s', $id))->withResponse($response); } $response = ['type' => 'danger', 'code' => ['update_failed', ['name' => 'Sector']]]; return redirect()->back()->withInput()->withResponse($response); }
/** * 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); }
/** * returns the activity title edit form * @param $id * @return \Illuminate\View\View */ public function index($id) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $activityTitle = $this->titleManager->getTitleData($id); $form = $this->title->editForm($activityTitle, $id); return view('Activity.title.title', compact('form', 'id', 'activityData')); }
/** * view other identifier add or edit page * @param $id * @return \Illuminate\View\View */ public function index($id) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $otherIdentifier = $this->otherIdentifierManager->getOtherIdentifierData($id); $form = $this->otherIdentifierForm->editForm($otherIdentifier, $id); return view('Activity.otherIdentifier.otherIdentifier', compact('form', 'otherIdentifier', 'id', 'activityData')); }
/** * it validates activity schema according to version standard * @param $id * @param null $version * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function validateActivity($id, $version = null) { $activityData = $this->activityManager->getActivityData($id); $settings = $this->settingsManager->getSettings($activityData['organization_id']); $transactionData = $this->activityManager->getTransactionData($id); $resultData = $this->activityManager->getResultData($id); $organization = $this->organizationManager->getOrganization($activityData->organization_id); $orgElem = $this->organizationManager->getOrganizationElement(); $activityElement = $this->activityManager->getActivityElement(); if ($version == null) { $version = config('app.default_version_name'); } return $this->validateCompletedActivity($activityData, $transactionData, $resultData, $settings, $activityElement, $orgElem, $organization, $version); }
/** * @param $id * @param Request $request * @param BudgetRequestManager $budgetRequestManager * @return mixed */ public function update($id, Request $request, BudgetRequestManager $budgetRequestManager) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorizeByRequestType($activityData, 'budget'); $budget = $request->all(); if ($this->budgetManager->update($budget, $activityData)) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['updated', ['name' => 'Budget']]]; return redirect()->to(sprintf('/activity/%s', $id))->withResponse($response); } $response = ['type' => 'danger', 'code' => ['update_failed', ['name' => 'Budget']]]; return redirect()->back()->withInput()->withResponse($response); }
public function update($id, Request $request, ConditionRequestManager $conditionRequestManager) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorizeByRequestType($activityData, 'conditions'); $condition = $request->except(['_token', '_method']); if ($this->conditionManager->update($condition, $activityData)) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['updated', ['name' => 'Conditions']]]; return redirect()->to(sprintf('/activity/%s', $id))->withResponse($response); } $response = ['type' => 'danger', 'code' => ['update_failed', ['name' => 'Related Activity']]]; return redirect()->back()->withInput()->withResponse($response); }
/** * @param $activityId * @param IatiIdentifierRequestManager $iatiIdentifierRequestManager * @param Request $request * @return \Illuminate\Http\RedirectResponse */ public function update($activityId, IatiIdentifierRequestManager $iatiIdentifierRequestManager, Request $request) { $activityData = $this->activityManager->getActivityData($activityId); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $iatiIdentifierData = $this->iatiIdentifierManager->getActivityData($activityId); $this->authorizeByRequestType($iatiIdentifierData, 'identifier'); $input = $request->all(); if ($this->iatiIdentifierManager->update($input, $iatiIdentifierData)) { $this->activityManager->resetActivityWorkflow($activityId); $response = ['type' => 'success', 'code' => ['updated', ['name' => 'Activity Iati Identifier']]]; return redirect()->to(sprintf('/activity/%s', $activityId))->withResponse($response); } $response = ['type' => 'danger', 'code' => ['update_failed', ['name' => 'Activity Iati Identifier']]]; return redirect()->route('activity.iati-identifier.index', $activityId)->withInput()->withResponse($response); }
/** * updates activity participating organization * @param $id * @param Request $request * @param ParticipatingOrganizationRequestManager $participatingOrganizationRequestManager * @return \Illuminate\Http\RedirectResponse */ public function update($id, Request $request, ParticipatingOrganizationRequestManager $participatingOrganizationRequestManager) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorizeByRequestType($activityData, 'participating_organization'); $participatingOrganization = $request->all(); if (!$this->validateData($request->get('participating_organization'))) { $response = ['type' => 'warning', 'code' => ['participating_org', ['name' => 'participating organization']]]; return redirect()->back()->withInput()->withResponse($response); } if ($this->participatingOrganizationManager->update($participatingOrganization, $activityData)) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['updated', ['name' => 'Activity Participating Organization']]]; return redirect()->to(sprintf('/activity/%s', $id))->withResponse($response); } $response = ['type' => 'danger', 'code' => ['update_failed', ['name' => 'Activity Participating Organization']]]; return redirect()->back()->withInput()->withResponse($response); }
/** * update country budget item * @param $id * @param Request $request * @param CountryBudgetItemRequestManager $countryBudgetItemRequestManager * @return mixed */ public function update($id, Request $request, CountryBudgetItemRequestManager $countryBudgetItemRequestManager) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorizeByRequestType($activityData, 'country_budget_items'); $countryBudgetItems = $request->all(); foreach ($countryBudgetItems['country_budget_item'] as &$countryBudgetItem) { $code = $countryBudgetItem['vocabulary'] == 1 ? 'code_text' : 'code'; $countryBudgetItem['budget_item'][0][$code] = ''; } if ($this->countryBudgetItemManager->update($countryBudgetItems, $activityData)) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['updated', ['name' => 'Country Budget Item']]]; return redirect()->to(sprintf('/activity/%s', $id))->withResponse($response); } $response = ['type' => 'danger', 'code' => ['update_failed', ['name' => 'Country Budget Item']]]; return redirect()->back()->withInput()->withResponse($response); }
/** * Remove all the sector details from every transactions of the activity. * @param $activityId */ public function removeTransactionSector($activityId) { $activity = $this->activityManager->getActivityData($activityId); if (Gate::denies('ownership', $activity)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $sector = $this->activityManager->removeTransactionSector($activityId); if ($sector) { $response = ['type' => 'success', 'messages' => ['Sector details has been removed from Transaction level.']]; } else { $response = ['type' => 'danger', 'messages' => ['Failed to remove Sector details from Transaction level.']]; } return redirect()->back()->withResponse($response); }
/** * store the uploaded transaction * @param Request $request * @param $id * @param UploadTransactionRequest $uploadTransactionRequest * @param CsvImportValidator $csvImportValidator * @return $this */ public function store(Request $request, $id, UploadTransactionRequest $uploadTransactionRequest, CsvImportValidator $csvImportValidator) { $activity = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activity)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorize('add_activity', $activity); $file = $request->file('transaction'); if ($this->uploadTransactionManager->isEmptyCsv($file)) { return redirect()->back()->withResponse(['type' => 'danger', 'code' => ['empty_template', ['name' => 'Transaction']]]); } $validator = $this->validatorForCurrentCsvType($file, $csvImportValidator); if (null === $validator) { return redirect()->back()->withResponse(['type' => 'danger', 'code' => ['header_mismatch', ['name' => 'Transaction']]]); } if (null !== $validator && $validator->fails()) { $response = ['type' => 'danger', 'messages' => $validator->errors()->all()]; return redirect()->back()->withInput()->withResponse($response); } $this->uploadTransactionManager->save($file, $activity); $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['updated', ['name' => 'Transactions']]]; return redirect()->to(sprintf('/activity/%s/transaction', $id))->withResponse($response); }
/** * Remove result from storage. * @param int $id * @param $resultId * @return \Illuminate\Http\Response */ public function destroy($id, $resultId) { $activityData = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activityData)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorize('delete_activity', $activityData); $activityResult = $this->resultManager->getResult($resultId, $id); if ($this->resultManager->deleteResult($activityResult)) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['deleted', ['name' => 'Result']]]; } else { $response = ['type' => 'danger', 'code' => ['delete_failed', ['name' => 'result']]]; } return redirect()->back()->withResponse($response); }
/** * delete transaction * @param $id * @param $transactionId * @return mixed */ public function destroy($id, $transactionId) { $activity = $this->activityManager->getActivityData($id); if (Gate::denies('ownership', $activity)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } if (!$this->currentUserIsAuthorizedForTransaction($transactionId)) { return redirect()->back()->withResponse($this->getNoPrivilegesMessage()); } $this->authorize('delete_activity', $activity); $transaction = $this->transactionManager->getTransaction($transactionId); if ($this->transactionManager->deleteTransaction($transaction)) { $this->activityManager->resetActivityWorkflow($id); $response = ['type' => 'success', 'code' => ['deleted', ['name' => 'Transaction']]]; } else { $response = ['type' => 'danger', 'code' => ['delete_failed', ['name' => 'transaction']]]; } return redirect()->back()->withResponse($response); }