public static function saveCategoria() { $CategoriaTO = new CategoriaTO(); $CategoriaDao = new CategoriaDao(); $CategoriaTO->descricao_categoria = isset($_POST['descricao_categoria']) ? $_POST['descricao_categoria'] : ''; $CategoriaTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : ''; $CategoriaTO->id_pai = isset($_POST['id_pai']) ? $_POST['id_pai'] : NULL; $validator = new DataValidator(); $validator->set_msg('O nome do Categoria é obrigatório')->set('descricao_categoria', $CategoriaTO->descricao_categoria)->is_required(); $validator->set_msg('O id do Empreendimento é obrigatório')->set('id_empreendimento', $CategoriaTO->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 { $last_id = $CategoriaDao->saveCategoria($CategoriaTO); $empreendimentosAssociados = $_POST['empreendimentos']; if ($last_id) { foreach ($empreendimentosAssociados as $key => $empreendimento) { if (!$CategoriaDao->associarEmpreendimento($last_id, $empreendimento['id'])) { Flight::halt(500, 'Erro ao cadastrar o categoria'); } } Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('categoria' => array('id' => $last_id))))->send(); } else { Flight::halt(500, 'Erro ao cadastrar a categoria'); } } catch (Exception $e) { Flight::halt(500, $e->getMessage()); } }
public static function requestSaveCategoria() { try { $categoria = $_POST['categoria']; $id_empreendimento = $_POST['id_empreendimento']; $CategoriaTO = new CategoriaTO(); $CategoriaDao = new CategoriaDao(); $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao(); if ($categoria['id_parent'] > 2) { $ReferenciaIntegracaoParentTO = new ReferenciaIntegracaoTO(); $ReferenciaIntegracaoParentTO->sistema_integrado = 'PrestaShop'; $ReferenciaIntegracaoParentTO->tabela = 'tbl_categorias'; $ReferenciaIntegracaoParentTO->id_item_referencia = $categoria['id_parent']; $ReferenciaIntegracaoParentTO->tipo = 'categoria'; $ReferenciaIntegracaoParentTO->id_empreendimento = $id_empreendimento; $referenciaParent = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoParentTO, true); if (!$referenciaParent) { throw new Exception('Não existe uma referencia para a categoria pai #' . $categoria['id_parent'], 1); } } else { $referenciaParent = array('id_item' => NULL); } $CategoriaTO->descricao_categoria = $categoria['name'][1]; $CategoriaTO->id_empreendimento = $id_empreendimento; $CategoriaTO->id_pai = !empty($categoria['id_parent']) ? $referenciaParent['id_item'] : 2; $last_id = $CategoriaDao->saveCategoria($CategoriaTO); if (!$last_id) { throw new Exception('Erro ao criar categoria', 1); } if (!$CategoriaDao->associarEmpreendimento($last_id, $id_empreendimento)) { throw new Exception('Erro associar categoria a empreendimento', 1); } $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO(); $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao(); $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop'; $ReferenciaIntegracaoTO->tabela = 'tbl_categorias'; $ReferenciaIntegracaoTO->id_item = $last_id; $ReferenciaIntegracaoTO->tipo = 'categoria'; $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento; $ReferenciaIntegracaoTO->id_item_referencia = $categoria['id']; if (!$ReferenciaIntegracaoDao->save($ReferenciaIntegracaoTO)) { throw new Exception('Erro associar categoria a empreendimento', 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()); } }