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