Пример #1
0
 protected function transform($entity, $type)
 {
     $transformedData = [];
     if ($type == 'user') {
         foreach (User::$transformationData as $k => $v) {
             if (!empty($entity[$v]) && $k == 'publisher') {
                 $transformedData[$k] = $this->transform($entity[$v], 'publisher');
             } else {
                 $transformedData[$k] = !empty($entity[$v]) ? $entity[$v] : '';
             }
         }
         $transformedData['userType'] = User::getTypeString($entity['level']);
         return $transformedData;
     }
     if ($type == 'publisher') {
         foreach (Publisher::$transformationData as $k => $v) {
             if (!empty($entity[$v]) && $k == 'territories') {
                 $transformedData[$k] = $this->transformCollection($entity[$v], 'territory');
             } else {
                 $transformedData[$k] = !empty($entity[$v]) ? $entity[$v] : '';
             }
         }
         return $transformedData;
     }
     if ($type == 'territory') {
         foreach (Territory::$transformationData as $k => $v) {
             if (!empty($entity[$v]) && $k == 'addresses') {
                 $transformedData[$k] = $this->transformCollection($entity[$v], 'address');
                 $transformedData[$k] = $this->sortArrayByObjKeys($transformedData[$k], $keys = []);
             } else {
                 if (!empty($entity[$v]) && $k == 'records') {
                     $transformedData[$k] = $this->transformCollection($entity[$v], 'record');
                 } else {
                     if (!empty($entity[$v]) && $k == 'publisher') {
                         $transformedData[$k] = $this->transform($entity[$v], 'publisher');
                     } else {
                         if (!empty($entity[$v]) && in_array($k, Territory::$intKeys)) {
                             $transformedData[$k] = (int) $entity[$v];
                         } else {
                             $transformedData[$k] = !empty($entity[$v]) ? $entity[$v] : '';
                         }
                     }
                 }
             }
         }
         return $transformedData;
     }
     if ($type == 'address') {
         foreach (Address::$transformationData as $k => $v) {
             if (!empty($entity[$v]) && $k == 'notes') {
                 $transformedData[$k] = $this->transformCollection($entity[$v], 'note');
             } else {
                 if (!empty($entity[$v]) && $k == 'street') {
                     $transformedData[$k] = $this->transform($entity[$v], 'street');
                     // dd($entity[$v]);
                     // dd($transformedData[$k]);
                     if ($transformedData[$k]['isAptBuilding'] == 1) {
                         $transformedData['isApt'] = true;
                         $transformedData['streetId'] = !empty($transformedData[$k]['streetId']) ? $transformedData[$k]['streetId'] : '';
                         $transformedData['building'] = $transformedData[$k]['street'];
                         $transformedData['streetName'] = Address::getStreet($transformedData[$k]['street']);
                     } else {
                         $transformedData['streetId'] = !empty($transformedData[$k]['streetId']) ? $transformedData[$k]['streetId'] : '';
                     }
                     $transformedData['streetName'] = $transformedData[$k]['street'];
                 } else {
                     $transformedData[$k] = !empty($entity[$v]) ? $entity[$v] : '';
                 }
             }
         }
         // $transformedData['street'] = Address::getStreet($entity['address']);
         // dd($transformedData);
         if ($transformedData['street']['isAptBuilding'] == 1 && strpos(strtolower($transformedData['address']), 'ap') === false) {
             $transformedData['address'] = 'Apt ' . $transformedData['address'];
         }
         $transformedData['address'] = strtoupper($transformedData['address']);
         $transformedData['inActive'] = $transformedData['inActive'] ? 1 : 0;
         return $transformedData;
     }
     if ($type == 'street') {
         foreach (Street::$transformationData as $k => $v) {
             $transformedData[$k] = !empty($entity[$v]) ? $entity[$v] : '';
         }
         // dd($transformedData);
         $transformedData['street'] = strtoupper($transformedData['street']);
         return $transformedData;
     }
     if ($type == 'note') {
         foreach (Note::$transformationData as $k => $v) {
             $transformedData[$k] = !empty($entity[$v]) ? $entity[$v] : '';
         }
         return $transformedData;
     }
     if ($type == 'record') {
         foreach (Record::$transformationData as $k => $v) {
             if (!empty($entity[$v]) && $k == 'territory') {
                 $transformedData[$k] = $this->transform($entity[$v], 'territory');
             } else {
                 if (!empty($entity[$v]) && $k == 'user') {
                     $transformedData[$k] = $this->transform($entity[$v], 'user');
                 } else {
                     if (!empty($entity[$v]) && $k == 'publisher') {
                         $transformedData[$k] = $this->transform($entity[$v], 'publisher');
                     } else {
                         $transformedData[$k] = !empty($entity[$v]) ? $entity[$v] : '';
                     }
                 }
             }
         }
         return $transformedData;
     }
 }
 protected static function restoreTerritory($data)
 {
     $territory = Territory::where('number', $data->terrNumber)->first();
     // var_dump($territory['id']); exit;
     if (empty($territory)) {
         $territory = Territory::create(['number' => $data->terrNumber, 'location' => $data->street]);
     }
     // var_dump($territory['id']); exit;
     if (!empty($territory['id'])) {
         $bad = ['STREET', 'COURT', 'PLACE', '(PARTIE SUD)', '(PARTIE NORD)', '(BILDING)', '(BUILDING)'];
         $good = ['ST', 'CT', 'PL', '', '', '', ''];
         foreach ($data->addresses as $i => $add) {
             $streetEntry = str_replace($bad, $good, strtoupper(Address::getStreet($add->address)));
             $street = Street::where('street', $streetEntry)->first();
             // var_dump($street); exit;
             if (empty($street)) {
                 /*
                 				$street = Street::create([
                 					'street' => $streetEntry,
                 					'is_apt_building' => 0
                 				]);
                 */
                 // else
                 var_dump($streetEntry);
             }
             // var_dump($street); exit;
             $addressEntry = strtoupper(trim(str_replace($streetEntry, '', $add->address)));
             $address = Address::where(['address' => $addressEntry, 'street_id' => $street['id']])->first();
             if (empty($address)) {
                 /*
                 				$address = Address::create([
                 					'territory_id' => $territory['id'],
                 					'street_id' => $street['id'],
                 					'address' => $addressEntry,
                 					'name' => $add->name,
                 					'phone' => $add->phone
                 				]);
                 */
                 // else
                 var_dump([$addressEntry, $address]);
             }
             // var_dump($address); exit;
         }
     }
 }