function montaDadosParceiro($p)
{
    $cid = cidade::find_by_id($p->cidade_id);
    $est = estado::find_by_id($p->estado_id);
    $pg = empresa_pg::find_by_parceiros_id($p->id);
    $result = array();
    $caminhoBE = dirname(__DIR__) . '/views/img/paginas/';
    $result['id'] = $p->id;
    $result['nome'] = $p->nome;
    if (count($pg) > 0) {
        if ($pg->img_logo != '') {
            list($largura, $altura, $tipo, $attr) = getimagesize($caminhoBE . $pg->img_logo);
            if ($largura > $altura) {
                $result['largura'] = '200px';
                $result['altura'] = 'auto';
            } else {
                $result['largura'] = 'auto';
                $result['altura'] = '160px';
            }
        }
        $result['logo'] = $pg->img_logo;
        $result['resumo'] = substr($pg->txt_sobre, 0, 100) . '...';
    } else {
        $result['logo'] = '';
        $result['resumo'] = '';
    }
    $result['end'] = $p->logradouro;
    if ($p->complemento != '' && $p->complemento != null) {
        $result['end'] .= '<br>' . $p->complemento;
    }
    $result['end'] .= '<br>' . $cid->cidade . '&#47;' . $est->uf;
    $result['fone'] = $p->fone;
    $result['site'] = $p->site == null ? '' : $p->site;
    return $result;
}
     }
 } else {
     // aberta
     $campos = array('', 'cnpj', 'id', 'nome', 'email');
     $campo = $campos[$_POST['campo']];
     $texto = $_POST['texto'];
     $options['conditions'] = $campo . " LIKE '%" . $texto . "%'";
     $options['order'] = 'id ' . $ordem . ',' . $campo . ' ' . $ordem;
 }
 $total = count(parceiro::find('all', $options));
 // retorna o total de registros encontrados
 $parc = parceiro::find('all', $options);
 $conta = 0;
 if (count($parc) > 0) {
     foreach ($parc as $dadosParc) {
         $cidade = cidade::find_by_id($dadosParc->cidade_id);
         $estado = estado::find_by_id($dadosParc->estado_id);
         $p = array();
         $email = '';
         if ($dadosParc->email != '') {
             $email = '<a href="mailto:' . $dadosParc->email . '">' . $dadosParc->email . '</a>';
         }
         $p['id'] = $dadosParc->id;
         $p['cnpj'] = $dadosParc->cnpj;
         $p['nome'] = $dadosParc->nome;
         $p['email'] = $email;
         $p['local'] = $cidade->cidade . '/' . $estado->uf;
         $p['acessos'] = $dadosParc->acessos;
         $p['cadastro'] = date('d/m/Y', strtotime($dadosParc->data_cadastro));
         $p['ultacesso'] = date('d/m/Y', strtotime($dadosParc->data_atualizacao));
         $p['ultpagto'] = date('d/m/Y', strtotime($dadosParc->data_ultimo_pgto));
 public static function compraCreditos($idp, $idpct)
 {
     /**
      * Executa uma operação de compra de créditos
      *
      * @param int $idp ID do parceiro
      * @param int $idpct ID do pacote comprado
      * @param int $tipo transação : 2 = cartão (default) | 3 = boleto | 4 = depósito
      * @param string $obj objeto da operação
      */
     // As ações de compra e bônus possuem status = 0 (espera) e não atualiza o saldo de créditos
     // até que a operação de checkout retorne o valor como pago.
     $hoje = new ActiveRecord\DateTime(date('Y-m-d H:i:s'));
     $saldo = creditos_saldo_parceiro::find_by_parceiro_id('first', $idp);
     $parceiro = parceiro::find_by_id($idp);
     if (!$parceiro) {
         return self::ERRO_USUARIO_INVALIDO;
     }
     $ddd = (int) substr($parceiro->fone, 1, 2);
     $fone = (int) str_replace('-', '', substr($parceiro->fone, 4, 10));
     $options['conditions'] = array('parceiro_id = ? AND vencimento >= ? AND flag_ativo = ?', $idp, $hoje, 1);
     $bonusUnico = creditos_bonus_unico::first($options);
     // Pega os dados de créditos, custo e bonus do pacote
     $pacote = creditos_pacote::find_by_id($idpct);
     if (!$pacote || $pacote->flag_ativo == 0) {
         return self::ERRO_PACOTE_INVALIDO;
     }
     $titulo = $pacote->titulo;
     $creditos = $pacote->quant_creditos;
     $custo = $pacote->custo_pacote_reais;
     $referencia = $idp . '-SC-' . self::contaEventos($idp, self::SC, 1);
     // utilizado para rastrear todos as fases da operação
     $bonus_geral = 0;
     $bonus_unico = 0;
     // avalia bonus geral e único
     if ($pacote->creditos_bonus > 0 && strtotime($pacote->data_limite_bonus) >= strtotime($hoje)) {
         $bonus_geral = $pacote->creditos_bonus;
     }
     $buOptions['conditions'] = array('parceiro_id = ? AND vencimento >= ? AND flag_ativo = ?', $idp, $hoje, 1);
     $bu = creditos_bonus_unico::first($buOptions);
     if ($bu) {
         $bonus_unico = $bu->bonus;
     }
     // inicializa classe do pagseguro, inserindo dados de usuário
     $paymentRequest = new PagSeguroPaymentRequest();
     $paymentRequest->addItem($idpct, $titulo, 1, $custo);
     $paymentRequest->setSender($parceiro->responsavel . ' - ' . $parceiro->nome, $parceiro->email, $ddd, $fone);
     $paymentRequest->setCurrency('BRL');
     $paymentRequest->setReference($referencia);
     //$paymentRequest->addParameter('notificationURL', self::NOTIFICATION_URL);
     $sedexCode = PagSeguroShippingType::getCodeByType('NOT_SPECIFIED');
     $paymentRequest->setShippingType($sedexCode);
     $cidade = cidade::find_by_id($parceiro->cidade_id);
     $estado = estado::find_by_id($parceiro->estado_id);
     $postalCode = str_replace('-', '', $parceiro->cep);
     $postalCode = str_replace('.', '', $postalCode);
     $logradouro = explode(', ', $parceiro->logradouro);
     $paymentRequest->setShippingAddress($postalCode, $logradouro[0], $logradouro[1], $parceiro->complemento, $parceiro->bairro, $cidade->cidade, $estado->uf, 'BRA');
     // inicia o processo de transação enviando as credenciais e
     // solicitando o código da operação
     try {
         $credentials = PagSeguroConfig::getAccountCredentials();
         // getApplicationCredentials()
         $checkoutUrl = $paymentRequest->register($credentials);
         // FORMATO:  https://pagseguro.uol.com.br/v2/checkout/payment.html?code=1C9B0FD3AEAE0FF004A39F98B751B1E5
         $codigo = explode('=', $checkoutUrl);
         // grava os dados da operação antes inicar
         $dadosPagSeguro = array();
         $dadosPagSeguro['parceiro_id'] = $idp;
         $dadosPagSeguro['parceiro_nome'] = $parceiro->responsavel . ' - ' . $parceiro->nome;
         $dadosPagSeguro['parceiro_email'] = $parceiro->email;
         $dadosPagSeguro['parceiro_fone'] = $parceiro->fone;
         $dadosPagSeguro['bonus_geral'] = $bonus_geral;
         $dadosPagSeguro['bonus_unico'] = $bonus_unico;
         $dadosPagSeguro['pacote_id'] = $idpct;
         $dadosPagSeguro['pacote_titulo'] = $titulo;
         $dadosPagSeguro['pacote_creditos'] = $creditos;
         $dadosPagSeguro['flag_pacote_creditado'] = 0;
         $dadosPagSeguro['data_cadastro'] = $hoje;
         $dadosPagSeguro['data_atualizacao'] = $hoje;
         $dadosPagSeguro['codigo_link'] = $codigo[1];
         $dadosPagSeguro['referencia'] = $referencia;
         $dadosPagSeguro['tipo_transacao'] = 1;
         // 1 ==  compra | 11 == assinatura
         $dadosPagSeguro['status_transacao'] = 0;
         // inicia como 0
         $dadosPagSeguro['fases'] = 0;
         // registra todos os status retornados pelo pagseguro. Inicia como 0
         $dadosPagSeguro['valor_reais'] = $custo;
         $pagseguro = operacoes_pagseguro::create($dadosPagSeguro);
         $pagseguro->save();
         $observação = 'Solicitação de compra PagSeguro ' . $referencia . '(R$' . number_format($custo, 2, ',', '.') . ')';
         // registra o crédito adquirido como status EM ESPERA
         self::registraEvento($idp, self::SC, $saldo->saldo, $referencia, $crdt, $custo, 1, $observação);
         // descomentar esta linha na versão final
         // return $codigo[1];
         return self::ERRO_OPERACAO_TESTE_CANCELADA;
     } catch (PagSeguroServiceException $e) {
         // implementar retorno de erro personalizado
         die($e->getMessage());
     }
 }
Exemple #4
0
$lista = array();
$erros = array();
// erros
$erros['id'] = 'Erro de acesso. Id não forneceido';
$erros['vazio'] = 'No momento não há pedidos de orçamento ativos para sua empresa em nossos sistemas.';
if (isset($_POST['id'])) {
    // $listaPedidos = orcaenviado::find_all_by_parceiros_id($_POST['id'], array('order' => 'data_mudanca desc'));
    $listaPedidos = orcaenviado::find_all_by_parceiros_id($_POST['id'], array('order' => 'orcamentos_id desc'));
    if (count($listaPedidos) > 0) {
        foreach ($listaPedidos as $p) {
            // verifica os pedidos dentro do limite de dias estabelecido
            $diasPassados = $limiteDias->diff($p->data_mudanca);
            if ($diasPassados->invert == 0) {
                $pedido = array();
                $cidadeO = cidade::find_by_id($p->orcamento->cidade_origem);
                $cidadeD = cidade::find_by_id($p->orcamento->cidade_destino);
                $estadoO = estado::find_by_id($p->orcamento->uf_origem);
                $estadoD = estado::find_by_id($p->orcamento->uf_destino);
                $pedido['id'] = $p->orcamentos_id;
                $pedido['pedido'] = $p->orcamento->pedido;
                $pedido['data'] = $p->orcamento->data_registro;
                $pedido['origem'] = $cidadeO->cidade . '/' . $estadoO->uf;
                $pedido['destino'] = $cidadeD->cidade . '/' . $estadoD->uf;
                $pedido['data_muda'] = $p->data_mudanca;
                $pedido['visivel'] = -1;
                $visivel = $hoje->diff($p->data_mudanca);
                if ($visivel->invert == 0 || $visivel->days == 0) {
                    $pedido['visivel'] = $p->visualizado;
                }
                array_push($lista, $pedido);
            }
     // aberta
     $campos = array('', 'pedido', 'id', 'solicitante', 'email');
     $campo = $campos[$_POST['campo']];
     $texto = $_POST['texto'];
     $options['conditions'] = $campo . " LIKE '%" . $texto . "%'";
     $options['order'] = 'id ' . $ordem . ',' . $campo . ' ' . $ordem;
 }
 $total = count(orcamento::find('all', $options));
 // retorna o total de registros encontrados
 $orcs = orcamento::find('all', $options);
 $conta = 0;
 if (count($orcs) > 0) {
     foreach ($orcs as $dadosOrc) {
         $cidadeO = cidade::find_by_id($dadosOrc->cidade_origem);
         $estadoO = estado::find_by_id($dadosOrc->uf_origem);
         $cidadeD = cidade::find_by_id($dadosOrc->cidade_destino);
         $estadoD = estado::find_by_id($dadosOrc->uf_destino);
         $p = array();
         $p['id'] = $dadosOrc->id;
         $p['pedido'] = $dadosOrc->pedido;
         $p['cadastro'] = date('d/m/Y - H:i', strtotime($dadosOrc->data_registro));
         $p['mudanca'] = date('d/m/Y', strtotime($dadosOrc->data_mudanca));
         $p['origem'] = $cidadeO->cidade . '/' . $estadoO->uf;
         $p['destino'] = $cidadeD->cidade . '/' . $estadoD->uf;
         $p['nome'] = $dadosOrc->solicitante;
         $p['email'] = '<a href="mailto:' . $dadosOrc->email . '">' . $dadosOrc->email . '</a>';
         $p['entregue'] = $dadosOrc->tot_enviados;
         $p['vistos'] = $dadosOrc->tot_visualizados;
         $p['itens'] = $dadosOrc->itens;
         array_push($ORCAMENTOS, $p);
     }
Exemple #6
0
 if ($ufD != 0) {
     // possui uf de destino
     $QUERY .= ' AND uf_destino= ?';
     array_push($pesquisa, $ufD);
 }
 // insere a query no início do array
 array_unshift($pesquisa, $QUERY);
 $options['conditions'] = $pesquisa;
 $options['order'] = 'data_mudanca asc';
 $listaPedidos = orcamento::find('all', $options);
 // configura a saída da lista
 if (count($listaPedidos) > 0) {
     foreach ($listaPedidos as $p) {
         $pedido = array();
         $cidadeO = cidade::find_by_id($p->cidade_origem);
         $cidadeD = cidade::find_by_id($p->cidade_destino);
         $estadoO = estado::find_by_id($p->uf_origem);
         $estadoD = estado::find_by_id($p->uf_destino);
         $pedido['id'] = $p->id;
         $pedido['pedido'] = $p->pedido;
         $pedido['data'] = $p->data_registro;
         $pedido['origem'] = $cidadeO->cidade . '/' . $estadoO->uf;
         $pedido['destino'] = $cidadeD->cidade . '/' . $estadoD->uf;
         $pedido['data_muda'] = $p->data_mudanca;
         $pedidosParceiro = orcaenviado::find_by_parceiros_id_and_orcamentos_id($_POST['id'], $p->id);
         if ($pedidosParceiro && $pedidosParceiro->visualizado == 1) {
             $pedido['visivel'] = 1;
             $pedido['custo'] = 0;
         } else {
             $pedido['visivel'] = 0;
             $pedido['custo'] = operacoes_de_credito::pegaCustoPedido($p->id);