Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15546 | Rev 15941 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 15546 Rev 15808
Línea 1... Línea 1...
1
<?php
1
<?php
-
 
2
 
2
declare(strict_types=1);
3
declare(strict_types=1);
Línea 3... Línea 4...
3
 
4
 
Línea 4... Línea 5...
4
namespace LeadersLinked\Controller;
5
namespace LeadersLinked\Controller;
Línea 27... Línea 28...
27
    /**
28
    /**
28
     *
29
     *
29
     * @var AdapterInterface
30
     * @var AdapterInterface
30
     */
31
     */
31
    private $adapter;
32
    private $adapter;
32
    
33
 
33
    
34
 
34
    /**
35
    /**
35
     *
36
     *
36
     * @var AbstractAdapter
37
     * @var AbstractAdapter
37
     */
38
     */
38
    private $cache;
39
    private $cache;
39
    
40
 
40
    /**
41
    /**
41
     *
42
     *
42
     * @var  LoggerInterface
43
     * @var  LoggerInterface
43
     */
44
     */
44
    private $logger;
45
    private $logger;
45
    
46
 
46
    
47
 
47
    /**
48
    /**
48
     *
49
     *
49
     * @var array
50
     * @var array
50
     */
51
     */
51
    private $config;
52
    private $config;
52
    
53
 
53
    /**
54
    /**
54
     *
55
     *
55
     * @param AdapterInterface $adapter
56
     * @param AdapterInterface $adapter
56
     * @param AbstractAdapter $cache
57
     * @param AbstractAdapter $cache
57
     * @param LoggerInterface $logger
58
     * @param LoggerInterface $logger
58
     * @param array $config
59
     * @param array $config
59
     */
60
     */
60
    public function __construct($adapter, $cache , $logger, $config)
61
    public function __construct($adapter, $cache, $logger, $config)
61
    {
62
    {
62
        $this->adapter      = $adapter;
63
        $this->adapter      = $adapter;
63
        $this->cache        = $cache;
64
        $this->cache        = $cache;
64
        $this->logger       = $logger;
65
        $this->logger       = $logger;
65
        $this->config       = $config;
66
        $this->config       = $config;
66
        
-
 
67
    }
67
    }
68
    
68
 
69
    public function indexAction()
69
    public function indexAction()
70
    {
70
    {
71
        return new JsonModel([
71
        return new JsonModel([
72
            'success' => false,
72
            'success' => false,
73
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
73
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
74
        ]);
74
        ]);
75
    }
75
    }
76
    
76
 
77
    public function overviewAction()
77
    public function overviewAction()
78
    {
78
    {
79
        $currentUserPlugin = $this->plugin('currentUserPlugin');
79
        $currentUserPlugin = $this->plugin('currentUserPlugin');
80
        $currentUser = $currentUserPlugin->getUser();
80
        $currentUser = $currentUserPlugin->getUser();
81
        
81
 
82
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
82
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
83
        $currentNetwork = $currentNetworkPlugin->getNetwork();
83
        $currentNetwork = $currentNetworkPlugin->getNetwork();
84
        
84
 
85
        $companyMapper = CompanyMapper::getInstance($this->adapter);
85
        $companyMapper = CompanyMapper::getInstance($this->adapter);
86
        $company = $companyMapper->fetchDefaultForNetworkByNetworkId($currentNetwork->id);
86
        $company = $companyMapper->fetchDefaultForNetworkByNetworkId($currentNetwork->id);
87
        
87
 
88
        $request = $this->getRequest();
88
        $request = $this->getRequest();
89
        if($request->isGet()) {
89
        if ($request->isGet()) {
90
            
90
 
91
            $headers  = $request->getHeaders();
91
            $headers  = $request->getHeaders();
92
            
92
 
93
            $isJson = false;
93
            $isJson = false;
94
            if($headers->has('Accept')) {
94
            if ($headers->has('Accept')) {
95
                $accept = $headers->get('Accept');
95
                $accept = $headers->get('Accept');
96
                
96
 
97
                $prioritized = $accept->getPrioritized();
97
                $prioritized = $accept->getPrioritized();
98
                
98
 
99
                foreach($prioritized as $key => $value) {
99
                foreach ($prioritized as $key => $value) {
100
                    $raw = trim($value->getRaw());
100
                    $raw = trim($value->getRaw());
101
                    
101
 
102
                    if(!$isJson) {
102
                    if (!$isJson) {
103
                        $isJson = strpos($raw, 'json');
103
                        $isJson = strpos($raw, 'json');
104
                    }
104
                    }
105
                    
-
 
106
                }
105
                }
107
            }
106
            }
108
            
-
 
Línea -... Línea 107...
-
 
107
 
109
 
108
 
110
            if($isJson) {
109
            if ($isJson) {
111
                
110
 
112
                $startDate = $this->params()->fromQuery('startDate');
111
                $startDate = $this->params()->fromQuery('startDate');
113
                if(empty($startDate)) {
112
                if (empty($startDate)) {
114
                    $startDate = date('Y-m-d');
113
                    $startDate = date('Y-m-d');
115
                }
114
                }
116
                
115
 
117
                
116
 
118
                $endDate = $this->params()->fromQuery('endDate');
117
                $endDate = $this->params()->fromQuery('endDate');
119
                if(empty($endDate)) {
118
                if (empty($endDate)) {
120
                    $endDate = date('Y-m-d');
119
                    $endDate = date('Y-m-d');
121
                }
120
                }
122
                
121
 
123
                $startDate = '2023-03-01';
122
                $startDate = '2023-03-01';
124
                $endDate = '2023-03-19';
123
                $endDate = '2023-03-19';
125
                
124
 
126
                $dtStartDate = \DateTime::createFromFormat('Y-n-d', $startDate);
125
                $dtStartDate = \DateTime::createFromFormat('Y-n-d', $startDate);
127
                $dtEndDate = \DateTime::createFromFormat('Y-n-d', $endDate);
126
                $dtEndDate = \DateTime::createFromFormat('Y-n-d', $endDate);
128
                
127
 
129
                if(!$dtStartDate || !$dtEndDate) {
128
                if (!$dtStartDate || !$dtEndDate) {
130
                    $startDate = date('Y-m-d');
129
                    $startDate = date('Y-m-d');
131
                    $endDate = date('Y-m-d');
130
                    $endDate = date('Y-m-d');
132
                } else {
131
                } else {
133
                    
132
 
134
                    if($dtStartDate->getTimestamp() > $dtEndDate->getTimestamp()) {
133
                    if ($dtStartDate->getTimestamp() > $dtEndDate->getTimestamp()) {
135
                        $startDate = date('Y-m-d');
134
                        $startDate = date('Y-m-d');
136
                        $endDate = date('Y-m-d');
135
                        $endDate = date('Y-m-d');
137
                    }
136
                    }
138
                }
137
                }
139
                
138
 
140
                $dailyPulseRecordMapper = DailyPulseRecordMapper::getInstance($this->adapter);
139
                $dailyPulseRecordMapper = DailyPulseRecordMapper::getInstance($this->adapter);
141
                $how_are_you_feel = $dailyPulseRecordMapper->fetchAllDataChartOrExcelByCompanyIdAndTypeAndDateRange($company->id, DailyPulseRecord::TYPE_HOW_ARE_YOU_FEEL, $startDate, $endDate);
140
                $how_are_you_feel = $dailyPulseRecordMapper->fetchAllDataChartOrExcelByCompanyIdAndTypeAndDateRange($company->id, DailyPulseRecord::TYPE_HOW_ARE_YOU_FEEL, $startDate, $endDate);
142
                
141
 
143
                $climate_on_your_organization = $dailyPulseRecordMapper->fetchAllDataChartOrExcelByCompanyIdAndTypeAndDateRange($company->id, DailyPulseRecord::TYPE_CLIMATE_ON_YOUR_ORGANIZATION, $startDate, $endDate);
142
                $climate_on_your_organization = $dailyPulseRecordMapper->fetchAllDataChartOrExcelByCompanyIdAndTypeAndDateRange($company->id, DailyPulseRecord::TYPE_CLIMATE_ON_YOUR_ORGANIZATION, $startDate, $endDate);
144
                
143
 
Línea 145... Línea 144...
145
                
144
 
146
 
145
 
147
                $data = [
146
                $data = [
148
                    'labels'             => [],
147
                    'labels'             => [],
Línea 164... Línea 163...
164
                    ],
163
                    ],
165
                    'climate_on_your_organization' => [
164
                    'climate_on_your_organization' => [
166
                        'average_points'    => 0,
165
                        'average_points'    => 0,
167
                        'average_users'     => 0,
166
                        'average_users'     => 0,
168
                    ]
167
                    ]
169
                     
168
 
170
                  
169
 
171
                ];
170
                ];
Línea 172... Línea 171...
172
 
171
 
173
                
172
 
174
                
173
 
175
                $how_are_you_feel_points = 0;
174
                $how_are_you_feel_points = 0;
176
                $how_are_you_feel_users = 0;
175
                $how_are_you_feel_users = 0;
177
                
176
 
178
                $climate_on_your_organization_points = 0;
177
                $climate_on_your_organization_points = 0;
179
                $climate_on_your_organization_users = 0;
178
                $climate_on_your_organization_users = 0;
180
                
179
 
Línea 181... Línea 180...
181
                $count = 0;
180
                $count = 0;
182
 
181
 
183
 
182
 
184
                $dt = \DateTime::createFromFormat('Y-m-d', $startDate);
183
                $dt = \DateTime::createFromFormat('Y-m-d', $startDate);
185
                do {
184
                do {
186
                    $count++;
-
 
187
                    $date = $dt->format('Y-m-d');
-
 
Línea -... Línea 185...
-
 
185
                    $count++;
188
                    $label = $dt->format('d/m/Y');
186
                    $date = $dt->format('Y-m-d');
-
 
187
                    $label = $dt->format('d/m/Y');
189
                    
188
 
190
                    array_push($data['labels'], $label); 
189
                    array_push($data['labels'], $label);
191
 
190
 
192
                    
-
 
193
                    $points = 0;
191
 
194
                    $users = 0;
192
                    $points = 0;
195
                    foreach($how_are_you_feel as $record)
193
                    $users = 0;
196
                    {
194
                    foreach ($how_are_you_feel as $record) {
197
                        if($date == $record['date']) {
195
                        if ($date == $record['date']) {
198
                            $points = $record['points'];
196
                            $points = $record['points'];
199
                            $users = $record['users'];
197
                            $users = $record['users'];
200
                        }
198
                        }
201
                    }
199
                    }
202
                    
200
 
203
                    
201
 
204
                    
202
 
205
                    array_push($data['points']['how_are_you_feel'], $points);
203
                    array_push($data['points']['how_are_you_feel'], $points);
206
                    array_push($data['users']['how_are_you_feel'], $users);
204
                    array_push($data['users']['how_are_you_feel'], $users);
207
                    array_push($data['average']['how_are_you_feel'], $users ?  $points / $users : 0);
205
                    array_push($data['average']['how_are_you_feel'], $users ?  $points / $users : 0);
Línea 208... Línea 206...
208
                    
206
 
209
                    
207
 
210
                    $how_are_you_feel_points += $points;
208
                    $how_are_you_feel_points += $points;
211
                    $how_are_you_feel_users += $users;
-
 
212
 
209
                    $how_are_you_feel_users += $users;
213
                    $points = 0;
210
 
214
                    $users = 0;
211
                    $points = 0;
215
                    foreach($climate_on_your_organization as $record)
212
                    $users = 0;
216
                    {
213
                    foreach ($climate_on_your_organization as $record) {
217
                        if($date == $record['date']) {
214
                        if ($date == $record['date']) {
218
                            $points = $record['points'];
215
                            $points = $record['points'];
219
                            $users = $record['users'];
216
                            $users = $record['users'];
220
                        }
217
                        }
221
                    }
218
                    }
222
                    
219
 
223
                    
220
 
224
                    array_push($data['points']['climate_on_your_organization'], $points);
221
                    array_push($data['points']['climate_on_your_organization'], $points);
225
                    array_push($data['users']['climate_on_your_organization'], $users);
222
                    array_push($data['users']['climate_on_your_organization'], $users);
226
                    array_push($data['average']['climate_on_your_organization'], $users ?  $points / $users : 0);
223
                    array_push($data['average']['climate_on_your_organization'], $users ?  $points / $users : 0);
227
                    
224
 
228
                    
225
 
229
                    $climate_on_your_organization_points += $points;
-
 
230
                    $climate_on_your_organization_users += $users;
-
 
231
                    
226
                    $climate_on_your_organization_points += $points;
232
                    
227
                    $climate_on_your_organization_users += $users;
233
                    $dt->add(new \DateInterval('P1D'));
228
 
234
                   
229
 
235
                    
230
                    $dt->add(new \DateInterval('P1D'));
236
                } while($date < $endDate);
231
                } while ($date < $endDate);
237
                
232
 
238
        
233
 
239
                
234
 
240
                    
235
 
241
                $data['how_are_you_feel']['average_points'] =  number_format($how_are_you_feel_points / $count, 2);
-
 
Línea -... Línea 236...
-
 
236
                $data['how_are_you_feel']['average_points'] =  number_format($how_are_you_feel_points / $count, 2);
242
                $data['how_are_you_feel']['average_users'] = number_format($how_are_you_feel_users / $count, 2);
237
                $data['how_are_you_feel']['average_users'] = number_format($how_are_you_feel_users / $count, 2);
243
                
238
 
244
                $data['climate_on_your_organization']['average_points'] = number_format($climate_on_your_organization_points / $count, 2);
239
                $data['climate_on_your_organization']['average_points'] = number_format($climate_on_your_organization_points / $count, 2);
245
                $data['climate_on_your_organization']['average_users'] = number_format($climate_on_your_organization_users / $count, 2);
240
                $data['climate_on_your_organization']['average_users'] = number_format($climate_on_your_organization_users / $count, 2);
246
                
241
 
247
 
242
 
248
 
-
 
249
            
-
 
250
                
-
 
251
                return new JsonModel([
-
 
252
                   'success' => true,
-
 
253
                   'data' => $data,
243
 
254
                ]);
244
 
255
                
245
 
256
                
246
                return new JsonModel([
257
                
247
                    'success' => true,
258
                
248
                    'data' => $data,
259
                
-
 
260
            } else {
249
                ]);
261
                $this->layout()->setTemplate('layout/layout-backend');
250
            } else {
262
                $viewModel = new ViewModel();
251
                $this->layout()->setTemplate('layout/layout-backend');
263
                $viewModel->setTemplate('leaders-linked/daily-pulse-reports/overview.phtml');
252
                $viewModel = new ViewModel();
264
                return $viewModel ;
253
                $viewModel->setTemplate('leaders-linked/daily-pulse-reports/overview.phtml');
265
            }
254
                return $viewModel;
266
            
255
            }
267
        } else {
256
        } else {
268
            
257
 
269
            
258
 
270
            return new JsonModel([
259
            return new JsonModel([
271
                'success' => false,
260
                'success' => false,
272
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
261
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
273
            ]);
262
            ]);
274
        }
263
        }
275
    }
264
    }
276
    
265
 
277
    public function overviewDownloadAction()
266
    public function overviewDownloadAction()
278
    {
267
    {
279
        $currentUserPlugin = $this->plugin('currentUserPlugin');
268
        $currentUserPlugin = $this->plugin('currentUserPlugin');
280
        $currentUser = $currentUserPlugin->getUser();
269
        $currentUser = $currentUserPlugin->getUser();
281
        
270
 
282
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
271
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
283
        $currentNetwork = $currentNetworkPlugin->getNetwork();
272
        $currentNetwork = $currentNetworkPlugin->getNetwork();
284
        
-
 
285
        $companyMapper = CompanyMapper::getInstance($this->adapter);
273
 
286
        $company = $companyMapper->fetchDefaultForNetworkByNetworkId($currentNetwork->id);
274
        $companyMapper = CompanyMapper::getInstance($this->adapter);
287
        
275
        $company = $companyMapper->fetchDefaultForNetworkByNetworkId($currentNetwork->id);
288
        $request = $this->getRequest();
276
 
289
        
277
        $request = $this->getRequest();
290
        if($request->isGet())
278
 
291
        {
279
        if ($request->isGet()) {
292
            
280
 
293
            $startDate = $this->params()->fromQuery('startDate');
281
            $startDate = $this->params()->fromQuery('startDate');
294
            if(empty($startDate)) {
282
            if (empty($startDate)) {
295
                $startDate = date('Y-m-d');
283
                $startDate = date('Y-m-d');
296
            }
284
            }
297
            
285
 
298
            
286
 
299
            $endDate = $this->params()->fromQuery('endDate');
287
            $endDate = $this->params()->fromQuery('endDate');
300
            if(empty($startDate)) {
288
            if (empty($startDate)) {
301
                $endDate = date('Y-m-d');
289
                $endDate = date('Y-m-d');
302
            }
290
            }
303
            
291
 
304
            //$startDate = '2023-03-01';
292
            //$startDate = '2023-03-01';
305
            //$endDate = '2023-03-19';
293
            //$endDate = '2023-03-19';
306
            
294
 
307
            $dtStartDate = \DateTime::createFromFormat('Y-n-d', $startDate);
295
            $dtStartDate = \DateTime::createFromFormat('Y-n-d', $startDate);
308
            $dtEndDate = \DateTime::createFromFormat('Y-n-d', $endDate);
296
            $dtEndDate = \DateTime::createFromFormat('Y-n-d', $endDate);
309
            
297
 
310
            if(!$dtStartDate || !$dtEndDate) {
298
            if (!$dtStartDate || !$dtEndDate) {
311
                $startDate = date('Y-m-d');
299
                $startDate = date('Y-m-d');
312
                $endDate = date('Y-m-d');
300
                $endDate = date('Y-m-d');
313
            } else {
301
            } else {
314
                
302
 
315
                if($dtStartDate->getTimestamp() > $dtEndDate->getTimestamp()) {
303
                if ($dtStartDate->getTimestamp() > $dtEndDate->getTimestamp()) {
316
                    $startDate = date('Y-m-d');
304
                    $startDate = date('Y-m-d');
317
                    $endDate = date('Y-m-d');
305
                    $endDate = date('Y-m-d');
318
                }
306
                }
319
            }
307
            }
320
            
308
 
321
            $dailyPulseRecordMapper = DailyPulseRecordMapper::getInstance($this->adapter);
309
            $dailyPulseRecordMapper = DailyPulseRecordMapper::getInstance($this->adapter);
322
            $how_are_you_feel = $dailyPulseRecordMapper->fetchAllDataChartOrExcelByCompanyIdAndTypeAndDateRange($company->id, DailyPulseRecord::TYPE_HOW_ARE_YOU_FEEL, $startDate, $endDate);
310
            $how_are_you_feel = $dailyPulseRecordMapper->fetchAllDataChartOrExcelByCompanyIdAndTypeAndDateRange($company->id, DailyPulseRecord::TYPE_HOW_ARE_YOU_FEEL, $startDate, $endDate);
323
            
311
 
324
            $climate_on_your_organization = $dailyPulseRecordMapper->fetchAllDataChartOrExcelByCompanyIdAndTypeAndDateRange($company->id, DailyPulseRecord::TYPE_CLIMATE_ON_YOUR_ORGANIZATION, $startDate, $endDate);
312
            $climate_on_your_organization = $dailyPulseRecordMapper->fetchAllDataChartOrExcelByCompanyIdAndTypeAndDateRange($company->id, DailyPulseRecord::TYPE_CLIMATE_ON_YOUR_ORGANIZATION, $startDate, $endDate);
325
            
313
 
Línea 345... Línea 333...
345
                ],
333
                ],
346
                'climate_on_your_organization' => [
334
                'climate_on_your_organization' => [
347
                    'average_points'    => 0,
335
                    'average_points'    => 0,
348
                    'average_users'     => 0,
336
                    'average_users'     => 0,
349
                ]
337
                ]
350
                
338
 
351
                
339
 
352
            ];
340
            ];
353
            
341
 
354
            
342
 
355
            
343
 
356
            $how_are_you_feel_points = 0;
344
            $how_are_you_feel_points = 0;
357
            $how_are_you_feel_users = 0;
345
            $how_are_you_feel_users = 0;
358
            
346
 
359
            $climate_on_your_organization_points = 0;
347
            $climate_on_your_organization_points = 0;
360
            $climate_on_your_organization_users = 0;
348
            $climate_on_your_organization_users = 0;
361
            
349
 
362
            $count = 0;
350
            $count = 0;
363
            
351
 
364
            
352
 
365
            $dt = \DateTime::createFromFormat('Y-m-d', $startDate);
353
            $dt = \DateTime::createFromFormat('Y-m-d', $startDate);
366
            do {
354
            do {
367
                $count++;
355
                $count++;
368
                $date = $dt->format('Y-m-d');
356
                $date = $dt->format('Y-m-d');
369
                $label = $dt->format('d/m/Y');
357
                $label = $dt->format('d/m/Y');
370
                
358
 
371
                array_push($data['labels'], $label);
359
                array_push($data['labels'], $label);
Línea 372... Línea 360...
372
 
360
 
373
                
361
 
374
                $points = 0;
362
                $points = 0;
375
                $users = 0;
363
                $users = 0;
376
                foreach($how_are_you_feel as $record)
-
 
377
                {
364
                foreach ($how_are_you_feel as $record) {
378
                    if($date == $record['date']) {
365
                    if ($date == $record['date']) {
379
                        $points = $record['points'];
366
                        $points = $record['points'];
380
                        $users = $record['users'];
367
                        $users = $record['users'];
381
                    }
368
                    }
382
                }
369
                }
383
                
370
 
384
                
371
 
385
                
372
 
386
                array_push($data['points']['how_are_you_feel'], $points);
373
                array_push($data['points']['how_are_you_feel'], $points);
387
                array_push($data['users']['how_are_you_feel'], $users);
374
                array_push($data['users']['how_are_you_feel'], $users);
388
                array_push($data['average']['how_are_you_feel'], $users ?  $points / $users : 0);
375
                array_push($data['average']['how_are_you_feel'], $users ?  $points / $users : 0);
389
                
376
 
390
                
377
 
391
                $how_are_you_feel_points += $points;
378
                $how_are_you_feel_points += $points;
392
                $how_are_you_feel_users += $users;
379
                $how_are_you_feel_users += $users;
393
                
380
 
394
                $points = 0;
381
                $points = 0;
395
                $users = 0;
382
                $users = 0;
396
                foreach($climate_on_your_organization as $record)
-
 
397
                {
383
                foreach ($climate_on_your_organization as $record) {
398
                    if($date == $record['date']) {
384
                    if ($date == $record['date']) {
399
                        $points = $record['points'];
385
                        $points = $record['points'];
400
                        $users = $record['users'];
386
                        $users = $record['users'];
401
                    }
387
                    }
402
                }
388
                }
403
                
389
 
404
                
390
 
405
                array_push($data['points']['climate_on_your_organization'], $points);
391
                array_push($data['points']['climate_on_your_organization'], $points);
406
                array_push($data['users']['climate_on_your_organization'], $users);
392
                array_push($data['users']['climate_on_your_organization'], $users);
407
                array_push($data['average']['climate_on_your_organization'], $users ?  $points / $users : 0);
393
                array_push($data['average']['climate_on_your_organization'], $users ?  $points / $users : 0);
408
                
394
 
409
                
395
 
410
                $climate_on_your_organization_points += $points;
396
                $climate_on_your_organization_points += $points;
411
                $climate_on_your_organization_users += $users;
397
                $climate_on_your_organization_users += $users;
412
                
398
 
413
                
399
 
414
                $dt->add(new \DateInterval('P1D'));
-
 
415
                
-
 
416
                
400
                $dt->add(new \DateInterval('P1D'));
417
            } while($date < $endDate);
401
            } while ($date < $endDate);
418
            
402
 
419
            $data['how_are_you_feel']['average_points'] =  number_format($how_are_you_feel_points / $count, 2);
403
            $data['how_are_you_feel']['average_points'] =  number_format($how_are_you_feel_points / $count, 2);
420
            $data['how_are_you_feel']['average_users'] = number_format($how_are_you_feel_users / $count, 2);
404
            $data['how_are_you_feel']['average_users'] = number_format($how_are_you_feel_users / $count, 2);
421
            
405
 
422
            $data['climate_on_your_organization']['average_points'] = number_format($climate_on_your_organization_points / $count, 2);
406
            $data['climate_on_your_organization']['average_points'] = number_format($climate_on_your_organization_points / $count, 2);
423
            $data['climate_on_your_organization']['average_users'] = number_format($climate_on_your_organization_users / $count, 2);
407
            $data['climate_on_your_organization']['average_users'] = number_format($climate_on_your_organization_users / $count, 2);
424
            
408
 
425
            
409
 
426
            
410
 
427
            
411
 
428
            
412
 
429
            $spreadsheet = new Spreadsheet();
413
            $spreadsheet = new Spreadsheet();
430
            $spreadsheet->getProperties()->setTitle('Pulso Diario');
414
            $spreadsheet->getProperties()->setTitle('Pulso Diario');
431
            
415
 
432
            
416
 
433
            
417
 
434
            $spreadsheet->setActiveSheetIndex(0);
418
            $spreadsheet->setActiveSheetIndex(0);
435
            $dt = \DateTime::createFromFormat('Y-m-d', $startDate);
419
            $dt = \DateTime::createFromFormat('Y-m-d', $startDate);
436
            
420
 
437
            $spreadsheet->getActiveSheet()->SetCellValue('A1', 'Desde:');
421
            $spreadsheet->getActiveSheet()->SetCellValue('A1', 'Desde:');
438
            $spreadsheet->getActiveSheet()->SetCellValue('B1', $dt->format('d/m/Y'));
422
            $spreadsheet->getActiveSheet()->SetCellValue('B1', $dt->format('d/m/Y'));
439
            
423
 
440
            
424
 
441
            $dt = \DateTime::createFromFormat('Y-m-d', $startDate);
425
            $dt = \DateTime::createFromFormat('Y-m-d', $startDate);
442
            $spreadsheet->getActiveSheet()->SetCellValue('C1', 'Hasta:');
426
            $spreadsheet->getActiveSheet()->SetCellValue('C1', 'Hasta:');
443
            $spreadsheet->getActiveSheet()->SetCellValue('D1', $dt->format('d/m/Y'));
427
            $spreadsheet->getActiveSheet()->SetCellValue('D1', $dt->format('d/m/Y'));
444
            
428
 
445
            
429
 
446
            $spreadsheet->getActiveSheet()->SetCellValue('A3', 'Como te sientes hoy');
430
            $spreadsheet->getActiveSheet()->SetCellValue('A3', 'Como te sientes hoy');
447
            $spreadsheet->getActiveSheet()->setMergeCells(['A3', 'B3', 'C3', 'D3']);
431
            $spreadsheet->getActiveSheet()->setMergeCells(['A3', 'B3', 'C3', 'D3']);
448
            $spreadsheet->getActiveSheet()->SetCellValue('A4', 'Puntos promedios');
432
            $spreadsheet->getActiveSheet()->SetCellValue('A4', 'Puntos promedios');
449
            $spreadsheet->getActiveSheet()->SetCellValue('B4',  $data['how_are_you_feel']['average_points']);
433
            $spreadsheet->getActiveSheet()->SetCellValue('B4',  $data['how_are_you_feel']['average_points']);
450
            $spreadsheet->getActiveSheet()->SetCellValue('C4', 'Usuarios promedios');
434
            $spreadsheet->getActiveSheet()->SetCellValue('C4', 'Usuarios promedios');
451
            $spreadsheet->getActiveSheet()->SetCellValue('D4',  $data['how_are_you_feel']['average_users']);
435
            $spreadsheet->getActiveSheet()->SetCellValue('D4',  $data['how_are_you_feel']['average_users']);
452
            
436
 
453
            
437
 
454
            $spreadsheet->getActiveSheet()->SetCellValue('F3', 'Clima en su organización');
438
            $spreadsheet->getActiveSheet()->SetCellValue('F3', 'Clima en su organización');
455
            $spreadsheet->getActiveSheet()->setMergeCells(['F3', 'G3', 'H3', 'I3']);
439
            $spreadsheet->getActiveSheet()->setMergeCells(['F3', 'G3', 'H3', 'I3']);
456
            $spreadsheet->getActiveSheet()->SetCellValue('F4', 'Puntos promedios');
440
            $spreadsheet->getActiveSheet()->SetCellValue('F4', 'Puntos promedios');
457
            $spreadsheet->getActiveSheet()->SetCellValue('G4',  $data['climate_on_your_organization']['average_points']);
441
            $spreadsheet->getActiveSheet()->SetCellValue('G4',  $data['climate_on_your_organization']['average_points']);
458
            $spreadsheet->getActiveSheet()->SetCellValue('H4', 'Usuarios promedios');
442
            $spreadsheet->getActiveSheet()->SetCellValue('H4', 'Usuarios promedios');
459
            $spreadsheet->getActiveSheet()->SetCellValue('I4',  $data['climate_on_your_organization']['average_users']);
443
            $spreadsheet->getActiveSheet()->SetCellValue('I4',  $data['climate_on_your_organization']['average_users']);
460
            
444
 
461
            
445
 
462
            $spreadsheet->getActiveSheet()->SetCellValue('A6', 'Usuarios');
446
            $spreadsheet->getActiveSheet()->SetCellValue('A6', 'Usuarios');
463
            $spreadsheet->getActiveSheet()->setMergeCells(['A6', 'B6', 'C6']);
447
            $spreadsheet->getActiveSheet()->setMergeCells(['A6', 'B6', 'C6']);
464
            $spreadsheet->getActiveSheet()->SetCellValue('A7', 'Fecha');
448
            $spreadsheet->getActiveSheet()->SetCellValue('A7', 'Fecha');
465
            $spreadsheet->getActiveSheet()->SetCellValue('B7', 'Puntos promedios');
449
            $spreadsheet->getActiveSheet()->SetCellValue('B7', 'Puntos promedios');
466
            $spreadsheet->getActiveSheet()->SetCellValue('C7', 'Cantidad de usuarios');
450
            $spreadsheet->getActiveSheet()->SetCellValue('C7', 'Cantidad de usuarios');
467
            
451
 
468
            $row = 8;
452
            $row = 8;
469
            $max = count($data['labels']);
453
            $max = count($data['labels']);
470
            
454
 
471
            for($i = 0; $i< $max; $i++)
-
 
472
            {
455
            for ($i = 0; $i < $max; $i++) {
473
                $spreadsheet->getActiveSheet()->SetCellValue('A' . $row, $data['labels'][$i]);
456
                $spreadsheet->getActiveSheet()->SetCellValue('A' . $row, $data['labels'][$i]);
474
                $spreadsheet->getActiveSheet()->SetCellValue('B' . $row, $data['users']['how_are_you_feel'][$i]);
457
                $spreadsheet->getActiveSheet()->SetCellValue('B' . $row, $data['users']['how_are_you_feel'][$i]);
475
                $spreadsheet->getActiveSheet()->SetCellValue('C' . $row, $data['users']['climate_on_your_organization'][$i]);
458
                $spreadsheet->getActiveSheet()->SetCellValue('C' . $row, $data['users']['climate_on_your_organization'][$i]);
476
                $row++;
459
                $row++;
Línea 477... Línea 460...
477
            }
460
            }
478
 
461
 
479
            
462
 
480
            $spreadsheet->getActiveSheet()->SetCellValue('F6', 'Puntos');
463
            $spreadsheet->getActiveSheet()->SetCellValue('F6', 'Puntos');
481
            $spreadsheet->getActiveSheet()->setMergeCells(['F6', 'G6', 'H6']);
464
            $spreadsheet->getActiveSheet()->setMergeCells(['F6', 'G6', 'H6']);
482
            $spreadsheet->getActiveSheet()->SetCellValue('F7', 'Fecha');
465
            $spreadsheet->getActiveSheet()->SetCellValue('F7', 'Fecha');
483
            $spreadsheet->getActiveSheet()->SetCellValue('G7', 'Puntos promedios');
-
 
Línea -... Línea 466...
-
 
466
            $spreadsheet->getActiveSheet()->SetCellValue('G7', 'Puntos promedios');
484
            $spreadsheet->getActiveSheet()->SetCellValue('H7', 'Cantidad de usuarios');
467
            $spreadsheet->getActiveSheet()->SetCellValue('H7', 'Cantidad de usuarios');
485
            
468
 
486
 
469
 
487
            
470
 
488
            $row = 8;
471
            $row = 8;
489
            $max = count($data['labels']);
-
 
490
            
472
            $max = count($data['labels']);
491
            for($i = 0; $i< $max; $i++)
473
 
492
            {
474
            for ($i = 0; $i < $max; $i++) {
493
                $spreadsheet->getActiveSheet()->SetCellValue('F' . $row, $data['labels'][$i]);
475
                $spreadsheet->getActiveSheet()->SetCellValue('F' . $row, $data['labels'][$i]);
494
                $spreadsheet->getActiveSheet()->SetCellValue('G' . $row, $data['points']['how_are_you_feel'][$i]);
476
                $spreadsheet->getActiveSheet()->SetCellValue('G' . $row, $data['points']['how_are_you_feel'][$i]);
495
                $spreadsheet->getActiveSheet()->SetCellValue('H' . $row, $data['points']['climate_on_your_organization'][$i]);
477
                $spreadsheet->getActiveSheet()->SetCellValue('H' . $row, $data['points']['climate_on_your_organization'][$i]);
496
                $row++;
478
                $row++;
497
            }
479
            }
498
            
480
 
499
            $spreadsheet->getActiveSheet()->SetCellValue('J6', 'Puntos promedios ( puntos / usuarios ) ');
481
            $spreadsheet->getActiveSheet()->SetCellValue('J6', 'Puntos promedios ( puntos / usuarios ) ');
500
            $spreadsheet->getActiveSheet()->setMergeCells(['J6', 'K6', 'L6']);
482
            $spreadsheet->getActiveSheet()->setMergeCells(['J6', 'K6', 'L6']);
501
            $spreadsheet->getActiveSheet()->SetCellValue('J7', 'Fecha');
483
            $spreadsheet->getActiveSheet()->SetCellValue('J7', 'Fecha');
502
            $spreadsheet->getActiveSheet()->SetCellValue('K7', 'Puntos promedios');
484
            $spreadsheet->getActiveSheet()->SetCellValue('K7', 'Puntos promedios');
503
            $spreadsheet->getActiveSheet()->SetCellValue('L7', 'Cantidad de usuarios');
485
            $spreadsheet->getActiveSheet()->SetCellValue('L7', 'Cantidad de usuarios');
504
            
486
 
505
            
487
 
506
            
488
 
507
            $row = 8;
489
            $row = 8;
508
            $max = count($data['labels']);
-
 
509
            
490
            $max = count($data['labels']);
510
            for($i = 0; $i< $max; $i++)
491
 
511
            {
492
            for ($i = 0; $i < $max; $i++) {
512
                $spreadsheet->getActiveSheet()->SetCellValue('J' . $row, $data['labels'][$i]);
493
                $spreadsheet->getActiveSheet()->SetCellValue('J' . $row, $data['labels'][$i]);
513
                $spreadsheet->getActiveSheet()->SetCellValue('K' . $row, number_format($data['average']['how_are_you_feel'][$i], 2));
494
                $spreadsheet->getActiveSheet()->SetCellValue('K' . $row, number_format($data['average']['how_are_you_feel'][$i], 2));
514
                $spreadsheet->getActiveSheet()->SetCellValue('L' . $row, number_format($data['average']['climate_on_your_organization'][$i], 2));
495
                $spreadsheet->getActiveSheet()->SetCellValue('L' . $row, number_format($data['average']['climate_on_your_organization'][$i], 2));
515
                $row++;
496
                $row++;
516
            }
497
            }
517
            
498
 
518
                     
499
 
519
            $fileName = 'reporte_pulso_diario_'  . date('d-m-Y-h-i-a', time()) . '.xls';
500
            $fileName = 'reporte_pulso_diario_'  . date('d-m-Y-h-i-a', time()) . '.xls';
520
            $tempFilename = tempnam(sys_get_temp_dir(), 'reporte_pulso_diario_' . time());
501
            $tempFilename = tempnam(sys_get_temp_dir(), 'reporte_pulso_diario_' . time());
521
            
502
 
522
            $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
503
            $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
523
            $writer->save($tempFilename);
504
            $writer->save($tempFilename);
524
            
505
 
525
            $content = file_get_contents($tempFilename);
506
            $content = file_get_contents($tempFilename);
526
            @unlink($tempFilename);
507
            @unlink($tempFilename);
527
            
508
 
528
            return new JsonModel([
509
            return new JsonModel([
529
                'success' => true,
510
                'success' => true,
530
                'data' => [
511
                'data' => [
531
                    'content' => base64_encode($content),
512
                    'content' => base64_encode($content),
532
                    'basename' => $fileName
513
                    'basename' => $fileName
533
                    
-
 
534
                ]
-
 
535
            ]);
-
 
536
            
-
 
537
            
514
 
538
            
515
                ]
539
            
516
            ]);
540
        } else {
517
        } else {
541
            return new JsonModel([
518
            return new JsonModel([
542
                'success' => false,
519
                'success' => false,
543
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
520
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
544
            ]);
-
 
545
        }
-
 
546
    }
521
            ]);