public static function saveTamanho()
 {
     $TamanhoDao = new TamanhoDao();
     $nome_tamanho = isset($_POST['nome_tamanho']) ? $_POST['nome_tamanho'] : '';
     $empreendimentos = isset($_POST['empreendimentos']) ? $_POST['empreendimentos'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O tamanho é obrigatório')->set('nome_tamanho', $nome_tamanho)->is_required();
     $validator->set_msg('Informe ao menos um empreendimento')->set('empreendimentos', $empreendimentos)->is_arr();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $emp_cadastrados = $TamanhoDao->CorTamanhoExists($nome_tamanho, $empreendimentos);
     $change = is_bool($emp_cadastrados) ? true : !$emp_cadastrados['change'];
     $id_tamanho = is_bool($emp_cadastrados) ? null : $emp_cadastrados['id_tamanho'];
     $emp_cadastrados = is_bool($emp_cadastrados) ? $emp_cadastrados : $emp_cadastrados['empreendimentos'];
     if (is_bool($emp_cadastrados) && $emp_cadastrados == true) {
         $validator->_errors['nome_tamanho'][] = 'Está tamanho já está cadastrada';
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $empreendimentos = $emp_cadastrados;
     $last_id = $TamanhoDao->saveTamanho($nome_tamanho, $empreendimentos, $change, $id_tamanho);
     if ($last_id) {
         Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('id' => $last_id)))->send();
     } else {
         Flight::halt(500, 'erro ao inserir cor');
     }
 }
 public static function requestSaveTamanho()
 {
     try {
         $id_empreendimento = $_POST['id_empreendimento'];
         $tamanho = $_POST['tamanho'];
         $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao();
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $PrestaShopDao = new PrestaShopDao($id_empreendimento);
         $TamanhoDao = new TamanhoDao();
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop';
         $ReferenciaIntegracaoTO->tabela = 'tbl_tamanho';
         $ReferenciaIntegracaoTO->id_item = null;
         $ReferenciaIntegracaoTO->id_item_referencia = $tamanho['id_attribute'];
         $ReferenciaIntegracaoTO->tipo = 'tamanho';
         $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento;
         $referencia = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoTO, true);
         if ($referencia) {
             $obj = new stdClass();
             $obj->nome_tamanho = $tamanho['name'];
             if (!$TamanhoDao->updateTamanho($obj, 'id=' . $referencia['id_item'])) {
                 throw new Exception('Erro ao atualizar Tamanho', 1);
             }
         } else {
             $last_id = $TamanhoDao->saveTamanho($tamanho['name'], array($id_empreendimento), true);
             if (!is_numeric($last_id)) {
                 throw new Exception('Erro ao cadastrar Tamanho', 1);
             }
             $ReferenciaIntegracaoTO->id_item = $last_id;
             if (!$ReferenciaIntegracaoDao->save($ReferenciaIntegracaoTO)) {
                 throw new Exception('Erro ao criar referencia no sistema', 1);
             }
         }
     } catch (Exception $e) {
         $log = new KLogger("logs/logErrorPrestaShop.txt", KLogger::DEBUG);
         $log->LogError($e->getMessage() . '- file:' . $e->getFile() . ' - line:' . $e->getLine());
         $log->LogDebug(json_encode($_POST));
         $log->LogJunp();
         Flight::halt(500, $e->getMessage());
     }
 }