Merge branch '73-vehicle-migration-manual-fixes' into 'master'

Resolve "Vehicle migration manual fixes"

Closes #73

See merge request jankstudio/resq!60
This commit is contained in:
Kendrick Chan 2018-04-05 19:42:36 +00:00
commit 6d23a747ca
3 changed files with 33963 additions and 12 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -73,7 +73,23 @@ class ImportCustomerCommand extends Command
$this->mfg_index = []; $this->mfg_index = [];
foreach ($mfgs as $mfg) 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 = []; $this->vehicle_index = [];
foreach ($vs as $v) 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 // search for manufacturer
$mfg_name = trim($row[self::F_V_BRAND]); $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])) 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; return null;
} }
$mfg = $this->mfg_index[$mfg_name]; $mfg = $this->mfg_index[$mfg_name];
$mfg_id = $mfg->getID();
// check if empty make // check if empty make
$make = strtoupper(trim($row[self::F_V_MAKE]));
if (empty($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; return null;
}
// get year from and to from model // get year from and to from model
$model = trim($row[self::F_V_MODEL]);
if (empty($model)) if (empty($model))
$model = 'NONE'; $model = 'NONE';
@ -135,17 +311,26 @@ class ImportCustomerCommand extends Command
} }
// search for make and model from index // 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 // 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! // 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; 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)"); $output->writeln("vehicle make and model not found: $mfg_name - $make ($model_index)");