public function getRelRomaneio($id_pedido_venda)
 {
     $id_empreendimento;
     $pedido = $this->getPedidoVenda($id_pedido_venda);
     $sql = "SELECT\n\t\t\t\t     tipv.id AS id_item_pedido, tpv.id_empreendimento,tp.id AS id_produto,tcp.id AS id_cor,tt.id  AS id_tamanho,tcp.nome_cor,tp.nome AS nome_produto,tt.nome_tamanho,tipv.tipo_produto AS tipo,tipv.qtd,tipv.flg_brinde,tipv.id_agrupamento_insumos,tipv.config_grad,tp.img,tipv.tipo_base,tipv.modelo_base\n\t\t\t\tFROM tbl_pedido_venda AS tpv \n\t\t\t\tINNER JOIN tbl_itens_pedido_venda AS tipv ON tpv.id = tipv.id_pedido_venda\n\t\t\t\tINNER JOIN tbl_produtos AS tp ON tipv.id_produto = tp.id\n\t\t\t\tLEFT JOIN tbl_cor_produto AS tcp ON tp.id_cor = tcp.id\n\t\t\t\tLEFT JOIN tbl_tamanho AS tt ON tp.id_tamanho = tt.id\n\t\t\t\tWHERE tpv.id = {$id_pedido_venda}";
     $select = $this->conn->prepare($sql);
     if ($select->execute() && $select->rowCount() > 0) {
         $produtos = parse_arr_values($select->fetchAll(PDO::FETCH_ASSOC), 'all');
         $insumos_agrupados = array();
         foreach ($produtos as $keyPrd => $produto) {
             if (is_file(CAMINHO_UPLOAD_IMG_PRODUTO . $produto['img'])) {
                 $produto['img'] = "assets/imagens/produtos/" . $produto['img'];
             } else {
                 $produto['img'] = null;
             }
             if (empty($id_empreendimento)) {
                 $id_empreendimento = $produto['id_empreendimento'];
             }
             if (!isset($insumos_agrupados[$produto['id_agrupamento_insumos']])) {
                 $insumos_agrupados[$produto['id_agrupamento_insumos']] = array('insumos' => array(), 'genero' => null, 'flg_brinde' => $produto['flg_brinde']);
             }
             $insumos_agrupados[$produto['id_agrupamento_insumos']]['insumos'][] = $produto;
             if ($produto['tipo'] == 'base') {
                 $nome_produto = 'Chinelo Personalizado ${sexo} Base ' . $produto['nome_tamanho'] . ' ' . $produto['nome_cor'];
                 if (isset($insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'])) {
                     $nome_produto = $insumos_agrupados[$produto['genero']] == "masculino" ? str_replace('${sexo}', "feminino", $nome_produto) : str_replace('${sexo}', "masculino", $nome_produto);
                     $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'] = $nome_produto . " " . $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'];
                 } else {
                     $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'] = $nome_produto;
                 }
                 $insumos_agrupados[$produto['id_agrupamento_insumos']]['qtd'] = (int) $produto['qtd'];
                 $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_tamanho'] = $produto['nome_tamanho'];
                 $insumos_agrupados[$produto['id_agrupamento_insumos']]['id_tamanho'] = $produto['id_tamanho'];
                 $insumos_agrupados[$produto['id_agrupamento_insumos']]['config_grad'] = $produto['config_grad'];
                 $EstampaBasePedidoDao = new EstampaBasePedidoDao();
                 $coresEstampa = $EstampaBasePedidoDao->getEstampas($produto['id_item_pedido']);
                 $insumos_agrupados[$produto['id_agrupamento_insumos']]['coresEstampa'] = $coresEstampa ? $coresEstampa : array();
             } else {
                 if ($produto['tipo'] == 'tira_masculina') {
                     if (isset($insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'])) {
                         $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'] = str_replace('${sexo}', 'Masculino', $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto']);
                         $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'] .= " Tira " . $produto['nome_cor'];
                     } else {
                         $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'] .= " Tira " . $produto['nome_cor'];
                     }
                     $insumos_agrupados[$produto['id_agrupamento_insumos']]['genero'] = 'masculino';
                 } else {
                     if ($produto['tipo'] == 'tira_feminina') {
                         if (isset($insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'])) {
                             $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'] = str_replace('${sexo}', 'Feminino', $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto']);
                             $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'] .= " Tira " . $produto['nome_cor'];
                         } else {
                             $insumos_agrupados[$produto['id_agrupamento_insumos']]['nome_produto'] .= " Tira " . $produto['nome_cor'];
                         }
                         $insumos_agrupados[$produto['id_agrupamento_insumos']]['genero'] = 'feminino';
                     }
                 }
             }
         }
         $detalhado = array();
         $consolidado = array();
         $pedido['qtd_total'] = 0;
         foreach ($insumos_agrupados as $key => $value) {
             $pedido['qtd_total'] += (int) $value['qtd'];
             $detalhado[] = $value;
             $not_exists = true;
             $base_x_tira = array();
             foreach ($value['insumos'] as $insumo) {
                 if ($insumo['tipo'] == 'tira_masculina') {
                     $base_x_tira['tira']['masculina']['nome_cor'] = $insumo['nome_cor'];
                     $base_x_tira['tira']['masculina']['id_cor'] = $insumo['id_cor'];
                 } else {
                     if ($insumo['tipo'] == 'tira_feminina') {
                         $base_x_tira['tira']['feminina']['nome_cor'] = $insumo['nome_cor'];
                         $base_x_tira['tira']['feminina']['id_cor'] = $insumo['id_cor'];
                     } else {
                         if ($insumo['tipo'] == 'base') {
                             $base_x_tira['base']['nome_cor'] = $insumo['nome_cor'];
                             $base_x_tira['tira']['id_cor'] = $insumo['id_cor'];
                         }
                     }
                 }
             }
             $pedido['base_tira_estampas'][] = $base_x_tira;
             foreach ($consolidado as $c_key => $c_value) {
                 if ((int) $c_value['id_tamanho'] == (int) $value['id_tamanho']) {
                     $not_exists = false;
                     $consolidado[$c_key]['id_tamanho'] = $value['id_tamanho'];
                     $consolidado[$c_key]['nome_tamanho'] = $value['nome_tamanho'];
                     if ($value['genero'] == 'masculino') {
                         $consolidado[$c_key]['qtd_mas'] += (int) $value['qtd'];
                     } else {
                         $consolidado[$c_key]['qtd_fem'] += (int) $value['qtd'];
                     }
                 }
             }
             if ($not_exists) {
                 $consolidado[] = array('id_tamanho' => $value['id_tamanho'], 'nome_tamanho' => $value['nome_tamanho'], 'config_grad' => $value['config_grad'], 'qtd_mas' => $value['genero'] == 'masculino' ? $value['qtd'] : 0, 'qtd_fem' => $value['genero'] == 'feminino' ? $value['qtd'] : 0);
             }
         }
         $sqlMovCaixa = "SELECT id_abertura_caixa FROM tbl_movimentacao_caixa \n\t\t\t\t\t\tWHERE id_pedido_venda = {$id_pedido_venda} LIMIT 1";
         $selMovCaixa = $this->conn->prepare($sqlMovCaixa);
         $movimentacoes = array();
         if ($selMovCaixa->execute()) {
             $id_abertura_caixa = $selMovCaixa->fetch(PDO::FETCH_ASSOC);
             $id_abertura_caixa = $id_abertura_caixa['id_abertura_caixa'];
             $MovimentacaoCaixaDao = new MovimentacaoCaixaDao();
             $movimentacoes = $MovimentacaoCaixaDao->getMovimentacoes($id_abertura_caixa, array('mov.id_pedido_venda' => $id_pedido_venda));
         }
         $ItemPedidoVendaDao = new ItemPedidoVendaDao();
         $pedido_gerado = $this->getPedidoMaster($id_pedido_venda);
         $itens = $ItemPedidoVendaDao->getItens($pedido_gerado['id'], null, null);
         //Flight::json(array('pedido'=>$pedido,'detalhado'=>$detalhado,'consolidado'=>$consolidado,'itens'=>$itens,'insumos'=>$produtos));die;
         $saida = array('pedido' => $pedido, 'detalhado' => $detalhado, 'consolidado' => $consolidado, 'itens' => $itens, 'movimentacoes' => $movimentacoes);
         return $saida;
     } else {
         return false;
     }
 }
 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));
 }