Commit 25473a0db06ae4031db811073307897dc7982423
1 parent
558a5e9e
add parser trait - refactor depends controllers
Showing
15 changed files
with
710 additions
and
603 deletions
Show diff stats
.idea/test-1.artwebua.in.ua.iml
... | ... | @@ -6,5 +6,15 @@ |
6 | 6 | </content> |
7 | 7 | <orderEntry type="inheritedJdk" /> |
8 | 8 | <orderEntry type="sourceFolder" forTests="false" /> |
9 | + <orderEntry type="module-library"> | |
10 | + <library name="PHARS"> | |
11 | + <CLASSES> | |
12 | + <root url="phar://$MODULE_DIR$/vendor/mihaildev/yii2-elfinder/volume/aws.phar" /> | |
13 | + </CLASSES> | |
14 | + <SOURCES> | |
15 | + <root url="phar://$MODULE_DIR$/vendor/mihaildev/yii2-elfinder/volume/aws.phar" /> | |
16 | + </SOURCES> | |
17 | + </library> | |
18 | + </orderEntry> | |
9 | 19 | </component> |
10 | 20 | </module> |
11 | 21 | \ No newline at end of file | ... | ... |
.idea/workspace.xml
... | ... | @@ -2,7 +2,6 @@ |
2 | 2 | <project version="4"> |
3 | 3 | <component name="ChangeListManager"> |
4 | 4 | <list default="true" id="f6bb8ef4-b6f5-4c59-9053-25989736ae66" name="Default" comment=""> |
5 | - <change type="DELETED" beforePath="C:\xampp\htdocs\ital\backend\models\Importer.php" afterPath="" /> | |
6 | 5 | <change type="DELETED" beforePath="C:\xampp\htdocs\ital\storage\parser_data\auto\5648.csv" afterPath="" /> |
7 | 6 | <change type="DELETED" beforePath="C:\xampp\htdocs\ital\storage\parser_data\manual\Групы VW.xlsx" afterPath="" /> |
8 | 7 | <change type="DELETED" beforePath="C:\xampp\htdocs\ital\storage\parser_data\temp\5648.csv" afterPath="" /> |
... | ... | @@ -21,22 +20,17 @@ |
21 | 20 | <change type="DELETED" beforePath="C:\xampp\htdocs\ital\storage\parser_data\temp\xlsx\kud0hb7or3133ull44s061thg2\xl\worksheets\sheet1.xml" afterPath="" /> |
22 | 21 | <change type="DELETED" beforePath="C:\xampp\htdocs\ital\storage\parser_data\temp\xlsx\kud0hb7or3133ull44s061thg2\xl\worksheets\sheet2.xml" afterPath="" /> |
23 | 22 | <change type="DELETED" beforePath="C:\xampp\htdocs\ital\storage\parser_data\temp\xlsx\kud0hb7or3133ull44s061thg2\xl\worksheets\sheet3.xml" afterPath="" /> |
24 | - <change type="MOVED" beforePath="C:\xampp\htdocs\ital\.gitignore" afterPath="$PROJECT_DIR$/storage/.gitignore" /> | |
25 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tests/unit/BaseConverterTest.php" afterPath="$PROJECT_DIR$/tests/unit/BaseConverterTest.php" /> | |
26 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tests/unit/CrossesParsingTest.php" afterPath="$PROJECT_DIR$/tests/unit/CrossesParsingTest.php" /> | |
23 | + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/components/base/BaseController.php" afterPath="$PROJECT_DIR$/backend/components/base/BaseController.php" /> | |
27 | 24 | <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/controllers/CrossingUploadController.php" afterPath="$PROJECT_DIR$/backend/controllers/CrossingUploadController.php" /> |
28 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/components/parsers/CustomConverter.php" afterPath="$PROJECT_DIR$/common/components/parsers/CustomConverter.php" /> | |
29 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/components/parsers/CustomCsvParser.php" afterPath="$PROJECT_DIR$/common/components/parsers/CustomCsvParser.php" /> | |
30 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/models/Importers.php" afterPath="$PROJECT_DIR$/backend/models/Importers.php" /> | |
25 | + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/models/MarginsGroups.php" afterPath="$PROJECT_DIR$/common/models/MarginsGroups.php" /> | |
31 | 26 | <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/controllers/ParserController.php" afterPath="$PROJECT_DIR$/backend/controllers/ParserController.php" /> |
32 | 27 | <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/controllers/RgGrupController.php" afterPath="$PROJECT_DIR$/backend/controllers/RgGrupController.php" /> |
33 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/composer.json" afterPath="$PROJECT_DIR$/composer.json" /> | |
34 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/composer.lock" afterPath="$PROJECT_DIR$/composer.lock" /> | |
35 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/components/parsers/config.php" afterPath="$PROJECT_DIR$/common/components/parsers/config.php" /> | |
36 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/config/main.php" afterPath="$PROJECT_DIR$/common/config/main.php" /> | |
37 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/views/crossing-upload/results.php" afterPath="$PROJECT_DIR$/backend/views/crossing-upload/results.php" /> | |
38 | - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/views/parser/results.php" afterPath="$PROJECT_DIR$/backend/views/parser/results.php" /> | |
28 | + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/views/parser/error.php" afterPath="$PROJECT_DIR$/backend/views/parser/error.php" /> | |
29 | + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/views/crossing-upload/index.php" afterPath="$PROJECT_DIR$/backend/views/crossing-upload/index.php" /> | |
30 | + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/views/rg-grup/index.php" afterPath="$PROJECT_DIR$/backend/views/rg-grup/index.php" /> | |
39 | 31 | <change type="MODIFICATION" beforePath="$PROJECT_DIR$/backend/views/rg-grup/results.php" afterPath="$PROJECT_DIR$/backend/views/rg-grup/results.php" /> |
32 | + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/test-1.artwebua.in.ua.iml" afterPath="$PROJECT_DIR$/.idea/test-1.artwebua.in.ua.iml" /> | |
33 | + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> | |
40 | 34 | </list> |
41 | 35 | <ignored path="test-1.artwebua.in.ua.iws" /> |
42 | 36 | <ignored path=".idea/workspace.xml" /> |
... | ... | @@ -177,24 +171,28 @@ |
177 | 171 | </component> |
178 | 172 | <component name="FileEditorManager"> |
179 | 173 | <leaf> |
180 | - <file leaf-file-name="CrossesParsingTest.php" pinned="false" current-in-tab="false"> | |
181 | - <entry file="file://$PROJECT_DIR$/tests/unit/CrossesParsingTest.php"> | |
174 | + <file leaf-file-name="CrossingUploadController.php" pinned="false" current-in-tab="false"> | |
175 | + <entry file="file://$PROJECT_DIR$/backend/controllers/CrossingUploadController.php"> | |
182 | 176 | <provider selected="true" editor-type-id="text-editor"> |
183 | - <state vertical-scroll-proportion="-20.222221" vertical-offset="273" max-vertical-offset="1113"> | |
184 | - <caret line="39" column="0" selection-start-line="39" selection-start-column="0" selection-end-line="39" selection-end-column="0" /> | |
177 | + <state vertical-scroll-proportion="-37.333332" vertical-offset="1134" max-vertical-offset="4746"> | |
178 | + <caret line="102" column="0" selection-start-line="102" selection-start-column="0" selection-end-line="102" selection-end-column="0" /> | |
185 | 179 | <folding> |
186 | - <element signature="e#28#68#0#PHP" expanded="true" /> | |
180 | + <element signature="e#6#91#0#PHP" expanded="true" /> | |
181 | + <element signature="e#125#168#0#PHP" expanded="true" /> | |
187 | 182 | </folding> |
188 | 183 | </state> |
189 | 184 | </provider> |
190 | 185 | </entry> |
191 | 186 | </file> |
192 | - <file leaf-file-name=".gitignore" pinned="false" current-in-tab="true"> | |
193 | - <entry file="file://$PROJECT_DIR$/storage/.gitignore"> | |
187 | + <file leaf-file-name="RgGrupController.php" pinned="false" current-in-tab="false"> | |
188 | + <entry file="file://$PROJECT_DIR$/backend/controllers/RgGrupController.php"> | |
194 | 189 | <provider selected="true" editor-type-id="text-editor"> |
195 | - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="535"> | |
196 | - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | |
197 | - <folding /> | |
190 | + <state vertical-scroll-proportion="-109.59259" vertical-offset="527" max-vertical-offset="4053"> | |
191 | + <caret line="190" column="5" selection-start-line="190" selection-start-column="5" selection-end-line="190" selection-end-column="5" /> | |
192 | + <folding> | |
193 | + <element signature="e#125#168#0#PHP" expanded="true" /> | |
194 | + <element signature="e#787#1322#0#PHP" expanded="false" /> | |
195 | + </folding> | |
198 | 196 | </state> |
199 | 197 | </provider> |
200 | 198 | </entry> |
... | ... | @@ -202,20 +200,84 @@ |
202 | 200 | <file leaf-file-name="CustomArrayHelper.php" pinned="false" current-in-tab="false"> |
203 | 201 | <entry file="file://$PROJECT_DIR$/common/components/CustomArrayHelper.php"> |
204 | 202 | <provider selected="true" editor-type-id="text-editor"> |
205 | - <state vertical-scroll-proportion="-10.777778" vertical-offset="108" max-vertical-offset="1596"> | |
206 | - <caret line="24" column="48" selection-start-line="24" selection-start-column="48" selection-end-line="24" selection-end-column="48" /> | |
203 | + <state vertical-scroll-proportion="-9.62963" vertical-offset="286" max-vertical-offset="1596"> | |
204 | + <caret line="31" column="36" selection-start-line="31" selection-start-column="36" selection-end-line="31" selection-end-column="36" /> | |
207 | 205 | <folding /> |
208 | 206 | </state> |
209 | 207 | </provider> |
210 | 208 | </entry> |
211 | 209 | </file> |
212 | - <file leaf-file-name="CrossingUploadController.php" pinned="false" current-in-tab="false"> | |
213 | - <entry file="file://$PROJECT_DIR$/backend/controllers/CrossingUploadController.php"> | |
210 | + <file leaf-file-name="Margins.php" pinned="false" current-in-tab="false"> | |
211 | + <entry file="file://$PROJECT_DIR$/common/models/Margins.php"> | |
212 | + <provider selected="true" editor-type-id="text-editor"> | |
213 | + <state vertical-scroll-proportion="-10.407408" vertical-offset="832" max-vertical-offset="1512"> | |
214 | + <caret line="53" column="8" selection-start-line="53" selection-start-column="8" selection-end-line="53" selection-end-column="51" /> | |
215 | + <folding /> | |
216 | + </state> | |
217 | + </provider> | |
218 | + </entry> | |
219 | + </file> | |
220 | + <file leaf-file-name="ParserTrait.php" pinned="false" current-in-tab="false"> | |
221 | + <entry file="file://$PROJECT_DIR$/backend/components/traits/ParserTrait.php"> | |
214 | 222 | <provider selected="true" editor-type-id="text-editor"> |
215 | - <state vertical-scroll-proportion="-9.37037" vertical-offset="2519" max-vertical-offset="4935"> | |
216 | - <caret line="137" column="78" selection-start-line="137" selection-start-column="11" selection-end-line="137" selection-end-column="78" /> | |
223 | + <state vertical-scroll-proportion="-42.77778" vertical-offset="126" max-vertical-offset="1848"> | |
224 | + <caret line="66" column="46" selection-start-line="66" selection-start-column="31" selection-end-line="66" selection-end-column="46" /> | |
217 | 225 | <folding> |
218 | - <element signature="e#125#168#0#PHP" expanded="true" /> | |
226 | + <element signature="e#129#177#0#PHP" expanded="true" /> | |
227 | + </folding> | |
228 | + </state> | |
229 | + </provider> | |
230 | + </entry> | |
231 | + </file> | |
232 | + <file leaf-file-name="index.php" pinned="false" current-in-tab="false"> | |
233 | + <entry file="file://$PROJECT_DIR$/backend/views/rg-grup/index.php"> | |
234 | + <provider selected="true" editor-type-id="text-editor"> | |
235 | + <state vertical-scroll-proportion="-18.666666" vertical-offset="0" max-vertical-offset="756"> | |
236 | + <caret line="27" column="32" selection-start-line="27" selection-start-column="32" selection-end-line="27" selection-end-column="32" /> | |
237 | + <folding /> | |
238 | + </state> | |
239 | + </provider> | |
240 | + </entry> | |
241 | + </file> | |
242 | + <file leaf-file-name="results.php" pinned="false" current-in-tab="false"> | |
243 | + <entry file="file://$PROJECT_DIR$/backend/views/rg-grup/results.php"> | |
244 | + <provider selected="true" editor-type-id="text-editor"> | |
245 | + <state vertical-scroll-proportion="-22.555555" vertical-offset="0" max-vertical-offset="777"> | |
246 | + <caret line="29" column="23" selection-start-line="29" selection-start-column="23" selection-end-line="29" selection-end-column="23" /> | |
247 | + <folding> | |
248 | + <element signature="e#7#28#0#PHP" expanded="true" /> | |
249 | + </folding> | |
250 | + </state> | |
251 | + </provider> | |
252 | + </entry> | |
253 | + </file> | |
254 | + <file leaf-file-name="server-files.php" pinned="false" current-in-tab="false"> | |
255 | + <entry file="file://$PROJECT_DIR$/backend/views/parser/server-files.php"> | |
256 | + <provider selected="true" editor-type-id="text-editor"> | |
257 | + <state vertical-scroll-proportion="-22.777779" vertical-offset="288" max-vertical-offset="1155"> | |
258 | + <caret line="49" column="108" selection-start-line="49" selection-start-column="8" selection-end-line="49" selection-end-column="108" /> | |
259 | + <folding /> | |
260 | + </state> | |
261 | + </provider> | |
262 | + </entry> | |
263 | + </file> | |
264 | + <file leaf-file-name="MarginsGroups.php" pinned="false" current-in-tab="false"> | |
265 | + <entry file="file://$PROJECT_DIR$/common/models/MarginsGroups.php"> | |
266 | + <provider selected="true" editor-type-id="text-editor"> | |
267 | + <state vertical-scroll-proportion="15.62963" vertical-offset="758" max-vertical-offset="2520"> | |
268 | + <caret line="17" column="19" selection-start-line="17" selection-start-column="6" selection-end-line="17" selection-end-column="19" /> | |
269 | + <folding /> | |
270 | + </state> | |
271 | + </provider> | |
272 | + </entry> | |
273 | + </file> | |
274 | + <file leaf-file-name="ParserController.php" pinned="false" current-in-tab="true"> | |
275 | + <entry file="file://$PROJECT_DIR$/backend/controllers/ParserController.php"> | |
276 | + <provider selected="true" editor-type-id="text-editor"> | |
277 | + <state vertical-scroll-proportion="0.021428572" vertical-offset="1494" max-vertical-offset="6468"> | |
278 | + <caret line="72" column="54" selection-start-line="72" selection-start-column="54" selection-end-line="72" selection-end-column="54" /> | |
279 | + <folding> | |
280 | + <element signature="e#38#65#0#PHP" expanded="true" /> | |
219 | 281 | </folding> |
220 | 282 | </state> |
221 | 283 | </provider> |
... | ... | @@ -230,16 +292,6 @@ |
230 | 292 | <component name="IdeDocumentHistory"> |
231 | 293 | <option name="CHANGED_PATHS"> |
232 | 294 | <list> |
233 | - <option value="$PROJECT_DIR$/vendor/artweb/yii2-multiparser/lib/CsvParser.php" /> | |
234 | - <option value="$PROJECT_DIR$/vendor/artweb/yii2-multiparser/lib/ParserHandler.php" /> | |
235 | - <option value="db-console:/b6fc378e/7bd5422a-47c2-471e-873f-532e6b000acc/" /> | |
236 | - <option value="$PROJECT_DIR$/backend/assets/CartAsset.php" /> | |
237 | - <option value="$PROJECT_DIR$/backend/views/check-price/index.php" /> | |
238 | - <option value="$PROJECT_DIR$/backend/views/cart/index.php" /> | |
239 | - <option value="$PROJECT_DIR$/common/models/CartBillsSearch.php" /> | |
240 | - <option value="$PROJECT_DIR$/backend/web/css/AdminLTE.css" /> | |
241 | - <option value="$PROJECT_DIR$/common/models/Cart.php" /> | |
242 | - <option value="$PROJECT_DIR$/backend/views/cart/view.php" /> | |
243 | 295 | <option value="$PROJECT_DIR$/backend/controllers/CartController.php" /> |
244 | 296 | <option value="$PROJECT_DIR$/backend/web/js/cart.js" /> |
245 | 297 | <option value="$PROJECT_DIR$/backend/controllers/CurrencyController.php" /> |
... | ... | @@ -253,9 +305,7 @@ |
253 | 305 | <option value="$PROJECT_DIR$/common/models/Currency.php" /> |
254 | 306 | <option value="$PROJECT_DIR$/vendor/artweb/yii2-multiparser/lib/ParserValidator.php" /> |
255 | 307 | <option value="$PROJECT_DIR$/backend/views/currency/index.php" /> |
256 | - <option value="$PROJECT_DIR$/backend/components/base/BaseController.php" /> | |
257 | 308 | <option value="$PROJECT_DIR$/backend/views/templates/parser_massage.php" /> |
258 | - <option value="$PROJECT_DIR$/backend/views/crossing-upload/index.php" /> | |
259 | 309 | <option value="$PROJECT_DIR$/common/components/ModelArrayValidator.php" /> |
260 | 310 | <option value="$PROJECT_DIR$/backend/models/Details.php" /> |
261 | 311 | <option value="$PROJECT_DIR$/backend/models/DetailsCrosses.php" /> |
... | ... | @@ -263,24 +313,36 @@ |
263 | 313 | <option value="$PROJECT_DIR$/vendor/artweb/yii2-multiparser/lib/TableParser.php" /> |
264 | 314 | <option value="$PROJECT_DIR$/console/controllers/ParserController.php" /> |
265 | 315 | <option value="$PROJECT_DIR$/console/runtime/logs/parser.log" /> |
266 | - <option value="$PROJECT_DIR$/backend/views/rg-grup/index.php" /> | |
267 | 316 | <option value="$PROJECT_DIR$/common/components/PriceWriter.php" /> |
268 | - <option value="$PROJECT_DIR$/common/models/MarginsGroups.php" /> | |
269 | 317 | <option value="$PROJECT_DIR$/backend/views/parser/index.php" /> |
270 | 318 | <option value="$PROJECT_DIR$/backend/models/Importers.php" /> |
271 | 319 | <option value="$PROJECT_DIR$/common/components/parsers/Converter.php" /> |
272 | 320 | <option value="$PROJECT_DIR$/common/components/parsers/config.php" /> |
273 | - <option value="$PROJECT_DIR$/backend/controllers/CrossingUploadController.php" /> | |
274 | - <option value="$PROJECT_DIR$/backend/controllers/ParserController.php" /> | |
275 | - <option value="$PROJECT_DIR$/backend/controllers/RgGrupController.php" /> | |
276 | - <option value="$PROJECT_DIR$/backend/views/crossing-upload/results.php" /> | |
277 | 321 | <option value="$PROJECT_DIR$/backend/views/parser/results.php" /> |
278 | - <option value="$PROJECT_DIR$/backend/views/rg-grup/results.php" /> | |
279 | 322 | <option value="$PROJECT_DIR$/common/components/parsers/CustomConverter.php" /> |
280 | 323 | <option value="$PROJECT_DIR$/common/components/parsers/CustomCsvParser.php" /> |
281 | 324 | <option value="$PROJECT_DIR$/common/config/main.php" /> |
282 | 325 | <option value="$PROJECT_DIR$/tests/unit/BaseConverterTest.php" /> |
283 | 326 | <option value="$PROJECT_DIR$/tests/unit/CrossesParsingTest.php" /> |
327 | + <option value="$PROJECT_DIR$/backend/web/index.php" /> | |
328 | + <option value="$PROJECT_DIR$/backend/views/crossing-upload/index.php" /> | |
329 | + <option value="$PROJECT_DIR$/backend/views/crossing-upload/results.php" /> | |
330 | + <option value="$PROJECT_DIR$/backend/config/main.php" /> | |
331 | + <option value="$PROJECT_DIR$/backend/views/crossing-upload/error.php" /> | |
332 | + <option value="$PROJECT_DIR$/common/components/exceptions/CrossParsingException.php" /> | |
333 | + <option value="$PROJECT_DIR$/common/components/exceptions/RgParsingException.php" /> | |
334 | + <option value="$PROJECT_DIR$/common/components/exceptions/PriceParsingException.php" /> | |
335 | + <option value="$PROJECT_DIR$/backend/components/traits_/ParserTrait.php" /> | |
336 | + <option value="$PROJECT_DIR$/backend/components/base/BaseController.php" /> | |
337 | + <option value="$PROJECT_DIR$/backend/views/parser/error.php" /> | |
338 | + <option value="$PROJECT_DIR$/backend/views/rg-grup/index.php" /> | |
339 | + <option value="$PROJECT_DIR$/backend/views/rg-grup/results.php" /> | |
340 | + <option value="$PROJECT_DIR$/common/models/MarginsGroups.php" /> | |
341 | + <option value="$PROJECT_DIR$/backend/components/traits/ParserTrait.php" /> | |
342 | + <option value="$PROJECT_DIR$/backend/controllers/CrossingUploadController.php" /> | |
343 | + <option value="$PROJECT_DIR$/common/models/Margins.php" /> | |
344 | + <option value="$PROJECT_DIR$/backend/controllers/RgGrupController.php" /> | |
345 | + <option value="$PROJECT_DIR$/backend/controllers/ParserController.php" /> | |
284 | 346 | </list> |
285 | 347 | </option> |
286 | 348 | </component> |
... | ... | @@ -333,6 +395,80 @@ |
333 | 395 | <sortByType /> |
334 | 396 | </navigator> |
335 | 397 | <panes> |
398 | + <pane id="ProjectPane"> | |
399 | + <subPane> | |
400 | + <PATH> | |
401 | + <PATH_ELEMENT> | |
402 | + <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
403 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
404 | + </PATH_ELEMENT> | |
405 | + </PATH> | |
406 | + <PATH> | |
407 | + <PATH_ELEMENT> | |
408 | + <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
409 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
410 | + </PATH_ELEMENT> | |
411 | + <PATH_ELEMENT> | |
412 | + <option name="myItemId" value="ital" /> | |
413 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
414 | + </PATH_ELEMENT> | |
415 | + </PATH> | |
416 | + <PATH> | |
417 | + <PATH_ELEMENT> | |
418 | + <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
419 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
420 | + </PATH_ELEMENT> | |
421 | + <PATH_ELEMENT> | |
422 | + <option name="myItemId" value="ital" /> | |
423 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
424 | + </PATH_ELEMENT> | |
425 | + <PATH_ELEMENT> | |
426 | + <option name="myItemId" value="backend" /> | |
427 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
428 | + </PATH_ELEMENT> | |
429 | + </PATH> | |
430 | + <PATH> | |
431 | + <PATH_ELEMENT> | |
432 | + <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
433 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
434 | + </PATH_ELEMENT> | |
435 | + <PATH_ELEMENT> | |
436 | + <option name="myItemId" value="ital" /> | |
437 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
438 | + </PATH_ELEMENT> | |
439 | + <PATH_ELEMENT> | |
440 | + <option name="myItemId" value="backend" /> | |
441 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
442 | + </PATH_ELEMENT> | |
443 | + <PATH_ELEMENT> | |
444 | + <option name="myItemId" value="views" /> | |
445 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
446 | + </PATH_ELEMENT> | |
447 | + </PATH> | |
448 | + <PATH> | |
449 | + <PATH_ELEMENT> | |
450 | + <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
451 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
452 | + </PATH_ELEMENT> | |
453 | + <PATH_ELEMENT> | |
454 | + <option name="myItemId" value="ital" /> | |
455 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
456 | + </PATH_ELEMENT> | |
457 | + <PATH_ELEMENT> | |
458 | + <option name="myItemId" value="backend" /> | |
459 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
460 | + </PATH_ELEMENT> | |
461 | + <PATH_ELEMENT> | |
462 | + <option name="myItemId" value="views" /> | |
463 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
464 | + </PATH_ELEMENT> | |
465 | + <PATH_ELEMENT> | |
466 | + <option name="myItemId" value="crossing-upload" /> | |
467 | + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
468 | + </PATH_ELEMENT> | |
469 | + </PATH> | |
470 | + </subPane> | |
471 | + </pane> | |
336 | 472 | <pane id="Scope"> |
337 | 473 | <subPane subId="Default"> |
338 | 474 | <PATH> |
... | ... | @@ -464,126 +600,6 @@ |
464 | 600 | </PATH> |
465 | 601 | </subPane> |
466 | 602 | </pane> |
467 | - <pane id="ProjectPane"> | |
468 | - <subPane> | |
469 | - <PATH> | |
470 | - <PATH_ELEMENT> | |
471 | - <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
472 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
473 | - </PATH_ELEMENT> | |
474 | - </PATH> | |
475 | - <PATH> | |
476 | - <PATH_ELEMENT> | |
477 | - <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
478 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
479 | - </PATH_ELEMENT> | |
480 | - <PATH_ELEMENT> | |
481 | - <option name="myItemId" value="ital" /> | |
482 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
483 | - </PATH_ELEMENT> | |
484 | - </PATH> | |
485 | - <PATH> | |
486 | - <PATH_ELEMENT> | |
487 | - <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
488 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
489 | - </PATH_ELEMENT> | |
490 | - <PATH_ELEMENT> | |
491 | - <option name="myItemId" value="ital" /> | |
492 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
493 | - </PATH_ELEMENT> | |
494 | - <PATH_ELEMENT> | |
495 | - <option name="myItemId" value="storage" /> | |
496 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
497 | - </PATH_ELEMENT> | |
498 | - </PATH> | |
499 | - <PATH> | |
500 | - <PATH_ELEMENT> | |
501 | - <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
502 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
503 | - </PATH_ELEMENT> | |
504 | - <PATH_ELEMENT> | |
505 | - <option name="myItemId" value="ital" /> | |
506 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
507 | - </PATH_ELEMENT> | |
508 | - <PATH_ELEMENT> | |
509 | - <option name="myItemId" value="console" /> | |
510 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
511 | - </PATH_ELEMENT> | |
512 | - </PATH> | |
513 | - <PATH> | |
514 | - <PATH_ELEMENT> | |
515 | - <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
516 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
517 | - </PATH_ELEMENT> | |
518 | - <PATH_ELEMENT> | |
519 | - <option name="myItemId" value="ital" /> | |
520 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
521 | - </PATH_ELEMENT> | |
522 | - <PATH_ELEMENT> | |
523 | - <option name="myItemId" value="console" /> | |
524 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
525 | - </PATH_ELEMENT> | |
526 | - <PATH_ELEMENT> | |
527 | - <option name="myItemId" value="runtime" /> | |
528 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
529 | - </PATH_ELEMENT> | |
530 | - </PATH> | |
531 | - <PATH> | |
532 | - <PATH_ELEMENT> | |
533 | - <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
534 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
535 | - </PATH_ELEMENT> | |
536 | - <PATH_ELEMENT> | |
537 | - <option name="myItemId" value="ital" /> | |
538 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
539 | - </PATH_ELEMENT> | |
540 | - <PATH_ELEMENT> | |
541 | - <option name="myItemId" value="console" /> | |
542 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
543 | - </PATH_ELEMENT> | |
544 | - <PATH_ELEMENT> | |
545 | - <option name="myItemId" value="runtime" /> | |
546 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
547 | - </PATH_ELEMENT> | |
548 | - <PATH_ELEMENT> | |
549 | - <option name="myItemId" value="logs" /> | |
550 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
551 | - </PATH_ELEMENT> | |
552 | - </PATH> | |
553 | - <PATH> | |
554 | - <PATH_ELEMENT> | |
555 | - <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
556 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
557 | - </PATH_ELEMENT> | |
558 | - <PATH_ELEMENT> | |
559 | - <option name="myItemId" value="ital" /> | |
560 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
561 | - </PATH_ELEMENT> | |
562 | - <PATH_ELEMENT> | |
563 | - <option name="myItemId" value="console" /> | |
564 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
565 | - </PATH_ELEMENT> | |
566 | - <PATH_ELEMENT> | |
567 | - <option name="myItemId" value="controllers" /> | |
568 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
569 | - </PATH_ELEMENT> | |
570 | - </PATH> | |
571 | - <PATH> | |
572 | - <PATH_ELEMENT> | |
573 | - <option name="myItemId" value="test-1.artwebua.in.ua" /> | |
574 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | |
575 | - </PATH_ELEMENT> | |
576 | - <PATH_ELEMENT> | |
577 | - <option name="myItemId" value="ital" /> | |
578 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
579 | - </PATH_ELEMENT> | |
580 | - <PATH_ELEMENT> | |
581 | - <option name="myItemId" value="backend" /> | |
582 | - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | |
583 | - </PATH_ELEMENT> | |
584 | - </PATH> | |
585 | - </subPane> | |
586 | - </pane> | |
587 | 603 | </panes> |
588 | 604 | </component> |
589 | 605 | <component name="PropertiesComponent"> |
... | ... | @@ -621,11 +637,11 @@ |
621 | 637 | </component> |
622 | 638 | <component name="RecentsManager"> |
623 | 639 | <key name="CopyFile.RECENT_KEYS"> |
640 | + <recent name="C:\xampp\htdocs\ital\common\components\exceptions" /> | |
641 | + <recent name="C:\xampp\htdocs\ital\backend\views\crossing-upload" /> | |
624 | 642 | <recent name="C:\xampp\htdocs\ital" /> |
625 | 643 | <recent name="C:\xampp\htdocs\ital\backend\web\js" /> |
626 | 644 | <recent name="C:\xampp\htdocs\ital\backend\assets" /> |
627 | - <recent name="C:\xampp\htdocs\ital\backend\views\crossing-upload" /> | |
628 | - <recent name="C:\xampp\htdocs\ital\backend\views\rg-grup" /> | |
629 | 645 | </key> |
630 | 646 | <key name="MoveFile.RECENT_KEYS"> |
631 | 647 | <recent name="C:\xampp\htdocs\ital\storage" /> |
... | ... | @@ -646,22 +662,19 @@ |
646 | 662 | <configuration default="true" type="PhpLocalRunConfigurationType" factoryName="PHP Console"> |
647 | 663 | <method /> |
648 | 664 | </configuration> |
665 | + <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> | |
666 | + <method /> | |
667 | + </configuration> | |
649 | 668 | <configuration default="true" type="com.intellij.database.run.ConsoleRunConfigurationType" factoryName="Query Language Console"> |
650 | 669 | <option name="VM_PARAMETERS" value="" /> |
651 | 670 | <option name="USER_CFG_CLASS" /> |
652 | 671 | <option name="CONTEXT_PROVIDER" /> |
653 | 672 | <method /> |
654 | 673 | </configuration> |
655 | - <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> | |
656 | - <method /> | |
657 | - </configuration> | |
658 | 674 | <configuration default="true" type="PhpBehatConfigurationType" factoryName="Behat"> |
659 | 675 | <BehatRunner /> |
660 | 676 | <method /> |
661 | 677 | </configuration> |
662 | - <configuration default="true" type="PhpUnitRemoteRunConfigurationType" factoryName="PHPUnit on Server" server_id="a3f1bddc-84d9-4a6b-8a9d-6de886ff3d82" server_name="italauto"> | |
663 | - <method /> | |
664 | - </configuration> | |
665 | 678 | <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> |
666 | 679 | <node-options /> |
667 | 680 | <gulpfile /> |
... | ... | @@ -671,6 +684,9 @@ |
671 | 684 | <envs /> |
672 | 685 | <method /> |
673 | 686 | </configuration> |
687 | + <configuration default="true" type="PhpUnitRemoteRunConfigurationType" factoryName="PHPUnit on Server" server_id="a3f1bddc-84d9-4a6b-8a9d-6de886ff3d82" server_name="italauto"> | |
688 | + <method /> | |
689 | + </configuration> | |
674 | 690 | <configuration default="false" name="ital_server" type="PhpWebAppRunConfigurationType" factoryName="PHP Web Application" browser="98ca6316-2f89-46d9-a9e5-fa9e2b0625b3" server_name="ital_server" start_url="http://test-1.artweb.com.ua/admin/"> |
675 | 691 | <RunnerSettings RunnerId="PhpRunner" /> |
676 | 692 | <RunnerSettings RunnerId="PhpWebAppDebugRunner" /> |
... | ... | @@ -745,9 +761,9 @@ |
745 | 761 | <layout> |
746 | 762 | <window_info id="File Transfer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32960895" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" /> |
747 | 763 | <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32849163" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> |
748 | - <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.34301677" sideWeight="0.5" order="14" side_tool="false" content_ui="tabs" /> | |
749 | - <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.21936275" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> | |
764 | + <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.34301677" sideWeight="0.5" order="14" side_tool="false" content_ui="tabs" /> | |
750 | 765 | <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.29944134" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> |
766 | + <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.21936275" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> | |
751 | 767 | <window_info id="Remote Host" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3290441" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> |
752 | 768 | <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.30726257" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> |
753 | 769 | <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3206704" sideWeight="0.5" order="10" side_tool="true" content_ui="tabs" /> |
... | ... | @@ -756,7 +772,7 @@ |
756 | 772 | <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3206704" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> |
757 | 773 | <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25306374" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> |
758 | 774 | <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> |
759 | - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.30759802" sideWeight="0.49944505" order="0" side_tool="false" content_ui="combo" /> | |
775 | + <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.30392158" sideWeight="0.49944505" order="0" side_tool="false" content_ui="combo" /> | |
760 | 776 | <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> |
761 | 777 | <window_info id="Database Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2547486" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> |
762 | 778 | <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> |
... | ... | @@ -764,8 +780,8 @@ |
764 | 780 | <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> |
765 | 781 | <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" /> |
766 | 782 | <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> |
767 | - <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> | |
768 | 783 | <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> |
784 | + <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> | |
769 | 785 | <window_info id="Command Line Tools Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32960895" sideWeight="0.5" order="15" side_tool="false" content_ui="tabs" /> |
770 | 786 | </layout> |
771 | 787 | <layout-to-restore> |
... | ... | @@ -787,9 +803,9 @@ |
787 | 803 | <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> |
788 | 804 | <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" /> |
789 | 805 | <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25" sideWeight="0.49944505" order="0" side_tool="false" content_ui="combo" /> |
790 | - <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> | |
791 | - <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> | |
792 | 806 | <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> |
807 | + <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> | |
808 | + <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> | |
793 | 809 | </layout-to-restore> |
794 | 810 | </component> |
795 | 811 | <component name="Vcs.Log.UiProperties"> |
... | ... | @@ -812,426 +828,428 @@ |
812 | 828 | </component> |
813 | 829 | <component name="XDebuggerManager"> |
814 | 830 | <breakpoint-manager> |
831 | + <breakpoints> | |
832 | + <line-breakpoint type="php"> | |
833 | + <url>file://$PROJECT_DIR$/backend/controllers/RgGrupController.php</url> | |
834 | + <line>148</line> | |
835 | + <option name="timeStamp" value="231" /> | |
836 | + </line-breakpoint> | |
837 | + </breakpoints> | |
815 | 838 | <breakpoints-dialog> |
816 | 839 | <breakpoints-dialog /> |
817 | 840 | </breakpoints-dialog> |
818 | - <option name="time" value="224" /> | |
841 | + <option name="time" value="239" /> | |
819 | 842 | </breakpoint-manager> |
820 | 843 | <watches-manager> |
821 | 844 | <configuration name="index.php"> |
822 | - <watch expression="$model->rules()" language="PHP" /> | |
823 | - <watch expression="array_keys($arr_attributes)" language="PHP" /> | |
845 | + <watch expression="$arr" language="PHP" /> | |
846 | + </configuration> | |
847 | + <configuration name="PhpWebAppRunConfigurationType"> | |
848 | + <watch expression="$model->getErrors()" language="PHP" /> | |
824 | 849 | </configuration> |
825 | 850 | </watches-manager> |
826 | 851 | </component> |
827 | 852 | <component name="editorHistoryManager"> |
828 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/assets/yii.validation.js"> | |
853 | + <entry file="file://$PROJECT_DIR$/common/components/ModelArrayValidator.php"> | |
829 | 854 | <provider selected="true" editor-type-id="text-editor"> |
830 | - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="8085"> | |
831 | - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | |
855 | + <state vertical-scroll-proportion="-59.88889" vertical-offset="840" max-vertical-offset="3066"> | |
856 | + <caret line="122" column="32" selection-start-line="122" selection-start-column="32" selection-end-line="122" selection-end-column="32" /> | |
857 | + <folding /> | |
832 | 858 | </state> |
833 | 859 | </provider> |
834 | 860 | </entry> |
835 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/validators/FilterValidator.php"> | |
861 | + <entry file="file://$PROJECT_DIR$/backend/models/DetailsCrosses.php"> | |
836 | 862 | <provider selected="true" editor-type-id="text-editor"> |
837 | - <state vertical-scroll-proportion="-13.222222" vertical-offset="1071" max-vertical-offset="2037"> | |
838 | - <caret line="72" column="9" selection-start-line="70" selection-start-column="7" selection-end-line="72" selection-end-column="9" /> | |
863 | + <state vertical-scroll-proportion="0.0" vertical-offset="610" max-vertical-offset="2058"> | |
864 | + <caret line="38" column="54" selection-start-line="38" selection-start-column="35" selection-end-line="38" selection-end-column="54" /> | |
865 | + <folding /> | |
839 | 866 | </state> |
840 | 867 | </provider> |
841 | 868 | </entry> |
842 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/validators/NumberValidator.php"> | |
869 | + <entry file="file://$PROJECT_DIR$/backend/models/Details.php"> | |
843 | 870 | <provider selected="true" editor-type-id="text-editor"> |
844 | - <state vertical-scroll-proportion="-7.037037" vertical-offset="839" max-vertical-offset="3339"> | |
845 | - <caret line="55" column="79" selection-start-line="55" selection-start-column="3" selection-end-line="55" selection-end-column="79" /> | |
871 | + <state vertical-scroll-proportion="1.375" vertical-offset="0" max-vertical-offset="3339"> | |
872 | + <caret line="57" column="115" selection-start-line="57" selection-start-column="93" selection-end-line="57" selection-end-column="115" /> | |
873 | + <folding /> | |
846 | 874 | </state> |
847 | 875 | </provider> |
848 | 876 | </entry> |
849 | - <entry file="file://$PROJECT_DIR$/common/components/CommaNumberValidator.php"> | |
877 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/messages/ru/yii.php"> | |
850 | 878 | <provider selected="true" editor-type-id="text-editor"> |
851 | - <state vertical-scroll-proportion="-14.962963" vertical-offset="79" max-vertical-offset="1281"> | |
852 | - <caret line="28" column="30" selection-start-line="28" selection-start-column="12" selection-end-line="28" selection-end-column="30" /> | |
879 | + <state vertical-scroll-proportion="3.5185184" vertical-offset="1082" max-vertical-offset="3150"> | |
880 | + <caret line="63" column="134" selection-start-line="63" selection-start-column="134" selection-end-line="63" selection-end-column="134" /> | |
853 | 881 | </state> |
854 | 882 | </provider> |
855 | 883 | </entry> |
856 | - <entry file="file://$PROJECT_DIR$/common/models/Currency.php"> | |
884 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/validators/FileValidator.php"> | |
857 | 885 | <provider selected="true" editor-type-id="text-editor"> |
858 | - <state vertical-scroll-proportion="-11.666667" vertical-offset="357" max-vertical-offset="1512"> | |
859 | - <caret line="32" column="73" selection-start-line="32" selection-start-column="62" selection-end-line="32" selection-end-column="73" /> | |
886 | + <state vertical-scroll-proportion="252.77777" vertical-offset="6825" max-vertical-offset="8862"> | |
887 | + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | |
860 | 888 | </state> |
861 | 889 | </provider> |
862 | 890 | </entry> |
863 | - <entry file="file://$PROJECT_DIR$/common/models/CartBillsSearch.php"> | |
891 | + <entry file="file://$PROJECT_DIR$/backend/models/UploadFileParsingForm.php"> | |
864 | 892 | <provider selected="true" editor-type-id="text-editor"> |
865 | - <state vertical-scroll-proportion="7.7777777" vertical-offset="1071" max-vertical-offset="1911"> | |
866 | - <caret line="45" column="39" selection-start-line="45" selection-start-column="39" selection-end-line="45" selection-end-column="39" /> | |
893 | + <state vertical-scroll-proportion="-14.0" vertical-offset="567" max-vertical-offset="2163"> | |
894 | + <caret line="49" column="37" selection-start-line="49" selection-start-column="37" selection-end-line="49" selection-end-column="37" /> | |
895 | + <folding /> | |
867 | 896 | </state> |
868 | 897 | </provider> |
869 | 898 | </entry> |
870 | - <entry file="file://$PROJECT_DIR$/backend/components/base/BaseActiveRecord.php"> | |
899 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/log/Logger.php"> | |
871 | 900 | <provider selected="true" editor-type-id="text-editor"> |
872 | - <state vertical-scroll-proportion="0.0" vertical-offset="378" max-vertical-offset="588"> | |
873 | - <caret line="23" column="9" selection-start-line="21" selection-start-column="8" selection-end-line="23" selection-end-column="9" /> | |
874 | - <folding /> | |
901 | + <state vertical-scroll-proportion="0.33274338" vertical-offset="3361" max-vertical-offset="6636"> | |
902 | + <caret line="174" column="0" selection-start-line="174" selection-start-column="0" selection-end-line="174" selection-end-column="0" /> | |
875 | 903 | </state> |
876 | 904 | </provider> |
877 | 905 | </entry> |
878 | - <entry file="file://$PROJECT_DIR$/backend/views/currency/index.php"> | |
906 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/web/Session.php"> | |
879 | 907 | <provider selected="true" editor-type-id="text-editor"> |
880 | - <state vertical-scroll-proportion="0.775" vertical-offset="0" max-vertical-offset="840"> | |
881 | - <caret line="32" column="0" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" /> | |
908 | + <state vertical-scroll-proportion="0.33274338" vertical-offset="3319" max-vertical-offset="18270"> | |
909 | + <caret line="172" column="0" selection-start-line="172" selection-start-column="0" selection-end-line="172" selection-end-column="0" /> | |
882 | 910 | </state> |
883 | 911 | </provider> |
884 | 912 | </entry> |
885 | - <entry file="file://$PROJECT_DIR$/backend/models/ImportersFiles.php"> | |
913 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/db/BaseActiveRecord.php"> | |
886 | 914 | <provider selected="true" editor-type-id="text-editor"> |
887 | - <state vertical-scroll-proportion="-10.703704" vertical-offset="47" max-vertical-offset="1470"> | |
888 | - <caret line="17" column="6" selection-start-line="17" selection-start-column="6" selection-end-line="17" selection-end-column="6" /> | |
889 | - <folding /> | |
915 | + <state vertical-scroll-proportion="-6.185185" vertical-offset="4831" max-vertical-offset="33033"> | |
916 | + <caret line="250" column="0" selection-start-line="250" selection-start-column="0" selection-end-line="250" selection-end-column="0" /> | |
890 | 917 | </state> |
891 | 918 | </provider> |
892 | 919 | </entry> |
893 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/base/View.php"> | |
920 | + <entry file="file://$PROJECT_DIR$/console/controllers/ParserController.php"> | |
894 | 921 | <provider selected="true" editor-type-id="text-editor"> |
895 | - <state vertical-scroll-proportion="-6.5185184" vertical-offset="6502" max-vertical-offset="10395"> | |
896 | - <caret line="326" column="0" selection-start-line="326" selection-start-column="0" selection-end-line="326" selection-end-column="0" /> | |
922 | + <state vertical-scroll-proportion="-6.962963" vertical-offset="967" max-vertical-offset="5397"> | |
923 | + <caret line="64" column="0" selection-start-line="64" selection-start-column="0" selection-end-line="64" selection-end-column="0" /> | |
897 | 924 | </state> |
898 | 925 | </provider> |
899 | 926 | </entry> |
900 | - <entry file="file://$PROJECT_DIR$/backend/views/templates/parser_massage.php"> | |
927 | + <entry file="file://$PROJECT_DIR$/backend/models/Importers.php"> | |
901 | 928 | <provider selected="true" editor-type-id="text-editor"> |
902 | - <state vertical-scroll-proportion="-10.888889" vertical-offset="0" max-vertical-offset="420"> | |
903 | - <caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" /> | |
929 | + <state vertical-scroll-proportion="-7.703704" vertical-offset="1766" max-vertical-offset="3213"> | |
930 | + <caret line="96" column="0" selection-start-line="96" selection-start-column="0" selection-end-line="96" selection-end-column="0" /> | |
931 | + <folding /> | |
904 | 932 | </state> |
905 | 933 | </provider> |
906 | 934 | </entry> |
907 | - <entry file="file://$PROJECT_DIR$/backend/views/crossing-upload/index.php"> | |
935 | + <entry file="file://$PROJECT_DIR$/console/runtime/logs/parser.log"> | |
908 | 936 | <provider selected="true" editor-type-id="text-editor"> |
909 | - <state vertical-scroll-proportion="-13.962963" vertical-offset="169" max-vertical-offset="672"> | |
910 | - <caret line="28" column="0" selection-start-line="28" selection-start-column="0" selection-end-line="28" selection-end-column="0" /> | |
937 | + <state vertical-scroll-proportion="0.79928315" vertical-offset="5946" max-vertical-offset="6783"> | |
938 | + <caret line="288" column="61" selection-start-line="288" selection-start-column="61" selection-end-line="288" selection-end-column="61" /> | |
911 | 939 | </state> |
912 | 940 | </provider> |
941 | + <provider editor-type-id="com.intellij.database.editor.CsvTableFileEditorProvider"> | |
942 | + <state /> | |
943 | + </provider> | |
913 | 944 | </entry> |
914 | - <entry file="file://$PROJECT_DIR$/backend/components/base/BaseController.php"> | |
945 | + <entry file="file://$PROJECT_DIR$/common/components/parsers/Converter.php"> | |
915 | 946 | <provider selected="true" editor-type-id="text-editor"> |
916 | - <state vertical-scroll-proportion="-108.85185" vertical-offset="1534" max-vertical-offset="5187"> | |
917 | - <caret line="224" column="29" selection-start-line="224" selection-start-column="29" selection-end-line="224" selection-end-column="29" /> | |
918 | - <folding /> | |
947 | + <state vertical-scroll-proportion="-2.3333333" vertical-offset="0" max-vertical-offset="3780"> | |
948 | + <caret line="8" column="36" selection-start-line="8" selection-start-column="36" selection-end-line="8" selection-end-column="36" /> | |
919 | 949 | </state> |
920 | 950 | </provider> |
921 | 951 | </entry> |
922 | - <entry file="file://$PROJECT_DIR$/backend/web/css/AdminLTE.css"> | |
952 | + <entry file="file://$PROJECT_DIR$/common/components/parsers/config.php"> | |
923 | 953 | <provider selected="true" editor-type-id="text-editor"> |
924 | - <state vertical-scroll-proportion="0.3633218" vertical-offset="63" max-vertical-offset="89124"> | |
925 | - <caret line="18" column="5" selection-start-line="18" selection-start-column="5" selection-end-line="18" selection-end-column="5" /> | |
954 | + <state vertical-scroll-proportion="-7.7777777" vertical-offset="1239" max-vertical-offset="2079"> | |
955 | + <caret line="69" column="45" selection-start-line="69" selection-start-column="45" selection-end-line="69" selection-end-column="45" /> | |
926 | 956 | </state> |
927 | 957 | </provider> |
928 | 958 | </entry> |
929 | - <entry file="file://$PROJECT_DIR$/common/components/ModelArrayValidator.php"> | |
959 | + <entry file="file://$PROJECT_DIR$/backend/views/parser/results.php"> | |
930 | 960 | <provider selected="true" editor-type-id="text-editor"> |
931 | - <state vertical-scroll-proportion="-59.88889" vertical-offset="840" max-vertical-offset="3066"> | |
932 | - <caret line="122" column="32" selection-start-line="122" selection-start-column="32" selection-end-line="122" selection-end-column="32" /> | |
933 | - <folding /> | |
961 | + <state vertical-scroll-proportion="-2.3333333" vertical-offset="0" max-vertical-offset="777"> | |
962 | + <caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="4" /> | |
934 | 963 | </state> |
935 | 964 | </provider> |
936 | 965 | </entry> |
937 | - <entry file="file://$PROJECT_DIR$/backend/models/DetailsCrosses.php"> | |
966 | + <entry file="file://$PROJECT_DIR$/common/components/parsers/CsvParser.php"> | |
938 | 967 | <provider selected="true" editor-type-id="text-editor"> |
939 | - <state vertical-scroll-proportion="0.0" vertical-offset="610" max-vertical-offset="2058"> | |
940 | - <caret line="38" column="54" selection-start-line="38" selection-start-column="35" selection-end-line="38" selection-end-column="54" /> | |
941 | - <folding /> | |
968 | + <state vertical-scroll-proportion="-4.6666665" vertical-offset="0" max-vertical-offset="1701"> | |
969 | + <caret line="8" column="12" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="12" /> | |
942 | 970 | </state> |
943 | 971 | </provider> |
944 | 972 | </entry> |
945 | - <entry file="file://$PROJECT_DIR$/backend/models/Details.php"> | |
973 | + <entry file="file://$PROJECT_DIR$/common/components/parsers/CustomConverter.php"> | |
946 | 974 | <provider selected="true" editor-type-id="text-editor"> |
947 | - <state vertical-scroll-proportion="1.375" vertical-offset="0" max-vertical-offset="3339"> | |
948 | - <caret line="57" column="115" selection-start-line="57" selection-start-column="93" selection-end-line="57" selection-end-column="115" /> | |
949 | - <folding /> | |
975 | + <state vertical-scroll-proportion="-3.1111112" vertical-offset="0" max-vertical-offset="3066"> | |
976 | + <caret line="4" column="4" selection-start-line="4" selection-start-column="4" selection-end-line="4" selection-end-column="4" /> | |
950 | 977 | </state> |
951 | 978 | </provider> |
952 | 979 | </entry> |
953 | - <entry file="file://$PROJECT_DIR$/backend/views/rg-grup/index.php"> | |
980 | + <entry file="file://$PROJECT_DIR$/common/components/parsers/CustomCsvParser.php"> | |
954 | 981 | <provider selected="true" editor-type-id="text-editor"> |
955 | - <state vertical-scroll-proportion="0.0" vertical-offset="189" max-vertical-offset="714"> | |
956 | - <caret line="12" column="124" selection-start-line="12" selection-start-column="124" selection-end-line="12" selection-end-column="124" /> | |
957 | - <folding /> | |
982 | + <state vertical-scroll-proportion="-3.8888888" vertical-offset="0" max-vertical-offset="420"> | |
983 | + <caret line="10" column="32" selection-start-line="10" selection-start-column="32" selection-end-line="10" selection-end-column="32" /> | |
958 | 984 | </state> |
959 | 985 | </provider> |
960 | 986 | </entry> |
961 | - <entry file="file://$PROJECT_DIR$/common/components/PriceWriter.php"> | |
987 | + <entry file="file://$PROJECT_DIR$/common/components/parsers/XlsxParser.php"> | |
962 | 988 | <provider selected="true" editor-type-id="text-editor"> |
963 | - <state vertical-scroll-proportion="0.0" vertical-offset="1008" max-vertical-offset="5628"> | |
964 | - <caret line="53" column="24" selection-start-line="53" selection-start-column="24" selection-end-line="53" selection-end-column="24" /> | |
965 | - <folding> | |
966 | - <element signature="e#122#150#0#PHP" expanded="false" /> | |
967 | - </folding> | |
989 | + <state vertical-scroll-proportion="-7.3703704" vertical-offset="11" max-vertical-offset="6531"> | |
990 | + <caret line="15" column="12" selection-start-line="15" selection-start-column="12" selection-end-line="15" selection-end-column="12" /> | |
968 | 991 | </state> |
969 | 992 | </provider> |
970 | 993 | </entry> |
971 | - <entry file="file://$PROJECT_DIR$/common/models/MarginsGroups.php"> | |
994 | + <entry file="file://$PROJECT_DIR$/common/config/main.php"> | |
972 | 995 | <provider selected="true" editor-type-id="text-editor"> |
973 | - <state vertical-scroll-proportion="-10.703704" vertical-offset="593" max-vertical-offset="2520"> | |
974 | - <caret line="43" column="18" selection-start-line="43" selection-start-column="18" selection-end-line="43" selection-end-column="18" /> | |
975 | - <folding /> | |
996 | + <state vertical-scroll-proportion="-10.296296" vertical-offset="163" max-vertical-offset="735"> | |
997 | + <caret line="21" column="24" selection-start-line="21" selection-start-column="24" selection-end-line="21" selection-end-column="24" /> | |
976 | 998 | </state> |
977 | 999 | </provider> |
978 | 1000 | </entry> |
979 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/messages/ru/yii.php"> | |
1001 | + <entry file="file://$PROJECT_DIR$/tests/unit/BaseConverterTest.php"> | |
980 | 1002 | <provider selected="true" editor-type-id="text-editor"> |
981 | - <state vertical-scroll-proportion="3.5185184" vertical-offset="1082" max-vertical-offset="3150"> | |
982 | - <caret line="63" column="134" selection-start-line="63" selection-start-column="134" selection-end-line="63" selection-end-column="134" /> | |
983 | - <folding /> | |
1003 | + <state vertical-scroll-proportion="-3.8888888" vertical-offset="0" max-vertical-offset="1533"> | |
1004 | + <caret line="5" column="4" selection-start-line="5" selection-start-column="4" selection-end-line="5" selection-end-column="4" /> | |
984 | 1005 | </state> |
985 | 1006 | </provider> |
986 | 1007 | </entry> |
987 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/validators/FileValidator.php"> | |
1008 | + <entry file="file://$PROJECT_DIR$/storage/.gitignore"> | |
988 | 1009 | <provider selected="true" editor-type-id="text-editor"> |
989 | - <state vertical-scroll-proportion="252.77777" vertical-offset="6825" max-vertical-offset="8862"> | |
1010 | + <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="867"> | |
990 | 1011 | <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> |
1012 | + </state> | |
1013 | + </provider> | |
1014 | + </entry> | |
1015 | + <entry file="file://$PROJECT_DIR$/backend/web/index.php"> | |
1016 | + <provider selected="true" editor-type-id="text-editor"> | |
1017 | + <state vertical-scroll-proportion="0.075" vertical-offset="0" max-vertical-offset="840"> | |
1018 | + <caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" /> | |
991 | 1019 | <folding /> |
992 | 1020 | </state> |
993 | 1021 | </provider> |
994 | 1022 | </entry> |
995 | - <entry file="file://$PROJECT_DIR$/backend/models/UploadFileParsingForm.php"> | |
1023 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/base/UserException.php"> | |
996 | 1024 | <provider selected="true" editor-type-id="text-editor"> |
997 | - <state vertical-scroll-proportion="-14.0" vertical-offset="567" max-vertical-offset="2163"> | |
998 | - <caret line="49" column="37" selection-start-line="49" selection-start-column="37" selection-end-line="49" selection-end-column="37" /> | |
1025 | + <state vertical-scroll-proportion="-9.333333" vertical-offset="0" max-vertical-offset="441"> | |
1026 | + <caret line="16" column="19" selection-start-line="16" selection-start-column="6" selection-end-line="16" selection-end-column="19" /> | |
999 | 1027 | <folding /> |
1000 | 1028 | </state> |
1001 | 1029 | </provider> |
1002 | 1030 | </entry> |
1003 | - <entry file="file://$PROJECT_DIR$/.htaccess"> | |
1031 | + <entry file="file://$PROJECT_DIR$/tests/unit/CrossesParsingTest.php"> | |
1004 | 1032 | <provider selected="true" editor-type-id="text-editor"> |
1005 | - <state vertical-scroll-proportion="0.0" vertical-offset="750" max-vertical-offset="1617"> | |
1006 | - <caret line="70" column="18" selection-start-line="70" selection-start-column="14" selection-end-line="70" selection-end-column="18" /> | |
1007 | - <folding> | |
1008 | - <marker date="1448632293559" expanded="true" signature="-1:-1" placeholder="<IfModule mod_rewrite.c>" /> | |
1009 | - <marker date="1448632293559" expanded="true" signature="-1:-1" placeholder="<IfModule mod_rewrite.c>" /> | |
1010 | - <marker date="1448632293559" expanded="true" signature="-1:-1" placeholder="<IfModule mod_php5.c>" /> | |
1011 | - </folding> | |
1033 | + <state vertical-scroll-proportion="1.0778761" vertical-offset="210" max-vertical-offset="1113"> | |
1034 | + <caret line="39" column="0" selection-start-line="39" selection-start-column="0" selection-end-line="39" selection-end-column="0" /> | |
1012 | 1035 | </state> |
1013 | 1036 | </provider> |
1014 | 1037 | </entry> |
1015 | - <entry file="file://$PROJECT_DIR$/backend/views/parser/index.php"> | |
1038 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/web/ErrorHandler.php"> | |
1016 | 1039 | <provider selected="true" editor-type-id="text-editor"> |
1017 | - <state vertical-scroll-proportion="-14.0" vertical-offset="0" max-vertical-offset="1239"> | |
1018 | - <caret line="21" column="9" selection-start-line="21" selection-start-column="9" selection-end-line="21" selection-end-column="9" /> | |
1040 | + <state vertical-scroll-proportion="0.33208954" vertical-offset="1355" max-vertical-offset="9093"> | |
1041 | + <caret line="81" column="0" selection-start-line="81" selection-start-column="0" selection-end-line="81" selection-end-column="0" /> | |
1019 | 1042 | <folding /> |
1020 | 1043 | </state> |
1021 | 1044 | </provider> |
1022 | 1045 | </entry> |
1023 | - <entry file="file://$PROJECT_DIR$/backend/views/parser/server-files.php"> | |
1046 | + <entry file="file://$PROJECT_DIR$/backend/views/crossing-upload/index.php"> | |
1024 | 1047 | <provider selected="true" editor-type-id="text-editor"> |
1025 | - <state vertical-scroll-proportion="-21.777779" vertical-offset="315" max-vertical-offset="1155"> | |
1026 | - <caret line="49" column="67" selection-start-line="49" selection-start-column="67" selection-end-line="49" selection-end-column="67" /> | |
1027 | - <folding /> | |
1048 | + <state vertical-scroll-proportion="0.8548673" vertical-offset="0" max-vertical-offset="693"> | |
1049 | + <caret line="25" column="10" selection-start-line="25" selection-start-column="10" selection-end-line="25" selection-end-column="10" /> | |
1028 | 1050 | </state> |
1029 | 1051 | </provider> |
1030 | 1052 | </entry> |
1031 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/log/Logger.php"> | |
1053 | + <entry file="file://$PROJECT_DIR$/backend/views/crossing-upload/results.php"> | |
1032 | 1054 | <provider selected="true" editor-type-id="text-editor"> |
1033 | - <state vertical-scroll-proportion="0.33274338" vertical-offset="3361" max-vertical-offset="6636"> | |
1034 | - <caret line="174" column="0" selection-start-line="174" selection-start-column="0" selection-end-line="174" selection-end-column="0" /> | |
1035 | - <folding /> | |
1055 | + <state vertical-scroll-proportion="1.1522124" vertical-offset="0" max-vertical-offset="777"> | |
1056 | + <caret line="31" column="6" selection-start-line="31" selection-start-column="6" selection-end-line="31" selection-end-column="6" /> | |
1036 | 1057 | </state> |
1037 | 1058 | </provider> |
1038 | 1059 | </entry> |
1039 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/web/Session.php"> | |
1060 | + <entry file="file://$PROJECT_DIR$/common/components/exceptions/RgParsingException.php"> | |
1040 | 1061 | <provider selected="true" editor-type-id="text-editor"> |
1041 | - <state vertical-scroll-proportion="0.33274338" vertical-offset="3319" max-vertical-offset="18270"> | |
1042 | - <caret line="172" column="0" selection-start-line="172" selection-start-column="0" selection-end-line="172" selection-end-column="0" /> | |
1062 | + <state vertical-scroll-proportion="0.2" vertical-offset="0" max-vertical-offset="840"> | |
1063 | + <caret line="13" column="24" selection-start-line="13" selection-start-column="24" selection-end-line="13" selection-end-column="24" /> | |
1043 | 1064 | <folding /> |
1044 | 1065 | </state> |
1045 | 1066 | </provider> |
1046 | 1067 | </entry> |
1047 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/base/Controller.php"> | |
1068 | + <entry file="file://$PROJECT_DIR$/common/components/exceptions/CrossParsingException.php"> | |
1048 | 1069 | <provider selected="true" editor-type-id="text-editor"> |
1049 | - <state vertical-scroll-proportion="-7.296296" vertical-offset="2911" max-vertical-offset="10437"> | |
1050 | - <caret line="152" column="0" selection-start-line="152" selection-start-column="0" selection-end-line="152" selection-end-column="0" /> | |
1070 | + <state vertical-scroll-proportion="0.225" vertical-offset="0" max-vertical-offset="840"> | |
1071 | + <caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" /> | |
1051 | 1072 | <folding /> |
1052 | 1073 | </state> |
1053 | 1074 | </provider> |
1054 | 1075 | </entry> |
1055 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/base/ErrorHandler.php"> | |
1076 | + <entry file="file://$PROJECT_DIR$/common/components/exceptions/PriceParsingException.php"> | |
1056 | 1077 | <provider selected="true" editor-type-id="text-editor"> |
1057 | - <state vertical-scroll-proportion="-7.296296" vertical-offset="1525" max-vertical-offset="6867"> | |
1058 | - <caret line="88" column="0" selection-start-line="88" selection-start-column="0" selection-end-line="88" selection-end-column="0" /> | |
1078 | + <state vertical-scroll-proportion="0.25" vertical-offset="0" max-vertical-offset="840"> | |
1079 | + <caret line="15" column="1" selection-start-line="15" selection-start-column="1" selection-end-line="15" selection-end-column="1" /> | |
1059 | 1080 | <folding /> |
1060 | 1081 | </state> |
1061 | 1082 | </provider> |
1062 | 1083 | </entry> |
1063 | - <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/db/BaseActiveRecord.php"> | |
1084 | + <entry file="file://$PROJECT_DIR$/.htaccess"> | |
1064 | 1085 | <provider selected="true" editor-type-id="text-editor"> |
1065 | - <state vertical-scroll-proportion="-6.185185" vertical-offset="4831" max-vertical-offset="33033"> | |
1066 | - <caret line="250" column="0" selection-start-line="250" selection-start-column="0" selection-end-line="250" selection-end-column="0" /> | |
1086 | + <state vertical-scroll-proportion="0.8304498" vertical-offset="750" max-vertical-offset="1617"> | |
1087 | + <caret line="70" column="31" selection-start-line="69" selection-start-column="3" selection-end-line="70" selection-end-column="31" /> | |
1067 | 1088 | <folding /> |
1068 | 1089 | </state> |
1069 | 1090 | </provider> |
1070 | 1091 | </entry> |
1071 | - <entry file="file://$PROJECT_DIR$/console/controllers/ParserController.php"> | |
1092 | + <entry file="file://$PROJECT_DIR$/backend/components/base/BaseController.php"> | |
1072 | 1093 | <provider selected="true" editor-type-id="text-editor"> |
1073 | - <state vertical-scroll-proportion="-6.962963" vertical-offset="967" max-vertical-offset="5397"> | |
1074 | - <caret line="64" column="0" selection-start-line="64" selection-start-column="0" selection-end-line="64" selection-end-column="0" /> | |
1094 | + <state vertical-scroll-proportion="0.875" vertical-offset="3654" max-vertical-offset="4536"> | |
1095 | + <caret line="218" column="0" selection-start-line="218" selection-start-column="0" selection-end-line="218" selection-end-column="0" /> | |
1075 | 1096 | <folding /> |
1076 | 1097 | </state> |
1077 | 1098 | </provider> |
1078 | 1099 | </entry> |
1079 | - <entry file="file://$PROJECT_DIR$/backend/models/Importers.php"> | |
1100 | + <entry file="file://$PROJECT_DIR$/common/components/PriceWriter.php"> | |
1080 | 1101 | <provider selected="true" editor-type-id="text-editor"> |
1081 | - <state vertical-scroll-proportion="-7.703704" vertical-offset="1766" max-vertical-offset="3213"> | |
1082 | - <caret line="96" column="0" selection-start-line="96" selection-start-column="0" selection-end-line="96" selection-end-column="0" /> | |
1102 | + <state vertical-scroll-proportion="-4.6" vertical-offset="4746" max-vertical-offset="5586"> | |
1103 | + <caret line="51" column="13" selection-start-line="51" selection-start-column="13" selection-end-line="51" selection-end-column="13" /> | |
1083 | 1104 | <folding /> |
1084 | 1105 | </state> |
1085 | 1106 | </provider> |
1086 | 1107 | </entry> |
1087 | - <entry file="file://$PROJECT_DIR$/console/runtime/logs/parser.log"> | |
1108 | + <entry file="file://$PROJECT_DIR$/backend/config/main.php"> | |
1088 | 1109 | <provider selected="true" editor-type-id="text-editor"> |
1089 | - <state vertical-scroll-proportion="0.79928315" vertical-offset="5946" max-vertical-offset="6783"> | |
1090 | - <caret line="288" column="61" selection-start-line="288" selection-start-column="61" selection-end-line="288" selection-end-column="61" /> | |
1110 | + <state vertical-scroll-proportion="0.475" vertical-offset="210" max-vertical-offset="1050"> | |
1111 | + <caret line="29" column="44" selection-start-line="29" selection-start-column="44" selection-end-line="29" selection-end-column="44" /> | |
1091 | 1112 | <folding /> |
1092 | 1113 | </state> |
1093 | 1114 | </provider> |
1094 | - <provider editor-type-id="com.intellij.database.editor.CsvTableFileEditorProvider"> | |
1095 | - <state /> | |
1096 | - </provider> | |
1097 | 1115 | </entry> |
1098 | - <entry file="file://$PROJECT_DIR$/common/components/parsers/Converter.php"> | |
1116 | + <entry file="file://$PROJECT_DIR$/backend/components/base/BaseActiveRecord.php"> | |
1099 | 1117 | <provider selected="true" editor-type-id="text-editor"> |
1100 | - <state vertical-scroll-proportion="-2.3333333" vertical-offset="0" max-vertical-offset="3780"> | |
1101 | - <caret line="8" column="36" selection-start-line="8" selection-start-column="36" selection-end-line="8" selection-end-column="36" /> | |
1118 | + <state vertical-scroll-proportion="0.25" vertical-offset="0" max-vertical-offset="840"> | |
1119 | + <caret line="15" column="46" selection-start-line="15" selection-start-column="21" selection-end-line="15" selection-end-column="46" /> | |
1102 | 1120 | <folding /> |
1103 | 1121 | </state> |
1104 | 1122 | </provider> |
1105 | 1123 | </entry> |
1106 | - <entry file="file://$PROJECT_DIR$/common/components/parsers/config.php"> | |
1124 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/base/ErrorHandler.php"> | |
1107 | 1125 | <provider selected="true" editor-type-id="text-editor"> |
1108 | - <state vertical-scroll-proportion="-7.7777777" vertical-offset="1239" max-vertical-offset="2079"> | |
1109 | - <caret line="69" column="45" selection-start-line="69" selection-start-column="45" selection-end-line="69" selection-end-column="45" /> | |
1126 | + <state vertical-scroll-proportion="0.6845238" vertical-offset="2155" max-vertical-offset="6867"> | |
1127 | + <caret line="136" column="20" selection-start-line="136" selection-start-column="20" selection-end-line="136" selection-end-column="20" /> | |
1110 | 1128 | <folding /> |
1111 | 1129 | </state> |
1112 | 1130 | </provider> |
1113 | 1131 | </entry> |
1114 | - <entry file="file://$PROJECT_DIR$/backend/controllers/ParserController.php"> | |
1132 | + <entry file="file://$PROJECT_DIR$/vendor/yiisoft/yii2/base/Controller.php"> | |
1115 | 1133 | <provider selected="true" editor-type-id="text-editor"> |
1116 | - <state vertical-scroll-proportion="-7.037037" vertical-offset="167" max-vertical-offset="6762"> | |
1117 | - <caret line="17" column="4" selection-start-line="17" selection-start-column="4" selection-end-line="17" selection-end-column="4" /> | |
1134 | + <state vertical-scroll-proportion="-7.296296" vertical-offset="7489" max-vertical-offset="10437"> | |
1135 | + <caret line="370" column="0" selection-start-line="370" selection-start-column="0" selection-end-line="370" selection-end-column="0" /> | |
1118 | 1136 | <folding /> |
1119 | 1137 | </state> |
1120 | 1138 | </provider> |
1121 | 1139 | </entry> |
1122 | - <entry file="file://$PROJECT_DIR$/backend/controllers/RgGrupController.php"> | |
1140 | + <entry file="file://$PROJECT_DIR$/backend/views/parser/error.php"> | |
1123 | 1141 | <provider selected="true" editor-type-id="text-editor"> |
1124 | - <state vertical-scroll-proportion="-7.3703704" vertical-offset="137" max-vertical-offset="4704"> | |
1125 | - <caret line="21" column="4" selection-start-line="21" selection-start-column="4" selection-end-line="21" selection-end-column="4" /> | |
1142 | + <state vertical-scroll-proportion="-18.666666" vertical-offset="0" max-vertical-offset="819"> | |
1143 | + <caret line="24" column="10" selection-start-line="24" selection-start-column="10" selection-end-line="24" selection-end-column="10" /> | |
1126 | 1144 | <folding /> |
1127 | 1145 | </state> |
1128 | 1146 | </provider> |
1129 | 1147 | </entry> |
1130 | - <entry file="file://$PROJECT_DIR$/backend/views/crossing-upload/results.php"> | |
1148 | + <entry file="file://$PROJECT_DIR$/common/components/parsers/ConverterInterface.php"> | |
1131 | 1149 | <provider selected="true" editor-type-id="text-editor"> |
1132 | - <state vertical-scroll-proportion="-2.3333333" vertical-offset="0" max-vertical-offset="777"> | |
1133 | - <caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="4" /> | |
1150 | + <state vertical-scroll-proportion="0.2937063" vertical-offset="0" max-vertical-offset="572"> | |
1151 | + <caret line="13" column="51" selection-start-line="13" selection-start-column="51" selection-end-line="13" selection-end-column="51" /> | |
1134 | 1152 | <folding /> |
1135 | 1153 | </state> |
1136 | 1154 | </provider> |
1137 | 1155 | </entry> |
1138 | - <entry file="file://$PROJECT_DIR$/backend/views/parser/results.php"> | |
1156 | + <entry file="file://$PROJECT_DIR$/backend/views/parser/index.php"> | |
1139 | 1157 | <provider selected="true" editor-type-id="text-editor"> |
1140 | - <state vertical-scroll-proportion="-2.3333333" vertical-offset="0" max-vertical-offset="777"> | |
1141 | - <caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="4" /> | |
1158 | + <state vertical-scroll-proportion="-0.22222222" vertical-offset="372" max-vertical-offset="1239"> | |
1159 | + <caret line="21" column="9" selection-start-line="21" selection-start-column="9" selection-end-line="21" selection-end-column="9" /> | |
1142 | 1160 | <folding /> |
1143 | 1161 | </state> |
1144 | 1162 | </provider> |
1145 | 1163 | </entry> |
1146 | - <entry file="file://$PROJECT_DIR$/backend/views/rg-grup/results.php"> | |
1164 | + <entry file="file://$PROJECT_DIR$/backend/views/parser/server-files.php"> | |
1147 | 1165 | <provider selected="true" editor-type-id="text-editor"> |
1148 | - <state vertical-scroll-proportion="-2.3333333" vertical-offset="0" max-vertical-offset="777"> | |
1149 | - <caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="4" /> | |
1166 | + <state vertical-scroll-proportion="-22.777779" vertical-offset="288" max-vertical-offset="1155"> | |
1167 | + <caret line="49" column="108" selection-start-line="49" selection-start-column="8" selection-end-line="49" selection-end-column="108" /> | |
1150 | 1168 | <folding /> |
1151 | 1169 | </state> |
1152 | 1170 | </provider> |
1153 | 1171 | </entry> |
1154 | - <entry file="file://$PROJECT_DIR$/common/components/parsers/CsvParser.php"> | |
1172 | + <entry file="file://$PROJECT_DIR$/backend/views/rg-grup/index.php"> | |
1155 | 1173 | <provider selected="true" editor-type-id="text-editor"> |
1156 | - <state vertical-scroll-proportion="-4.6666665" vertical-offset="0" max-vertical-offset="1701"> | |
1157 | - <caret line="8" column="12" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="12" /> | |
1174 | + <state vertical-scroll-proportion="-18.666666" vertical-offset="0" max-vertical-offset="756"> | |
1175 | + <caret line="27" column="32" selection-start-line="27" selection-start-column="32" selection-end-line="27" selection-end-column="32" /> | |
1158 | 1176 | <folding /> |
1159 | 1177 | </state> |
1160 | 1178 | </provider> |
1161 | 1179 | </entry> |
1162 | - <entry file="file://$PROJECT_DIR$/common/components/parsers/CustomConverter.php"> | |
1180 | + <entry file="file://$PROJECT_DIR$/backend/views/rg-grup/results.php"> | |
1163 | 1181 | <provider selected="true" editor-type-id="text-editor"> |
1164 | - <state vertical-scroll-proportion="-3.1111112" vertical-offset="0" max-vertical-offset="3066"> | |
1165 | - <caret line="4" column="4" selection-start-line="4" selection-start-column="4" selection-end-line="4" selection-end-column="4" /> | |
1166 | - <folding /> | |
1182 | + <state vertical-scroll-proportion="-22.555555" vertical-offset="0" max-vertical-offset="777"> | |
1183 | + <caret line="29" column="23" selection-start-line="29" selection-start-column="23" selection-end-line="29" selection-end-column="23" /> | |
1184 | + <folding> | |
1185 | + <element signature="e#7#28#0#PHP" expanded="true" /> | |
1186 | + </folding> | |
1167 | 1187 | </state> |
1168 | 1188 | </provider> |
1169 | 1189 | </entry> |
1170 | - <entry file="file://$PROJECT_DIR$/common/components/parsers/CustomCsvParser.php"> | |
1190 | + <entry file="file://$PROJECT_DIR$/backend/components/traits/ParserTrait.php"> | |
1171 | 1191 | <provider selected="true" editor-type-id="text-editor"> |
1172 | - <state vertical-scroll-proportion="-3.8888888" vertical-offset="0" max-vertical-offset="420"> | |
1173 | - <caret line="10" column="32" selection-start-line="10" selection-start-column="32" selection-end-line="10" selection-end-column="32" /> | |
1174 | - <folding /> | |
1192 | + <state vertical-scroll-proportion="-42.77778" vertical-offset="126" max-vertical-offset="1848"> | |
1193 | + <caret line="66" column="46" selection-start-line="66" selection-start-column="31" selection-end-line="66" selection-end-column="46" /> | |
1194 | + <folding> | |
1195 | + <element signature="e#129#177#0#PHP" expanded="true" /> | |
1196 | + </folding> | |
1175 | 1197 | </state> |
1176 | 1198 | </provider> |
1177 | 1199 | </entry> |
1178 | - <entry file="file://$PROJECT_DIR$/common/components/parsers/XlsxParser.php"> | |
1200 | + <entry file="file://$PROJECT_DIR$/common/components/CustomArrayHelper.php"> | |
1179 | 1201 | <provider selected="true" editor-type-id="text-editor"> |
1180 | - <state vertical-scroll-proportion="-7.3703704" vertical-offset="11" max-vertical-offset="6531"> | |
1181 | - <caret line="15" column="12" selection-start-line="15" selection-start-column="12" selection-end-line="15" selection-end-column="12" /> | |
1202 | + <state vertical-scroll-proportion="-9.62963" vertical-offset="286" max-vertical-offset="1596"> | |
1203 | + <caret line="31" column="36" selection-start-line="31" selection-start-column="36" selection-end-line="31" selection-end-column="36" /> | |
1182 | 1204 | <folding /> |
1183 | 1205 | </state> |
1184 | 1206 | </provider> |
1185 | 1207 | </entry> |
1186 | - <entry file="file://$PROJECT_DIR$/common/config/main.php"> | |
1208 | + <entry file="file://$PROJECT_DIR$/common/models/MarginsGroups.php"> | |
1187 | 1209 | <provider selected="true" editor-type-id="text-editor"> |
1188 | - <state vertical-scroll-proportion="-10.296296" vertical-offset="163" max-vertical-offset="735"> | |
1189 | - <caret line="21" column="24" selection-start-line="21" selection-start-column="24" selection-end-line="21" selection-end-column="24" /> | |
1210 | + <state vertical-scroll-proportion="15.62963" vertical-offset="758" max-vertical-offset="2520"> | |
1211 | + <caret line="17" column="19" selection-start-line="17" selection-start-column="6" selection-end-line="17" selection-end-column="19" /> | |
1190 | 1212 | <folding /> |
1191 | 1213 | </state> |
1192 | 1214 | </provider> |
1193 | 1215 | </entry> |
1194 | - <entry file="file://$PROJECT_DIR$/tests/unit/BaseConverterTest.php"> | |
1216 | + <entry file="file://$PROJECT_DIR$/common/models/Margins.php"> | |
1195 | 1217 | <provider selected="true" editor-type-id="text-editor"> |
1196 | - <state vertical-scroll-proportion="-3.8888888" vertical-offset="0" max-vertical-offset="1533"> | |
1197 | - <caret line="5" column="4" selection-start-line="5" selection-start-column="4" selection-end-line="5" selection-end-column="4" /> | |
1218 | + <state vertical-scroll-proportion="-10.407408" vertical-offset="832" max-vertical-offset="1512"> | |
1219 | + <caret line="53" column="8" selection-start-line="53" selection-start-column="8" selection-end-line="53" selection-end-column="51" /> | |
1198 | 1220 | <folding /> |
1199 | 1221 | </state> |
1200 | 1222 | </provider> |
1201 | 1223 | </entry> |
1202 | - <entry file="file://$PROJECT_DIR$/backend/controllers/CrossingUploadController.php"> | |
1224 | + <entry file="file://$PROJECT_DIR$/backend/controllers/RgGrupController.php"> | |
1203 | 1225 | <provider selected="true" editor-type-id="text-editor"> |
1204 | - <state vertical-scroll-proportion="-9.37037" vertical-offset="2519" max-vertical-offset="4935"> | |
1205 | - <caret line="137" column="78" selection-start-line="137" selection-start-column="11" selection-end-line="137" selection-end-column="78" /> | |
1226 | + <state vertical-scroll-proportion="-109.59259" vertical-offset="527" max-vertical-offset="4053"> | |
1227 | + <caret line="190" column="5" selection-start-line="190" selection-start-column="5" selection-end-line="190" selection-end-column="5" /> | |
1206 | 1228 | <folding> |
1207 | 1229 | <element signature="e#125#168#0#PHP" expanded="true" /> |
1230 | + <element signature="e#787#1322#0#PHP" expanded="false" /> | |
1208 | 1231 | </folding> |
1209 | 1232 | </state> |
1210 | 1233 | </provider> |
1211 | 1234 | </entry> |
1212 | - <entry file="file://$PROJECT_DIR$/common/components/CustomArrayHelper.php"> | |
1213 | - <provider selected="true" editor-type-id="text-editor"> | |
1214 | - <state vertical-scroll-proportion="-10.777778" vertical-offset="108" max-vertical-offset="1596"> | |
1215 | - <caret line="24" column="48" selection-start-line="24" selection-start-column="48" selection-end-line="24" selection-end-column="48" /> | |
1216 | - <folding /> | |
1217 | - </state> | |
1218 | - </provider> | |
1219 | - </entry> | |
1220 | - <entry file="file://$PROJECT_DIR$/tests/unit/CrossesParsingTest.php"> | |
1235 | + <entry file="file://$PROJECT_DIR$/backend/controllers/CrossingUploadController.php"> | |
1221 | 1236 | <provider selected="true" editor-type-id="text-editor"> |
1222 | - <state vertical-scroll-proportion="-20.222221" vertical-offset="273" max-vertical-offset="1113"> | |
1223 | - <caret line="39" column="0" selection-start-line="39" selection-start-column="0" selection-end-line="39" selection-end-column="0" /> | |
1237 | + <state vertical-scroll-proportion="-37.333332" vertical-offset="1134" max-vertical-offset="4746"> | |
1238 | + <caret line="102" column="0" selection-start-line="102" selection-start-column="0" selection-end-line="102" selection-end-column="0" /> | |
1224 | 1239 | <folding> |
1225 | - <element signature="e#28#68#0#PHP" expanded="true" /> | |
1240 | + <element signature="e#6#91#0#PHP" expanded="true" /> | |
1241 | + <element signature="e#125#168#0#PHP" expanded="true" /> | |
1226 | 1242 | </folding> |
1227 | 1243 | </state> |
1228 | 1244 | </provider> |
1229 | 1245 | </entry> |
1230 | - <entry file="file://$PROJECT_DIR$/storage/.gitignore"> | |
1246 | + <entry file="file://$PROJECT_DIR$/backend/controllers/ParserController.php"> | |
1231 | 1247 | <provider selected="true" editor-type-id="text-editor"> |
1232 | - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="867"> | |
1233 | - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | |
1234 | - <folding /> | |
1248 | + <state vertical-scroll-proportion="0.021428572" vertical-offset="1494" max-vertical-offset="6468"> | |
1249 | + <caret line="72" column="54" selection-start-line="72" selection-start-column="54" selection-end-line="72" selection-end-column="54" /> | |
1250 | + <folding> | |
1251 | + <element signature="e#38#65#0#PHP" expanded="true" /> | |
1252 | + </folding> | |
1235 | 1253 | </state> |
1236 | 1254 | </provider> |
1237 | 1255 | </entry> | ... | ... |
backend/components/base/BaseController.php
... | ... | @@ -216,36 +216,5 @@ class BaseController extends Controller { |
216 | 216 | } |
217 | 217 | } |
218 | 218 | |
219 | - /** | |
220 | - * @param $mode - int: 0 - fetch from cache, - 1 - put in cache, <2 - delete from cache | |
221 | - * @param $data - array | |
222 | - * @param $configuration - array | |
223 | - * @throws \ErrorException | |
224 | - */ | |
225 | - protected function parserCacheHandler( $mode, &$data = [], &$configuration = [] ){ | |
226 | - switch ( $mode ) { | |
227 | - case 0: | |
228 | - if (Yii::$app->getCache()->get('parser_data') && Yii::$app->getCache()->get('parser_configuration')) { | |
229 | - $data = json_decode(Yii::$app->getCache()->get('parser_data'), true); | |
230 | - $configuration = unserialize(Yii::$app->getCache()->get('parser_configuration')); | |
231 | - } else { | |
232 | - throw new \ErrorException('Ошибка кеша'); | |
233 | - } | |
234 | - break; | |
235 | - | |
236 | - case 1: | |
237 | - Yii::$app->getCache()->set('parser_data', json_encode($data), 1800); | |
238 | - // сохраняем в кеш модель - в ней настройки для дальнейшей обработки данных | |
239 | - Yii::$app->getCache()->set('parser_configuration', serialize($configuration), 1800); | |
240 | - break; | |
241 | - | |
242 | - default: | |
243 | - if( Yii::$app->getCache()->exists('parser_data') ) | |
244 | - Yii::$app->getCache()->delete('parser_data'); | |
245 | - | |
246 | - if( Yii::$app->getCache()->exists('parser_configuration') ) | |
247 | - Yii::$app->getCache()->delete('parser_configuration'); | |
248 | - } | |
249 | 219 | |
250 | - } | |
251 | 220 | } |
252 | 221 | \ No newline at end of file | ... | ... |
1 | +<?php | |
2 | +/** | |
3 | + * Created by PhpStorm. | |
4 | + * User: Tsurkanov | |
5 | + * Date: 01.12.2015 | |
6 | + * Time: 9:42 | |
7 | + */ | |
8 | +namespace backend\components\traits; | |
9 | + | |
10 | +use common\components\parsers\DynamicFormHelper; | |
11 | +use Yii; | |
12 | +use yii\base\ErrorException; | |
13 | +use yii\data\ArrayDataProvider; | |
14 | + | |
15 | +trait ParserTrait | |
16 | +{ | |
17 | + | |
18 | + /** | |
19 | + * @param $mode - int: 0 - fetch from cache, - 1 - put in cache, <2 - delete from cache | |
20 | + * @param $data - array | |
21 | + * @param $configuration - array | |
22 | + * @throws \ErrorException | |
23 | + */ | |
24 | + public function parserCacheHandler($mode, &$data = [], &$configuration = []) | |
25 | + { | |
26 | + switch ($mode) { | |
27 | + case 0: | |
28 | + if (Yii::$app->getCache()->get('parser_data') && Yii::$app->getCache()->get('parser_configuration')) { | |
29 | + $data = json_decode(Yii::$app->getCache()->get('parser_data'), true); | |
30 | + $configuration = unserialize(Yii::$app->getCache()->get('parser_configuration')); | |
31 | + } else { | |
32 | + throw new \ErrorException('Ошибка кеша'); | |
33 | + } | |
34 | + break; | |
35 | + | |
36 | + case 1: | |
37 | + Yii::$app->getCache()->set('parser_data', json_encode($data), 1800); | |
38 | + // сохраняем в кеш модель - в ней настройки для дальнейшей обработки данных | |
39 | + Yii::$app->getCache()->set('parser_configuration', serialize($configuration), 1800); | |
40 | + break; | |
41 | + | |
42 | + default: | |
43 | + if (Yii::$app->getCache()->exists('parser_data')) | |
44 | + Yii::$app->getCache()->delete('parser_data'); | |
45 | + | |
46 | + if (Yii::$app->getCache()->exists('parser_configuration')) | |
47 | + Yii::$app->getCache()->delete('parser_configuration'); | |
48 | + } | |
49 | + | |
50 | + } | |
51 | + | |
52 | + public function renderResultView($data) | |
53 | + { | |
54 | + $provider = new ArrayDataProvider([ | |
55 | + 'allModels' => $data, | |
56 | + 'pagination' => [ | |
57 | + 'pageSize' => 10, | |
58 | + ], | |
59 | + ]); | |
60 | + | |
61 | + // создадим модель на столько реквизитов сколько колонок в отпарсенном файле | |
62 | + $last_index = end(array_flip($data[0])); | |
63 | + $header_counts = $last_index + 1; | |
64 | + $header_model = DynamicFormHelper::CreateDynamicModel($header_counts); | |
65 | + | |
66 | + // соберем массив данных из которых будет пользователь выбирать значения в конструкторе (выпадающий список) | |
67 | + $basicColumns = $this->getBasicColumns(); | |
68 | + | |
69 | + return $this->render('results', | |
70 | + ['model' => $data, | |
71 | + 'header_model' => $header_model, | |
72 | + // список колонок для выбора | |
73 | + 'basic_column' => $basicColumns, | |
74 | + 'dataProvider' => $provider]); | |
75 | + | |
76 | + } | |
77 | + | |
78 | + public function throwStringErrorException( $model , $exception, $errors_str = '' ) | |
79 | + { | |
80 | + foreach ( $model->getErrors() as $error ) | |
81 | + { | |
82 | + $errors_str .= ' ' . implode( array_values( $error ) ); | |
83 | + } | |
84 | + | |
85 | + throw new $exception( $errors_str ); | |
86 | + } | |
87 | + | |
88 | + } | |
0 | 89 | \ No newline at end of file | ... | ... |
backend/controllers/CrossingUploadController.php
... | ... | @@ -10,6 +10,8 @@ namespace backend\controllers; |
10 | 10 | |
11 | 11 | use backend\components\base\BaseController; |
12 | 12 | use common\components\CustomArrayHelper; |
13 | +use common\components\exceptions\CrossParsingException; | |
14 | +use yii\base\Exception; | |
13 | 15 | use yii\data\ArrayDataProvider; |
14 | 16 | use yii\filters\VerbFilter; |
15 | 17 | use yii\filters\AccessControl; |
... | ... | @@ -19,12 +21,13 @@ use common\components\parsers\DynamicFormHelper; |
19 | 21 | use yii\web\UploadedFile; |
20 | 22 | use common\components\ModelArrayValidator; |
21 | 23 | use \Yii; |
24 | +use backend\components\traits\ParserTrait; | |
22 | 25 | |
23 | 26 | class CrossingUploadController extends BaseController |
24 | 27 | { |
28 | + use ParserTrait; | |
25 | 29 | public $layout = "/column"; |
26 | 30 | |
27 | - | |
28 | 31 | /** |
29 | 32 | * @inheritdoc |
30 | 33 | */ |
... | ... | @@ -35,7 +38,7 @@ class CrossingUploadController extends BaseController |
35 | 38 | 'class' => AccessControl::className(), |
36 | 39 | 'rules' => [ |
37 | 40 | [ |
38 | - 'actions' => ['result', 'index', 'write'], | |
41 | + 'actions' => ['result', 'index', 'write', 'error'], | |
39 | 42 | 'allow' => true, |
40 | 43 | 'roles' => ['@'], |
41 | 44 | ], |
... | ... | @@ -50,18 +53,6 @@ class CrossingUploadController extends BaseController |
50 | 53 | ]; |
51 | 54 | } |
52 | 55 | |
53 | - /** | |
54 | - * @inheritdoc | |
55 | - */ | |
56 | - public function actions() | |
57 | - { | |
58 | - return [ | |
59 | - 'error' => [ | |
60 | - 'class' => 'yii\web\ErrorAction', | |
61 | - ], | |
62 | - ]; | |
63 | - } | |
64 | - | |
65 | 56 | |
66 | 57 | public function actionIndex() |
67 | 58 | { |
... | ... | @@ -69,63 +60,56 @@ class CrossingUploadController extends BaseController |
69 | 60 | return $this->render('index', ['model' => $model]); |
70 | 61 | } |
71 | 62 | |
63 | + | |
72 | 64 | public function actionResult() |
73 | 65 | { |
74 | 66 | $model = new UploadFileCrossingForm(); |
75 | 67 | $data = []; |
76 | - if ($model->load(Yii::$app->request->post())) { | |
68 | + if ( $model->load(Yii::$app->request->post()) ) { | |
77 | 69 | $model->file = UploadedFile::getInstance($model, 'file'); |
78 | - if ($model->validate()) { | |
70 | + | |
71 | + if ( $model->validate() ) { | |
79 | 72 | $file_name = $model->file->name; |
80 | 73 | $model->file_path = Yii::getAlias('@temp_upload') . '/' . $file_name; |
81 | 74 | $model->file->saveAs($model->file_path); |
82 | 75 | //запускаем парсинг |
83 | 76 | $data = $model->readFile(); |
84 | 77 | // сохраняем в кеш отпарсенные даные |
85 | - $this->parserCacheHandler( 1, $data, $model ); | |
86 | - } else if (Yii::$app->getCache()->get('parser_data')) { | |
87 | - $data = json_decode(Yii::$app->getCache()->get('parser_data'), true); | |
78 | + $this->parserCacheHandler( 1, $data, $model ); | |
79 | + } else { | |
80 | + // не прошла валидация формы загрузки файлов | |
81 | + $errors_str = "Ошибка загрузки файла. "; | |
82 | + $this->throwStringErrorException( $model , new CrossParsingException( $errors_str ) ); | |
88 | 83 | } |
89 | - $provider = new ArrayDataProvider([ | |
90 | - 'allModels' => $data, | |
91 | - 'pagination' => [ | |
92 | - 'pageSize' => 10, | |
93 | - ], | |
94 | - ]); | |
95 | - | |
96 | - // создадим модель на столько реквизитов сколько колонок в отпарсенном файле | |
97 | - $last_index = end(array_flip($data[0])); | |
98 | - $header_counts = $last_index + 1; | |
99 | - $header_model = DynamicFormHelper::CreateDynamicModel($header_counts); | |
100 | - | |
101 | - // соберем массив данных из которых будет пользователь выбирать значения в конструкторе (выпадающий список) | |
102 | - $basicColumns = $this->getBasicColumns(); | |
103 | - | |
104 | - return $this->render('results', | |
105 | - ['model' => $data, | |
106 | - 'header_model' => $header_model, | |
107 | - // список колонок для выбора | |
108 | - 'basic_column' => $basicColumns, | |
109 | - 'dataProvider' => $provider]); | |
84 | + | |
85 | + } else if ( Yii::$app->getCache()->get('parser_data') ) { | |
86 | + | |
87 | + $data = json_decode( Yii::$app->getCache()->get('parser_data'), true ); | |
88 | + | |
110 | 89 | } |
90 | + // сборка динамической модели и её рендеринг | |
91 | + return $this->renderResultView( $data ); | |
111 | 92 | } |
112 | 93 | |
113 | 94 | public function actionWrite() |
114 | 95 | { |
96 | + set_time_limit(600); | |
115 | 97 | //получим колонки которые выбрал пользователь |
116 | 98 | $arr_attributes = Yii::$app->request->post()['DynamicModel']; |
117 | 99 | //соберем модель по полученным данным |
118 | 100 | $model = DynamicFormHelper::CreateDynamicModel($arr_attributes); |
119 | 101 | $crosses_model = new DetailsCrosses(); |
102 | + $arr_keys = array_keys($this->getBasicColumns()); | |
103 | + | |
120 | 104 | //добавим правила валидации (колонки должны быть те что в модели) |
121 | 105 | foreach ($arr_attributes as $key => $value) { |
122 | - $model->addRule($key, 'in', [ 'range' => array_keys( $this->getBasicColumns() ) ]); | |
106 | + $model->addRule($key, 'in', ['range' => $arr_keys]); | |
123 | 107 | } |
124 | 108 | // установим режим проверки обязательных полей |
125 | 109 | $crosses_model->setScenario('form_upload_validation'); |
126 | - $model_validator = new ModelArrayValidator( $crosses_model ); | |
110 | + $model_validator = new ModelArrayValidator($crosses_model); | |
127 | 111 | // провалидируем выбранные колонки |
128 | - if ( $model->validate() && $model_validator->validateRow( array_flip( $arr_attributes ) ) ) { | |
112 | + if ( $model->validate() && $model_validator->validateRow( array_flip( $arr_attributes ) ) ) { | |
129 | 113 | |
130 | 114 | // валидация успешна у нас есть соответсвие колонок, преобразуем в массив данное соответсвие для дальнейшей работы |
131 | 115 | $arr = $model->toArray(); |
... | ... | @@ -135,7 +119,7 @@ class CrossingUploadController extends BaseController |
135 | 119 | |
136 | 120 | // соотнесем отпарсенные данные с соответствием полученным от пользователя |
137 | 121 | // для этого преобразуем массив отпарсенных данных - назначим ключи согласно соответствию |
138 | - $data = CustomArrayHelper::createAssocArray($data, $arr, 'attr_'); | |
122 | + $data = CustomArrayHelper::createAssocArray( $data, $arr, 'attr_' ); | |
139 | 123 | |
140 | 124 | // запустим конвертер над над данными |
141 | 125 | $data = $this->convertDataByConfiguration( $data, $configuration ); |
... | ... | @@ -144,31 +128,33 @@ class CrossingUploadController extends BaseController |
144 | 128 | $crosses_model->setScenario('default'); |
145 | 129 | $data = $model_validator->validate( $data ); |
146 | 130 | $msg = $model_validator->getMassage(); |
147 | - $type_msg = $model_validator->hasError() ? 'warning' : 'success'; | |
131 | + $type_msg = $model_validator->hasError() ? 'warning' : 'success'; | |
148 | 132 | $model_validator->close(); |
149 | 133 | |
150 | - $data = $this->reverseCrosses( $data ); | |
134 | + $data = $this->reverseCrosses($data); | |
135 | + | |
136 | + try { | |
137 | + if ($crosses_model->ManualInsertWithIgnore( $data )) { | |
151 | 138 | |
152 | - if ( $crosses_model->ManualInsertWithIgnore( $data ) ) { | |
139 | + // очистим кеш | |
140 | + $this->parserCacheHandler(2); | |
153 | 141 | |
154 | - // очистим кеш | |
155 | - $this->parserCacheHandler( 2 ); | |
142 | + if (file_exists($configuration['file_path'])) | |
143 | + unlink($configuration['file_path']); | |
156 | 144 | |
157 | - if ( file_exists($configuration['file_path']) ) | |
158 | - unlink( $configuration['file_path'] ); | |
145 | + Yii::$app->session->setFlash($type_msg, $msg); | |
146 | + return $this->render('index', ['model' => $configuration]); | |
159 | 147 | |
160 | - Yii::$app->session->setFlash( $type_msg, $msg ); | |
161 | - return $this->render('index', ['model' => $configuration]); | |
148 | + } | |
149 | + } catch (Exception $e) { | |
162 | 150 | |
151 | + new CrossParsingException( $e->getMessage() ); | |
163 | 152 | } |
164 | 153 | |
165 | 154 | } else { |
166 | 155 | // не прошла валидация формы загрузки файлов |
167 | 156 | $errors_str = "Ошибка валидации формы загрузки файлов. "; |
168 | - foreach ($crosses_model->getErrors() as $error) { | |
169 | - $errors_str .= implode(array_values($error)); | |
170 | - } | |
171 | - throw new \ErrorException($errors_str); | |
157 | + $this->throwStringErrorException( $crosses_model , 'common\components\exceptions\CrossParsingException', $errors_str ); | |
172 | 158 | } |
173 | 159 | } |
174 | 160 | |
... | ... | @@ -183,7 +169,8 @@ class CrossingUploadController extends BaseController |
183 | 169 | |
184 | 170 | } |
185 | 171 | |
186 | - protected function convertDataByConfiguration( $data, $configuration ){ | |
172 | + protected function convertDataByConfiguration($data, $configuration) | |
173 | + { | |
187 | 174 | |
188 | 175 | // доп. опции для парсера - удаление префикса в артикулах |
189 | 176 | $options['mode'] = 'crosses'; |
... | ... | @@ -195,38 +182,38 @@ class CrossingUploadController extends BaseController |
195 | 182 | $fields[] = 'CROSS_ARTICLE'; |
196 | 183 | } |
197 | 184 | if ($fields) { |
198 | - $options ['converter_conf']['configuration'] = ["article" => $fields, | |
185 | + $options ['converter_conf']['configuration'] = ["article" => $fields, | |
199 | 186 | "string" => ['ARTICLE', 'CROSS_ARTICLE'],]; |
200 | 187 | } else { |
201 | - $options ['converter_conf']['configuration'] = ["string" => ['ARTICLE', 'CROSS_ARTICLE'],]; | |
188 | + $options ['converter_conf']['configuration'] = ["string" => ['ARTICLE', 'CROSS_ARTICLE'],]; | |
202 | 189 | } |
203 | 190 | |
204 | 191 | // получим базовую конфигурацию и объеденим её с той что образовалась после выбора пользователем настроек |
205 | - $basic_options = Yii::$app->multiparser->getConfiguration( 'csv', 'crosses' ); | |
206 | - $options = array_merge_recursive( $options, $basic_options ); | |
192 | + $basic_options = Yii::$app->multiparser->getConfiguration('csv', 'crosses'); | |
193 | + $options = array_merge_recursive($options, $basic_options); | |
207 | 194 | |
208 | - foreach ( $data as &$row ) { | |
209 | - $row = Yii::$app->converter->convertByConfiguration( $row, $options['converter_conf'] ); | |
195 | + foreach ($data as &$row) { | |
196 | + $row = Yii::$app->converter->convertByConfiguration($row, $options['converter_conf']); | |
210 | 197 | } |
211 | 198 | |
212 | 199 | return $data; |
213 | 200 | |
214 | 201 | } |
215 | 202 | |
216 | - protected function reverseCrosses ( $data ) | |
203 | + protected function reverseCrosses($data) | |
217 | 204 | { |
218 | 205 | // для доп массива обратных строк |
219 | - $i = count( $data ) - 1; | |
206 | + $i = count($data) - 1; | |
220 | 207 | $reverse_data = []; |
221 | - foreach ( $data as &$row ) { | |
208 | + foreach ($data as &$row) { | |
222 | 209 | // нужно добавить обратную строку по кроссам |
223 | - $reverse_data[ $i ]['ARTICLE'] = $row['CROSS_ARTICLE']; | |
224 | - $reverse_data[ $i ]['CROSS_ARTICLE'] = $row['ARTICLE']; | |
225 | - $reverse_data[ $i ]['BRAND'] = $row['CROSS_BRAND']; | |
226 | - $reverse_data[ $i ]['CROSS_BRAND'] = $row['BRAND']; | |
210 | + $reverse_data[$i]['ARTICLE'] = $row['CROSS_ARTICLE']; | |
211 | + $reverse_data[$i]['CROSS_ARTICLE'] = $row['ARTICLE']; | |
212 | + $reverse_data[$i]['BRAND'] = $row['CROSS_BRAND']; | |
213 | + $reverse_data[$i]['CROSS_BRAND'] = $row['BRAND']; | |
227 | 214 | $i++; |
228 | 215 | } |
229 | - $data = array_merge( $data, $reverse_data ); | |
216 | + $data = array_merge($data, $reverse_data); | |
230 | 217 | |
231 | 218 | return $data; |
232 | 219 | } | ... | ... |
backend/controllers/ParserController.php
... | ... | @@ -2,9 +2,9 @@ |
2 | 2 | namespace backend\controllers; |
3 | 3 | |
4 | 4 | use backend\models\Details; |
5 | -use common\components\archives\ArchiveCreator; | |
6 | -use common\components\mail\ImapMailReader; | |
7 | -use common\components\mail\MailAttachmentsSaver; | |
5 | +use common\components\exceptions\CrossParsingException; | |
6 | +use common\components\exceptions\PriceParsingException; | |
7 | +use common\components\exceptions\RgParsingException; | |
8 | 8 | use common\components\ModelArrayValidator; |
9 | 9 | use common\components\parsers\MailParser; |
10 | 10 | use Yii; |
... | ... | @@ -20,14 +20,15 @@ use backend\models\ImportersFiles; |
20 | 20 | use backend\models\Importers; |
21 | 21 | use yii\base\ErrorException; |
22 | 22 | use common\components\PriceWriter; |
23 | -use common\components\CustomVarDamp; | |
24 | 23 | use common\components\CustomArrayHelper; |
24 | +use backend\components\traits\ParserTrait; | |
25 | 25 | |
26 | 26 | /** |
27 | 27 | * Parser controller |
28 | 28 | */ |
29 | 29 | class ParserController extends BaseController |
30 | 30 | { |
31 | + use ParserTrait; | |
31 | 32 | public $layout = "/column"; |
32 | 33 | |
33 | 34 | /** |
... | ... | @@ -55,7 +56,6 @@ class ParserController extends BaseController |
55 | 56 | } |
56 | 57 | |
57 | 58 | |
58 | - | |
59 | 59 | public function actionIndex($mode = 0) |
60 | 60 | { |
61 | 61 | $model = new UploadFileParsingForm(); |
... | ... | @@ -67,8 +67,19 @@ class ParserController extends BaseController |
67 | 67 | public function actionError() |
68 | 68 | { |
69 | 69 | $exception = Yii::$app->errorHandler->exception; |
70 | - if ($exception !== null) { | |
71 | - return $this->render('error', ['message' => $exception->getMessage()]); | |
70 | + $action_name = ''; | |
71 | + | |
72 | + if ( $exception instanceof CrossParsingException ) { | |
73 | + $action_name = ['crossing-upload/result']; | |
74 | + }elseif ( $exception instanceof PriceParsingException ) { | |
75 | + $action_name = ['results']; | |
76 | + }elseif ( $exception instanceof RgParsingException ) { | |
77 | + $action_name = ['rg-grup/results']; | |
78 | + } | |
79 | + | |
80 | + if ( $exception !== null ) { | |
81 | + $msg = $exception->getMessage(); | |
82 | + return $this->render( 'error', [ 'message' => $msg, 'action_name' => $action_name ] ); | |
72 | 83 | } |
73 | 84 | } |
74 | 85 | |
... | ... | @@ -89,44 +100,19 @@ class ParserController extends BaseController |
89 | 100 | $model->success = true; |
90 | 101 | return $this->render('index', ['model' => $model]); |
91 | 102 | } |
92 | - | |
93 | 103 | // === ручная загрузка =========== |
94 | 104 | //запускаем парсинг |
95 | 105 | $data = $this->parseDataFromFile( $files_model, $model ); |
96 | 106 | |
97 | 107 | } else { |
98 | 108 | // не прошла валидация форма загрузки файлов |
99 | - $errors_str = ''; | |
100 | - foreach ($model->getErrors() as $error) { | |
101 | - $errors_str .= implode( array_values($error) ); | |
102 | - } | |
103 | - throw new ErrorException( $errors_str ); | |
109 | + $this->throwStringErrorException( $model , 'common\components\exceptions\PriceParsingException' ); | |
104 | 110 | } |
105 | 111 | // листаем пагинатором, или повторно вызываем - считываем из кеша отпрасенные данные |
106 | 112 | } else if ( Yii::$app->getCache()->get('parser_data') ) { |
107 | - | |
108 | 113 | $data = json_decode(Yii::$app->getCache()->get('parser_data'), true); |
109 | - | |
110 | 114 | } |
111 | - | |
112 | - $provider = new ArrayDataProvider([ | |
113 | - 'allModels' => $data, | |
114 | - 'pagination' => [ | |
115 | - 'pageSize' => 10, | |
116 | - ], | |
117 | - ]); | |
118 | - | |
119 | - $last_index = end( array_flip( $data[0] ) ); | |
120 | - $header_counts = $last_index + 1; | |
121 | - //формируем заголовок для пользователя, где он сможет выбрать соответсвие полей (выпадающий список) | |
122 | - $header_model = DynamicFormHelper::CreateDynamicModel( $header_counts ); | |
123 | - | |
124 | - return $this->render('results', | |
125 | - ['model' => $data, | |
126 | - 'header_model' => $header_model, | |
127 | - // список колонок для выбора | |
128 | - 'basic_column' => Yii::$app->multiparser->getConfiguration('csv', 'basic_column'), | |
129 | - 'dataProvider' => $provider]); | |
115 | + return $this->renderResultView( $data ); | |
130 | 116 | } |
131 | 117 | |
132 | 118 | public function actionWrite() |
... | ... | @@ -170,19 +156,14 @@ class ParserController extends BaseController |
170 | 156 | unlink($configuration['file_path']); |
171 | 157 | $validated_type_msg = $writer->hasValidationError() ? 'warning' : 'success'; |
172 | 158 | Yii::$app->session->setFlash( $validated_type_msg, $writer->getValidatedMsg() ); |
173 | - return $this->render('index', ['model' => $configuration]); | |
159 | + return $this->render('index', ['model' => $configuration]); | |
174 | 160 | |
175 | 161 | }; |
176 | 162 | |
177 | 163 | } else { |
178 | 164 | // не прошла валидация формы загрузки файлов |
179 | 165 | $errors_str = "Ошибка валидации формы загрузки файлов. "; |
180 | - | |
181 | - foreach ( $details_model->getErrors() as $error ) { | |
182 | - $errors_str .= implode(array_values($error)); | |
183 | - } | |
184 | - | |
185 | - throw new \ErrorException($errors_str); | |
166 | + $this->throwStringErrorException( $details_model , 'common\components\exceptions\PriceParsingException', $errors_str ); | |
186 | 167 | } |
187 | 168 | |
188 | 169 | } |
... | ... | @@ -313,4 +294,9 @@ class ParserController extends BaseController |
313 | 294 | return $data; |
314 | 295 | } |
315 | 296 | |
297 | + protected function getBasicColumns() | |
298 | + { | |
299 | + return Yii::$app->multiparser->getConfiguration('csv', 'basic_column'); | |
300 | + | |
301 | + } | |
316 | 302 | } | ... | ... |
backend/controllers/RgGrupController.php
... | ... | @@ -10,7 +10,7 @@ namespace backend\controllers; |
10 | 10 | |
11 | 11 | use backend\components\base\BaseController; |
12 | 12 | use backend\models\UploadFileRgForm; |
13 | -use common\components\CustomVarDamp; | |
13 | +use common\components\exceptions\RgParsingException; | |
14 | 14 | use common\components\ModelArrayValidator; |
15 | 15 | use common\components\parsers\MailAttachmentsSaver; |
16 | 16 | use common\models\Margins; |
... | ... | @@ -21,9 +21,11 @@ use yii\web\UploadedFile; |
21 | 21 | use yii\data\ArrayDataProvider; |
22 | 22 | use common\components\parsers\DynamicFormHelper; |
23 | 23 | use common\components\CustomArrayHelper; |
24 | +use backend\components\traits\ParserTrait; | |
24 | 25 | |
25 | 26 | class RgGrupController extends BaseController |
26 | 27 | { |
28 | + use ParserTrait; | |
27 | 29 | public $layout = "/column"; |
28 | 30 | |
29 | 31 | /** |
... | ... | @@ -66,25 +68,15 @@ class RgGrupController extends BaseController |
66 | 68 | $model->file = UploadedFile::getInstance($model, 'file'); |
67 | 69 | // первый проход - валидируем, сохраняем файл, ложим в кеш отпарсенные данные и параметры модели (потом при записи в базу данных они пригодятся) |
68 | 70 | if ($model->validate()) { |
69 | - | |
70 | 71 | $model->file_path = Yii::getAlias('@manual_upload') . '/' . $model->file->name; |
71 | 72 | $model->file->saveAs($model->file_path); |
72 | - | |
73 | 73 | //запускаем парсинг |
74 | 74 | $data = $model->readFile(); |
75 | 75 | // сохраняем в кеш отпарсенные даные |
76 | - Yii::$app->getCache()->set('parser_data', json_encode($data), 1800); | |
77 | - // сохраняем в кеш модель - в ней настройки для дальнейшей обработки данных | |
78 | - Yii::$app->getCache()->set('parser_configuration', serialize($model), 1800); | |
79 | - | |
80 | - | |
76 | + $this->parserCacheHandler(1, $data, $model); | |
81 | 77 | } else { |
82 | 78 | // не прошла валидация форма загрузки файлов |
83 | - $errors_str = ''; | |
84 | - foreach ($model->getErrors() as $error) { | |
85 | - $errors_str .= implode(array_values($error)); | |
86 | - } | |
87 | - throw new \ErrorException($errors_str); | |
79 | + $this->throwStringErrorException($model, 'common\components\exceptions\RgParsingException'); | |
88 | 80 | } |
89 | 81 | // листаем пагинатором, или повторно вызываем - считываем из кеша отпрасенные данные |
90 | 82 | } else if (Yii::$app->getCache()->get('parser_data')) { |
... | ... | @@ -92,26 +84,8 @@ class RgGrupController extends BaseController |
92 | 84 | $data = json_decode(Yii::$app->getCache()->get('parser_data'), true); |
93 | 85 | |
94 | 86 | } |
95 | - $provider = new ArrayDataProvider([ | |
96 | - 'allModels' => $data, | |
97 | - 'pagination' => [ | |
98 | - 'pageSize' => 10, | |
99 | - ], | |
100 | - ]); | |
101 | - // создадим модель на столько реквизитов сколько колонок в отпарсенном файле | |
102 | - $last_index = end(array_flip($data[0])); | |
103 | - $header_counts = $last_index + 1; | |
104 | - $header_model = DynamicFormHelper::CreateDynamicModel($header_counts); | |
105 | - | |
106 | - // соберем массив данных из которых будет пользователь выбирать значения в конструкторе (выпадающий список) | |
107 | - $header_array = Margins::getHeader(); | |
108 | - | |
109 | - return $this->render('results', | |
110 | - ['model' => $data, | |
111 | - 'header_model' => $header_model, | |
112 | - // список колонок для выбора | |
113 | - 'basic_column' => $header_array, | |
114 | - 'dataProvider' => $provider]); | |
87 | + // сборка динамической модели и её рендеринг | |
88 | + return $this->renderResultView($data); | |
115 | 89 | } |
116 | 90 | |
117 | 91 | public function actionWrite() |
... | ... | @@ -127,20 +101,15 @@ class RgGrupController extends BaseController |
127 | 101 | } |
128 | 102 | // установим режим проверки обязательных полей |
129 | 103 | $margin_model->setScenario('form_upload_validation'); |
130 | - $model_validator = new ModelArrayValidator( $margin_model ); | |
104 | + $model_validator = new ModelArrayValidator($margin_model); | |
131 | 105 | // провалидируем выбранные колонки |
132 | - if ( $model->validate() && $model_validator->validateRow( array_flip( $arr_attributes ) )) { | |
106 | + if ($model->validate() && $model_validator->validateRow($this->getAttributesForValidate($arr_attributes))) { | |
133 | 107 | |
134 | 108 | // валидация успешна у нас есть соответсвие колонок, преобразуем в массив данное соответсвие для дальнейшей работы |
135 | 109 | $arr = $model->toArray(); |
136 | 110 | |
137 | 111 | // получим данные из кеша |
138 | - if (Yii::$app->getCache()->get('parser_data') && Yii::$app->getCache()->get('parser_configuration')) { | |
139 | - $data = json_decode(Yii::$app->getCache()->get('parser_data'), true); | |
140 | - $configuration = unserialize(Yii::$app->getCache()->get('parser_configuration')); | |
141 | - } else { | |
142 | - throw new \ErrorException('Ошибка кеша'); | |
143 | - } | |
112 | + $this->parserCacheHandler(0, $data, $configuration); | |
144 | 113 | |
145 | 114 | array_walk($arr, function (&$val) { |
146 | 115 | $val = '!' . $val; |
... | ... | @@ -151,63 +120,85 @@ class RgGrupController extends BaseController |
151 | 120 | $data = CustomArrayHelper::createAssocArray($data, $arr, 'attr_'); |
152 | 121 | |
153 | 122 | // в первой строке у нас заголовки - уберем |
154 | - unset( $data[0] ); | |
123 | + unset($data[0]); | |
155 | 124 | // подготовим данные для записи в таблицу w_margins_groups |
156 | - $arr_values = []; | |
157 | - $group = ''; | |
158 | - $importer_id = $configuration['importer_id']; | |
159 | - foreach ($data as $row_data) { | |
160 | - | |
161 | - if (isset($row_data['!group'])) { | |
162 | - $group = $row_data['!group']; | |
163 | - unset($row_data['!group']); | |
164 | - } | |
165 | - if (isset($row_data['!_null'])) { | |
166 | - unset($row_data['!_null']); | |
167 | - } | |
168 | - | |
169 | - foreach ($row_data as $key => $value) { | |
170 | - if ($group) | |
171 | - $row['group'] = trim($group); | |
125 | + $data = $this->convertDataByConfiguration($data, $configuration); | |
172 | 126 | |
173 | - $row['importer_id'] = trim($importer_id); | |
174 | - $row['margin_id'] = ltrim($key, '!'); | |
175 | - $row['koef'] = \Yii::$app->converter->convertTo('float', $value, ['precision' => 6]); | |
176 | - | |
177 | - $arr_values[] = $row; | |
178 | - } | |
179 | - } | |
180 | - unset($data); | |
181 | 127 | // валидируем отпарсенные данные моделью в которую будем записывать |
182 | 128 | $margin_model->setScenario('default'); |
183 | - $arr_values = $model_validator->validate( $arr_values ); | |
129 | + $data = $model_validator->validate($data); | |
184 | 130 | $msg = $model_validator->getMassage(); |
185 | - $type_msg = $model_validator->hasError() ? 'warning' : 'success'; | |
131 | + $type_msg = $model_validator->hasError() ? 'warning' : 'success'; | |
186 | 132 | $model_validator->close(); |
187 | 133 | // сохраним подготовленные данные |
188 | - if ( !empty( $arr_values ) ) { | |
189 | - MarginsGroups::ManualInsertWithUpdate( $arr_values, [ 'group','importer_id','margin_id' ] ); | |
190 | - // все прошло успешно - очищаем кеш | |
191 | - Yii::$app->getCache()->delete('parser_data'); | |
192 | - Yii::$app->getCache()->delete('parser_configuration'); | |
193 | - | |
194 | - if (file_exists($configuration['file_path'])) | |
195 | - unlink($configuration['file_path']); | |
196 | - } | |
134 | + if (!empty($data)) { | |
135 | + if (MarginsGroups::ManualInsertWithUpdate($data, ['group', 'importer_id', 'margin_id'])) { | |
136 | + // все прошло успешно - очищаем кеш | |
137 | + $this->parserCacheHandler(2); | |
197 | 138 | |
139 | + if (file_exists($configuration['file_path'])) | |
140 | + unlink($configuration['file_path']); | |
141 | + } | |
198 | 142 | |
199 | - Yii::$app->session->setFlash( $type_msg, $msg ); | |
143 | + } | |
144 | + Yii::$app->session->setFlash($type_msg, $msg); | |
200 | 145 | return $this->render('index', ['model' => $configuration]); |
201 | 146 | |
202 | 147 | } else { |
203 | 148 | // не прошла валидация формы загрузки файлов |
204 | 149 | $errors_str = "Ошибка валидации формы загрузки файлов. "; |
205 | - foreach ($margin_model->getErrors() as $error) { | |
206 | - $errors_str .= implode(array_values($error)); | |
150 | + $this->throwStringErrorException($margin_model, 'common\components\exceptions\RgParsingException', $errors_str); | |
151 | + } | |
152 | + } | |
153 | + | |
154 | + protected function convertDataByConfiguration($data, $configuration) | |
155 | + { | |
156 | + $arr_values = []; | |
157 | + $group = ''; | |
158 | + $importer_id = $configuration['importer_id']; | |
159 | + foreach ($data as $row_data) { | |
160 | + | |
161 | + if (isset($row_data['!group'])) { | |
162 | + $group = $row_data['!group']; | |
163 | + unset($row_data['!group']); | |
164 | + } | |
165 | + if (isset($row_data['!_null'])) { | |
166 | + unset($row_data['!_null']); | |
167 | + } | |
168 | + | |
169 | + foreach ($row_data as $key => $value) { | |
170 | + if ($group) | |
171 | + $row['group'] = trim($group); | |
172 | + | |
173 | + $row['importer_id'] = trim($importer_id); | |
174 | + $row['margin_id'] = ltrim($key, '!'); | |
175 | + $row['koef'] = \Yii::$app->converter->convertTo('float', $value, ['precision' => 6]); | |
176 | + | |
177 | + $arr_values[] = $row; | |
207 | 178 | } |
208 | - throw new \ErrorException($errors_str); | |
209 | 179 | } |
180 | + return $arr_values; | |
181 | + } | |
182 | + | |
183 | + protected function getBasicColumns() | |
184 | + { | |
185 | + return Margins::getHeader(); | |
186 | + } | |
187 | + | |
188 | + // подготавливает массив для валидирования моделью - MarginsGroups | |
189 | + // для этого меняем выбранные значения именем поля - margin_id | |
190 | + protected function getAttributesForValidate($arr) | |
191 | + { | |
192 | + $base_columns_arr = Margins::find()->select('id')->asArray()->all(); | |
193 | + $base_columns_arr = array_column($base_columns_arr,'id'); | |
194 | + | |
195 | + array_walk( $arr, function (&$value, $key, $base_columns_arr) { | |
196 | + if (in_array( $value, $base_columns_arr )){ | |
197 | + $value = 'margin_id'; | |
198 | + } | |
199 | + }, $base_columns_arr ); | |
210 | 200 | |
201 | + return array_flip( $arr ); | |
211 | 202 | } |
212 | 203 | |
213 | 204 | // public function actionMail() | ... | ... |
backend/views/crossing-upload/index.php
... | ... | @@ -14,9 +14,10 @@ use yii\helpers\ArrayHelper; |
14 | 14 | <?= $form->field($model, 'delete_prefix1')->checkbox() ?> |
15 | 15 | <?= $form->field($model, 'delete_prefix2')->checkbox() ?> |
16 | 16 | <?= $form->field($model, 'file')->fileInput()->label(false) ?> |
17 | + <?= Html::tag('p','допустимый формат - csv') ?> | |
17 | 18 | |
18 | 19 | <div class="form-group"> |
19 | - <?= Html::submitButton(Yii::t( 'app', 'Прочитать' ), ['class' => 'btn btn-primary']) ?> | |
20 | + <?= Html::submitButton(Yii::t( 'app', 'Выполнить' ), ['class' => 'btn btn-primary']) ?> | |
20 | 21 | </div> |
21 | 22 | |
22 | 23 | <?php ActiveForm::end(); | ... | ... |
backend/views/parser/error.php
... | ... | @@ -7,14 +7,21 @@ |
7 | 7 | |
8 | 8 | use yii\helpers\Html; |
9 | 9 | |
10 | -$this->title = $name; | |
10 | +$this->title = 'Ошибка'; | |
11 | 11 | ?> |
12 | 12 | <div class="site-error"> |
13 | 13 | |
14 | 14 | <h1><?= Html::encode($this->title) ?></h1> |
15 | 15 | |
16 | 16 | <div class="alert alert-danger"> |
17 | - <?= nl2br(Html::encode($message)) ?> | |
17 | + <?php | |
18 | + echo nl2br(Html::encode($message)); | |
19 | + if ( $action_name ) { | |
20 | + echo "<br/>"; | |
21 | + echo "<br/>"; | |
22 | + echo Html::a('Вернуться', $action_name, ['class' => 'btn btn-info', 'name' => 'Return',]); | |
23 | + } | |
24 | + ?> | |
18 | 25 | </div> |
19 | 26 | |
20 | 27 | <p> | ... | ... |
backend/views/rg-grup/index.php
... | ... | @@ -4,7 +4,7 @@ use yii\helpers\Html; |
4 | 4 | use backend\models\Importers; |
5 | 5 | use yii\helpers\ArrayHelper; |
6 | 6 | |
7 | -$button_label = 'Прочитать'; | |
7 | +$button_label = 'Выполнить'; | |
8 | 8 | |
9 | 9 | |
10 | 10 | ?> |
... | ... | @@ -21,6 +21,8 @@ $button_label = 'Прочитать'; |
21 | 21 | <?= $form->field($model, 'file')->fileInput()->label(false) ?> |
22 | 22 | <div class="form-group"> |
23 | 23 | <?= Html::submitButton(Yii::t( 'app', $button_label ), ['class' => 'btn btn-primary']) ?> |
24 | + <?= Html::tag( 'p', 'допустимый формат xlsx') ?> | |
25 | + | |
24 | 26 | </div> |
25 | 27 | |
26 | 28 | <?php ActiveForm::end(); | ... | ... |
backend/views/rg-grup/results.php
... | ... | @@ -27,6 +27,6 @@ $this->params['breadcrumbs'][] = $this->title; |
27 | 27 | </div> |
28 | 28 | |
29 | 29 | <?php ActiveForm::end() ?> |
30 | - <?= Html::a('Вернуться', ['rg-grup/index'], ['class' => 'btn btn-primary', 'name' => 'Return',]) ?> | |
30 | + <?= Html::a('Отмена', ['rg-grup/index'], ['class' => 'btn btn-primary', 'name' => 'Return',]) ?> | |
31 | 31 | |
32 | 32 | </div> |
33 | 33 | \ No newline at end of file | ... | ... |
common/components/exceptions/CrossParsingException.php
0 → 100644
1 | +<?php | |
2 | +/** | |
3 | + * Created by PhpStorm. | |
4 | + * User: Tsurkanov | |
5 | + * Date: 30.11.2015 | |
6 | + * Time: 17:36 | |
7 | + */ | |
8 | + | |
9 | +namespace common\components\exceptions; | |
10 | + | |
11 | + | |
12 | +use yii\base\UserException; | |
13 | + | |
14 | +class CrossParsingException extends UserException { | |
15 | + | |
16 | +} | |
0 | 17 | \ No newline at end of file | ... | ... |
common/components/exceptions/PriceParsingException.php
0 → 100644
1 | +<?php | |
2 | +/** | |
3 | + * Created by PhpStorm. | |
4 | + * User: Tsurkanov | |
5 | + * Date: 30.11.2015 | |
6 | + * Time: 17:36 | |
7 | + */ | |
8 | + | |
9 | +namespace common\components\exceptions; | |
10 | + | |
11 | + | |
12 | +use yii\base\UserException; | |
13 | + | |
14 | +class PriceParsingException extends UserException { | |
15 | + | |
16 | +} | |
0 | 17 | \ No newline at end of file | ... | ... |
common/components/exceptions/RgParsingException.php
0 → 100644
1 | +<?php | |
2 | +/** | |
3 | + * Created by PhpStorm. | |
4 | + * User: Tsurkanov | |
5 | + * Date: 30.11.2015 | |
6 | + * Time: 17:36 | |
7 | + */ | |
8 | + | |
9 | +namespace common\components\exceptions; | |
10 | + | |
11 | + | |
12 | +use yii\base\UserException; | |
13 | + | |
14 | +class RgParsingException extends UserException { | |
15 | + | |
16 | +} | |
0 | 17 | \ No newline at end of file | ... | ... |
common/models/MarginsGroups.php
... | ... | @@ -31,8 +31,9 @@ class MarginsGroups extends \yii\db\ActiveRecord |
31 | 31 | public function rules() |
32 | 32 | { |
33 | 33 | return [ |
34 | - [['importer_id', 'margin_id', 'koef'], 'required', 'on' => 'default'], | |
35 | - ['group', 'required', 'on' => ['default','form_upload_validation']], | |
34 | + [['group','importer_id', 'margin_id', 'koef'], 'required', 'on' => 'default'], | |
35 | + [['margin_id'], 'required', 'on' => 'form_upload_validation', 'message' => 'Должен быть указан хотя бы один тип цен.'], | |
36 | + [['group'], 'required', 'on' => 'form_upload_validation', 'message' => 'Группа RG - обязательное поле.'], | |
36 | 37 | [['importer_id', 'margin_id'], 'integer' , 'on' => 'default'], |
37 | 38 | [['koef'], 'number' , 'on' => 'default'], |
38 | 39 | [['timestamp'], 'safe' , 'on' => 'default'], |
... | ... | @@ -83,7 +84,6 @@ class MarginsGroups extends \yii\db\ActiveRecord |
83 | 84 | //@todo - вынести все ручные инсерты в отдельный класс |
84 | 85 | public static function ManualInsertWithUpdate($data, $keys) |
85 | 86 | { |
86 | - // \common\components\CustomVarDamp::dumpAndDie($data); | |
87 | 87 | $table_name = self::tableName(); |
88 | 88 | $keys_arr = array_keys($data[0]); |
89 | 89 | // найдем те поля которые не являются ключами. Их нужно будет при дубляже апдейтить |
... | ... | @@ -107,9 +107,9 @@ class MarginsGroups extends \yii\db\ActiveRecord |
107 | 107 | |
108 | 108 | // добавим фрагмент с апдейтом при дубляже |
109 | 109 | $query = "{$query_insert} {$query_update}"; |
110 | - // \common\components\CustomVarDamp::dumpAndDie($query); | |
111 | 110 | Yii::$app->db->createCommand($query)->execute(); |
112 | 111 | |
113 | 112 | } |
113 | + return true; | |
114 | 114 | } |
115 | 115 | } | ... | ... |