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());
     }
 }