芝麻web文件管理V1.00
编辑当前文件:/home/forge/stage.herta-bht.smartcon-survey.com/app/Exports/TableVolume/TVKpiFunnelExport.php
isBrand = $this->models->first() instanceof Brand; } public function array(): array { return $this->getFunnelData(); } private function getFunnelData(): array { $funnelService = new FunnelService($this->countryId); $funnelService->allQuarters(true) ->setModels($this->models); $result = [ [ 'Brand', 'Total', ...array_reduce($funnelService->getQuarters(), function ($curr, $quarter) { $quarter = "{$quarter['quarter']} {$quarter['year']}"; return [ ...$curr, "Q$quarter (N)", "Q$quarter (n)", "Q$quarter (%)", ]; }, []), ], ]; $funnelData = $funnelService->getData(); foreach ($this->getFunnelLevels() as $key => $funnelLevel) { $result[] = $funnelLevel; foreach ($funnelData as $funnelDataForModel) { $model = [ 'Brand' => $funnelDataForModel['model'], 'Total' => 0, ]; $spontaneousAwareness = [ 'title' => 'Spontaneous Awareness', 'Total' => 0, ]; foreach ($funnelDataForModel['data'] as $quarter) { if (! isset($quarter['data'])) { continue; } $funnelLevelData = $quarter['data'][$key]; $model['Total'] += $quarter['totalN']; $model[$quarter['quarterYear'].' (N)'] = $quarter['totalN']; $model[$quarter['quarterYear'].' (n)'] = (string) $funnelLevelData['n']; $model[$quarter['quarterYear'].' (%)'] = (string) $funnelLevelData['value']; $spontaneousAwareness['Total'] += $quarter['totalN']; $spontaneousAwareness[$quarter['quarterYear'].' (N)'] = $quarter['totalN']; $spontaneousAwareness[$quarter['quarterYear'].' (n)'] = (string) $quarter['spontaneousAwareness']['n']; $spontaneousAwareness[$quarter['quarterYear'].' (%)'] = (string) $quarter['spontaneousAwareness']['value']; } $result[] = $model; if ($funnelLevel[0] === 'Awareness' && $this->isBrand) { $result[] = $spontaneousAwareness; } } $result[] = [[]]; } return $result; } private function getFunnelLevels(): array { return [ [ 'Awareness', 'Q2', 'Welche der folgenden Marken aus dem Bereich Produkte aus der Tiefkühltruhe, und zwar Tiefkühlpizza oder Tiefkühlsnacks, kennen Sie, wenn auch nur dem Namen nach?', ], [ 'Consideration', 'Q8', 'Bei Ihrem nächsten Einkauf von Produkten aus der Tiefkühltruhe, und zwar Tiefkühlpizza oder Tiefkühlsnacks:Welche der folgenden Marken würden Sie in Betracht ziehen?', ], [ 'Trial', 'Q4', 'Und welche dieser Marken aus dem Bereich Produkte aus der Tiefkühltruhe, und zwar Tiefkühlpizza oder Tiefkühlsnacks, haben Sie in den letzten 12 Monaten gekauft?', ], [ 'Repurchase', 'Q5', 'Welche dieser Marken aus dem Bereich Produkte aus der Tiefkühltruhe, und zwar Tiefkühlpizza oder Tiefkühlsnacks, haben Sie in letzter Zeit gekauft?', ], [ 'Loyalty', 'Q7', 'Und welche dieser Marken essen Sie persönlich am häufigsten?', ], ]; } public function title(): string { return $this->models->first() instanceof Brand ? 'Umbrella brands' : 'Subbrands'; } }