id materio

materieau = fixe famille, identifiant (against computer filed)
company = fixe multiple comp. with same names
+ misc

Signed-off-by: bachy <git@g-u-i.net>
This commit is contained in:
bachy 2012-05-18 22:43:06 +02:00
parent 93b7db54fe
commit 9e85e7a105
2 changed files with 40 additions and 24 deletions

View File

@ -14,8 +14,8 @@ class MaterioCompanyMigration extends MaterioBasicMigration {
'id_industrial' => t('Industrial id from source'),
'department'=> t('en-fr department implemented on prepare'),
'language'=> t('en-fr langauge description, used in prepare'),
'premise'=>t('premise'),
'sub_premise'=>t('sub_premise'),
'premise'=>'',
'sub_premise'=>'',
);
$query = db_select(MIG_MAT_SRC_DB .'.industrial_id', 'iid');
@ -79,7 +79,6 @@ class MaterioCompanyMigration extends MaterioBasicMigration {
$this->addFieldMapping(NULL, 'department_fr');
$arguments = array(
// 'name_line' => array('source_field' => 'name'),
'thoroughfare' => array('source_field' => 'address'),
'premise' => array('source_field' => 'premise'),
'sub_premise' => array('source_field' => 'sub_premise'),
@ -106,13 +105,11 @@ class MaterioCompanyMigration extends MaterioBasicMigration {
$arguments = array(
'number' => array('source_field' => 'tel1'),
// 'extension' => array('source_field' => 'ccode1_contact'),
);
$this->addFieldMapping('field_public_phone', 'ccode1')
->arguments($arguments);
$this->addFieldMapping(NULL, 'tel1');
// $this->addFieldMapping(NULL, 'ccode1_contact');
$this->addFieldMapping(NULL, 'tel2');
$this->addFieldMapping(NULL, 'ccode2');
$this->addFieldMapping(NULL, 'tel3');
@ -147,18 +144,20 @@ class MaterioCompanyMigration extends MaterioBasicMigration {
$cr->city = preg_replace('/\\n/', ' ', $cr->city);
$cr->department = array($cr->department_en, $cr->department_fr);
// $cr->contact_quality = array($cr->contact_quality_en, $cr->contact_quality_fr);
// $cr->admin_quality = array($cr->admin_quality_en, $cr->admin_quality_fr);
$cr->language = array('en', 'fr');
$cr->web_title = str_replace('http://', '', $cr->web);
$cr->web = 'http://' . $cr->web_title;
/*
TODO multiple company with same name
how to force new term creation ?
then how to recognize the right comp. with materieaux ?
*/
$cr->company = trim($cr->company);
// if($cr->email_general != "")
// $cr->email_sample .= ','.$cr->email_general;
$same_comp = taxonomy_get_term_by_name($cr->company);
if(count($same_comp))
$cr->company .= '-'.$cr->id_industrial;
$ccs = cck_phone_countrycodes();
$match = 0;

View File

@ -19,6 +19,9 @@ class MaterioMateriauNodeMigration extends MaterioBasicMigration {
'description'=> t('en-fr description implemented on prepare'),
'nature'=> t('en-fr nature implemented on prepare'),
'language'=> t('en-fr langauge description, used in prepare'),
'family' => '',
'localisation' => '',
'identifiant' => '',
);
$query = db_select(MIG_MAT_SRC_DB .'.product_id', 'pid');
@ -86,6 +89,10 @@ class MaterioMateriauNodeMigration extends MaterioBasicMigration {
$this->addFieldMapping(null, 'quarity');
$this->addFieldMapping('field_onthologie')->defaultValue(null);
$this->addFieldMapping('field_famille', 'family');
$this->addFieldMapping('field_localisation', 'localisation');
$this->addFieldMapping('field_identifiant', 'identifiant');
}
@ -103,7 +110,8 @@ class MaterioMateriauNodeMigration extends MaterioBasicMigration {
foreach ($infos_fr as $record)
$infos['fr'] = $record;
$infos['fr']->description .= "<br />technical : ".$infos['fr']->technical; // . "<br />usage".$infos['fr']->usage
if($infos['fr']->technical != '')
$infos['fr']->description .= "<br />technical : ".$infos['fr']->technical; // . "<br />usage".$infos['fr']->usage
$infos_en = db_select(MIG_MAT_SRC_DB .'.product_info', 'pif_en')
->condition('pif_en.id_locale', 1)
@ -114,7 +122,8 @@ class MaterioMateriauNodeMigration extends MaterioBasicMigration {
foreach ($infos_en as $record)
$infos['en'] = $record;
$infos['en']->description .= "<br />technical : ".$infos['en']->technical; // . "<br />usage".$infos['en']->usage
if($infos['en']->technical != '')
$infos['en']->description .= "<br />technical : ".$infos['en']->technical; // . "<br />usage".$infos['en']->usage
$cr->title = $infos['fr']->name;
$cr->name = array($infos['en']->name, $infos['fr']->name);
@ -126,7 +135,6 @@ class MaterioMateriauNodeMigration extends MaterioBasicMigration {
$cr->memo .= ($cr->memo != '' ? "\n\n" : '') . $infos['fr']->keywords;
# parse companies
// dsm($cr->list_industrial, '-- $cr->list_industrial');
// dsm($cr->list_quarity, '$cr->list_quarity');
@ -139,13 +147,16 @@ class MaterioMateriauNodeMigration extends MaterioBasicMigration {
$l = count($industrials);
for ($i=0; $i < $l; $i++) {
$result = db_select(MIG_MAT_SRC_DB .'.industrial_info', 'iif')
->fields('iif', array('company'))
->fields('iif', array('id_industrial', 'company'))
->condition('iif.id_industrial', $industrials[$i])
->distinct()->execute();
foreach ($result as $record) {
// dsm($record);
$company = trim($record->company);
$same_comp = taxonomy_get_term_by_name($company);
if(count($same_comp))
$company .= '-'.$record->id_industrial;
if($quarities[$i] == 'M'){
$companies_fab[] = $company;
@ -158,28 +169,34 @@ class MaterioMateriauNodeMigration extends MaterioBasicMigration {
$cr->company_fab = implode(',', $companies_fab);
$cr->company_distrib = implode(',', $companies_distrib);
//
// preg_match('/^(\w)([^-]+)-(\d+)$/', $cr->id_materio, $matches);
preg_match('/^(\w)([^-]+)-(\d+)$/', $cr->id_materio, $matches);
// dsm($matches);
//
$cr->family = $matches[1];
$cr->localisation = $matches[2];
$cr->identifiant = $matches[3];
return TRUE;
}
public function prepare($node, stdClass $row) {
// dsm('-- prepare --');
// dsm($node, '$node');
// dsm($row, '$row');
$node->workflow = 4;
// $node->field_public_email = array('und'=>array($row->email_contact));
$node->field_identifiant['und'][0]['value'] = $row->identifiant;
}
// public function complete($node, $row) {
// // dsm('-- complete --');
// // // Do what you need to do to
// // dsm($row, '$row');
// // dsm($node, '$node');
//
// }