Export employee stats
[disclosr.git] / admin / exportEmployees.csv.php
blob:a/admin/exportEmployees.csv.php -> blob:b/admin/exportEmployees.csv.php
--- a/admin/exportEmployees.csv.php
+++ b/admin/exportEmployees.csv.php
@@ -2,10 +2,16 @@
 
 include_once("../include/common.inc.php");
 
-
+$format = "csv";
+//$format = "json";
+if (isset($_REQUEST['format']))
+    $format = $_REQUEST['format'];
 setlocale(LC_CTYPE, 'C');
-
-$headers = Array("name");
+if ($format == "csv") {
+    $headers = Array("name");
+} else {
+    $headers = Array();
+}
 
 $db = $server->get_db('disclosr-agencies');
 try {
@@ -24,31 +30,60 @@
 
 $fp = fopen('php://output', 'w');
 if ($fp && $db) {
-    header('Content-Type: text/csv; charset=utf-8');
-    header('Content-Disposition: attachment; filename="export.employeestats.' . date("c") . '.csv"');
+    if ($format == "csv") {
+        header('Content-Type: text/csv; charset=utf-8');
+        header('Content-Disposition: attachment; filename="export.employeestats.' . date("c") . '.csv"');
+    }
     header('Pragma: no-cache');
     header('Expires: 0');
-    fputcsv($fp, $headers);
+    if ($format == "csv") {
+        fputcsv($fp, $headers);
+    } else if ($format == "json") {
+        echo '{
+            "labels" : ["' . implode('","', $headers) . '"],' . PHP_EOL;
+    }
     try {
         $agencies = $db->get_view("app", "all", null, true)->rows;
         //print_r($agencies);
+        $first = true;
+        if ($format == "json") {
+            echo '"data" : [' . PHP_EOL;
+        }
         foreach ($agencies as $agency) {
 
             if (isset($agency->value->statistics->employees)) {
                 $row = Array();
                 $agencyEmployeesArray = object_to_array($agency->value->statistics->employees);
-                foreach ($headers as $fieldName) {
-                    if ($fieldName == "name") {
+                foreach ($headers as $i => $fieldName) {
+                    if ($format == "csv") {
+                     if (isset($agencyEmployeesArray[$fieldName])) {
+                        $row[] = $agencyEmployeesArray[$fieldName]["value"] ;
+                    } else if ($i == 0) {
                         $row[] = $agency->value->name;
-                    } else if (isset($agencyEmployeesArray[$fieldName])) {
-                        $row[] = $agencyEmployeesArray[$fieldName]["value"];
                     } else {
                         $row[] = 0;
                     }
+                } else if ($format == "json") {
+                    if (isset($agencyEmployeesArray[$fieldName])) {
+                        $row[] = '[' . $i . ',' . $agencyEmployeesArray[$fieldName]["value"] . ']';
+                    } else {
+                        $row[] = '[' . $i . ',0]';
+                    }
                 }
-
-                fputcsv($fp, array_values($row));
+                }
+                if ($format == "csv") {
+                    fputcsv($fp, array_values($row));
+                } else if ($format == "json") {
+                    if (!$first)
+                        echo ",";
+                    echo '{"data" : [' . implode(",", array_values($row)) . '], "label": "' . $agency->value->name . '", "lines" : { "show" : true }, "points" : { "show" : true }}' . PHP_EOL;
+                    $first = false;
+                }
             }
+        }
+        if ($format == "json") {
+            echo ']
+            }' . PHP_EOL;
         }
     } catch (SetteeRestClientException $e) {
         setteErrorHandler($e);