migration company: some memo record, fixed term withour tode

This commit is contained in:
2018-12-10 12:41:32 +01:00
parent 97cacec418
commit ec103fffea
40 changed files with 1023 additions and 242 deletions

View File

@@ -38,7 +38,13 @@ process:
default_value: 0
source: '@parent_id'
changed: timestamp
langcode:
plugin: default_value
default_value: 'und'
field_migration:
plugin: default_value
default_value: 'migration_imported'
# FROM TODE (linked tode node)
field_website:
plugin: iterator

View File

@@ -108,7 +108,7 @@ class D7TaxonomyTermCompany extends FieldableEntity implements ContainerFactoryP
public function prepareRow(Row $row) {
$language = $row->getSourceProperty('language');
$tid = $row->getSourceProperty('tid');
drush_print('-- '.$language.' -- '.$tid." -- ".$row->getSourceProperty('name')." -- ".$row->getSourceProperty('weight'));
drush_print('-- '.$language."\t".$tid."\t".$row->getSourceProperty('name'));
// vocabulary machine name
$machine_name = $row->getSourceProperty('machine_name');
@@ -146,61 +146,78 @@ class D7TaxonomyTermCompany extends FieldableEntity implements ContainerFactoryP
->execute()->fetchField();
// drush_print('tode_nid: '.$tode_nid);
// get the tode fields
foreach ($this->getFields('node', 'company') as $field_name => $field) {
// Ensure we're using the right language if the entity is translatable.
$field_language = $field['translatable'] ? $language : NULL;
$field_values = $this->getFieldValues('node', $field_name, $tode_nid, null, $field_language);
// drush_print('tode_nid: ');
// print_r($tode_nid);
// drush_print(' ');
if($tode_nid){
// get the tode fields
foreach ($this->getFields('node', 'company') as $field_name => $field) {
// Ensure we're using the right language if the entity is translatable.
$field_language = $field['translatable'] ? $language : NULL;
$field_values = $this->getFieldValues('node', $field_name, $tode_nid, null, $field_language);
$row->setSourceProperty($field_name, $field_values);
}
// drush_print('body: ');
// print_r($row->getSourceProperty('body'));
$field_infos = $row->getSourceProperty('field_infos_from_company');
if(!empty($field_infos)){
drush_print('field_infos_from_company: ');
print_r($field_infos);
}
// make sure that field_website url is absolute
$field_website = $row->getSourceProperty('field_website');
if(isset($field_website[0]['url'])){
$url = $field_website[0]['url'];
if(!strpos($url, 'http://')){
$field_website[0]['url'] = 'http://'.$url;
$row->setSourceProperty('field_website', $field_website);
$row->setSourceProperty($field_name, $field_values);
}
}
// convert phone field with libphonenumber
$field_phone = $row->getSourceProperty('field_public_phone');
if(isset($field_phone[0]['number']) && !empty($field_phone[0]['number'])){
$national_number = $field_phone[0]['number'];
$region = strtoupper($field_phone[0]['country_codes']);
// isValidRegionCode($regionCode)
if($this->phoneUtils->isPossibleNumber($national_number, $region)){
$number = $this->phoneUtils->parse($national_number, $region);
$row->setSourceProperty('public_phone', $this->phoneUtils->format($number, PhoneNumberFormat::E164));
}else{
// add bad phone number to memo field
$memo .= "invalid phone number: ".$national_number.' region: '.$region."\n";
drush_print('WARNING: phone number invalide; number: '.$national_number.' region: '.$region);
// $body = $row->getSourceProperty('body');
// if(!empty($body)){
// drush_print('body: ');
// print_r($body);
// }
// $field_infos_from_company = $row->getSourceProperty('field_infos_from_company');
// if(!empty($field_infos_from_company)){
// drush_print('field_infos_from_company: ');
// print_r($field_infos_from_company);
// }
// make sure that field_website url is absolute
$field_website = $row->getSourceProperty('field_website');
if(isset($field_website[0]['url'])){
$url = $field_website[0]['url'];
if(!strpos($url, 'http://')){
$field_website[0]['url'] = 'http://'.$url;
$row->setSourceProperty('field_website', $field_website);
}
}
// convert phone field with libphonenumber
$field_phone = $row->getSourceProperty('field_public_phone');
if(isset($field_phone[0]['number']) && !empty($field_phone[0]['number'])){
$national_number = $field_phone[0]['number'];
$region = strtoupper($field_phone[0]['country_codes']);
// isValidRegionCode($regionCode)
if($this->phoneUtils->isPossibleNumber($national_number, $region)){
$number = $this->phoneUtils->parse($national_number, $region);
$row->setSourceProperty('public_phone', $this->phoneUtils->format($number, PhoneNumberFormat::E164));
}else{
// add bad phone number to memo field
$memo .= "#migration : invalid phone number: ".$national_number.' region: '.$region."\n";
drush_print('WARNING: phone number invalide; number: '.$national_number.' region: '.$region);
}
}
// TODO: attachment files
// no needs as there is no attachment field used for companies
// workflow
$query = $this->select('workflow_node', 'wn');
$query->fields('wn', ['sid']);
$query->condition('wn.nid', $tode_nid);
$results = $query->execute()->fetchField();
if(!$results){
$results = 2;
// add bad workflow to memo field
$memo .= "#migration : invalid workflow\n";
drush_print('WARNING: no workflow');
}
$row->setSourceProperty('workflow', $results);
}else{
// if no tode set workflow to hidden
$row->setSourceProperty('workflow', 2);
$memo .= "#migration : missing data from tode\n";
drush_print('WARNING: no tode');
}
// attachment files
// workflow
// get the workflow status
$query = $this->select('workflow_node', 'wn');
$query->fields('wn', ['sid']);
$query->condition('wn.nid', $tode_nid);
$results = $query->execute()->fetchField();
// drush_print('workflow query results : ', 0, null, false);
// drush_print_r($results);
$row->setSourceProperty('workflow', $results);
// record migration errors in field_memo
if(isset($memo)){
$field_memo = $row->getSourceProperty('field_memo');