Commit 1e3373110a9495a092f63cd552a62fdde26dc24e
1 parent
9a34817f
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 | } | ... | ... |