Example #1
0
 public function getComissionados($inicio, $fim, $tipo, $page = array('limit' => 1, 'offset' => 1))
 {
     switch ($tipo) {
         case "indicacao":
             $sql = "SELECT\n                    pessoa.idpessoa as id,\n                    pessoa.nome as nome,\n                    pessoa.login as login,\n                    SUM(comissao.valor) as vendas,\n                    plano.nome as plano,\n                    comissao.data_cadastro as data_cadastro,\n                    '-' as numero_nota\n                FROM bo_comissao_i as comissao\n                INNER JOIN bo_pessoa as pessoa ON pessoa.idpessoa = comissao.idpessoa_recebe\n                INNER JOIN bo_comissao_indicacao as detalhes ON comissao.idcomissao_indicacao = detalhes.idcomissao_indicacao\n                INNER JOIN bo_plano as plano ON plano.idplano = (\n                 select\n                    pl.idplano\n                 from bo_contrato as c\n                 inner join bo_plano as pl on (pl.idplano = c.idplano)\n                 where c.idpessoa = pessoa.idpessoa\n                 order by c.idcontrato desc\n                 limit 1\n                )\n                WHERE comissao.data_cadastro BETWEEN '{$inicio}' AND '{$fim}'\n                GROUP BY comissao.idpessoa_recebe\n                LIMIT " . $page['limit'] . "\n                OFFSET " . $page['offset'];
             break;
         case "vendas":
             $sql = "SELECT\n                    pessoa.idpessoa as id,\n                    pessoa.nome as nome,\n                    pessoa.login as login,\n                    SUM(comissao.valor) as vendas,\n                    plano.nome as plano,\n                    comissao.data_cadastro as data_cadastro,\n                    comissao.numero_nota\n                FROM bo_comissao_v as comissao\n                INNER JOIN bo_pessoa as pessoa ON pessoa.idpessoa = comissao.idpessoa\n                INNER JOIN bo_comissao_venda as detalhes ON comissao.idcomissao_venda = detalhes.idcomissao_venda\n                INNER JOIN bo_plano as plano ON plano.idplano = (\n                 select\n                    pl.idplano\n                 from bo_contrato as c\n                 inner join bo_plano as pl on (pl.idplano = c.idplano)\n                 where c.idpessoa = pessoa.idpessoa\n                 order by c.idcontrato desc\n                 limit 1\n                )\n                WHERE comissao.data_cadastro BETWEEN '{$inicio}' AND '{$fim}'\n                GROUP BY comissao.idpessoa\n                LIMIT " . $page['limit'] . "\n                OFFSET " . $page['offset'];
             break;
         default:
             $sql = "SELECT\n                    pessoa.idpessoa as id,\n                    pessoa.nome as nome,\n                    pessoa.login as login,\n                    SUM(comissao.valor) as vendas,\n                    plano.nome as plano,\n                    comissao.numero_nota\n                FROM(\n                    SELECT\n                        cv.data_cadastro as data_cadastro,\n                        cv.idpessoa as idpessoa,\n                        cv.numero_nota as numero_nota,\n                        valor\n                    FROM bo_comissao_v as cv\n                    INNER JOIN bo_comissao_venda as detalhes ON cv.idcomissao_venda = detalhes.idcomissao_venda\n                    UNION ALL\n                    SELECT\n                        ci.data_cadastro as data_data_cadastro,\n                        idpessoa_recebe as idpessoa,\n                        '-' as numero_nota,\n                        valor\n                    FROM bo_comissao_i as ci\n                    INNER JOIN bo_comissao_indicacao as detalhes ON ci.idcomissao_indicacao = detalhes.idcomissao_indicacao\n                ) AS comissao\n                INNER JOIN bo_pessoa as pessoa ON pessoa.idpessoa = comissao.idpessoa\n                INNER JOIN bo_plano as plano ON plano.idplano = (\n                 select\n                    pl.idplano\n                 from bo_contrato as c\n                 inner join bo_plano as pl on (pl.idplano = c.idplano)\n                 where c.idpessoa = pessoa.idpessoa\n                 order by c.idcontrato desc\n                 limit 1\n                )\n                WHERE comissao.data_cadastro BETWEEN '{$inicio}' AND '{$fim}'\n                GROUP BY comissao.idpessoa\n                LIMIT " . $page['limit'] . "\n                OFFSET " . $page['offset'];
             break;
     }
     $dadosWhere = array();
     $resultado = Transacao::especifico($sql, $dadosWhere);
     $ranking = array();
     foreach ($resultado as $r) {
         $classificacao = new Classificacao();
         $classificacao->set_nome($r['nome']);
         $classificacao->set_login($r['login']);
         $classificacao->set_vendas($r['vendas']);
         $classificacao->set_plano($r['plano']);
         $classificacao->set_nota($r['numero_nota']);
         $ranking[] = $classificacao;
     }
     return $ranking;
 }
Example #2
0
 public function getRankingVendas($inicio, $fim, $tipo, $limit = 10)
 {
     switch ($tipo) {
         case "indicacao":
             $sql = "SELECT\n                    pessoa.idpessoa as id,\n                    pessoa.nome as nome,\n                    pessoa.login as login,\n                    SUM(valor) as vendas\n                FROM bo_comissao_i as comissao\n                INNER JOIN bo_pessoa as pessoa ON pessoa.idpessoa = comissao.idpessoa_recebe\n                WHERE comissao.data_cadastro BETWEEN '{$inicio}' AND '{$fim}' AND indicacao_direta = 1\n                GROUP BY comissao.idpessoa_recebe\n                ORDER BY vendas DESC\n                LIMIT " . $limit;
             break;
         case "vendas":
             $sql = "SELECT\n                    pessoa.idpessoa as id,\n                    pessoa.nome as nome,\n                    pessoa.login as login,\n                    SUM(valor) as vendas\n                FROM bo_comissao_v as comissao\n                INNER JOIN bo_pessoa as pessoa ON pessoa.idpessoa = comissao.idpessoa\n                WHERE comissao.data_cadastro BETWEEN '{$inicio}' AND '{$fim}' AND venda_direta = 1\n                GROUP BY comissao.idpessoa\n                ORDER BY vendas DESC\n                LIMIT " . $limit;
             break;
         default:
             $sql = "SELECT\n                    pessoa.idpessoa as id,\n                    pessoa.nome as nome,\n                    pessoa.login as login,\n                    SUM(valor) as vendas\n                FROM(\n                    SELECT cv.data_cadastro as data_cadastro, cv.idpessoa as idpessoa, valor, venda_direta as direta FROM bo_comissao_v as cv\n                    UNION ALL\n                    SELECT ci.data_cadastro as data_cadastro, idpessoa_recebe as idpessoa, valor, 1 as direta FROM bo_comissao_i as ci\n                ) AS comissao\n                INNER JOIN bo_pessoa as pessoa ON pessoa.idpessoa = comissao.idpessoa\n                WHERE comissao.data_cadastro BETWEEN '{$inicio}' AND '{$fim}'\n                AND direta = 1\n                GROUP BY comissao.idpessoa\n                ORDER BY vendas DESC\n                LIMIT " . $limit;
             break;
     }
     $dadosWhere = array();
     $resultado = Transacao::especifico($sql, $dadosWhere);
     $ranking = array();
     foreach ($resultado as $r) {
         $classificacao = new Classificacao();
         $classificacao->set_nome($r['nome']);
         $classificacao->set_login($r['login']);
         $classificacao->set_vendas($r['vendas']);
         $ranking[] = $classificacao;
     }
     return $ranking;
 }