public static function pegaCustoPedido($idpedido) { $orcamento = orcamento::find_by_id($idpedido); $localOrig = creditos_custos_locai::find_by_cidade_id($orcamento->cidade_origem); $localDest = creditos_custos_locai::find_by_cidade_id($orcamento->cidade_destino); $custoBasico = creditos_dados_basico::first(); $custoOrig = $custoBasico->custo_basico_cidade; $custoDest = 0; $custoUf = 0; // verifica se o custo local de origem tiver um valor personalizado if ($localOrig) { $custoOrig = $localOrig->custo_cidade; } // verifica se as cidades são diferentes if ($orcamento->cidade_origem != $orcamento->cidade_destino) { // se forem aplica o custo básico ou personalizado, se houver $custoDest = $localDest ? $localDest->custo_cidade : $custoBasico->custo_basico_cidade; // se o estado for diferente aplica o custo básico de uf if ($orcamento->uf_origem != $orcamento->uf_destino) { $custoUf = $custoBasico->custo_basico_uf; } } $custoFinal = $custoOrig + $custoDest + $custoUf; // se o custo final for maior que o teto, limita no teto if ($custoFinal > $custoBasico->custo_local_teto) { $custoFinal = $custoBasico->custo_local_teto; } return $custoFinal; }
<?php require "connect_func.php"; $saida = array(); $erros = array(); $erros['id'] = 'ERRO :: ID não fornecido.'; $erros['naoexiste'] = 'ERRO :: ID inexistente'; $caminhoBE = '../views/img/paginas/'; if (isset($_POST['id'])) { $idp = $_POST['id']; $orcamento = orcamento::find_by_id($idp); if ($orcamento) { // exclui relacionamentos orcaenviado::delete_all(array('conditions' => array('orcamentos_id = ?', $idp))); // exclui registro final do orcamento $orcamento->delete(); // retorna confirmação de exclusão $saida['registro_excluido'] = $idp; } else { $saida['erro'] = $erros['naoexiste']; } } else { $saida['erro'] = $erros['id']; } echo json_encode($saida, JSON_UNESCAPED_UNICODE);
$dadosOrc['tot_enviados'] = $orcamento->tot_enviados + 1; $orcamento->update_attributes($dadosOrc); // gera a saída das informações $saida['itens'] = $pedido->orcamento->itens; $saida['saldo'] = $saldo; } else { $saida['erro'] = $erros['creditos']; } } else { $saida['saldo'] = operacoes_de_credito::pegaSaldo($_POST['idUser']); $saida['itens'] = $pedido->orcamento->itens; } } else { // se o pedido nao for encontrado na lista de orcamentos enviados // busca direto na tabela de orcamentos $orcamento = orcamento::find_by_id($_POST['idPedido']); if ($orcamento) { $saldo = pagaPedido($_POST['idUser'], $_POST['idPedido'], $orcamento->pedido); if ($saldo >= 0) { $dadosOrcEnv = array(); $dadosOrcEnv['data_mudanca'] = $orcamento->data_mudanca; $dadosOrcEnv['orcamentos_id'] = $orcamento->id; $dadosOrcEnv['parceiros_id'] = $_POST['idUser']; $dadosOrcEnv['visualizado'] = 1; $novoPedido = new orcaenviado($dadosOrcEnv); $novoPedido->save(); // atualiza a visualização dos pedidos $dadosOrc = array(); $dadosOrc['tot_visualizados'] = $orcamento->tot_visualizados + 1; $dadosOrc['tot_enviados'] = $orcamento->tot_enviados + 1; $orcamento->update_attributes($dadosOrc);