public function insertValues(ExcelInputFile $excelInputFile, $subgroup, $origin, $destiny, $type, $variety, $font, $typeCountry = null, $internationalTrade = false) { $countries = $excelInputFile->getValuesOfColumn(1); $dataToSave = new ArrayObject(); foreach ($countries as $country) { if ($typeCountry == 'origin') { $origin = CacheCountry::getCountries()->getOrigins()->get(utf8_encode($country))->id(); if (is_null($origin)) { $origin = $this->countryMap->getOuthersForOrigin(); } if (!$internationalTrade) { $destiny = 0; } } elseif ($typeCountry == 'destiny') { $destiny = CacheCountry::getCountries()->getDestinies()->get(utf8_encode($country))->id(); if (is_null($destiny)) { $destiny = $this->countryMap->getOthersForDestiny(); } if (!$internationalTrade) { $origin = 0; } } else { $origin = CacheCountry::getCountries()->getOrigins()->get(utf8_encode($country))->id(); } $dataParam = new DataParam($subgroup, $font, $type, $variety, $origin, $destiny); $dataOfCurrentCountry = $this->getValuesWithSimpleFilter($dataParam); $yearsToInsert = $this->insertValuesIfACountryDoesNotHaveItStoredYet($dataOfCurrentCountry, $excelInputFile, $country); if ($yearsToInsert->count() > 0) { $this->getDataToSave($dataToSave, $yearsToInsert, $excelInputFile, $country, $subgroup, $font, $type, $variety, $origin, $destiny); } } return $this->repository->save($dataToSave); }
/** * @test */ public function testInsertValues() { $this->emptyDatabase(); $list = new ArrayObject(); $list->append($this->newData(1990, 235)); $list->append($this->newData(1991, 232)); $list->append($this->newData(1992, 458)); $this->daoRepository->save($list); $dataParam = new DataParam(1, 1, 1, 1, 1, 1); $values = $this->daoRepository->getValuesWithSimpleFilter($dataParam); $this->assertEquals(3, $values->count()); $values = $this->daoRepository->getValuesWithSimpleFilter($dataParam, array(1991, 1992)); $this->assertEquals(2, $values->count()); $values = $this->daoRepository->getValuesWithSimpleFilter($dataParam, 1990); $this->assertEquals(1, $values->count()); $this->assertEquals(1990, $values->offsetGet(0)->getYear()); }