public static function changeStatusPedido($id_pedido, $id_status_pedido, $id_deposito = null)
 {
     $PedidoVendaDao = new PedidoVendaDao();
     $Conexao = new Conexao();
     $Conexao->beginTransaction();
     if ((int) $id_status_pedido == 2) {
         $PedidoVendaDao = new PedidoVendaDao();
         $EstoqueDao = new EstoqueDao();
         $ItemPedidoVendaDao = new ItemPedidoVendaDao();
         $pedido_venda = $PedidoVendaDao->getPedidoVenda($id_pedido);
         $pedido_venda['itens'] = $ItemPedidoVendaDao->getItens($id_pedido, null, null);
         $arr_qtd = array();
         $out = array();
         foreach ($pedido_venda['itens'] as $x => $y) {
             if (!isset($arr_qtd[$y['id_produto']])) {
                 $arr_qtd[$y['id_produto']] = 0;
             }
             $arr_qtd[$y['id_produto']] += (int) $y['qtd'];
         }
         foreach ($arr_qtd as $id_produto => $value) {
             $id_empreendimento = $pedido_venda['id_empreendimento'];
             $qtd = (int) $value;
             $estoque = $EstoqueDao->getQtdProduto($pedido_venda['id_empreendimento'], $id_produto, null, $id_deposito);
             $estoque_real = $estoque - $qtd;
             if ($estoque_real < 0) {
                 $out[] = array((double) $id_produto);
             }
         }
         if (count($out) > 0) {
             Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode(array('out_estoque' => $out)))->send();
             return;
         }
         if (!$EstoqueDao->baixaEstoquePedido($id_empreendimento, $id_pedido, $pedido_venda['itens'], $id_deposito, $value['qtd'])) {
             $Conexao->back();
             Flight::halt(500, 'Erro ao dar baixa no estoque');
         }
     }
     if (!$PedidoVendaDao->changeStatusPedido($id_pedido, $id_status_pedido)) {
         $Conexao->back();
         Flight::halt(500, 'Erro ao mudar status');
     }
     if ((int) $id_status_pedido == 4) {
         $id_status_venda = 3;
     } else {
         if ((int) $id_status_pedido == 5) {
             $id_status_venda = 4;
         }
     }
     if (isset($id_status_venda)) {
         $PedidoVendaDao->changeStatusVenda($id_pedido, $id_status_venda);
     }
     Flight::json($PedidoVendaDao->getStatusByid($id_status_pedido));
 }