Ich arbeite an CakePHP-Projekt, wo ich die Berichte generieren muss. Ich habe zwei Tabellen, eine Tabelle speichert den Wert des Kunden und eine andere Tabelle speichert den Wert der Leads, die jedem Benutzer zugewiesen sind. Jeder Lead hat Status. Ich möchte den Zähler von progressleads zu erhöhen, wenn Status 0 ist, wenn Status 1 ist dann Zähler von wonleads erhöht werden sollte, und so weiter ...inkrementieren zähler status weise in php foreach
Ich trete zwei Tabellen und Array immer wie dieses =>
Array
(
[0] => Array
(
[Customer] => Array
(
[id] => 14
[name] => ABC
)
[Opportunity] => Array
(
[status] => 0
[value] => 50000
)
)
[1] => Array
(
[Customer] => Array
(
[id] => 14
[name] => ABC
)
[Opportunity] => Array
(
[status] => 1
[value] => 10000
)
)
[2] => Array
(
[Customer] => Array
(
[id] => 14
[name] => ABC
)
[Opportunity] => Array
(
[status] => 1
[value] => 7500
)
)
[3] => Array
(
[Customer] => Array
(
[id] => 15
[name] => DEF
)
[Opportunity] => Array
(
[status] => 0
[value] => 45000
)
)
[4] => Array
(
[Customer] => Array
(
[id] => 19
[name] => ST
)
[Opportunity] => Array
(
[status] => 2
[value] => 50000
)
)
[5] => Array
(
[Customer] => Array
(
[id] => 16
[name] => TEST
)
[Opportunity] => Array
(
[status] => 2
[value] => 1000000
)
)
[6] => Array
(
[Customer] => Array
(
[id] => 19
[name] => ST
)
[Opportunity] => Array
(
[status] => 0
[value] => 1000
)
)
[7] => Array
(
[Customer] => Array
(
[id] => 14
[name] => ABC
)
[Opportunity] => Array
(
[status] => 0
[value] =>
)
)
)
Von diesem Array möchte ich einen Datensatz für jeden Benutzer mit insgesamt Leads, inprogress Leads, gewonnen Leads Zähler. Ich habe folgenden Code versucht: -
$customerdetails = array();
$totalopp = 0;
$progressopp = 0;
$oppval = 0;
$wonopp = 0;
$lostopp = 0;
$billedopp = 0;
$onholdopp = 0;
$newcustid = NULL;
foreach($customer as $k => $val){
$custid = $val["Customer"]["id"];
if($newcustid != $custid){
$oppstatus = $val["Opportunity"]["status"];
$oppval += $val["Opportunity"]["opo_value"];
$totalopp++;
if($oppstatus == 0){
$progressopp++;
}
if($oppstatus == 1){
$wonopp++;
}
if($oppstatus == 2){
$lostopp++;
}
if($oppstatus == 3){
$billedopp++;
}
if($oppstatus == 4){
$onholdopp++;
}
$newcustid = $custid;
}
$customerdetails[$custid]["customername"] = $val["Customer"]["customer_name"];
$customerdetails[$custid]["opportunities"] = $totalopp;
$customerdetails[$custid]["value"] = $oppval;
$customerdetails[$custid]["inprogress"] = $progressopp;
$customerdetails[$custid]["won"] = $wonopp;
$customerdetails[$custid]["lost"] = $lostopp;
$customerdetails[$custid]["billed"] = $billedopp;
$customerdetails[$custid]["onhold"] = $onholdopp;
}
Nach dem Druck $ Kundendetails Array i folgende Ergebnisse sind immer =>
Array
(
[14] => Array
(
[customername] => ABC
[opportunities] => 6
[value] => 1146000
[inprogress] => 4
[won] => 0
[lost] => 2
[billed] => 0
[onhold] => 0
)
[15] => Array
(
[customername] => DEF
[opportunities] => 2
[value] => 95000
[inprogress] => 2
[won] => 0
[lost] => 0
[billed] => 0
[onhold] => 0
)
[19] => Array
(
[customername] => ST
[opportunities] => 5
[value] => 1146000
[inprogress] => 3
[won] => 0
[lost] => 2
[billed] => 0
[onhold] => 0
)
[16] => Array
(
[customername] => TEST
[opportunities] => 4
[value] => 1145000
[inprogress] => 2
[won] => 0
[lost] => 2
[billed] => 0
[onhold] => 0
)
)
Wie Sie sich nur 4 Leitungen zugeordnet ABC sehen können, aber es zeigt Opportunities wie 6 werden die anderen Counter ebenfalls falsch angezeigt. Kann mir jemand helfen, was ich hier falsch mache?
Danke für Ihre Hilfe aber können Sie mir bitte sagen, was ist $ Ergebnis enthält? – user3327608
'$ finalResult' ist nur ein Array, das das Endergebnis enthält. Überprüfen Sie die aktualisierte Antwort für das Array-Format. –
Dies ist die erste Platte, die ich so bekam: - Array ( [14] => Array ( [Möglichkeiten] => 1 [Wert] => 50000 [inprogress] => 1 [gewonnen] => 0 [verloren] => 0 [Rechnung] => 0 [OnHold] => 0 [customerid] => 14 [Kundenname] => ABC ) – user3327608