Ik loop vast op een query, en hoop dat iemand me kan helpen want volgens mij zit ik met een gedachte kronkel.
De situatie:
Een bedrijf, meerdere afdelingen, binnen de afdelingen diverse groepen.
Er komen verzoeken binnen van klanten die afhankelijk van het verzoek verdeeld worden over de diverse groepen van een afdeling.
Het opvragen van de verzoeken die bij een afdelingen horen gaat goed.
(deze stop ik in $fetch_gs_ids)
De groepen van een afdeling staan in een aparte tabel, met daarin naam van de groep en een groep ID.
Nu hou ik in weer 2 aparte tabellen bij, tot welke groep een medewerker behoort, het zelfde doe ik voor de klanten.
Zo kan een bepaalde medewerker voor meerdere groepen werkzaamheden verrichten.
[box_details]
- boxid
- box_naam
[boxmatch_medewerkers]
- boxid
- medewerker_id
[boxmatch_klanten]
- boxid
- klant_id
Nu is er voor iedere afdeling altijd minimaal 1 standaard groep.
Nu is er een senior adviseur die alleen verzoeken afhandelt welke zijn doorgespeeld naar zijn groep/groepen, en welke geen standaard verzoeken afhandelt.
Alle verzoeken zitten in 1 tabel ([gs_flow])
Hierboven wordt nu dus gekeken of de klant en de adviseur beide voorkomen in één van de boxen/groepen waar de medewerker in voorkomt Uitgesloten de standaard box. Dit heb ik net getest en lijkt goed te werken.
Het probleem speelt zich nu af bij een normale medewerker van de zelfde afdeling. Dit komt omdat iedereen voorkomt in de standaard box/groep.
De query for normale adviseurs is namelijk anders. Het stukje
"AND boxid <> '".$poolinfo['default_box']."'"
ontbreekt namelijk.
Ik heb nu een extra veld aangemaakt in de profile table
[profile]
~enkele klant gegevens~
- exclude
(het exclude veld is enum 'n','y' default 'n')
Nu bij het doorsturen van een verzoek naar een van de senior groepen wordt de waarde van het veld veranderd in 'y'
zodat deze niet meer voor mag komen in het overzicht van de reguliere adviseurs. Ook is het mogelijk om zo bepaalde klanten permanent door te sturen naar senior adviseurs.
Alleen ik loop vast met het maken van deze query.
Volgens mij moet ik een if/else statement gebruiken. Maar zie niet zo 1 2 3 waar.
De situatie:
Een bedrijf, meerdere afdelingen, binnen de afdelingen diverse groepen.
Er komen verzoeken binnen van klanten die afhankelijk van het verzoek verdeeld worden over de diverse groepen van een afdeling.
Het opvragen van de verzoeken die bij een afdelingen horen gaat goed.
(deze stop ik in $fetch_gs_ids)
De groepen van een afdeling staan in een aparte tabel, met daarin naam van de groep en een groep ID.
Nu hou ik in weer 2 aparte tabellen bij, tot welke groep een medewerker behoort, het zelfde doe ik voor de klanten.
Zo kan een bepaalde medewerker voor meerdere groepen werkzaamheden verrichten.
[box_details]
- boxid
- box_naam
[boxmatch_medewerkers]
- boxid
- medewerker_id
[boxmatch_klanten]
- boxid
- klant_id
Nu is er voor iedere afdeling altijd minimaal 1 standaard groep.
Nu is er een senior adviseur die alleen verzoeken afhandelt welke zijn doorgespeeld naar zijn groep/groepen, en welke geen standaard verzoeken afhandelt.
Alle verzoeken zitten in 1 tabel ([gs_flow])
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <?php $sql2 = "SELECT gs_flow.gs_id, gs_flow.profile_id, profile.name, profile.card FROM gs_flow LEFT OUTER JOIN profile ON gs_flow.profile_id = profile.id LEFT OUTER JOIN boxmatch_klanten ON profile_id = klant_id WHERE gs_flow.gs_id IN (".$fetch_gs_ids.") AND boxmatch_klanten.boxid IN (SELECT boxid FROM boxmatch_medewerkers WHERE medewerker_id = '".$med_id."' AND boxid <> '".$poolinfo['default_box']."') AND gs_flow.voltooid = 'n' ORDER BY gs_flow.tijd"; ?> |
Hierboven wordt nu dus gekeken of de klant en de adviseur beide voorkomen in één van de boxen/groepen waar de medewerker in voorkomt Uitgesloten de standaard box. Dit heb ik net getest en lijkt goed te werken.
Het probleem speelt zich nu af bij een normale medewerker van de zelfde afdeling. Dit komt omdat iedereen voorkomt in de standaard box/groep.
De query for normale adviseurs is namelijk anders. Het stukje
"AND boxid <> '".$poolinfo['default_box']."'"
ontbreekt namelijk.
Ik heb nu een extra veld aangemaakt in de profile table
[profile]
~enkele klant gegevens~
- exclude
(het exclude veld is enum 'n','y' default 'n')
Nu bij het doorsturen van een verzoek naar een van de senior groepen wordt de waarde van het veld veranderd in 'y'
zodat deze niet meer voor mag komen in het overzicht van de reguliere adviseurs. Ook is het mogelijk om zo bepaalde klanten permanent door te sturen naar senior adviseurs.
Alleen ik loop vast met het maken van deze query.
Volgens mij moet ik een if/else statement gebruiken. Maar zie niet zo 1 2 3 waar.
Illest Alive