<?php $PagamentoClienteDao = new PagamentoClienteDao(); $AtendimentoDao = new AtendimentoDao(); $UsuarioDao = new UsuarioDao(); $usuario = (object) $UsuarioDao->getUsuario($dados['id_empreendimento'], $dados['id_paciente']); $pagamentos = $PagamentoClienteDao->getPagamentosCliente($dados['id_paciente'], null, null, array('pag.id_empreendimento' => $dados['id_empreendimento'])); $pagamentos = $pagamentos['pagamentos']; $atendimentos = $AtendimentoDao->getItensVenda($dados['id_paciente'], null, null, null); $fichaPaciente = array(); if (count($atendimentos) >= count($pagamentos)) { foreach ($atendimentos as $key => $value) { $item = new stdClass(); $item->dta_venda = date('d/m/Y', strtotime($value['dta_venda'])); $item->cod_dente = $value['cod_dente']; $item->cod_procedimento = $value['cod_procedimento']; $item->nome_profissional = $value['nome_profissional']; $item->valor_real_item = $value['valor_real_item']; $item->dta_entrada = isset($pagamentos[$key]['dta_entrada']) ? date('d/m/Y', strtotime($pagamentos[$key]['dta_entrada'])) : null; $item->descricao_forma_pagamento = isset($pagamentos[$key]['descricao_forma_pagamento']) ? $pagamentos[$key]['descricao_forma_pagamento'] : null; $item->data_pagamento = isset($pagamentos[$key]['data_pagamento']) ? $pagamentos[$key]['data_pagamento'] : null; $item->valor_pagamento = isset($pagamentos[$key]['valor_pagamento']) ? $pagamentos[$key]['valor_pagamento'] : null; $item->id_forma_pagamento = isset($pagamentos[$key]['id_forma_pagamento']) ? $pagamentos[$key]['id_forma_pagamento'] : null; $item->num_parcelas = isset($pagamentos[$key]['num_parcelas']) ? $pagamentos[$key]['num_parcelas'] : null; $fichaPaciente[] = $item; } } else { foreach ($pagamentos as $key => $value) { $item = new stdClass(); $item->dta_venda = isset($atendimentos[$key]['dta_venda']) ? date('d/m/Y', strtotime($atendimentos[$key]['dta_venda'])) : null; $item->cod_dente = isset($atendimentos[$key]['cod_dente']) ? $atendimentos[$key]['cod_dente'] : null;
public static function getAgendaAtendimentos() { try { $AtendimentoDao = new AtendimentoDao(); $id_empreendimento = $_GET['id_empreendimento']; $first_date = $_GET['start']; $last_date = $_GET['end']; $busca['cplSql'] = " date_format(ta.dta_entrada,'%Y-%m-%d') BETWEEN '{$first_date}' AND '{$last_date}' AND ta.id_empreendimento = {$id_empreendimento}"; $busca['cplSql'] .= is_numeric($_GET['id_profissional_atendimento']) ? ' AND ta.id_profissional_atendimento = ' . $_GET['id_profissional_atendimento'] : ""; $dados = $AtendimentoDao->getFilaAtendimento(null, null, $busca); $saida = array(); foreach ($dados as $key => $value) { $procedimentos = $AtendimentoDao->getAtendimentoProcedimento($value['id']); $aux = $procedimentos ? ' (' . $procedimentos[0]['dsc_procedimento'] . ')' : ''; $color = $procedimentos ? $procedimentos[0]['hex_cor'] : '#6BAFBD'; $tma = $procedimentos && !empty($procedimentos[0]['tma_procedimento']) ? $procedimentos[0]['tma_procedimento'] : false; $dsc_especialidade = $procedimentos ? $procedimentos[0]['dsc_especialidade'] : ''; $dsc_procedimento = $procedimentos ? $procedimentos[0]['dsc_procedimento'] : ''; if ($tma) { $end = date('Y-m-d H:i:s', strtotime("+{$tma} minutes", strtotime($value['dta_entrada']))); } else { $end = null; } $saida[] = array('title' => $value['nome_paciente'] . $aux, 'start' => $value['dta_entrada'], 'end' => $end, 'color' => $color, 'dsc_especialidade' => $dsc_especialidade, 'dsc_procedimento' => $dsc_procedimento, 'nome_paciente' => $value['nome_paciente'], 'nome_profissional' => $value['nome_profissional']); } if ($saida) { Flight::json($saida); } else { Flight::halt(404, 'Não há resultado para a busca'); } } catch (Exception $e) { jsonException($e, 500); } }
/*Busca Pagamentos aos Profissioais*/ $totalDespesas = 0; $LancamentosFinanceirosDao = new LancamentosFinanceirosDao(); $where = "(id_tipo_conta <> 5 OR (id_tipo_conta =5 AND (flg_caixa_fechado = 0 OR flg_caixa_fechado IS NULL ) ) AND flg_tipo_lancamento = 'D' ) AND (flg_transferencia_conta = 0 OR \n\t\t\t flg_transferencia_conta IS NULL) AND id_empreendimento = {$id_empreendimento} AND dta_entrada between '{$now} 00:00:00' and '{$now} 23:59:59' \n\t\t\t AND id_plano_conta = '{$id_plano_conta_pagamento_profissional}' order by \n\t\t dta_entrada asc"; $aux = $LancamentosFinanceirosDao->getLancamentos(null, null, array('cplSql' => $where)); $comissionados = $aux ? getParcelas($aux['pagamentos']) : array(); usort($comissionados, 'ordenaDta'); /* end */ /*Busca Pagamentos a fornecedores*/ $where = "(id_tipo_conta <> 5 OR (id_tipo_conta =5 AND (flg_caixa_fechado = 0 OR flg_caixa_fechado IS NULL ) ) AND flg_tipo_lancamento = 'D' ) AND (flg_transferencia_conta = 0 OR \n\t\t\t flg_transferencia_conta IS NULL) AND id_empreendimento = {$id_empreendimento} AND data_pagamento between '{$now} 00:00:00' and '{$now} 23:59:59' \n\t\t\t AND id_plano_conta <> '{$id_plano_conta_pagamento_profissional}' AND id_clienteORfornecedor <> '{$id_fornecedor_movimentacao_caixa}' AND flg_tipo_lancamento = 'D' AND status_pagamento = 1 order by \n\t\t dta_entrada asc"; $aux = $LancamentosFinanceirosDao->getLancamentos(null, null, array('cplSql' => $where)); $outrasDespesas = $aux ? getParcelas($aux['pagamentos']) : array(); usort($outrasDespesas, 'ordenaDta'); /*end*/ /*Busca atendimentos*/ $AtendimentoDao = new AtendimentoDao(); $atendimentos = $AtendimentoDao->getFilaAtendimento(null, null, array("cplSql" => "ta.id_empreendimento={$id_empreendimento} AND ta.id_profissional_atendimento IS NOT NULL AND ta.id_atendimento_origem IS NULL AND date_format(ta.dta_entrada,'%Y-%m-%d') = '{$now}' ORDER BY ta.dta_entrada ASC")); $atendimentos = $atendimentos ? $atendimentos : array(); /*end*/ /*Busca Pagamentos por forma de pagamento*/ $LancamentosFinanceirosDao = new LancamentosFinanceirosDao(); $where = "(id_tipo_conta <> 5 OR (id_tipo_conta =5 AND (flg_caixa_fechado = 0 OR flg_caixa_fechado IS NULL ) ) AND flg_tipo_lancamento = 'C' ) AND (flg_transferencia_conta = 0 OR \n\t\t\t flg_transferencia_conta IS NULL) AND id_empreendimento = {$id_empreendimento} AND dta_entrada between '{$now} 00:00:00' and '{$now} 23:59:59' AND flg_tipo_lancamento = 'C'\n\t\t\t order by dta_entrada asc"; $aux = $LancamentosFinanceirosDao->getLancamentos(null, null, array('cplSql' => $where)); $pagamentos = $aux ? getParcelas($aux['pagamentos']) : array(); usort($pagamentos, 'ordenaDta'); $pagByformaPagamento = array(); $totalRecebido = 0; $totalCredito = 0; foreach ($pagamentos as $key => $value) { if ($value['id_forma_pagamento'] == 6 || $value['id_forma_pagamento'] == 2) { $totalCredito += $value['valor_pagamento'];
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!'); }