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 updatePedido() { $pedido_venda = $_POST['pedido_venda']; $itens = $pedido_venda['itens']; $chinelos_gerados = $pedido_venda['chinelos_gerados']; $pagamentos = isset($_POST['pagamentos']) ? $_POST['pagamentos'] : array(); $id_empreendimento = $pedido_venda['id_empreendimento']; $estampas = isset($pedido_venda['estampas']) ? $pedido_venda['estampas'] : array(); $PedidoVendaDao = new PedidoVendaDao(); $PedidoVendaTO = new PedidoVendaTO(); $ItemPedidoVendaDao = new ItemPedidoVendaDao(); $ItemPedidoVendaTO = new ItemPedidoVendaTO(); $PedidoVendaTO->id = isset($pedido_venda['id']) ? $pedido_venda['id'] : NULL; $PedidoVendaTO->id_usuario = isset($pedido_venda['id_usuario']) ? $pedido_venda['id_usuario'] : NULL; $PedidoVendaTO->id_cliente = is_numeric($pedido_venda['id_cliente']) ? $pedido_venda['id_cliente'] : NULL; $PedidoVendaTO->venda_confirmada = 0; $PedidoVendaTO->id_empreendimento = isset($pedido_venda['id_empreendimento']) ? $pedido_venda['id_empreendimento'] : ''; $PedidoVendaTO->id_status_pedido = isset($pedido_venda['id_status_pedido']) ? $pedido_venda['id_status_pedido'] : NULL; $PedidoVendaTO->observacao = isset($pedido_venda['observacao']) ? $pedido_venda['observacao'] : NULL; $PedidoVendaTO->dta_entrega = isset($pedido_venda['dta_entrega']) ? $pedido_venda['dta_entrega'] : NULL; $PedidoVendaTO->canal_venda = isset($pedido_venda['canal_venda']) ? $pedido_venda['canal_venda'] : NULL; $PedidoVendaTO->dta_venda = isset($pedido_venda['dta_venda']) ? $pedido_venda['dta_venda'] : NULL; $ItemPedidoVendaDao->delete($PedidoVendaTO->id); $PedidoVendaDao->updatePedido($PedidoVendaTO); $id_pedido_venda = $pedido_venda['id']; self::gravarMovimentacoes($pagamentos, $id_pedido_venda, $PedidoVendaTO->id_cliente, $PedidoVendaTO->id_empreendimento); $EstampaBasePedidoTO = new EstampaBasePedidoTO(); $EstampaBasePedidoDao = new EstampaBasePedidoDao(); foreach ($estampas as $key_arr => $arr) { foreach ($arr as $key_est => $estampa) { $EstampaBasePedidoTO->id_cor = $estampa['id_cor']; $EstampaBasePedidoTO->dsc_local = $estampa['dsc_local']; try { $id_estampa_base_pedido = $EstampaBasePedidoDao->saveEstampa($EstampaBasePedidoTO); $estampas[$key_arr][$key_est]['id_estampa_base_pedido'] = $id_estampa_base_pedido; } catch (ExceptionJSON $e) { $e->enviaJSON(); } } } foreach ($itens as $key => $arr) { $id_agrupamento_insumos = null; foreach ($arr as $value) { $ItemPedidoVendaTO->id_pedido_venda = $id_pedido_venda; $ItemPedidoVendaTO->id_produto = $value['id_produto']; $ItemPedidoVendaTO->desconto_aplicado = isset($value['desconto_aplicado']) ? $value['desconto_aplicado'] : 0; $ItemPedidoVendaTO->valor_desconto = isset($value['valor_desconto']) ? $value['valor_desconto'] : 0; $ItemPedidoVendaTO->qtd = $value['qtd']; $ItemPedidoVendaTO->valor_real_item = $value['valor_real_item']; $ItemPedidoVendaTO->vlr_custo = $value['vlr_custo']; $ItemPedidoVendaTO->perc_imposto_compra = $value['perc_imposto_compra']; $ItemPedidoVendaTO->perc_desconto_compra = $value['perc_desconto_compra']; $ItemPedidoVendaTO->perc_margem_aplicada = $value['perc_margem_aplicada']; $ItemPedidoVendaTO->tipo_produto = $value['tipo_produto']; $ItemPedidoVendaTO->id_produto_base = isset($value['id_produto_base']) && is_numeric($value['id_produto_base']) ? $value['id_produto_base'] : null; $ItemPedidoVendaTO->config_grad = $value['config_grad']; $ItemPedidoVendaTO->id_agrupamento_insumos = $id_agrupamento_insumos; $ItemPedidoVendaTO->flg_brinde = $value['flg_brinde']; $ItemPedidoVendaTO->tipo_base = isset($value['tipo_base']) ? $value['tipo_base'] : null; $ItemPedidoVendaTO->modelo_base = isset($value['modelo_base']) ? $value['modelo_base'] : null; $last_id_item = $ItemPedidoVendaDao->saveItemPedidoVenda($ItemPedidoVendaTO); $id_agrupamento_insumos = $id_agrupamento_insumos == null ? $last_id_item : $id_agrupamento_insumos; if (!$last_id_item) { Flight::halt(500, 'erro ao inserir os itens da venda'); } if ($value['tipo_produto'] == 'base' && count($estampas) > 0) { $EstampaBasePedidoItemPedidoVendaTO = new EstampaBasePedidoItemPedidoVendaTO(); $EstampaBasePedidoItemPedidoVendaDao = new EstampaBasePedidoItemPedidoVendaDao(); $key_estampa = (int) $value['flg_brinde'] == 1 ? 'brinde-' . $value['config_grad'] : $value['config_grad']; foreach ($estampas[$key_estampa] as $estampa) { $EstampaBasePedidoItemPedidoVendaTO->id_estampa_base_pedido = $estampa['id_estampa_base_pedido']; $EstampaBasePedidoItemPedidoVendaTO->id_item_pedido_venda = $last_id_item; try { $EstampaBasePedidoItemPedidoVendaDao->save($EstampaBasePedidoItemPedidoVendaTO); } catch (ExceptionJSON $e) { $e->enviaJSON(); } } } } $ItemPedidoVendaDao->updateAgrupamento($id_agrupamento_insumos); } // gravando pedido com chinelos gerados $ProdutoTO = new ProdutoTO(); $ProdutoDao = new ProdutoDao(); $ProdutoEmpreendimentoTO = new ProdutoEmpreendimentoTO(); $EstoqueDao = new EstoqueDao(); $EstoqueTO = new EstoqueTO(); foreach ($chinelos_gerados as $key => $value) { $ProdutoTO->nome = $value['nome']; $ProdutoTO->flg_excluido = 1; $last_id_produto = $ProdutoDao->saveProduto($ProdutoTO); $ProdutoEmpreendimentoTO->id_produto = $last_id_produto; $ProdutoEmpreendimentoTO->id_empreendimento = $id_empreendimento; if (!$ProdutoDao->produtoEmpreendimento($ProdutoEmpreendimentoTO)) { Flight::halt(500, 'Erro ao cadastrar o id_empreendimento'); } $chinelos_gerados[$key]['id_produto'] = $last_id_produto; } $PedidoVendaTO->id = isset($pedido_venda['id_pedido_gerado']) ? $pedido_venda['id_pedido_gerado'] : NULL; $PedidoVendaTO->id_usuario = isset($pedido_venda['id_usuario']) ? $pedido_venda['id_usuario'] : NULL; $PedidoVendaTO->id_cliente = is_numeric($pedido_venda['id_cliente']) ? $pedido_venda['id_cliente'] : NULL; $PedidoVendaTO->venda_confirmada = isset($pedido_venda['venda_confirmada']) ? $pedido_venda['venda_confirmada'] : NULL; $PedidoVendaTO->id_empreendimento = isset($pedido_venda['id_empreendimento']) ? $pedido_venda['id_empreendimento'] : NULL; $PedidoVendaTO->id_status_pedido = isset($pedido_venda['id_status_pedido']) ? $pedido_venda['id_status_pedido'] : 1; $PedidoVendaTO->observacao = isset($pedido_venda['observacao']) ? $pedido_venda['observacao'] : NULL; $PedidoVendaTO->id_pedido_master = $id_pedido_venda; $ItemPedidoVendaDao->delete($PedidoVendaTO->id); $PedidoVendaDao->updatePedido($PedidoVendaTO); $id_pedido_gerado = $pedido_venda['id_pedido_gerado']; foreach ($chinelos_gerados as $key => $value) { $ItemPedidoVendaTO->id_pedido_venda = $id_pedido_gerado; $ItemPedidoVendaTO->id_pedido_master = $id_pedido_venda; $ItemPedidoVendaTO->id_produto = $value['id_produto']; $ItemPedidoVendaTO->desconto_aplicado = isset($value['desconto_aplicado']) ? $value['desconto_aplicado'] : 0; $ItemPedidoVendaTO->valor_desconto = isset($value['valor_desconto']) ? $value['valor_desconto'] : 0; $ItemPedidoVendaTO->qtd = $value['qtd']; $ItemPedidoVendaTO->valor_real_item = $value['valor_real_item']; $ItemPedidoVendaTO->vlr_custo = $value['vlr_custo']; $ItemPedidoVendaTO->perc_imposto_compra = 0; $ItemPedidoVendaTO->perc_desconto_compra = 0; $ItemPedidoVendaTO->perc_margem_aplicada = $value['perc_margem_aplicada']; $ItemPedidoVendaTO->tipo_produto = null; $ItemPedidoVendaTO->id_produto_base = null; $ItemPedidoVendaTO->config_grad = null; $ItemPedidoVendaTO->id_agrupamento_insumos = null; $ItemPedidoVendaTO->flg_brinde = $value['flg_brinde']; if (!$ItemPedidoVendaDao->saveItemPedidoVenda($ItemPedidoVendaTO)) { Flight::halt(500, 'erro ao inserir os itens da venda'); } } Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('id_pedido_venda' => $id_pedido_venda)))->send(); }