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); }
public function saveValues(ExcelInputFile $excelInputFile, $subgroup, $font, $origin, $destiny, $coffeType, $variety, $typeCountry = null, $internationalTrade = false) { if (SessionAdmin::isLogged()) { CacheCountry::setCacheBehavior(SessionAdmin::getCacheBehavior()); try { if (!is_null($typeCountry)) { $countries = $excelInputFile->getValuesOfColumn(1); $wrongSelected = $this->countriesSelectedAreCorrect($typeCountry, $countries); if (sizeof($wrongSelected) > 0) { $nameOfWrongCountries = $this->countriesAsString($wrongSelected); $message = "- Os seguintes países presentes na planilha (" . utf8_encode($nameOfWrongCountries) . ") não correspondem ao grupo que você selecionou."; $message .= "\n\n"; $message .= "\t- Confirme se os países existem na lista (origem ou destino) que você selecionou;"; $message .= "\n\n"; $message .= "\t- Verifique se falta acentuação no nome do país da planinha selecionada."; $message .= "\n\n"; $message .= "\t- Também certifique-se de que os nomes dos países estejam em português e sem abreviações"; throw new WrongFormatException($message); } } if ($this->datacenterService->insertValues($excelInputFile, $subgroup, $origin, $destiny, $coffeType, $variety, $font, $typeCountry, $internationalTrade)) { return $this->jsonResponse->response(true, "Dados inseridos com sucesso!")->serialize(); } else { $message = "Dados não inseridos. Verifique a possibilidade de já existirem dados referentes a esta planilha"; return $this->jsonResponse->response(true, $message)->serialize(); } } catch (Exception $e) { return $this->jsonResponse->response(false, $e->getMessage())->serialize(); } } else { throw new LoginException(); } }