public static function abrirCaixaPedido($id_caixa, $id_empreendimento) { $AberturaCaixaDao = new AberturaCaixaDao(); $AberturaCaixaTO = new AberturaCaixaTO(); $ConfiguracaoDao = new ConfiguracaoDao(); $caixa_aberto = $AberturaCaixaDao->caixaAberto(array('abt.id_caixa' => $id_caixa, "abt.id_empreendimento" => $id_empreendimento, "date_format(abt.dta_abertura,'%Y-%m-%d')" => array('exp' => "< '" . date('Y-m-d') . "' AND abt.dta_fechamento IS NULL"))); if ($caixa_aberto) { $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); $configuracao = $ConfiguracaoDao->getConfiguracoes($id_empreendimento); $result = $MovimentacaoCaixaDao->fechamentoCaixa($caixa_aberto['id'], $configuracao['id_conta_bancaria_padrao_fechamento_automatico'], date('Y-m-d 23:59:59', strtotime($caixa_aberto['dta_abertura']))); if (!$result) { Flight::halt(500, 'Erro ao fechar o caixa'); } } $caixa_aberto = $AberturaCaixaDao->caixaAberto(array('abt.id_caixa' => $id_caixa, "abt.id_empreendimento" => $id_empreendimento, "date_format(abt.dta_abertura,'%Y-%m-%d')" => array('exp' => "='" . date('Y-m-d') . "' AND abt.dta_fechamento IS NULL"))); $config = $ConfiguracaoDao->getConfiguracoes($id_empreendimento); if ($caixa_aberto) { $ConfiguracaoDao = new ConfiguracaoDao(); Flight::response()->status(200)->header('Content-Type', 'application/json')->write(json_encode(array_merge($caixa_aberto, $config)))->send(); } $AberturaCaixaTO->id_caixa = $id_caixa; $AberturaCaixaTO->dta_fechamento = NULL; $AberturaCaixaTO->id_empreendimento = $id_empreendimento; if ($AberturaCaixaDao->abrirCaixa($AberturaCaixaTO)) { $caixa_aberto = $AberturaCaixaDao->caixaAberto(array('abt.id_caixa' => $id_caixa, "abt.id_empreendimento" => $id_empreendimento, "date_format(abt.dta_abertura,'%Y-%m-%d')" => array('exp' => "='" . date('Y-m-d') . "' AND abt.dta_fechamento IS NULL"))); Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array_merge($caixa_aberto, $config)))->send(); } else { Flight::response()->status(404)->header('Content-Type', 'application/json')->write(json_encode(array('msg' => 'Ocorreu um erro inesperado ao abrir o caixa')))->send(); } }
public static function saveVenda() { $EstoqueDao = new EstoqueDao(); $out = array(); $modo_venda = $_POST['modo_venda']; $produtos = $_POST['produtos']; $venda = $_POST['venda']; $id_empreendimento = $venda['id_empreendimento']; $id_deposito = $venda['id_deposito']; $pagamentos = $_POST['pagamentos']; foreach ($produtos as $key => $value) { $qtd = (int) $value['qtd']; $estoque = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id_produto'], null, $id_deposito); $estoque_real = $estoque - $qtd; if ($estoque_real < 0) { $out[] = array($value['id_produto']); } } if (count($out) > 0) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($out))->send(); return; } /* Flight::response()->status(500) ->header('Content-Type', 'application/json') ->write(json_encode($arrayName)) ->send(); return ; */ $VendaDao = new VendaDao(); $VendaTO = new VendaTO(); $VendaTO->id_usuario = isset($venda['id_usuario']) ? $venda['id_usuario'] : NULL; $VendaTO->id_cliente = is_numeric($venda['id_cliente']) ? $venda['id_cliente'] : NULL; $VendaTO->venda_confirmada = isset($venda['venda_confirmada']) ? $venda['venda_confirmada'] : ''; $VendaTO->id_empreendimento = isset($venda['id_empreendimento']) ? $venda['id_empreendimento'] : ''; $VendaTO->id_status_venda = 4; $id_venda = $VendaDao->saveVenda($VendaTO); if (!$id_venda) { Flight::halt(500, 'erro ao inserir venda'); } $ItemVendaDao = new ItemVendaDao(); $ItemVendaTO = new ItemVendaTO(); foreach ($produtos as $key => $value) { $ItemVendaTO->id_venda = $id_venda; $ItemVendaTO->id_produto = $value['id_produto']; $ItemVendaTO->desconto_aplicado = isset($value['desconto_aplicado']) ? $value['desconto_aplicado'] : 0; $ItemVendaTO->valor_desconto = isset($value['valor_desconto']) ? $value['valor_desconto'] : 0; $ItemVendaTO->qtd = $value['qtd']; $ItemVendaTO->valor_real_item = $value['valor_produto']; if (!$ItemVendaDao->saveItemVenda($ItemVendaTO)) { Flight::halt(500, 'erro ao inserir os itens da venda'); } if (!$EstoqueDao->baixaEstoquePDV($id_empreendimento, $id_venda, $value['id_produto'], $id_deposito, $value['qtd'])) { Flight::halt(500, 'error ao atualizar estoque'); } } $MovimentacaoCaixaTO = new MovimentacaoCaixaTO(); $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); foreach ($pagamentos as $key => $value) { if ($value['id_tipo_movimentacao'] != 5) { $PagamentoClienteTO = new PagamentoClienteTO(); $PagamentoClienteDao = new PagamentoClienteDao(); $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : ""; $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : ""; $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : ""; $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : ""; $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : ""; $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL; $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL; $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL; $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL; $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento']; $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } } $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = 'Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_venda = $id_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL; $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } } $UsuarioDao = new UsuarioDao(); $vlr_saldo_devedor = $UsuarioDao->getUsuarios(null, null, array('usu.id' => $venda['id_cliente'])); $vlr_saldo_devedor = $vlr_saldo_devedor['usuarios'][0]["vlr_saldo_devedor"]; Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('id_venda' => $id_venda, 'vlr_saldo_devedor' => $vlr_saldo_devedor)))->send(); }
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 getConsolidadoCaixas() { $aberturaCaixaDao = new AberturaCaixaDao(); $caixas = $aberturaCaixaDao->getAberturaCaixas($_GET, null, null); foreach ($caixas as $key => $caixa) { $movCaixaDao = new MovimentacaoCaixaDao(); $caixas[$key]['totais'] = $movCaixaDao->getTotalByFormaPagamento($caixa['id']); } $aux = array(); foreach ($caixas as $key => $value) { $id_caixa = $value['id_caixa']; $id_operador = $value['id_operador']; if (isset($aux[$id_caixa][$id_operador])) { $totais = $aux[$id_caixa][$id_operador][0]['totais']; foreach ($totais as $key_totais => $value_totais) { if ($key_totais != 'formas_pagamento') { $totais[$key_totais] += $value['totais'][$key_totais]; } else { foreach ($totais['formas_pagamento'] as $key_fp => $value_fp) { $totais['formas_pagamento'][$key_fp]['valor'] += $value['totais']['formas_pagamento'][$key_fp]['valor']; } } } $aux[$id_caixa][$id_operador][0]['dta_fechamento'] = $value['dta_fechamento']; $aux[$id_caixa][$id_operador][0]['totais'] = $totais; } else { $aux[$id_caixa][$id_operador][] = $value; } } $saida = array(); foreach ($aux as $k => $v) { foreach ($v as $x => $y) { $saida[] = $y[0]; } } usort($saida, 'ordenaId'); Flight::json($saida); }
public static function getTotalByFormaPagamento($id_abertura_caixa) { $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); $movimentacoes = $MovimentacaoCaixaDao->getTotalByFormaPagamento($id_abertura_caixa); if ($movimentacoes) { Flight::json($movimentacoes); } else { Flight::halt(404, 'Não há resultado para a busca'); } }
public static function gravarMovimentacoes($pagamentos, $id_pedido_venda, $id_cliente, $id_empreendimento) { $MovimentacaoCaixaTO = new MovimentacaoCaixaTO(); $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); $PagamentoClienteTO = new PagamentoClienteTO(); $PagamentoClienteDao = new PagamentoClienteDao(); $ControlePagamentoVendaTO = new ControlePagamentoVendaTO(); $ControlePagamentoVendaDao = new ControlePagamentoVendaDao(); $MaquinetaDao = new MaquinetaDao(); $pagamentos = $pagamentos; $id_pedido_venda = $id_pedido_venda; $id_cliente = $id_cliente; $id_empreendimento = $id_empreendimento; $Dao = new Dao(); $Dao->setTimeZone($id_empreendimento); $dta_entrada = date('Y-m-d H:i:s'); $id_controle_pagamento = $ControlePagamentoVendaDao->saveControlePagamento($dta_entrada); if (!$id_controle_pagamento) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } foreach ($pagamentos as $key => $value) { $parcela = null; if ($value['id_tipo_movimentacao'] != 5 && $value['id_forma_pagamento'] != 6) { $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : ""; $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento; $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : ""; if ($value['id_forma_pagamento'] == 2) { $PagamentoClienteTO->status_pagamento = 0; } else { if ($value['id_forma_pagamento'] == 4) { $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : 0; $PagamentoClienteTO->doc_boleto = isset($value['doc_boleto']) ? $value['doc_boleto'] : NULL; $PagamentoClienteTO->num_boleto = isset($value['num_boleto']) ? $value['num_boleto'] : NULL; } else { $PagamentoClienteTO->status_pagamento = 1; } } $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : ""; $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : NULL; $PagamentoClienteTO->flg_caixa_fechado = 0; $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL; $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL; $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL; $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL; $PagamentoClienteTO->id_vale_troca = (int) $value['id_forma_pagamento'] == 7 ? $value['id_vale_troca'] : NULL; $PagamentoClienteTO->agencia_transferencia = isset($value['agencia_transferencia']) ? $value['agencia_transferencia'] : NULL; $PagamentoClienteTO->conta_transferencia = isset($value['conta_transferencia']) ? $value['conta_transferencia'] : NULL; $PagamentoClienteTO->proprietario_conta_transferencia = isset($value['proprietario_conta_transferencia']) ? $value['proprietario_conta_transferencia'] : NULL; $PagamentoClienteTO->id_conta_transferencia_destino = isset($value['id_conta_transferencia_destino']) ? $value['id_conta_transferencia_destino'] : NULL; if ($value['id_forma_pagamento'] == 5) { $maquineta = $MaquinetaDao->getMaquineta($value['id_maquineta']); $txa_maquineta = $maquineta['per_margem_debito']; $PagamentoClienteTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $PagamentoClienteTO->taxa_maquineta = $txa_maquineta; } else { $PagamentoClienteTO->id_maquineta = NULL; $PagamentoClienteTO->taxa_maquineta = NULL; } $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento']; $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } } else { if ($value['id_tipo_movimentacao'] != 5) { $repeat_parcelas = 0; $id_parcelamento = false; $arr_parcelas = $value['parcelas']; $n_parcelas = count($arr_parcelas); foreach ($arr_parcelas as $key_par => $parcela) { $maquineta = $MaquinetaDao->getMaquineta($parcela['id_maquineta']); $txa_maquineta = $MaquinetaDao->getTaxaMaquineta($parcela['id_maquineta'], $n_parcelas); $PagamentoClienteTO->id_cliente = isset($parcela['id_cliente']) ? $parcela['id_cliente'] : ""; $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento; $PagamentoClienteTO->id_forma_pagamento = isset($parcela['id_forma_pagamento']) ? $parcela['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($parcela['valor_pagamento']) ? $parcela['valor_pagamento'] : ""; $PagamentoClienteTO->status_pagamento = 0; $PagamentoClienteTO->data_pagamento = isset($parcela['data_pagamento']) ? $parcela['data_pagamento'] : ""; $PagamentoClienteTO->obs_pagamento = isset($parcela['obs_pagamento']) ? $parcela['obs_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($parcela['id_empreendimento']) ? $parcela['id_empreendimento'] : ""; $PagamentoClienteTO->id_banco = isset($parcela['id_banco']) ? $parcela['id_banco'] : ""; $PagamentoClienteTO->num_conta_corrente = isset($parcela['num_conta_corrente']) ? $parcela['num_conta_corrente'] : ""; $PagamentoClienteTO->num_cheque = isset($parcela['num_cheque']) ? $parcela['num_cheque'] : ""; $PagamentoClienteTO->flg_cheque_predatado = isset($parcela['flg_cheque_predatado']) ? $parcela['flg_cheque_predatado'] : ""; $PagamentoClienteTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($parcela['id_conta_bancaria']) ? $parcela['id_conta_bancaria'] : ""; $PagamentoClienteTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL; $PagamentoClienteTO->taxa_maquineta = $txa_maquineta; $PagamentoClienteTO->id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : NULL; $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $parcela['id_cliente_lancamento']; $PagamentoClienteTO->flg_caixa_fechado = 0; if ($PagamentoClienteTO->id_forma_pagamento != 2) { $PagamentoClienteTO->id_banco = NULL; $PagamentoClienteTO->num_conta_corrente = NULL; $PagamentoClienteTO->num_cheque = NULL; $PagamentoClienteTO->flg_cheque_predatado = NULL; } $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } $MovimentacaoCaixaTO->id_abertura_caixa = isset($parcela['id_abertura_caixa']) ? $parcela['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($parcela['id_tipo_movimentacao']) ? $parcela['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = 'Pedido de Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_pedido_venda = $id_pedido_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $id_lancamento_entrada; $valor_pagamento = isset($parcela['valor']) ? $parcela['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $parcela['id_tipo_movimentacao'] == 5 ? $parcela['valor'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } $id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : $id_lancamento_entrada; } $id_lancamento_entrada = $id_parcelamento; } } if ($parcela == null) { $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = 'Pedido de Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_pedido_venda = $id_pedido_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL; $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } } } return true; }
public static function gravarMovimentacoes() { $MovimentacaoCaixaTO = new MovimentacaoCaixaTO(); $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); $PagamentoClienteTO = new PagamentoClienteTO(); $PagamentoClienteDao = new PagamentoClienteDao(); $ControlePagamentoVendaTO = new ControlePagamentoVendaTO(); $ControlePagamentoVendaDao = new ControlePagamentoVendaDao(); $MaquinetaDao = new MaquinetaDao(); $VendaDao = new VendaDao(); $AtendimentoDao = new AtendimentoDao(); $pagamentos = $_POST['pagamentos']; $id_venda = isset($_POST['id_venda']) ? $_POST['id_venda'] : NULL; $id_venda = empty($_POST['id_venda']) ? NULL : $id_venda; $id_cliente = $_POST['id_cliente']; $id_empreendimento = $_POST['id_empreendimento']; $id_atendimento = isset($_POST['id_atendimento']) ? $_POST['id_atendimento'] : NULL; $Dao = new Dao(); $Dao->setTimeZone($id_empreendimento); $dta_entrada = date('Y-m-d H:i:s'); $id_controle_pagamento = $ControlePagamentoVendaDao->saveControlePagamento($dta_entrada); if (!$id_controle_pagamento) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } foreach ($pagamentos as $key => $value) { $parcela = null; if ($value['id_tipo_movimentacao'] != 5 && $value['id_forma_pagamento'] != 6) { $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : ""; $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento; $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : ""; if ($value['id_forma_pagamento'] == 2) { $PagamentoClienteTO->status_pagamento = 0; } else { if ($value['id_forma_pagamento'] == 4) { $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : 0; $PagamentoClienteTO->doc_boleto = isset($value['doc_boleto']) ? $value['doc_boleto'] : NULL; $PagamentoClienteTO->num_boleto = isset($value['num_boleto']) ? $value['num_boleto'] : NULL; } else { $PagamentoClienteTO->status_pagamento = 1; } } $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : ""; $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : NULL; $PagamentoClienteTO->flg_caixa_fechado = 0; $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL; $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL; $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL; $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL; $PagamentoClienteTO->id_vale_troca = (int) $value['id_forma_pagamento'] == 7 ? $value['id_vale_troca'] : NULL; $PagamentoClienteTO->agencia_transferencia = isset($value['agencia_transferencia']) ? $value['agencia_transferencia'] : NULL; $PagamentoClienteTO->conta_transferencia = isset($value['conta_transferencia']) ? $value['conta_transferencia'] : NULL; $PagamentoClienteTO->proprietario_conta_transferencia = isset($value['proprietario_conta_transferencia']) ? $value['proprietario_conta_transferencia'] : NULL; $PagamentoClienteTO->id_conta_transferencia_destino = isset($value['id_conta_transferencia_destino']) ? $value['id_conta_transferencia_destino'] : NULL; $PagamentoClienteTO->id_parcelamento = NULL; if ($value['id_forma_pagamento'] == 5) { $maquineta = $MaquinetaDao->getMaquineta($value['id_maquineta']); $txa_maquineta = $maquineta['per_margem_debito']; $PagamentoClienteTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $PagamentoClienteTO->taxa_maquineta = $txa_maquineta; } else { $PagamentoClienteTO->id_maquineta = NULL; $PagamentoClienteTO->taxa_maquineta = NULL; } $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento']; $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } } else { if ($value['id_tipo_movimentacao'] != 5) { $repeat_parcelas = 0; $id_parcelamento = false; $arr_parcelas = $value['parcelas']; $n_parcelas = count($arr_parcelas); foreach ($arr_parcelas as $key_par => $parcela) { $maquineta = $MaquinetaDao->getMaquineta($parcela['id_maquineta']); $txa_maquineta = $MaquinetaDao->getTaxaMaquineta($parcela['id_maquineta'], $n_parcelas); $PagamentoClienteTO->id_cliente = isset($parcela['id_cliente']) ? $parcela['id_cliente'] : ""; $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento; $PagamentoClienteTO->id_forma_pagamento = isset($parcela['id_forma_pagamento']) ? $parcela['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($parcela['valor_pagamento']) ? $parcela['valor_pagamento'] : ""; $PagamentoClienteTO->status_pagamento = 0; $PagamentoClienteTO->data_pagamento = isset($parcela['data_pagamento']) ? $parcela['data_pagamento'] : ""; $PagamentoClienteTO->obs_pagamento = isset($parcela['obs_pagamento']) ? $parcela['obs_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($parcela['id_empreendimento']) ? $parcela['id_empreendimento'] : ""; $PagamentoClienteTO->id_banco = isset($parcela['id_banco']) ? $parcela['id_banco'] : ""; $PagamentoClienteTO->num_conta_corrente = isset($parcela['num_conta_corrente']) ? $parcela['num_conta_corrente'] : ""; $PagamentoClienteTO->num_cheque = isset($parcela['num_cheque']) ? $parcela['num_cheque'] : ""; $PagamentoClienteTO->flg_cheque_predatado = isset($parcela['flg_cheque_predatado']) ? $parcela['flg_cheque_predatado'] : ""; $PagamentoClienteTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($parcela['id_conta_bancaria']) ? $parcela['id_conta_bancaria'] : ""; $PagamentoClienteTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL; $PagamentoClienteTO->taxa_maquineta = $txa_maquineta; $PagamentoClienteTO->id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : NULL; $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $parcela['id_cliente_lancamento']; $PagamentoClienteTO->flg_caixa_fechado = 0; if ($PagamentoClienteTO->id_forma_pagamento != 2) { $PagamentoClienteTO->id_banco = NULL; $PagamentoClienteTO->num_conta_corrente = NULL; $PagamentoClienteTO->num_cheque = NULL; $PagamentoClienteTO->flg_cheque_predatado = NULL; } $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } $MovimentacaoCaixaTO->id_abertura_caixa = isset($parcela['id_abertura_caixa']) ? $parcela['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($parcela['id_tipo_movimentacao']) ? $parcela['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = $id_venda == NULL ? 'Pagamento' : 'Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_venda = $id_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $id_lancamento_entrada; $valor_pagamento = isset($parcela['valor']) ? $parcela['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $parcela['id_tipo_movimentacao'] == 5 ? $parcela['valor'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada; $MovimentacaoCaixaTO->id_item_venda = isset($parcela['id_item_venda']) ? $parcela['id_item_venda'] : NULL; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } $id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : $id_lancamento_entrada; } $id_lancamento_entrada = $id_parcelamento; } } if ($parcela == null) { $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = $id_venda == NULL ? 'Pagamento' : 'Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_venda = $id_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL; $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada; $MovimentacaoCaixaTO->id_item_venda = isset($value['id_item_venda']) ? $value['id_item_venda'] : NULL; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } } } $UsuarioDao = new UsuarioDao(); if (is_numeric($id_cliente)) { $vlr_saldo_devedor = $UsuarioDao->getSaldoDevedor($id_empreendimento, $id_cliente); $vlr_saldo_devedor = $vlr_saldo_devedor["vlr_saldo_devedor"]; } else { $vlr_saldo_devedor = 0; } //$VendaDao->changeStatusVenda($id_venda,6); //$AtendimentoTO = new stdClass(); //$AtendimentoTO->id_status = 3 ; //$AtendimentoDao->updateAtendimento($AtendimentoTO,'id='.$id_atendimento); Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('vlr_saldo_devedor' => $vlr_saldo_devedor, 'id_controle_pagamento' => $id_controle_pagamento)))->send(); }
public static function save() { $osTO = new OrdemServicoTO(); $osTO->__setAll($_POST); $validator = new DataValidator(); $validator->set_msg('O campo Cliente é obrigatório')->set('id_cliente', $osTO->cliente)->is_required(); if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } $cliTO = new UsuarioTO(); $cliTO->__setAll($osTO->cliente); $osTO->cliente = $cliTO; $crtTO = new UsuarioTO(); $crtTO->__setAll($osTO->criador); $osTO->criador = $crtTO; if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { $newObjTO = new ServicoTO(); $newObjTO->__setAll($servico); $osTO->servicos[$key] = $newObjTO; } } if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { $newObjTO = new ProdutoOSTO(); $newObjTO->__setAll($produto); $osTO->produtos[$key] = $newObjTO; } } if (!$osTO->id) { // Grava a venda $venTO = new VendaTO(); $venTO->id_usuario = $osTO->criador->id; $venTO->id_cliente = $osTO->cliente->id; $venTO->venda_confirmada = $osTO->cod_status_servico == "4" ? 0 : 1; $venTO->id_empreendimento = $osTO->id_empreendimento; $venTO->id_status_venda = $osTO->cod_status_servico == "4" ? 5 : 6; $venDao = new VendaDao(); $venTO->id = $venDao->saveVenda($venTO); if (!$venTO->id) { Flight::halt(500, 'Erro ao salvar as informações da venda'); } else { $osTO->id_venda = $venTO->id; // Grava os servicos na venda if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { $itvTO = new ItemVendaTO(); $itvTO->id_venda = $venTO->id; $itvTO->id_produto = NULL; $itvTO->desconto_aplicado = 0; $itvTO->valor_desconto = 0; $itvTO->qtd = 1; $itvTO->valor_real_item = $servico->vlr_procedimento; $itvTO->vlr_custo = 0; $itvTO->perc_imposto_compra = 0; $itvTO->perc_desconto_compra = 0; $itvTO->perc_margem_aplicada = 0; $itvTO->id_procedimento = $servico->id; $itvTO->id_status_procedimento = $servico->cod_status_servico; $itvDao = new ItemVendaDao(); $osTO->servicos[$key]->id = $itvDao->saveItemVenda($itvTO); if (!$osTO->servicos[$key]->id) { Flight::halt(500, 'Erro ao associar o serviço [' . $servico->dsc_procedimento . '] na venda'); } } } // Grava os produtos na venda if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { $itvTO = new ItemVendaTO(); $itvTO->id_venda = $venTO->id; $itvTO->id_produto = $produto->id_produto; $itvTO->desconto_aplicado = 0; $itvTO->valor_desconto = 0; $itvTO->qtd = $produto->qtd_pedido; $itvTO->valor_real_item = $produto->vlr_venda_varejo; $itvTO->vlr_custo = $produto->vlr_custo; $itvTO->perc_imposto_compra = 0; $itvTO->perc_desconto_compra = 0; $itvTO->perc_margem_aplicada = $produto->margem_varejo; $itvDao = new ItemVendaDao(); $osTO->produtos[$key]->id = $itvDao->saveItemVenda($itvTO); if (!$osTO->produtos[$key]->id) { Flight::halt(500, 'Erro ao associar o produto [' . $produto->nome . '] na venda'); } } } // Grava a Ordem de Serviço $atdTO = new AtendimentoTO(); $atdTO->id_empreendimento = $osTO->id_empreendimento; $atdTO->id_paciente = $osTO->cliente->id; $atdTO->dta_entrada = $osTO->dta_ordem_servico; $atdTO->id_usuario_entrada = $osTO->criador->id; $atdTO->id_status = $osTO->cod_status_servico; $atdDao = new AtendimentoDao(); $atdTO->id = $atdDao->saveAtendimento($atdTO); if (!$atdTO->id) { Flight::halt(500, 'Erro ao salvar as informações do serviço'); } else { // Associa a Ordem de Serviço a Venda if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { if (!$atdDao->gravarAtendimentoVenda($atdTO->id, $venTO->id, $servico->id)) { Flight::halt(500, 'Erro ao associar o serviço a venda'); } } } if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { if (!$atdDao->gravarAtendimentoVenda($atdTO->id, $venTO->id, $produto->id)) { Flight::halt(500, 'Erro ao associar o produto a venda'); } } } } $status_code = 201; } } else { $venda_confirmada = $osTO->cod_status_servico == "4" ? 0 : 1; $id_status_venda = $osTO->cod_status_servico == "4" ? 5 : 6; $flg_excluido = $osTO->cod_status_servico == "5" ? 1 : 0; // Atualiza os dados da venda $venDao = new VendaDao(); if ($venDao->updateVendaData($osTO->cliente->id, $venda_confirmada, $id_status_venda, $flg_excluido, $osTO->id_venda)) { // Remove todos os servicos e produtos da venda $itvDao = new ItemVendaDao(); if ($itvDao->deleteItemsByIdVenda($osTO->id_venda)) { // Grava os servicos na venda if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { $itvTO = new ItemVendaTO(); $itvTO->id_venda = $osTO->id_venda; $itvTO->id_produto = NULL; $itvTO->desconto_aplicado = 0; $itvTO->valor_desconto = 0; $itvTO->qtd = 1; $itvTO->valor_real_item = $servico->vlr_procedimento; $itvTO->vlr_custo = 0; $itvTO->perc_imposto_compra = 0; $itvTO->perc_desconto_compra = 0; $itvTO->perc_margem_aplicada = 0; $itvTO->id_procedimento = $servico->id; $itvTO->id_status_procedimento = $servico->cod_status_servico; $osTO->servicos[$key]->id = $itvDao->saveItemVenda($itvTO); if (!$osTO->servicos[$key]->id) { Flight::halt(500, 'Erro ao associar o serviço [' . $servico->dsc_procedimento . '] na venda'); } } } // Grava os produtos na venda if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { $itvTO = new ItemVendaTO(); $itvTO->id_venda = $osTO->id_venda; $itvTO->id_produto = $produto->id_produto; $itvTO->desconto_aplicado = 0; $itvTO->valor_desconto = 0; $itvTO->qtd = $produto->qtd_pedido; $itvTO->valor_real_item = $produto->vlr_venda_varejo; $itvTO->vlr_custo = $produto->vlr_custo; $itvTO->perc_imposto_compra = 0; $itvTO->perc_desconto_compra = 0; $itvTO->perc_margem_aplicada = $produto->margem_varejo; $osTO->produtos[$key]->id = $itvDao->saveItemVenda($itvTO); if (!$osTO->produtos[$key]->id) { Flight::halt(500, 'Erro ao associar o produto [' . $produto->nome . '] na venda'); } } } // Atualiza os dados da Ordem de Serviço $atdTO = new StdClass(); $atdTO->id_paciente = $osTO->cliente->id; $atdTO->id_status = $osTO->cod_status_servico; $atdDao = new AtendimentoDao(); if ($atdDao->updateAtendimento($atdTO, 'id=' . $osTO->id)) { // Remove todos os servicos e produtos da ordem de serviço $atdDao->deleteItemsByIdAtendimento($osTO->id); // Associa a Ordem de Serviço a Venda if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { if (!$atdDao->gravarAtendimentoVenda($osTO->id, $osTO->id_venda, $servico->id)) { Flight::halt(500, 'Erro ao associar o serviço a venda'); } } } if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { if (!$atdDao->gravarAtendimentoVenda($osTO->id, $osTO->id_venda, $produto->id)) { Flight::halt(500, 'Erro ao associar o produto a venda'); } } } $status_code = 200; } else { Flight::halt(500, 'Erro ao atualizar os dados da ordem de serviço'); } } else { Flight::halt(500, 'Erro ao remover os servicos e produtos da venda'); } } else { Flight::halt(500, 'Erro ao atualizar os dados da venda'); } } // Grava a movimentação de caixa if ($osTO->cod_status_servico == "6") { $movCxaTO = new MovimentacaoCaixaTO(); $movCxaTO->id_abertura_caixa = $osTO->id_abertura_caixa; $movCxaTO->id_plano_conta = $osTO->id_plano_conta; $movCxaTO->id_tipo_movimentacao = 5; $movCxaTO->dsc_movimentacao = 'Venda'; $movCxaTO->id_venda = $osTO->id_venda; $movCxaTO->para_receber = $osTO->vlr_total_os; $movCxaTO->dta_movimentacao = $osTO->dta_ordem_servico; $movCxaDao = new MovimentacaoCaixaDao(); if (!$movCxaDao->saveMovimentacao($movCxaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } } Flight::halt($status_code, 'Operação realizada com sucesso!'); }