/**
  * Returns an array of parameters based on a template
  */
 public static function astXMLFullParametersToArray($template)
 {
     // gather all parameters from PARAMETER db
     $allParametersArray = array();
     $parameters = astParameterModel::all();
     foreach ($parameters as $parameter) {
         array_push($allParametersArray, $parameter);
     }
     // create array of parameters in XML file
     $phoneParametersArray = array();
     foreach ($allParametersArray as $parameter) {
         $needle = '_' . $parameter->NAME . '_';
         if (!(strpos($template, $needle) === FALSE)) {
             array_push($phoneParametersArray, $parameter);
         }
     }
     return $phoneParametersArray;
 }
예제 #2
0
 /**
  * Download CSV.
  */
 public function downloadCSV()
 {
     $headers = ['Cache-Control' => 'must-revalidate, post-check=0, pre-check=0', 'Content-type' => 'text/csv', 'Content-Disposition' => 'attachment; filename=exportedPhoneList.csv', 'Expires' => '0', 'Pragma' => 'public'];
     $list = [];
     $topRow = ['template', 'output', ''];
     $fullParametersArray = astParameterModel::all();
     $parameters = [];
     foreach ($fullParametersArray as $parameter) {
         if ($parameter->NAME != 'ignorePhoneType' && $parameter->NAME != 'ignoreLocation') {
             $modifiedParameter = '_' . $parameter->NAME . '_';
             array_push($parameters, $modifiedParameter);
             array_push($topRow, $modifiedParameter);
         } else {
             $modifiedParameter = '_' . $parameter->NAME;
             array_push($parameters, $modifiedParameter);
             array_push($topRow, $modifiedParameter);
         }
     }
     array_push($list, $topRow);
     $macAddresses = Input::get('MAC');
     if (count($macAddresses) > 0) {
         foreach ($macAddresses as $macAddress) {
             $phone = astPhoneModel::where('MAC', '=', $macAddress)->get();
             $phone = $phone[0];
             $newRow = [$phone->phoneTemplate->TEMPLATE_NAME, $phone->phoneModel->PSN . '-' . $phone->MAC, ''];
             foreach ($parameters as $parameter) {
                 $parameterID = astParameterModel::where('NAME', '=', ltrim($parameter, '_'))->orWhere('NAME', '=', rtrim(ltrim($parameter, '_'), '_'))->get();
                 if (count($parameterID) > 0) {
                     $parameterID = $parameterID[0]->PARAMETER_ID;
                     $parameterValue = astPhoneParameterValueModel::where('PHONE_ID', '=', $phone->PHONE_ID)->where('PARAMETER_ID', '=', $parameterID)->get();
                     if (count($parameterValue) > 0) {
                         $parameterValue = $parameterValue[0]->VALUE;
                         if (strpos($parameterValue, ';') != false) {
                             $parameterValue = '"' . $parameterValue . '"';
                         }
                         array_push($newRow, $parameterValue);
                     } else {
                         array_push($newRow, '');
                     }
                 } else {
                     array_push($newRow, '');
                 }
             }
             array_push($list, $newRow);
         }
         $callback = function () use($list) {
             $FH = fopen('php://output', 'w');
             foreach ($list as $row) {
                 fputcsv($FH, $row, ',');
             }
             fclose($FH);
         };
         return Response::stream($callback, 200, $headers);
     } else {
         return Redirect::route('exportCSV');
     }
 }