コード例 #1
0
 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);
 }
コード例 #2
0
 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();
     }
 }