/**
  * JSON文字列を配列に変換
  *
  * @param string $json 変換するJSON形式の文字列
  * @return mix エラー時null値
  */
 public function convert($json)
 {
     if (is_null($arrayData = json_decode($json, true))) {
         $this->log->warning('JSONへの変換エラー(' . $this->getJsonLastError() . ')');
     }
     return $arrayData;
 }
 /**
  * @param $formData
  * @return Question|bool
  */
 public function save($formData)
 {
     $tags = [];
     if (isset($formData['tag'])) {
         $tags = $this->tag->createOrGet($formData['tag']);
     }
     $this->database->beginTransaction();
     try {
         $question = $this->question->save($formData);
         if (!$question) {
             return false;
         }
         $this->saveAnswers($formData, $question);
         $this->saveSubQuestions($formData, $question);
         $question->tags()->sync($tags);
         $this->database->commit();
         return $question;
     } catch (\Exception $e) {
         $this->logger->error($e);
         $this->database->rollback();
         return false;
     }
     $this->database->rollback();
     return false;
 }
 /**
  * @inheritdoc
  */
 public function onSuccess(ActionContract $action)
 {
     if ($level = $this->log_success) {
         $context = array('name' => $action->name(), 'creator' => $action->getCreator()->getFingerprint(), 'action' => $action->getContext());
         $this->log->log($level, 'Action success event.', $context);
     }
 }
 /**
  * Register any error handlers.
  *
  * @param  Handler  $handler
  * @param  Log  $log
  * @return void
  */
 public function boot(Handler $handler, Log $log)
 {
     // Here you may handle any errors that occur in your application, including
     // logging them or displaying custom views for specific errors. You may
     // even register several error handlers to handle different types of
     // exceptions. If nothing is returned, the default error view is
     // shown, which includes a detailed stack trace during debug.
     $handler->error(function (Exception $e) use($log) {
         $log->error($e);
     });
 }
 /**
  * updates Activity recipient region
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->recipientRegionRepo->update($activityDetails, $activity);
         $this->log->info('Activity Recipient Region Updated!', ['for ' => $activity->recipient_region]);
         $this->log->activity("activity.recipient_region_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['recipientRegion' => $activityDetails]);
     }
     return false;
 }
 /**
  * updates Activity Date
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->iatiPlannedDisbursementRepo->update($activityDetails, $activity);
         $this->logger->info('Planned Disbursement Updated!', ['for' => $activity->planned_disbursement]);
         $this->dbLogger->activity("activity.planned_disbursement_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->logger->error($exception, ['Planned Disbursement' => $activityDetails]);
     }
     return false;
 }
 /**
  * updates Activity Date
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->iatiRelatedActivityRepo->update($activityDetails, $activity);
         $this->logger->info('Related Activity Updated!', ['for' => $activity->related_activity]);
         $this->dbLogger->activity("activity.related_activity_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->logger->error($exception, ['relatedActivity' => $activityDetails]);
     }
     return false;
 }
 /**
  * updates Activity Title
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->iatiTitleRepo->update($activityDetails, $activity);
         $this->log->info('Activity Title Updated!', ['for ' => $activity['narrative']]);
         $this->log->activity("activity.title_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['Title' => $activityDetails]);
     }
     return false;
 }
 /**
  * updates Activity Contact Info
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->contactInfoRepo->update($activityDetails, $activity);
         $this->log->info('Activity Contact Info Updated!', ['for ' => $activity['contact_info']]);
         $this->log->activity("activity.contact_info_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['ContactInfo' => $activityDetails]);
     }
     return false;
 }
 /**
  * @param $input
  * @param $organization
  * @return bool
  */
 public function update(array $input, OrganizationData $organization)
 {
     try {
         $this->repo->update($input, $organization);
         $this->log->info('Document Link Updated', ['for' => $organization->document_link]);
         $this->log->activity("organization.document_link_updated", ['name' => $this->auth->user()->organization->name]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['OrganizationDocumentLink' => $input]);
     }
     return false;
 }
 /**
  * @param array    $input
  * @param Activity $activity
  * @return bool
  * @internal param $organization
  */
 public function update(array $input, Activity $activity)
 {
     try {
         $this->iatiIdentifierRepo->update($input, $activity);
         $this->log->info('Activity Iati Identifier updates', ['for ' => $activity['activity_identifier']]);
         $this->log->activity("activity.iati_identifier_updated", ['identifier' => $input['activity_identifier'], 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['IatiIdentifier' => $input]);
     }
     return false;
 }
 /**
  * @param array            $input
  * @param OrganizationData $organization
  * @return bool
  */
 public function update(array $input, OrganizationData $organization)
 {
     try {
         $this->repo->update($input, $organization);
         $this->log->info('Organization Recipient Country Budget  Updated', ['for ' => $organization['recipient_organization_budget']]);
         $this->log->activity("organization.recipient_organization_budget_updated", ['name' => $this->auth->user()->organization->name]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['OrganizationRecipientOrganizationBudget' => $input]);
     }
     return false;
 }
 /**
  * updates Activity Sector
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->sectorRepo->update($activityDetails, $activity);
         $this->logger->info('Activity Sector updated!', ['for' => $activity->sector]);
         $this->logger->activity("activity.sector_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->logger->error($exception, ['sector' => $activityDetails]);
     }
     return false;
 }
 /**
  * updates Activity Date
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->iatiLegacyRepo->update($activityDetails, $activity);
         $this->logger->info('Legacy Data Updated!', ['for' => $activity->legacy_data]);
         $this->dbLogger->activity("activity.legacy_data_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->logger->error($exception, ['legacyData' => $activityDetails]);
     }
     return false;
 }
 /**
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->iatiPolicyMarkerRepo->update($activityDetails, $activity);
         $this->logger->info('Policy Marker Updated!', ['for' => $activity->policy_marker]);
         $this->dbLogger->activity("activity.policy_marker_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->logger->error($exception, ['policyMarker' => $activityDetails]);
     }
     return false;
 }
 /**
  * update Recipient Country
  * @param array    $input
  * @param Activity $activity
  * @return bool
  */
 public function update(array $input, Activity $activity)
 {
     try {
         $this->recipientCountryRepo->update($input, $activity);
         $this->log->info('Recipient Country  Updated!', ['for ' => $activity->recipient_country]);
         $this->log->activity("activity.recipient_country_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['RecipientCountry' => $input]);
     }
     return false;
 }
 /**
  * updates Activity Participating Organization
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->participatingOrgRepo->update($activityDetails, $activity);
         $this->log->info('Activity Participating Organization updated!', ['for' => $activity->participating_organization]);
         $this->log->activity("activity.participating_organization", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['ParticipatingOrganization' => $activityDetails]);
     }
     return false;
 }
 /**
  * update activity Status
  * @param array    $input
  * @param Activity $activity
  * @return bool
  */
 public function update(array $input, Activity $activity)
 {
     try {
         $this->activityStatusRepo->update($input, $activity);
         $this->log->info('Activity Status  Updated!', ['for ' => $activity['activity_status']]);
         $this->log->activity("activity.activity_status_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['ActivityStatus' => $input]);
     }
     return false;
 }
 /**
  * @param $input
  * @param $organization
  * @return bool
  */
 public function update(array $input, OrganizationData $organization)
 {
     try {
         $this->repo->update($input, $organization);
         $this->log->info('Organization Total Budget Updated', ['for ' => $organization['total_budget']]);
         $this->log->activity("organization.total_budget_updated", ['name' => $organization->organization->name]);
         return true;
     } catch (Exception $exception) {
         $this->log->error($exception, ['OrganizationTotalBudget' => $input]);
     }
     return false;
 }
 /**
  * updates Activity Country Budget Items
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->database->beginTransaction();
         $this->CountryBudgetItemRepo->update($activityDetails, $activity);
         $this->database->commit();
         $this->logger->info('Activity Country Budget Items updated!', ['for' => $activity->country_budget_items]);
         $this->logger->activity("activity.country_budget_items", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['countryBudgetItems' => $activityDetails]);
     }
     return false;
 }
 /**
  * updates Activity Default values
  * @param array    $activityDefaults
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDefaults, Activity $activity)
 {
     try {
         $this->database->beginTransaction();
         $this->changeActivityDefaultRepo->update($activityDefaults, $activity);
         $this->database->commit();
         $this->logger->info('Activity Default Values updated!', ['for' => $activityDefaults]);
         $this->dbLogger->activity("activity.activity_default_values", ['organization_id' => $this->auth->user()->organization->id, 'activity_id' => $activity->id]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['activityDefaultValues' => $activityDefaults]);
     }
     return false;
 }
 /**
  * Save Page Text
  * @param      $contractID
  * @param      $page_no
  * @param      $text
  * @param bool $log
  * @return bool
  */
 public function saveText($contractID, $page_no, $text, $log = true)
 {
     $page_detail = ['contract_id' => $contractID, 'page_no' => $page_no, 'text' => $text];
     try {
         $this->pages->updateOrCreate($page_detail);
         if ($log) {
             $this->logger->activity('contract.log.save_page', ['page' => $page_no], $contractID);
         }
         $this->logger->info("Page text updated", ['Contract id' => $contractID, 'Page id ' => $page_no]);
         return true;
     } catch (Exception $e) {
         $this->logger->error($e->getMessage());
         return false;
     }
 }
 /**
  * update organization total expenditure
  * @param array    $humanitarianScope
  * @param Activity $activity
  * @return bool
  */
 public function update(array $humanitarianScope, Activity $activity)
 {
     try {
         $this->database->beginTransaction();
         $this->humanitarianScopeRepo->update($humanitarianScope, $activity);
         $this->database->commit();
         $this->logger->info('Activity Humanitarian Scope Updated', ['for' => $activity->humanitarian_scope]);
         $this->dbLogger->activity("activity.humanitarian_scope_updated", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['HumanitarianScope' => $humanitarianScope]);
     }
     return false;
 }
 /**
  * Called when the crawl has ended.
  */
 public function finishedCrawling()
 {
     $this->log->info('link checker summary');
     collect($this->urlsGroupedByStatusCode)->each(function ($urls, $statusCode) {
         if ($this->isSuccessOrRedirect($statusCode)) {
             return;
         }
         $count = count($urls);
         if ($statusCode == static::UNRESPONSIVE_HOST) {
             $this->log->warning("{$count} url(s) did have unresponsive host(s)");
             return;
         }
         $this->log->warning("Crawled {$count} url(s) with statuscode {$statusCode}");
     });
 }
 /**
  * upgrade data version wise
  * @param $orgId
  * @param $version
  * @return bool
  */
 public function upgrade($orgId, $version)
 {
     try {
         $this->database->beginTransaction();
         $this->repo->upgrade($orgId, $version);
         $this->database->commit();
         $this->logger->info(sprintf('Version Upgraded to %s for Organization %s!', $version, $this->auth->user()->organization->name), ['for' => $orgId]);
         $this->dbLogger->activity("activity.version_upgraded", ['organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id, 'version' => $version]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['version' => $version]);
     }
     return false;
 }
 /**
  * update recipient region budget
  * @param array            $input
  * @param OrganizationData $organization
  * @return bool
  */
 public function update(array $input, OrganizationData $organization)
 {
     try {
         $this->database->beginTransaction();
         $this->repo->update($input, $organization);
         $this->database->commit();
         $this->logger->info('Organization Recipient Region Budget Updated', ['for' => $organization->recipient_region_budget]);
         $this->dbLogger->activity("organization.recipient_region_budget_updated", ['name' => $this->auth->user()->organization->name]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['OrganizationRecipientRegionBudget' => $input]);
     }
     return false;
 }
 /**
  * updates Activity Default Aid Type
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->database->beginTransaction();
         $this->defaultAidTypeRepo->update($activityDetails, $activity);
         $this->database->commit();
         $this->logger->info('Activity Default Aid Type updated!', ['for' => $activity->default_aid_type]);
         $this->dbLogger->activity("activity.default_aid_type", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['defaultAidType' => $activityDetails]);
     }
     return false;
 }
 /**
  * updates Activity Capital Spend
  * @param array    $activityDetails
  * @param Activity $activity
  * @return bool
  */
 public function update(array $activityDetails, Activity $activity)
 {
     try {
         $this->database->beginTransaction();
         $this->capitalSpendRepo->update($activityDetails, $activity);
         $this->database->commit();
         $this->logger->info('Activity Capital Spend updated!', ['for' => $activity->capital_spend]);
         $this->dbLogger->activity("activity.capital_spend", ['activity_id' => $activity->id, 'organization' => $this->auth->user()->organization->name, 'organization_id' => $this->auth->user()->organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['capitalSpend' => $activityDetails]);
     }
     return false;
 }
 /**
  * update organization total expenditure
  * @param array            $totalExpenditure
  * @param OrganizationData $organizationData
  * @return bool
  */
 public function update(array $totalExpenditure, OrganizationData $organizationData)
 {
     try {
         $this->database->beginTransaction();
         $this->totalExpenditureRepo->update($totalExpenditure, $organizationData);
         $this->database->commit();
         $this->logger->info('Organization Total Expenditure Updated', ['for' => $organizationData->total_expenditure]);
         $this->dbLogger->activity("organization.total_expenditure_updated", ['name' => $this->auth->user()->organization->name]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['TotalExpenditure' => $totalExpenditure]);
     }
     return false;
 }
 /**
  * upload activity form csv
  * @param $activityCsv
  * @param $organization
  * @param $defaultFieldValues
  * @return bool
  */
 public function save($activityCsv, $organization, $defaultFieldValues)
 {
     try {
         $excel = $this->version->getExcel();
         $activitiesRows = $excel->load($activityCsv)->get();
         $activityDetails = [];
         foreach ($activitiesRows as $activityRow) {
             $activityDetails[] = $this->uploadActivityRepo->formatFromExcelRow($activityRow, $organization->id);
         }
         $identifiers = $this->uploadActivityRepo->getIdentifiers($organization->id);
         $this->database->beginTransaction();
         $data = [];
         foreach ($activityDetails as $activityDetail) {
             $activityIdentifier = $activityDetail['identifier']['activity_identifier'];
             isset($identifiers[$activityIdentifier]) ? $data[$identifiers[$activityIdentifier]] = $activityDetail : $this->uploadActivityRepo->upload($activityDetail, $organization, $defaultFieldValues);
             $this->database->commit();
         }
         if (count($data) > 0) {
             return view('Activity.confirmUpdate')->withData($data);
         }
         $this->logger->info("Activities Uploaded for organization with id:" . $organization->id);
         $this->dbLogger->activity("activity.activity_uploaded", ['organization_id' => $organization->id]);
         return true;
     } catch (Exception $exception) {
         $this->database->rollback();
         $this->logger->error($exception, ['activity' => $activityDetails]);
     }
     return false;
 }