public function initFrequenceFilterGroup($extras = null, $filterGroups = null)
 {
     $frequenceFilterGroup = [];
     foreach ($extras as $model) {
         if ($filterGroups) {
             $filterGroups["frequenceFilterGroup"] = $frequenceFilterGroup;
         }
         if (is_array($model)) {
             $collection = $this->getFrequenceCollection($model, $filterGroups);
             $unit = $collection != null && $collection->count() > 0 ? $collection->first() : null;
             $frequenceFilterGroup[$model['name']] = ProductionGroupComposer::getFilterArray($model['name'], $collection, $unit, $model);
         } else {
             $frequenceFilterGroup[$model] = ProductionGroupComposer::getFilterArray($model);
         }
     }
     return $frequenceFilterGroup;
 }
Exemple #2
0
 public function getCodes(Request $request)
 {
     $options = $request->only('type', 'value', 'dependences', 'extra');
     $bunde = $options['extra'];
     $type = $options['type'];
     if ($type == 'date_end' || $type == 'date_begin') {
         $unit = new CustomizeDateCollection($type, $options['value']);
     } else {
         $mdl = 'App\\Models\\' . $type;
         $unit = $mdl::find($options['value']);
     }
     $originUnit = $unit;
     $results = [];
     $currentUnits = [$type => $unit];
     foreach ($options['dependences'] as $model) {
         $modelName = $model;
         $currentId = null;
         $sourceUnit = $unit;
         $isAdd = true;
         if (is_array($model)) {
             if (array_key_exists("source", $model)) {
                 $currentSourceName = $model["source"];
                 $sourceUnit = array_key_exists($currentSourceName, $currentUnits) ? $currentUnits[$currentSourceName] : $originUnit;
             } else {
                 $sourceUnit = $originUnit;
             }
             $modelName = $model["name"];
             $isAdd = !array_key_exists("independent", $model) || !$model["independent"];
         }
         if ($sourceUnit != null) {
             $rs = ProductionGroupComposer::initExtraDependence($results, $model, $sourceUnit, $bunde);
             $eCollection = $rs['collection'];
             $modelName = $rs['model'];
             $currentId = $rs['currentId'];
         } else {
             break;
         }
         if (is_string($model) && array_key_exists($model, config("constants.subProductFilterMapping")) && array_key_exists('default', config("constants.subProductFilterMapping")[$model])) {
             $eCollection[] = config("constants.subProductFilterMapping")[$model]['default'];
         }
         $unit = ProductionGroupComposer::getCurrentSelect($eCollection, $currentId);
         $currentUnits[$modelName] = $unit;
         $filterArray = ProductionGroupComposer::getFilterArray($modelName, $eCollection, $unit);
         if ($isAdd) {
             $results[] = $filterArray;
         }
     }
     return response($results, 200)->header('Content-Type', 'application/json');
 }