@@ 103-128 (lines=26) @@ | ||
100 | return $this; |
|
101 | } |
|
102 | ||
103 | public function getZoneResources($zone) |
|
104 | { |
|
105 | $id = $this->zones[$zone]; |
|
106 | ||
107 | $result = []; |
|
108 | ||
109 | foreach ($this->tariff->resources as $resource) { |
|
110 | if (strcmp($resource->object_id, $id) === 0 && $resource->isTypeCorrect()) { |
|
111 | $result[$resource->type] = $resource; |
|
112 | } |
|
113 | } |
|
114 | ||
115 | if (empty($result)) { |
|
116 | return []; |
|
117 | } |
|
118 | ||
119 | $types = $resource->getTypes(); |
|
120 | if (count($result) !== count($types)) { |
|
121 | throw new IntegrityException('Found ' . count($result) . ' resources for zone "' . $zone . '". Must be exactly ' . count($types)); |
|
122 | } |
|
123 | ||
124 | // sorts $result by order of $resource->getTypes() |
|
125 | $result = array_merge($types, $result); |
|
126 | ||
127 | return $result; |
|
128 | } |
|
129 | ||
130 | public function getZoneParentResources($zone) |
|
131 | { |
|
@@ 130-155 (lines=26) @@ | ||
127 | return $result; |
|
128 | } |
|
129 | ||
130 | public function getZoneParentResources($zone) |
|
131 | { |
|
132 | $id = $this->zones[$zone]; |
|
133 | ||
134 | $result = []; |
|
135 | ||
136 | foreach ($this->parentTariff->resources as $resource) { |
|
137 | if (strcmp($resource->object_id, $id) === 0 && $resource->isTypeCorrect()) { |
|
138 | $result[$resource->type] = $resource; |
|
139 | } |
|
140 | } |
|
141 | ||
142 | if (empty($result)) { |
|
143 | return []; |
|
144 | } |
|
145 | ||
146 | $types = $resource->getTypes(); |
|
147 | if (count($result) !== count($types)) { |
|
148 | throw new IntegrityException('Found ' . count($result) . ' resources for zone "' . $zone . '". Must be exactly ' . count($types)); |
|
149 | } |
|
150 | ||
151 | // sorts $result by order of $resource->getTypes() |
|
152 | $result = array_merge($types, $result); |
|
153 | ||
154 | return $result; |
|
155 | } |
|
156 | ||
157 | public function getZones() |
|
158 | { |