Add special cases to import customer command #73
This commit is contained in:
parent
36ac62a2ad
commit
f076827879
2 changed files with 32967 additions and 9 deletions
32780
data/cv_import.csv
32780
data/cv_import.csv
File diff suppressed because it is too large
Load diff
|
|
@ -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
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -101,10 +263,23 @@ class ImportCustomerCommand extends Command
|
|||
return null;
|
||||
}
|
||||
$mfg = $this->mfg_index[$mfg_name];
|
||||
$mfg_id = $mfg->getID();
|
||||
|
||||
// check 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;
|
||||
}
|
||||
|
||||
// get year from and to from model
|
||||
if (empty($model))
|
||||
|
|
@ -136,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