public static function excluiEstoqueProduto() { $produtos = isset($_POST['produtos']) ? $_POST['produtos'] : array(); $id_empreendimento = $_POST['id_empreendimento']; $id_usuario = $_POST['id_usuario']; $ids_estoque_produto = null; foreach ($produtos as $produto) { if (!is_array($ids_estoque_produto)) { $ids_estoque_produto = array(); } $ids_estoque_produto[] = $produto['id_estoque_produto']; } $validator = new DataValidator(); $validator->set_msg('Informe ao menos um item para excluir')->set('id_estoque_produto', $ids_estoque_produto)->is_required(); if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } try { $estoque_dao = new EstoqueDao(); $EstoqueSaidaTO = new EstoqueSaidaTO(); $EstoqueSaidaDao = new EstoqueSaidaDao(); $conn = Conexao::getInstance(); if (!$conn->inTransaction()) { $conn->beginTransaction(); } $ret = $estoque_dao->excluiEstoqueProduto($ids_estoque_produto); $EstoqueSaidaTO->id_empreendimento = $id_empreendimento; $EstoqueSaidaTO->id_usuario = $id_usuario; $EstoqueSaidaTO->flg_limpeza_estoque = 1; $id_estoque_saida = $EstoqueSaidaDao->saveEstoqueSaida($EstoqueSaidaTO); if (!$id_estoque_saida) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Ocorreu um erro. Tente novamente mais tarde!!!'); } foreach ($produtos as $produto) { $ItemEstoqueSaidaTO = new ItemEstoqueSaidaTO(); $ItemEstoqueSaidaDao = new ItemEstoqueSaidaDao(); $ItemEstoqueSaidaTO->id_estoque_saida = $id_estoque_saida; $ItemEstoqueSaidaTO->id_deposito = $produto['id_deposito']; $ItemEstoqueSaidaTO->id_produto = $produto['id_produto']; $ItemEstoqueSaidaTO->dta_validade = $produto['dta_validade']; $ItemEstoqueSaidaTO->qtd_item = $produto['qtd_saida']; if (!$ItemEstoqueSaidaDao->saveItemEstoqueSaida($ItemEstoqueSaidaTO)) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Ocorreu um erro. Tente novamente mais tarde!!'); } } if ($ret) { Flight::halt(200, 'Estoque atualizado com sucesso!'); } else { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Ocorreu um erro. Tente novamente mais tarde!'); } } catch (PDOException $e) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, $e->getMessage()); } }