ercore-8.x-1.20/modules/ercore_event/src/ErcoreImportEngagement.php
modules/ercore_event/src/ErcoreImportEngagement.php
<?php
namespace Drupal\ercore_event;
use Drupal\file\Entity\File;
use Drupal\paragraphs\Entity\Paragraph;
use PhpOffice\PhpSpreadsheet\IOFactory;
/**
* Class ErcoreImportEngagement.
*/
class ErcoreImportEngagement {
/**
* Constructor.
*/
public function __construct() {
}
/**
* Receives and updates engagement.
*
* @param array $engagement
* Receives engagement to update.
*/
public function processEngagement(array $engagement) {
$fid = NULL;
$pid = NULL;
if (isset($engagement[0]['target_id'])) {
$pid = $engagement[0]['target_id'];
if (!isset($engagement[0]['subform']['field_ercore_ee_excel'])) {
return;
}
$paragraph = Paragraph::load($pid);
$fid = $engagement[0]['subform']['field_ercore_ee_excel'][0]['fids'][0];
$file_uri = File::load($fid)->getFileUri();
$rows = $this->parseFile($file_uri);
$values = new ErcoreEngagement();
foreach ($rows as $row) {
$values->addEngagements($row);
}
$this->setEngagementCounts($paragraph, $values);
}
}
/**
* Uses PHPExcel to parse .xls file.
*
* @param string $file_path
* Receives file path.
*
* @return array
* Returns data array from Excel file.
*/
private function parseFile($file_path) {
$type = IOFactory::identify($file_path);
/** @var \PhpOffice\PhpSpreadsheet\Reader\BaseReader $reader */
$reader = IOFactory::createReader($type);
/** @var \PhpOffice\PhpSpreadsheet\Spreadsheet $workbook */
$file = $reader->load($file_path);
$sheet = $file->getActiveSheet();
$title = $sheet->getCellByColumnAndRow(3, 1, FALSE);
if ($title->hasValidValue() && $title->getValue() === 'External Engagement Reporting Sheet') {
$array = $sheet->toArray();
return array_slice($array, 12);
}
}
/**
* Save engagement entity.
*
* @param \Drupal\paragraphs\Entity\Paragraph $paragraph
* The values parsed from the excel file.
* @param \Drupal\ercore_event\ErcoreEngagement $values
* Engagement data to be saved.
*/
private function setEngagementCounts(Paragraph $paragraph, ErcoreEngagement $values) {
$paragraph->set('field_ercore_ee_disable_file_alt', '1');
$paragraph->set('field_ercore_ee_ari_fac_f', $values->ariFacF);
$paragraph->set('field_ercore_ee_ari_fac_m', $values->ariFacM);
$paragraph->set('field_ercore_ee_ari_fac_mn', $values->ariFacMn);
$paragraph->set('field_ercore_ee_ari_fac_u', $values->ariFacU);
$paragraph->set('field_ercore_ee_ari_stu_f', $values->ariStuF);
$paragraph->set('field_ercore_ee_ari_stu_m', $values->ariStuM);
$paragraph->set('field_ercore_ee_ari_stu_mn', $values->ariStuMn);
$paragraph->set('field_ercore_ee_ari_stu_u', $values->ariStuU);
$paragraph->set('field_ercore_ee_pui_fac_f', $values->puiFacF);
$paragraph->set('field_ercore_ee_pui_fac_m', $values->puiFacM);
$paragraph->set('field_ercore_ee_pui_fac_mn', $values->puiFacMn);
$paragraph->set('field_ercore_ee_pui_fac_u', $values->puiFacU);
$paragraph->set('field_ercore_ee_pui_stu_f', $values->puiStuF);
$paragraph->set('field_ercore_ee_pui_stu_m', $values->puiStuM);
$paragraph->set('field_ercore_ee_pui_stu_mn', $values->puiStuMn);
$paragraph->set('field_ercore_ee_pui_stu_u', $values->puiStuU);
$paragraph->set('field_ercore_ee_msi_fac_f', $values->msiFacF);
$paragraph->set('field_ercore_ee_msi_fac_m', $values->msiFacM);
$paragraph->set('field_ercore_ee_msi_fac_mn', $values->msiFacMn);
$paragraph->set('field_ercore_ee_msi_fac_u', $values->msiFacU);
$paragraph->set('field_ercore_ee_msi_stu_f', $values->msiStuF);
$paragraph->set('field_ercore_ee_msi_stu_m', $values->msiStuM);
$paragraph->set('field_ercore_ee_msi_stu_mn', $values->msiStuMn);
$paragraph->set('field_ercore_ee_msi_stu_u', $values->msiStuU);
$paragraph->set('field_ercore_ee_other_f', $values->otherF);
$paragraph->set('field_ercore_ee_other_m', $values->otherM);
$paragraph->set('field_ercore_ee_other_mn', $values->otherMn);
$paragraph->set('field_ercore_ee_other_u', $values->otherU);
$paragraph->set('field_ercore_ee_k12_dir_f', $values->k12DirF);
$paragraph->set('field_ercore_ee_k12_dir_m', $values->k12DirM);
$paragraph->set('field_ercore_ee_k12_dir_mn', $values->k12DirMn);
$paragraph->set('field_ercore_ee_k12_dir_u', $values->k12DirU);
$paragraph->set('field_ercore_ee_k12_tch_f', $values->k12TchF);
$paragraph->set('field_ercore_ee_k12_tch_m', $values->k12TchM);
$paragraph->set('field_ercore_ee_k12_tch_mn', $values->k12TchMn);
$paragraph->set('field_ercore_ee_k12_tch_u', $values->k12TchU);
$paragraph->set('field_ercore_ee_k12_ttr_f', $values->k12TtrF);
$paragraph->set('field_ercore_ee_k12_ttr_m', $values->k12TtrM);
$paragraph->set('field_ercore_ee_k12_ttr_mn', $values->k12TtrMn);
$paragraph->set('field_ercore_ee_k12_ttr_u', $values->k12TtrU);
$paragraph->save();
}
}
