This commit is contained in:
2018-12-14 15:37:43 +01:00
parent db6835c5da
commit fde0327de1
19 changed files with 2050 additions and 418 deletions

View File

@@ -12,6 +12,128 @@ use Cake\I18n\Time;
*/
class EmailsController extends AppController
{
public function emailFoerder() {
debug($this->request['?']);
$filename = $this->request['?']['file'];
$date = $this->request['?']['date'];
//die;
$options = [
'length' => 0,
'delimiter' => ';',
'enclosure' => ' ',
'escape' => '\\',
'headers' => false,
'text' => false,
'excel_bom' => false,
];
$column_names = array('Regierung','SNR','Klasse','Diff','Klassengruppe','Klasse Bildungsgang','Anzahl','Schwerpunkte');
$column_alias = array('Regierung','SNR','Klasse','differenzierter Förderschwerpunkt der Klasse','Klassengruppe','Bildungsgang der Klassengruppe','Anzahl der Schüler','mit folgenden Förderschwerpunkten');
$filepath = '/var/www/html/asd-control/webroot/files/ap/'.$filename;
$handle = fopen($filepath, "r");
//$i = 1;
//$header = fgetcsv($handle, $options['length'], $options['delimiter']);
$all = array();
while ($row = fgetcsv($handle, $options['length'], $options['delimiter'])) {
//debug($row);
$data = array();
$i=0;
foreach ($column_names as $column_name) {
$data[$column_name] = trim($row[$i]);
$i++;
}
//debug($data);
array_push($all,$data);
}
//debug($all);die;
$regierungen = array();
foreach ($all as $line) {
if(!in_array($line['Regierung'],$regierungen)) {
array_push($regierungen,$line['Regierung']);
}
}
debug($regierungen);
foreach($regierungen as $regierung) {
$$regierung = array();
foreach ($all as $line) {
if ($line['Regierung'] == $regierung) {
array_shift($line);
array_push($$regierung,$line);
}
}
//debug($$regierung);
}
$column = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN');
foreach($regierungen as $regierung) {
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$spreadsheet->getProperties()->setCreator('Wilfried Trinkl StMBW')
->setLastModifiedBy('Wilfried Trinkl')
->setTitle('Förderschwerpunkt')
->setSubject('ASD Wertelisten')
->setDescription('Wertelisten created by php')
->setKeywords('Förderschwerpunkt')
->setCategory('Auswertungen');
$size = 8;
$rows = sizeof($$regierung);
//debug($rows);die;
for ($i=1;$i<8;$i++) {
// debug($column[$i-1]);
// debug($column_names[$i]);
$spreadsheet->setActiveSheetIndex(0)
->setCellValue($column[$i-1] . '1', $column_alias[$i]);
$spreadsheet->getActiveSheet()->getStyle($column[$i] . '1')->getFont()->setBold(true);
}
//die;
$j=1;
foreach ($$regierung as $line) {
//debug($line);die;
for ($i=0;$i<($size-1);$i++) {
//debug($column[$i]);
//debug($j);
//debug($line[$column_names[$i+1]]);
$spreadsheet->setActiveSheetIndex(0)->setCellValueExplicit($column[($i)] . ($j+1) , $line[$column_names[$i+1]], \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);
}
$j++;
}
for ($i=0;$i<7;$i++) {
$spreadsheet->setActiveSheetIndex(0)->getColumnDimension($column[$i])->setAutoSize(true);
}
$spreadsheet->getActiveSheet()->setAutoFilter(
$spreadsheet->getActiveSheet()
->calculateWorksheetDimension()
);
//debug($regierung);
$to_mail = $regierung.'.41.ASD@schulen.bayern.de';
//debug($to_mail);
//die;
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('/test/Report_'.$regierung.'.xlsx');
$email = new Email();
$email->viewVars(['date' => $date]);
$email
->emailFormat('html')
//->from(['asd.trinkl@schulen.bayern.de' => 'ASD Trinkl'])
->from(['asd@schulen.bayern.de' => 'ASD'])
//->cc('asd.trinkl@schulen.bayern.de')
->to($to_mail)
->cc('asd.kraupner@schulen.bayern.de')
//->to($mail->snr . '@schulen.bayern.de')
//->cc('abschlusspruefung@schulen.bayern.de')
->template('foerder')
->subject('schulaufsichtliche Prüfung der Förderzentren Auswertung ' . $regierung )
->attachments('/test/Report_'.$regierung.'.xlsx')
->send();
}
//die;
debug($filename);die;
}
public function deleteall() {
$this->Emails->connection()->transactional(function ($conn) {
$sqls = $this->Emails->schema()->truncateSql($this->Emails->connection());