public static function saveCorProduto()
 {
     $CorProdutoDao = new CorProdutoDao();
     $nome_cor = isset($_POST['nome_cor']) ? $_POST['nome_cor'] : '';
     $empreendimentos = isset($_POST['empreendimentos']) ? $_POST['empreendimentos'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O nome da cor/sabor é obrigatório')->set('nome_cor', $nome_cor)->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 = $CorProdutoDao->CorProdutoExists($nome_cor, $empreendimentos);
     $change = is_bool($emp_cadastrados) ? true : !$emp_cadastrados['change'];
     $id_cor_produto = is_bool($emp_cadastrados) ? null : $emp_cadastrados['id_cor_produto'];
     $emp_cadastrados = is_bool($emp_cadastrados) ? $emp_cadastrados : $emp_cadastrados['empreendimentos'];
     if (is_bool($emp_cadastrados) && $emp_cadastrados == true) {
         $validator->_errors['nome_cor'][] = 'Está cor 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 = $CorProdutoDao->saveCorProduto($nome_cor, $empreendimentos, $change, $id_cor_produto);
     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 requestSaveCor()
 {
     try {
         $id_empreendimento = $_POST['id_empreendimento'];
         $cor = $_POST['cor'];
         $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao();
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $PrestaShopDao = new PrestaShopDao($id_empreendimento);
         $CorProdutoDao = new CorProdutoDao();
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop';
         $ReferenciaIntegracaoTO->tabela = 'tbl_cor_produto';
         $ReferenciaIntegracaoTO->id_item = null;
         $ReferenciaIntegracaoTO->id_item_referencia = $cor['id_attribute'];
         $ReferenciaIntegracaoTO->tipo = 'cor';
         $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento;
         $referencia = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoTO, true);
         if ($referencia) {
             $obj = new stdClass();
             $obj->nome_cor = $cor['name'];
             if (!$CorProdutoDao->updateCor($obj, 'id=' . $referencia['id_item'])) {
                 throw new Exception('Erro ao atualizar cor', 1);
             }
         } else {
             $last_id = $CorProdutoDao->saveCorProduto($cor['name'], array($id_empreendimento), true);
             if (!is_numeric($last_id)) {
                 throw new Exception('Erro ao cadastrar cor', 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());
     }
 }