Try to use better sql to display result for dir search, issue #0001191, issue #0001129, issue #0000249
This commit is contained in:
parent
0abfe6cc15
commit
806b754105
@ -703,8 +703,9 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit,
|
||||
}
|
||||
$pertinence_generale *= $num / $tot;
|
||||
$pertinence_generale = intval($pertinence_generale);
|
||||
print 'Pertinence generale: '.$pertinence_generale.'<br/>';
|
||||
//print 'Pertinence generale: '.$pertinence_generale.'<br/>';
|
||||
}
|
||||
|
||||
$decalage = false;
|
||||
for ($i = 0, $k = 0; $k < $resDB->num_rows || $decalage == true; ++$i) {
|
||||
if ($decalage == false) {
|
||||
@ -713,67 +714,43 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit,
|
||||
} else {
|
||||
$decalage = false;
|
||||
}
|
||||
if ($formR['type']=='dir') {
|
||||
debugln($ligneDir[$i]['id'].' '.$ligne['id']);
|
||||
|
||||
$ret['reponses'][$i]['id'] = $ligne['id'];
|
||||
$pertinence = $pertinence_generale;
|
||||
if ($formR['type'] == 'ent') {
|
||||
if (empty($formR['raisonSociale']) == false) {
|
||||
$pertinence *= compare($formR['raisonSociale'], $ligne['raisonSociale']);
|
||||
}
|
||||
if (empty($formR['voie']) == false) {
|
||||
$pertinence *= compare($formR['voie'], $ligne['adr_typeVoie'].' '.$ligne['adr_libVoie']);
|
||||
}
|
||||
if (empty($formR['ville']) == false) {
|
||||
$pertinence *= compare($formR['ville'], $ligne['adr_ville']);
|
||||
}
|
||||
}
|
||||
if ($formR['type']=='dir' && $ligneDir[$i]['id']!=$ligne['id']) {
|
||||
for ($j = $i - 1; $j >= 0; --$j) {
|
||||
if ($ret['reponses'][$j]['id'] == $ligneDir[$i]['id']) {
|
||||
$ret['reponses'][$i] = $ret['reponses'][$j];
|
||||
$decalage = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($decalage != true) {
|
||||
debugln('erreur '.$ligneDir[$i]['id'].' != '.$ligne['id']);
|
||||
}
|
||||
} else {
|
||||
$ret['reponses'][$i]['id'] = $ligne['id'];
|
||||
//if ($formR['type'] == 'dir') {
|
||||
// debugln("$i:$ligne[id]");
|
||||
//}
|
||||
$pertinence = $pertinence_generale;
|
||||
if ($formR['type'] == 'ent') {
|
||||
if (empty($formR['raisonSociale']) == false) {
|
||||
$pertinence *= compare($formR['raisonSociale'],
|
||||
$ligne['raisonSociale']);
|
||||
}
|
||||
if (empty($formR['voie']) == false) {
|
||||
$pertinence *= compare($formR['voie'],
|
||||
$ligne['adr_typeVoie'].' '.
|
||||
$ligne['adr_libVoie']);
|
||||
}
|
||||
if (empty($formR['ville']) == false) {
|
||||
$pertinence *= compare($formR['ville'],
|
||||
$ligne['adr_ville']);
|
||||
}
|
||||
}
|
||||
$ret['reponses'][$i]['Pertinence'] = $pertinence;
|
||||
$ret['reponses'][$i]['Siret'] = $ligne['siret'];
|
||||
$ret['reponses'][$i]['Siren'] = $ligne['siren'];
|
||||
$ret['reponses'][$i]['Nic'] = $ligne['nic'];
|
||||
$ret['reponses'][$i]['Siege'] = $ligne['siege'];
|
||||
$ret['reponses'][$i]['Nom'] = $ligne['raisonSociale'];
|
||||
$ret['reponses'][$i]['Nom2'] = '';
|
||||
$ret['reponses'][$i]['Sigle'] = $ligne['sigle'];
|
||||
$ret['reponses'][$i]['Enseigne'] = $ligne['enseigne'];
|
||||
$ret['reponses'][$i]['Adresse'] =
|
||||
$ret['reponses'][$i]['Pertinence'] = $pertinence;
|
||||
$ret['reponses'][$i]['Siret'] = $ligne['siret'];
|
||||
$ret['reponses'][$i]['Siren'] = $ligne['siren'];
|
||||
$ret['reponses'][$i]['Nic'] = $ligne['nic'];
|
||||
$ret['reponses'][$i]['Siege'] = $ligne['siege'];
|
||||
$ret['reponses'][$i]['Nom'] = $ligne['raisonSociale'];
|
||||
$ret['reponses'][$i]['Nom2'] = '';
|
||||
$ret['reponses'][$i]['Sigle'] = $ligne['sigle'];
|
||||
$ret['reponses'][$i]['Enseigne'] = $ligne['enseigne'];
|
||||
$ret['reponses'][$i]['Adresse'] =
|
||||
$ligne['adr_num'].' '.
|
||||
$ligne['adr_typeVoie'].' '.
|
||||
$ligne['adr_libVoie'];
|
||||
$ret['reponses'][$i]['Adresse2'] = $ligne['adr_comp'];
|
||||
$ret['reponses'][$i]['CP'] = $ligne['adr_cp'];
|
||||
$ret['reponses'][$i]['Ville'] = $ligne['adr_ville'];
|
||||
$ret['reponses'][$i]['Tel'] = $ligne['tel'];
|
||||
$ret['reponses'][$i]['Fax'] = $ligne['fax'];
|
||||
$ret['reponses'][$i]['FJ'] = $ligne['cj'];
|
||||
//$ret['reponses'][$i]['FJLib'] = ;
|
||||
$ret['reponses'][$i]['Actif'] = $ligne['actif'];
|
||||
$ret['reponses'][$i]['NafEtab'] = $ligne['ape_etab'];
|
||||
//$ret['reponses'][$i]['NafEtabLib'] = ;
|
||||
$ret['reponses'][$i]['NafEnt'] = $ligne['ape_entrep'];
|
||||
//$ret['reponses'][$i]['NafEntLib'] = ;
|
||||
}
|
||||
$ret['reponses'][$i]['Adresse2'] = $ligne['adr_comp'];
|
||||
$ret['reponses'][$i]['CP'] = $ligne['adr_cp'];
|
||||
$ret['reponses'][$i]['Ville'] = $ligne['adr_ville'];
|
||||
$ret['reponses'][$i]['Tel'] = $ligne['tel'];
|
||||
$ret['reponses'][$i]['Fax'] = $ligne['fax'];
|
||||
$ret['reponses'][$i]['FJ'] = $ligne['cj'];
|
||||
$ret['reponses'][$i]['Actif'] = $ligne['actif'];
|
||||
$ret['reponses'][$i]['NafEtab'] = $ligne['ape_etab'];
|
||||
$ret['reponses'][$i]['NafEnt'] = $ligne['ape_entrep'];
|
||||
|
||||
if ($formR['type']=='dir') {
|
||||
// Dirigeant
|
||||
$ret['reponses'][$i]['DirRs'] = '';
|
||||
@ -952,19 +929,19 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
|
||||
}
|
||||
|
||||
$requeteDB =
|
||||
'select e.id, d.nom, d.prenom, d.naissance_nom, d.naissance_date, d.naissance_lieu, l.libelle AS fonction_lib '.
|
||||
' from dirigeants d, etablissements e, bodacc_fonctions l'.
|
||||
' where d.siren=e.siren and d.fonction_code=l.codeFct AND e.siege=1 and (d.id='.
|
||||
$resSphinx['matches'][0]['id'];
|
||||
"SELECT e.id, d.nom, d.prenom, d.naissance_nom, d.naissance_date, d.naissance_lieu, l.libelle AS fonction_lib".
|
||||
" FROM dirigeants d, etablissements e, bodacc_fonctions l".
|
||||
" WHERE d.fonction_code=l.codeFct AND d.id IN (".$resSphinx['matches'][0]['id'];
|
||||
for ($i = 1; $i + $deb < $resSphinx['total'] && $i < $nbRep; ++$i) {
|
||||
$requeteDB .= ' or d.id='.$resSphinx['matches'][$i]['id'];
|
||||
$requeteDB .= ",".$resSphinx['matches'][$i]['id'];
|
||||
}
|
||||
$requeteDB .= ')';
|
||||
$requeteDB .= ' GROUP BY d.siren, d.id';
|
||||
$requeteDB .= ' ORDER BY e.actif DESC, e.siege DESC, e.id ASC';
|
||||
$requeteDB .= ") AND e.id = (";
|
||||
$requeteDB .= "SELECT tmp.id FROM etablissements tmp ";
|
||||
$requeteDB .= "WHERE tmp.siren=d.siren ORDER by tmp.actif DESC, tmp.siege DESC LIMIT 1";
|
||||
$requeteDB .= ")";
|
||||
|
||||
debugln();
|
||||
debugln("requeteDB='$requeteDB'");
|
||||
//file_put_contents('test.log', $requeteDB);
|
||||
$resDB = $gDatabaseJO->query($requeteDB);
|
||||
|
||||
// Reponse
|
||||
@ -974,7 +951,7 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
|
||||
$requeteDB = 'select id, CONCAT(siren,nic) AS siret, siren, nic, siege, '.
|
||||
'raisonSociale, sigle, enseigne, adr_num, adr_typeVoie, adr_libVoie, '.
|
||||
'adr_comp, adr_cp, adr_ville, tel, fax, cj, actif, ape_etab, '.
|
||||
'ape_entrep from etablissements where id='.$ligne['id'];
|
||||
'ape_entrep from etablissements where id IN ('.$ligne['id'];
|
||||
|
||||
$ligneDir[0] = array(
|
||||
'id' => $ligne['id'],
|
||||
@ -987,7 +964,7 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
|
||||
);
|
||||
for ($i = 1; $i < $resDB->num_rows; ++$i) {
|
||||
$ligne = $resDB->fetch_assoc();
|
||||
$requeteDB .= ' or id='.$ligne['id'];
|
||||
$requeteDB .= ','.$ligne['id'];
|
||||
|
||||
$nom = $ligne['nom'];
|
||||
if ( $ligne['naissance_nom']!='' ) {
|
||||
@ -1003,7 +980,7 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
|
||||
'naissance_lieu'=> $ligne['naissance_lieu']
|
||||
);
|
||||
}
|
||||
$requeteDB .= ' ORDER BY actif DESC, siege DESC, id ASC';
|
||||
$requeteDB .= ') ORDER BY actif DESC, siege DESC';
|
||||
debugln();
|
||||
debugln("requeteDB='$requeteDB'");
|
||||
$resDB = $gDatabaseJO->query($requeteDB);
|
||||
@ -1487,8 +1464,7 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false)
|
||||
for ($i = 1; $i + $deb < $resSphinx['total'] && $i < $nbRep; ++$i) {
|
||||
$requeteDB .= ' or id='.$resSphinx['matches'][$i]['id'];
|
||||
}
|
||||
$requeteDB .=
|
||||
' ORDER BY sirenValide DESC, actif DESC, siege DESC, rang DESC';
|
||||
$requeteDB .= ' ORDER BY sirenValide DESC, actif DESC, siege DESC, rang DESC';
|
||||
|
||||
debugln();
|
||||
debugln("requeteDB='$requeteDB'");
|
||||
|
Loading…
Reference in New Issue
Block a user