-
+
+
+ isAdmin()): ?>
+
+
+
+
+
+
+
+
@@ -293,6 +306,105 @@ $('select[name=wfitem_pipework_finished]').each(function() {
});
});
+
+ var export_uid = "";
+ var export_progress = 0;
+ var downloadUrl;
+
+ $('#filterform').change(function() {
+ downloadUrl = "";
+ });
+
+ /*
+ * Eport button click
+ */
+ function exportButtonClick() {
+ if(downloadUrl) {
+ document.location.href = '=self::getUrl("Pipework","downloadExport")?>?uid=' + export_uid
+ return;
+ }
+
+
+ var form = $('#filterform');
+ var actionUrl = '=self::getUrl("Pipework", "export")?>';
+
+ $.ajax({
+ type: "POST",
+ url: actionUrl,
+ data: form.serialize(),
+ dataType: "json",
+ success: function(success) {
+ if(success.status = "OK") {
+ if(success.uid) {
+ export_uid = success.uid;
+ export_progress = success.progress;
+ //$('#progress-bar-wrapper').show();
+ $('#export-button-label').hide();
+ $('#progress-bar').show();
+ setTimeout(updateExportProgress, 200);
+ $('#export-button').addClass("bg-dark");
+ $('#export-button').prop("onclick", null).off("click");
+ //$('#export-button').prop("disabled", true);
+ } else {
+ console.log("no uid returned");
+ }
+ }
+ }
+
+ });
+ }
+
+ function updateExportProgress() {
+ if(!export_uid) {
+ return false;
+ }
+
+ $.get("=self::getUrl("Pipework", "exportProgress")?>",
+ {
+ uid: export_uid
+ },
+ function(success) {
+ if(success.status == "OK") {
+ updateProgressBar(success.progress);
+ if(success.progress >= 100) {
+ downloadUrl = '=self::getUrl("Pipework","downloadExport")?>?uid=' + export_uid;
+ setTimeout(() => {document.location.href = '=self::getUrl("Pipework","downloadExport")?>?uid=' + export_uid}, 200);
+ setTimeout(clearProgressBar, 5000);
+ } else {
+ setTimeout(updateExportProgress, 500);
+ }
+ }
+ },
+ "json"
+ );
+ }
+
+ function updateProgressBar(progress) {
+ $('#progress-bar').css("width", progress + "%");
+ $('#progress-bar').text("Bitte warten... " + progress + "%");
+
+ /*if(progress > 50) {
+ $('#progress-bar').removeClass("text-secondary");
+ }*/
+
+ if(progress >= 100) {
+ $('#progress-bar').addClass("bg-success").removeClass("bg-primary");
+ }
+
+ }
+
+ function clearProgressBar() {
+ //$('#progress-bar-wrapper').hide();
+ $('#progress-bar').css("width", "0%");
+ $('#progress-bar').text("Bitte warten... 0%");
+ $('#progress-bar').addClass("bg-primary").removeClass("bg-success");
+ $('#export-button').prop("disabled", false);
+ $('#progress-bar').hide();
+ $('#export-button').removeClass("bg-dark");
+ $('#export-button').click(exportButtonClick);
+ $('#export-button-label').show();
+ }
+
diff --git a/Layout/default/Pipework/export_progress.xls.php b/Layout/default/Pipework/export_progress.xls.php
new file mode 100644
index 000000000..af6ce3923
--- /dev/null
+++ b/Layout/default/Pipework/export_progress.xls.php
@@ -0,0 +1,440 @@
+loadByUid($export_uid);
+ $progress->filename = $filename;
+}
+
+
+$col = 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','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ','BA',
+ 'BB','BC','BD','BE','BF','BG','BH','BI','BJ','BK','BL','BM','BN','BO','BP','BQ','BR','BS','BT','BU','BV','BW','BX','BY','BZ'
+ );
+
+use PhpOffice\PhpSpreadsheet\Spreadsheet;
+use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
+use PhpOffice\PhpSpreadsheet\Style\Alignment;
+use PhpOffice\PhpSpreadsheet\Style\Border;
+use PhpOffice\PhpSpreadsheet\Style\Color;
+
+$lightgreen = "f5ffeb";
+
+$xls = new Spreadsheet();
+$sheet = $xls->getActiveSheet();
+
+// header
+$i = 0;
+
+$sheet->setCellValue($col[$i++].'1', "id");
+$sheet->setCellValue($col[$i++].'1', "Netzgebiet");
+$sheet->setCellValue($col[$i++].'1', "PLZ");
+$sheet->setCellValue($col[$i++].'1', "Ort");
+$sheet->setCellValue($col[$i++].'1', "Bauabschnitt");
+$sheet->setCellValue($col[$i++].'1', "Straße");
+$sheet->setCellValue($col[$i++].'1', "Gebäudecode");
+$sheet->setCellValue($col[$i++].'1', "GPS Breite");
+$sheet->setCellValue($col[$i++].'1', "GPS Länge");
+$sheet->setCellValue($col[$i++].'1', "Gebäudestatus Code");
+$sheet->setCellValue($col[$i++].'1', "Gebäudestatus");
+
+$sheet->setCellValue($col[$i++].'1', "Kontakt");
+$sheet->setCellValue($col[$i++].'1', "Telefon");
+$sheet->setCellValue($col[$i++].'1', "Email");
+
+$sheet->setCellValue($col[$i++].'1', "Baufreigabe");
+
+$sheet->setCellValue($col[$i++].'1', "AP-Typ (Planung)");
+$sheet->setCellValue($col[$i++].'1', "AP-Typ (Ist-Zustand)");
+$sheet->setCellValue($col[$i++].'1', "AP-Name (Planung)");
+$sheet->setCellValue($col[$i++].'1', "AP-Name (Ist-Zustand)");
+$sheet->setCellValue($col[$i++].'1', "AP GPS Breite (Planung)");
+$sheet->setCellValue($col[$i++].'1', "AP GPS Länge (Planung)");
+$sheet->setCellValue($col[$i++].'1', "AP GPS Breite (Ist-Zustand)");
+$sheet->setCellValue($col[$i++].'1', "AP GPS Länge (Ist-Zustand)");
+$sheet->setCellValue($col[$i++].'1', "Rohrverband (Planung)");
+$sheet->setCellValue($col[$i++].'1', "Rohrverband (Ist-Zustand)");
+$sheet->setCellValue($col[$i++].'1', "Rohrtyp (Planung)");
+$sheet->setCellValue($col[$i++].'1', "Rohrtyp (Ist-Zustand)");
+$sheet->setCellValue($col[$i++].'1', "Rohrfarbe (Planung)");
+$sheet->setCellValue($col[$i++].'1', "Rohrfarbe (Ist-Zustand)");
+
+$sheet->setCellValue($col[$i++].'1', "Kommentar Tiefbau");
+//$sheet->setCellValue($col[$i++].'1', "Kommentar Leitungsbau");
+
+$sheet->getStyle("A1:".$col[$i]."1")->getFont()->setBold(true);
+
+$sheet->getRowDimension(1)->setRowHeight(16);
+
+
+$line = 2;
+
+foreach($networks as $networkname => $buildings) {
+
+ foreach($buildings as $building) {
+ $i = 0;
+
+ $sheet->setCellValue($col[$i].$line, $building->id)->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $networkname);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->zip);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->city);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->networksection->name);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->street);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->code)->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->gps_lat)->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->gps_long)->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->status->code)->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->status->name)->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $i++;
+
+ $sheet->setCellValue($col[$i].$line, $building->contact);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->phone);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->email);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->pipework_enabled);
+ $i++;
+
+
+ $sheet->setCellValue($col[$i].$line, $building->getWorkflowvalue("anschlusspunkt_typ"))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->getWorkflowvalue("ist_anschlusspunkt_typ"))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $i++;
+
+ $sheet->setCellValue($col[$i].$line, $building->getWorkflowvalue('anschlusspunkt_name'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $i++;
+
+ $sheet->setCellValue($col[$i].$line, $building->getWorkflowvalue('ist_anschlusspunkt_name'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $i++;
+
+ $gps = explode(";", $building->getWorkflowvalue('anschlusspunkt_gps'));
+ if(is_array($gps) & count($gps) == 2) {
+ $sheet->setCellValue($col[$i].$line, $gps[0])->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ }
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);
+ if(is_array($gps) & count($gps) == 2) {
+ $sheet->setCellValue($col[$i+1].$line, $gps[1])->getStyle($col[$i+1].$line)->getFont()->setName("monospace")->setSize(10);
+ }
+ $sheet->getStyle($col[$i+1].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i+1].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
+ $i += 2;
+
+ $gps = explode(";", $building->getWorkflowvalue('ist_anschlusspunkt_gps'));
+ if(is_array($gps) & count($gps) == 2) {
+ $sheet->setCellValue($col[$i].$line, $gps[0])->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ }
+ $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);
+ if(is_array($gps) & count($gps) == 2) {
+ $sheet->setCellValue($col[$i+1].$line, $gps[1])->getStyle($col[$i+1].$line)->getFont()->setName("monospace")->setSize(10);
+ }
+ $sheet->getStyle($col[$i+1].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+ $sheet->getStyle($col[$i+1].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i+1].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
+ $i += 2;
+
+ $sheet->setCellValue($col[$i].$line, $building->getWorkflowvalue('rohrverband_name'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->getWorkflowvalue('ist_rohrverband_name'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->getWorkflowvalue('rohrtype'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $i++;
+ $sheet->setCellValue($col[$i].$line, $building->getWorkflowvalue('ist_rohrtype'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+ $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $i++;
+
+
+ $color = $building->getWorkflowvalue('rohrfarbe');
+ if($color) {
+ if(TT_CABLE_COLORS[$color]["mark"]) {
+ $sheet->setCellValue($col[$i].$line, "----- ".ucfirst($color)." -----");
+ } else {
+ $sheet->setCellValue($col[$i].$line, ucfirst($color));
+ }
+ $sheet->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10)->getColor()->setARGB(TT_CABLE_COLORS[$color]["hexfg"]);
+ $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB(TT_CABLE_COLORS[$color]["hex"]);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ }
+ $i++;
+
+ $color = $building->getWorkflowvalue('ist_rohrfarbe');
+ if($color) {
+ if(TT_CABLE_COLORS[$color]["mark"]) {
+ $sheet->setCellValue($col[$i].$line, "----- ".ucfirst($color)." -----");
+ } else {
+ $sheet->setCellValue($col[$i].$line, ucfirst($color));
+ }
+ $sheet->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10)->getColor()->setARGB(TT_CABLE_COLORS[$color]["hexfg"]);
+ $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB(TT_CABLE_COLORS[$color]["hex"]);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ }
+ $i++;
+
+
+//
+// /*
+// * Linework data
+// */
+// $sheet->setCellValue($col[$i].$line, ($term->getWorkflowvalue('pop_id')) ? (new Pop($term->getWorkflowvalue('pop_id')))->name : "");
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, ($term->getWorkflowvalue('ist_pop_id')) ? (new Pop($term->getWorkflowvalue('ist_pop_id')))->name : "");
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('schrank'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_schrank'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('baugruppe'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_baugruppe'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('modul'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_modul'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ports'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_ports'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('abschlusstyp'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_abschlusstyp'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('bb_kabel'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_bb_kabel'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('bb_kabel_steps'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_bb_kabel_steps'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('bb_fasern'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_bb_fasern'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('kundenkabel_typ'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_kundenkabel_typ'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('kundenkabel_fasern'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ist_kundenkabel_fasern'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('backbone_finished'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('backbone_setup_date'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('customer_setup_date'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('bep_deployed'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('customer_cable_injected'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('spliced_network'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('spliced_customer'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ont_deployed'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('ont_sn'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+// $sheet->setCellValue($col[$i].$line, $term->getWorkflowvalue('customer_passive_finished'))->getStyle($col[$i].$line)->getFont()->setName("monospace")->setSize(10);
+// $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+// $sheet->getStyle($col[$i].$line)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+// $i++;
+//
+
+ $sheet->setCellValue($col[$i].$line, $building->workflow_comment);
+ $sheet->getStyle($col[$i].$line)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB($lightgreen);
+ $i++;
+
+ $sheet->getRowDimension($line)->setRowHeight(16);
+ $line++;
+
+
+ // progress
+ if($progress) {
+ $progress_percent = floor(($line * 100) / $lineMax);
+ $progress->progress = $progress_percent;
+ if($progress_percent >= 100) {
+ $progress->progress = 99;
+ }
+ $progress->save();
+ }
+ }
+}
+
+$sheet->getColumnDimension($col[$i-1])->setWidth(6, "in");
+
+$sheet->getStyle("A2:".$col[$i].$line)->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_HAIR)->setColor(new Color("C0C0C0"));
+$sheet->freezePane("A2");
+
+
+for($c = 0; $c < $i-1; $c++) {
+ $sheet->getColumnDimension($col[$c])->setAutoSize(true);
+}
+
+
+//$writer = new Xls($xls);
+$writer = new Xlsx($xls);
+
+//header("Content-type: application/vnd.ms-excel");
+//header("Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+
+//header('Content-disposition: attachment; filename="leitungsbau-'.date('Y-m-d_H-i-s').'-'.uniqid().'.xlsx"');
+$writer->save($path."/".$filename);
+
+$progress->progress = 100;
+$progress->save();
+
+exit;
+
diff --git a/application/Linework/LineworkController.php b/application/Linework/LineworkController.php
index 77a2bc8c8..786ccb715 100644
--- a/application/Linework/LineworkController.php
+++ b/application/Linework/LineworkController.php
@@ -210,6 +210,9 @@ class LineworkController extends mfBaseController {
$cmd = BASEDIR."/scripts/start_workflow_export.php";
$args = "";
+ $filter['type'] = "Pipework";
+ $filter['user_id'] = $this->me->id;
+
foreach($get['filter'] as $key => $value) {
$args .= " ".escapeshellarg("--$key")." ". escapeshellarg($value);
}
diff --git a/application/Pipework/PipeworkController.php b/application/Pipework/PipeworkController.php
index 28e0261d2..7da2b0875 100644
--- a/application/Pipework/PipeworkController.php
+++ b/application/Pipework/PipeworkController.php
@@ -4,8 +4,12 @@ class PipeworkController extends mfBaseController {
protected function init() {
$this->needlogin=true;
- $me = new User();
- $me->loadMe();
+ $me = mfValuecache::singleton()->get("me");
+ if(!$me) {
+ $me = new User();
+ $me->loadMe();
+ mfValuecache::singleton()->set("me", $this->me);
+ }
$this->me = $me;
$this->layout()->set("me",$me);
@@ -33,6 +37,19 @@ class PipeworkController extends mfBaseController {
$pagination['start'] = intval($this->request->s);
}
+ if($this->request->export) {
+ $this->layout()->setTemplate("Pipework/export.xls");
+ $pagination = [];
+ }
+ if($this->request->export_progress) {
+ $this->layout()->setTemplate("Pipework/export_progress.xls");
+ if($this->request->uid) {
+ $this->layout()->set("export_uid", $this->request->uid);
+ $this->layout()->set("path", BASEDIR."/var/temp/export");
+ }
+ $pagination = [];
+ }
+
$my_networks = [];
// get allowed networks
@@ -149,6 +166,119 @@ class PipeworkController extends mfBaseController {
return $new_filter;
}
+ public function startExport($request) {
+ $this->request = new mfRequest($request);
+ //var_dump($request);exit;
+ return $this->indexAction();
+ }
+
+ protected function exportAction() {
+ $uid = "wfExport_".uniqid()."-".mt_rand(10000,99999);
+
+ $method = "http";
+ if($_SERVER['HTTPS'] == "on") {
+ $method = "https";
+ }
+
+ $get = $this->request->get();
+ unset($get['mod']);
+ unset($get['action']);
+ $get['export_progress'] = 1;
+ $get['uid'] = $uid;
+ $url = $method."://".$_SERVER['HTTP_HOST'].$this->getUrl("Pipework", "Index", $get);
+ $url = escapeshellarg($url);
+ //var_dump($url);exit;
+
+ $progress = new WorkflowExport();
+ $progress->uid = $uid;
+ $progress->create_by = $this->me->id;
+ $progress->edit_by = $this->me->id;
+ $progress->save();
+ /*
+ $cmd = "nohup curl ".$url." >/dev/null 2>&1 &";
+ var_dump($cmd);exit;
+ // start excel generation in background and dont wait
+ exec($cmd);
+ */
+
+ $cmd = BASEDIR."/scripts/start_workflow_export.php";
+ $args = "";
+
+ $get['filter']['type'] = "Pipework";
+ $get['filter']['user_id'] = $this->me->id;
+
+ foreach($get['filter'] as $key => $value) {
+ $args .= " ".escapeshellarg("--$key")." ". escapeshellarg($value);
+ }
+
+
+ $cmd = "$cmd --uid ". escapeshellarg($uid)." $args >/dev/null 2>&1 &";
+ $this->log->debug($cmd);
+ exec($cmd);
+
+ // return progress
+ $this->returnJson(['status' => "OK", 'uid' => $uid, "progress" => 0]);
+ }
+
+ protected function exportProgressAction() {
+ $uid = $this->request->uid;
+ if(!$uid) {
+ $this->returnJson(['status' => "error", "msg" => "no uid"]);
+ }
+
+ $progress = new WorkflowExport();
+ $progress->loadByUid($this->request->uid);
+ if(!$progress->id) {
+ $this->returnJson(['status' => "error", "msg" => "export not found"]);
+ }
+
+ $this->returnJson(['status' => "OK", 'export_uid ' => $uid, 'progress' => $progress->progress]);
+ }
+
+ protected function downloadExportAction() {
+ $uid = $this->request->uid;
+ if(!$uid) {
+ $this->returnJson(['status' => "error", "msg" => "no uid"]);
+ }
+
+ $progress = new WorkflowExport();
+ $progress->loadByUid($this->request->uid);
+ if(!$progress->id) {
+ $this->returnJson(['status' => "error", "msg" => "export not found"]);
+ }
+
+ $file = BASEDIR."/var/temp/export/".$progress->filename;
+
+ if (!$fh = fopen($file, 'r')) {
+ $this->layout()->setFlash("Fehler beim Export.", "error");
+ $this->redirect("Linework");
+ return false;
+ }
+
+ set_time_limit(36000);
+ header("Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ header('Content-disposition: attachment; filename="' . $progress->filename . '"');
+
+ $size = exec('stat -c %s '.escapeshellarg($file));
+
+ $this->log->debug("filename: ".$file);
+ $this->log->debug("filesize: ".$size);
+
+ if(strlen($size)) {
+ if($size < (pow(2,31))-1) {
+ header('Content-Length: ' . $size);
+ }
+ }
+
+ while (!feof($fh)) {
+ $data = fread($fh, 8192);
+ echo $data;
+ }
+ exit;
+
+ }
+
+
protected function saveAction() {
$r = $this->request;
//var_dump($r->get());exit;
diff --git a/scripts/start_workflow_export.php b/scripts/start_workflow_export.php
index bf4171b1c..3eecd8d16 100755
--- a/scripts/start_workflow_export.php
+++ b/scripts/start_workflow_export.php
@@ -11,8 +11,7 @@ require_once(LIBDIR."/mvcfronk/mfRouter/mfRouter.php");
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseModel.php");
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseController.php");
-$me = new User(1);
-mfValuecache::singleton()->set("me", $me);
+
$request=array();
@@ -30,6 +29,14 @@ if(count($argv)) {
}
}
+
+if(!$request['user_id']) {
+ die("User id missing");
+}
+
+$me = new User($request['user_id']);
+mfValuecache::singleton()->set("me", $me);
+
//var_dump($request);exit;
@@ -45,7 +52,14 @@ if(array_key_exists("uid", $request)) {
$filter = [];
+$type = false;
+
foreach($request as $key => $value) {
+ if($key == "user_id") continue;
+ if($key == "type") {
+ $type = $value;
+ continue;
+ }
if(strlen($value)) {
$filter[$key] = $value;
} else {
@@ -59,9 +73,16 @@ $params = ['export_progress' => 1, 'uid' => $uid, 'filter' => $filter];
//var_dump($uid, $filter);exit;
-$Layout=Layout::singleton();
+$Layout = Layout::singleton();
-$lc = new LineworkController();
-$lc->startExport($params);
+if($type == "Linework") {
+ $app = new LineworkController();
+ $app->startExport($params);
+}
+
+if($type == "Pipework") {
+ $app = new PipeworkController();
+ $app->startExport($params);
+}
$Layout->display();
\ No newline at end of file