Resolve "Vehicle migration manual fixes" #871
3 changed files with 33963 additions and 12 deletions
32780
data/cv_import.csv
32780
data/cv_import.csv
File diff suppressed because it is too large
Load diff
992
sql/resq.import_data.20180405.sql
Normal file
992
sql/resq.import_data.20180405.sql
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -73,7 +73,23 @@ class ImportCustomerCommand extends Command
|
|||
$this->mfg_index = [];
|
||||
foreach ($mfgs as $mfg)
|
||||
{
|
||||
$this->mfg_index[$mfg->getName()] = $mfg;
|
||||
$name = $mfg->getName();
|
||||
$this->mfg_index[$name] = $mfg;
|
||||
|
||||
// exceptions and special cases
|
||||
switch ($name)
|
||||
{
|
||||
case 'PROTON':
|
||||
$this->mfg_index['PROTON WIRA'] = $mfg;
|
||||
break;
|
||||
case 'OWNER TYPE JEEP':
|
||||
$this->mfg_index['UNKNOWN'] = $mfg;
|
||||
break;
|
||||
case 'GOLF CART':
|
||||
$this->mfg_index['YAMAHA'] = $mfg;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -84,7 +100,153 @@ class ImportCustomerCommand extends Command
|
|||
$this->vehicle_index = [];
|
||||
foreach ($vs as $v)
|
||||
{
|
||||
$this->vehicle_index[strtoupper($v->getMake())][$v->getModelYearFormatted()] = $v;
|
||||
$make = strtoupper($v->getMake());
|
||||
$mfg_id = $v->getManufacturer()->getID();
|
||||
$model = $v->getModelYearFormatted();
|
||||
$this->vehicle_index[$mfg_id][$make][$model] = $v;
|
||||
|
||||
// exceptions and special cases for makes
|
||||
switch ($make)
|
||||
{
|
||||
case 'ALMERA':
|
||||
$this->vehicle_index[$mfg_id]['ALMIRA'][$model] = $v;
|
||||
break;
|
||||
case 'TRAILBLAZER':
|
||||
$this->vehicle_index[$mfg_id]['TRAILBLAZER 2013 LOW'][$model] = $v;
|
||||
$this->vehicle_index[$mfg_id]['TRAILBLAZER 2014'][$model] = $v;
|
||||
break;
|
||||
case 'INNOVA (E-TYPE)':
|
||||
$this->vehicle_index[$mfg_id]['INNOVA GAS E'][$model] = $v;
|
||||
break;
|
||||
case 'INNOVA (G-TYPE)':
|
||||
$this->vehicle_index[$mfg_id]['INNOVA GAS G'][$model] = $v;
|
||||
break;
|
||||
case 'INNOVA (V-TYPE)':
|
||||
$this->vehicle_index[$mfg_id]['INNOVA GAS V'][$model] = $v;
|
||||
break;
|
||||
case 'INNOVA (J-TYPE)':
|
||||
$this->vehicle_index[$mfg_id]['INNOVA GAS J'][$model] = $v;
|
||||
break;
|
||||
case 'RAV 4':
|
||||
$this->vehicle_index[$mfg_id]['RAV-4'][$model] = $v;
|
||||
break;
|
||||
case 'GOLFCART':
|
||||
$this->vehicle_index[$mfg_id]['GOLF CART'][$model] = $v;
|
||||
break;
|
||||
case 'FORESTER 2.5':
|
||||
$this->vehicle_index[$mfg_id]['FORESTER 2.0 AND 2.5'][$model] = $v;
|
||||
break;
|
||||
case 'MU-X 2.5LI 4X2/3.0LI 4X4':
|
||||
$this->vehicle_index[$mfg_id]['MUX'][$model] = $v;
|
||||
break;
|
||||
case 'ADVENTURE GLX':
|
||||
$this->vehicle_index[$mfg_id]['ADVENTURE GAS'][$model] = $v;
|
||||
break;
|
||||
case 'CIVIC 1.8':
|
||||
$this->vehicle_index[$mfg_id]['NEW CIVIC 1.8 V AT'][$model] = $v;
|
||||
$this->vehicle_index[$mfg_id]['NEW CIVIC 1.8 V MT'][$model] = $v;
|
||||
break;
|
||||
case 'LAND CRUISER / PRADO (GASOLINE)':
|
||||
$this->vehicle_index[$mfg_id]['PRADO'][$model] = $v;
|
||||
break;
|
||||
case 'MAZDA 3 / 2 / 6 ISTOP':
|
||||
$this->vehicle_index[$mfg_id]['MAZADA 3 / 2 / 6 ISTOP'][$model] = $v;
|
||||
break;
|
||||
case 'SORENTO':
|
||||
$this->vehicle_index[$mfg_id]['SORENTO 7-SEATER AT'][$model] = $v;
|
||||
break;
|
||||
case 'CX5':
|
||||
$this->vehicle_index[$mfg_id]['CX-5'][$model] = $v;
|
||||
break;
|
||||
case 'ACCORD 3.5 S - V AT V6':
|
||||
$this->vehicle_index[$mfg_id]['ACCORD 3.5 S - V AT V6 (BRILLIANT WHITE PEARL)'][$model] = $v;
|
||||
break;
|
||||
case 'POLO NOTCH 1.6 MPI AT (GAS)':
|
||||
$this->vehicle_index[$mfg_id]['POLO HATCH 1.6 MPI AT (GAS)'][$model] = $v;
|
||||
break;
|
||||
case 'BB':
|
||||
$this->vehicle_index[$mfg_id]['TOYOTA BB'][$model] = $v;
|
||||
break;
|
||||
case 'BRIO AMAZE':
|
||||
$this->vehicle_index[$mfg_id]['BRIO-AMAZE'][$model] = $v;
|
||||
break;
|
||||
case 'CRV':
|
||||
$this->vehicle_index[$mfg_id]['CR-V 1.5 I-DTEC'][$model] = $v;
|
||||
break;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// special cases for models
|
||||
switch ($make)
|
||||
{
|
||||
case 'CIVIC':
|
||||
if ($model == '1991 - 2000')
|
||||
$this->vehicle_index[$mfg_id][$make]['2000 - down'] = $v;
|
||||
if ($model == '2001 - 2005')
|
||||
$this->vehicle_index[$mfg_id][$make]['2002 - 2006'] = $v;
|
||||
if ($model == '2006 - 2018')
|
||||
$this->vehicle_index[$mfg_id][$make]['2006*'] = $v;
|
||||
break;
|
||||
case 'MONTERO SPORTS':
|
||||
if ($model == '-')
|
||||
$this->vehicle_index[$mfg_id][$make]['2010 AND 2014'] = $v;
|
||||
break;
|
||||
case 'FOCUS':
|
||||
if ($model == '2005 - 2013')
|
||||
$this->vehicle_index[$mfg_id][$make]['2013 - down'] = $v;
|
||||
if ($model == '2014 - 2018')
|
||||
$this->vehicle_index[$mfg_id][$make]['2005 - 2018'] = $v;
|
||||
break;
|
||||
case 'RANGER':
|
||||
if ($model == '1999 - 2014')
|
||||
$this->vehicle_index[$mfg_id][$make]['1999 - 2018'] = $v;
|
||||
break;
|
||||
case 'LANCER MX*':
|
||||
if ($model == '2000 - 2018')
|
||||
$this->vehicle_index[$mfg_id][$make]['2010'] = $v;
|
||||
break;
|
||||
case 'VIOS':
|
||||
if ($model == '2006')
|
||||
$this->vehicle_index[$mfg_id][$make]['2006 - down'] = $v;
|
||||
break;
|
||||
case 'RAV 4':
|
||||
if ($model == '2007 - 2018')
|
||||
$this->vehicle_index[$mfg_id]['RAV-4']['2007'] = $v;
|
||||
if ($model == '1996 - 2018')
|
||||
$this->vehicle_index[$mfg_id]['RAV-4']['2002 - 2006'] = $v;
|
||||
$this->vehicle_index[$mfg_id]['RAV-4']['2001 - down'] = $v;
|
||||
break;
|
||||
case 'ACCENT GL 1.5 CRDI MT':
|
||||
if ($model == '2004 - 2013')
|
||||
$this->vehicle_index[$mfg_id][$make]['2004 - 2018'] = $v;
|
||||
if ($model == '2014 - 2018')
|
||||
$this->vehicle_index[$mfg_id][$make]['2013 to Present'] = $v;
|
||||
break;
|
||||
case 'TUCSON CRDI DSL 4X2 AT':
|
||||
if ($model == '2004 - 2011')
|
||||
$this->vehicle_index[$mfg_id][$make]['2004 - 2018'] = $v;
|
||||
break;
|
||||
case 'FORTUNER (DIESEL)':
|
||||
if ($model == '2005 - 2016')
|
||||
$this->vehicle_index[$mfg_id][$make]['2005 - 2018'] = $v;
|
||||
if ($model == '2016 - 2018')
|
||||
$this->vehicle_index[$mfg_id][$make]['2016'] = $v;
|
||||
break;
|
||||
case 'CAMRY':
|
||||
if ($model == '2007 - 2018')
|
||||
$this->vehicle_index[$mfg_id][$make]['2007 - 0n'] = $v;
|
||||
break;
|
||||
case 'GRAND VITARA':
|
||||
if ($model == '2007 - 2018')
|
||||
$this->vehicle_index[$mfg_id][$make]['2007 - 0n'] = $v;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// exceptions and special cases for model
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -92,20 +254,34 @@ class ImportCustomerCommand extends Command
|
|||
{
|
||||
// search for manufacturer
|
||||
$mfg_name = trim($row[self::F_V_BRAND]);
|
||||
$make = strtoupper(trim($row[self::F_V_MAKE]));
|
||||
$model = trim($row[self::F_V_MODEL]);
|
||||
|
||||
if (!isset($this->mfg_index[$mfg_name]))
|
||||
{
|
||||
$output->writeln('manufacturer not found: ' . $mfg_name);
|
||||
$output->writeln('manufacturer not found: ' . $mfg_name . ' - ' . $make . ' - ' . $model);
|
||||
return null;
|
||||
}
|
||||
$mfg = $this->mfg_index[$mfg_name];
|
||||
$mfg_id = $mfg->getID();
|
||||
|
||||
// check if empty make
|
||||
$make = strtoupper(trim($row[self::F_V_MAKE]));
|
||||
if (empty($make))
|
||||
{
|
||||
// check if the manufacturer has only one make anyway
|
||||
if (count($this->vehicle_index[$mfg_id]) == 1)
|
||||
{
|
||||
// get first make
|
||||
$first_make = reset($this->vehicle_index[$mfg_id]);
|
||||
$first_model = reset($first_make);
|
||||
return $first_model;
|
||||
}
|
||||
|
||||
$output->writeln('no make specified: ' . $mfg_name);
|
||||
return null;
|
||||
}
|
||||
|
||||
// get year from and to from model
|
||||
$model = trim($row[self::F_V_MODEL]);
|
||||
if (empty($model))
|
||||
$model = 'NONE';
|
||||
|
||||
|
|
@ -135,17 +311,26 @@ class ImportCustomerCommand extends Command
|
|||
}
|
||||
|
||||
// search for make and model from index
|
||||
if (!isset($this->vehicle_index[$make][$model_index]))
|
||||
if (!isset($this->vehicle_index[$mfg_id][$make][$model_index]))
|
||||
{
|
||||
// check if we match make but not model
|
||||
if (isset($this->vehicle_index[$make]))
|
||||
if (isset($this->vehicle_index[$mfg_id][$make]))
|
||||
{
|
||||
// is there only one entry in the index? that's the one!
|
||||
if (count($this->vehicle_index[$make]) == 1)
|
||||
if (count($this->vehicle_index[$mfg_id][$make]) == 1)
|
||||
{
|
||||
$vehicle = reset($this->vehicle_index[$make]);
|
||||
$vehicle = reset($this->vehicle_index[$mfg_id][$make]);
|
||||
return $vehicle;
|
||||
}
|
||||
|
||||
// handle blank model year
|
||||
if ($model_index == '-')
|
||||
{
|
||||
$vehicle = reset($this->vehicle_index[$mfg_id][$make]);
|
||||
return $vehicle;
|
||||
}
|
||||
|
||||
// special cases
|
||||
}
|
||||
|
||||
$output->writeln("vehicle make and model not found: $mfg_name - $make ($model_index)");
|
||||
|
|
|
|||
Loading…
Reference in a new issue