moj_skromni_report
Wed May 25 2022 13:10:09 GMT+0000 (UTC)
Saved by @igor #drupal #pseudo-field #form-render
<?php /** @var \Drupal\halo_entity_cfp\Entity\Cfp[] $cfps */ $cfps = \Drupal::entityTypeManager()->getStorage('cfp')->loadByProperties([ 'type' => 'cfp_2020_01', 'state' => 'project_implementation', ]); $first_key = key($cfps); $writer = Box\Spout\Writer\Common\Creator\WriterEntityFactory::createXLSXWriter(); $file_system = \Drupal::service('file_system'); $temp_path = 'public://ced_NOVI_report.xlsx'; $temp_path = $file_system->realpath($temp_path); $writer->openToFile($temp_path); foreach ($cfps as $key => $cfp) { $applicant = $cfp->getApplicantEntity(); $row = []; $row['operational_number'] = $cfp->label(); $row['company_name'] = $applicant->label(); // Partner countries. for ($i = 0;$i < 3;$i++) { $index = $i + 1; $partner = $cfp->get('partners')[$i] ?? FALSE; if ($partner) { $partner_entity = $partner->entity; $project_implementation_place = $partner_entity->get('project_implementation_place'); if ($project_implementation_place->first()) { $implementation_country = $project_implementation_place->first()->getCountryName(); } $row["partner_$index"] = $partner_entity->get('short_name')->value; $row["partner_country_$index"] = $implementation_country ?? ''; } else { $row["partner_$index"] = ''; $row["partner_country_$index"] = ''; } } $contact_person_items = $applicant->get('contact_person'); for ($i = 0;$i < 3;$i++) { $index = $i + 1; /** @var \Drupal\halo_entity_person\Entity\PersonEntity $ontact_person */ $contact_person = $contact_person_items->get($i)->entity ?? FALSE; if ($contact_person) { $row["contact_person_last_name_$index"] = $contact_person->getLastName(); $row["contact_person_first_name_$index"] = $contact_person->getFirstName(); $row["contact_person_phone_1_$index"] = $contact_person->getPhone1(); $row["contact_person_phone_2_$index"] = $contact_person->getPhone2(); $row["contact_person_email_$index"] = $contact_person->getEmail(); } else { $row["contact_person_last_name_$index"] = ''; $row["contact_person_first_name_$index"] = ''; $row["contact_person_phone_1_$index"] = ''; $row["contact_person_phone_2_$index"] = ''; $row["contact_person_email_$index"] = ''; } } if ($first_key === $key) { $writer->addRow(\Box\Spout\Writer\Common\Creator\WriterEntityFactory::createRowFromArray(array_keys($row))); } $writer->addRow(\Box\Spout\Writer\Common\Creator\WriterEntityFactory::createRowFromArray($row)); } $writer->close();
Treba ga malo formatirati.
Comments