public static function saveFabricante()
 {
     $FabricanteTO = new FabricanteTO();
     $FabricanteDao = new FabricanteDao();
     $FabricanteTO->nome_fabricante = isset($_POST['nome_fabricante']) ? $_POST['nome_fabricante'] : '';
     $FabricanteTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O nome do Fabricante é obrigatório')->set('nome_fabricante', $FabricanteTO->nome_fabricante)->is_required();
     $validator->set_msg('O id do Empreendimento é obrigatório')->set('id_empreendimento', $FabricanteTO->id_empreendimento)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $empreendimentosAssociados = $_POST['empreendimentos'];
         $id = $FabricanteDao->saveFabricante($FabricanteTO);
         if ($id) {
             foreach ($empreendimentosAssociados as $key => $empreendimento) {
                 if (!$FabricanteDao->associarEmpreendimento($id, $empreendimento['id'])) {
                     Flight::halt(500, 'Erro ao cadastrar o fabricante');
                 }
             }
             $fabricante = array('fabricante' => array('id' => $id));
             Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode($fabricante))->send();
             return;
             Flight::halt(201, 'Operação realizada com successo!');
         } else {
             Flight::halt(500, 'Erro ao cadastrar o fabricante');
         }
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function requestSaveFabricante()
 {
     try {
         $fabricante = $_POST['fabricante'];
         $id_empreendimento = $_POST['id_empreendimento'];
         $FabricanteTO = new FabricanteTO();
         $FabricanteDao = new FabricanteDao();
         $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao();
         $FabricanteTO->nome_fabricante = $fabricante['name'];
         $FabricanteTO->id_empreendimento = $id_empreendimento;
         $id = $FabricanteDao->saveFabricante($FabricanteTO);
         if (!$id) {
             throw new Exception('Erro ao criar fabricante', 1);
         }
         if (!$FabricanteDao->associarEmpreendimento($id, $id_empreendimento)) {
             throw new Exception('Erro ao associar empreendimento ao fabricante', 1);
         }
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop';
         $ReferenciaIntegracaoTO->tabela = 'tbl_fabricante';
         $ReferenciaIntegracaoTO->id_item = $id;
         $ReferenciaIntegracaoTO->id_item_referencia = $fabricante['id'];
         $ReferenciaIntegracaoTO->tipo = 'fabricante';
         $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento;
         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() . ' - line:' . $e->getLine());
         $log->LogDebug(json_encode($_POST));
         $log->LogJunp();
         Flight::halt(500, $e->getMessage());
     }
 }