From 849769cb57396c00748075e83c4428d30e4bfd84 Mon Sep 17 00:00:00 2001 From: fomichev Date: Fri, 7 Feb 2025 13:12:19 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/records/StoreCityList.php | 11 ++++-- erp24/views/store-city-list/index.php | 52 +++++++++++++++++++++----- erp24/web/uploads/region_temp.xlsx | Bin 0 -> 7878 bytes 3 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 erp24/web/uploads/region_temp.xlsx diff --git a/erp24/records/StoreCityList.php b/erp24/records/StoreCityList.php index 9c8c0bfd..226f645b 100644 --- a/erp24/records/StoreCityList.php +++ b/erp24/records/StoreCityList.php @@ -41,7 +41,10 @@ class StoreCityList extends \yii\db\ActiveRecord [['created_at', 'parent_id'], 'safe'], [['name', 'type'], 'string', 'max' => 255], [['type'], 'in', 'range' => [self::TYPE_REGION, self::TYPE_CITY, self::TYPE_DISTRICT]], - [['parent_id'], 'exist', 'skipOnError' => true, 'targetClass' => StoreCityList::class, 'targetAttribute' => ['parent_id' => 'id']], + [ + ['parent_id'], 'exist', 'skipOnError' => true, 'targetClass' => StoreCityList::class, + 'targetAttribute' => ['parent_id' => 'id'] + ], ]; } @@ -51,10 +54,10 @@ class StoreCityList extends \yii\db\ActiveRecord public function attributeLabels() { return [ - 'id' => 'Первичный ключ', + 'id' => 'Код региона', 'parent_id' => 'Идентификатор родителя', - 'name' => 'Название (регион, город, район)', - 'type' => 'Тип (region, city, district)', + 'name' => 'Название', + 'type' => 'Тип', 'created_at' => 'Дата создания записи', ]; } diff --git a/erp24/views/store-city-list/index.php b/erp24/views/store-city-list/index.php index 6f9e529d..17481d44 100644 --- a/erp24/views/store-city-list/index.php +++ b/erp24/views/store-city-list/index.php @@ -1,27 +1,43 @@ title = 'Справочник адресов (регион, город, район)'; +$this->title = 'Справочник адресов'; $this->params['breadcrumbs'][] = $this->title; ?>
-

title) ?>

+
+

title) ?>

+ 'ms-3', 'target' => '_blank', 'title' => 'Открыть документацию'] + ) ?> +

Загрузка из excel регионов в справочник + 'ms-2', 'target' => '_blank', 'title' => 'Скачать шаблон для загрузки'] + ) ?>

+ 'multipart/form-data', 'class' => 'row row-cols-lg-auto g-3 align-items-center']) ?>
@@ -51,17 +67,35 @@ $this->params['breadcrumbs'][] = $this->title; 'columns' => [ ['class' => 'yii\grid\SerialColumn'], - 'id', + [ + 'attribute' => 'id', + 'width' => '50px', + 'headerOptions' => ['title' => 'Уникальный идентификатор записи'], + ], [ 'attribute' => 'parent_id', 'value' => function ($model) { - return $model->parent ? $model->parent->name : ''; + return $model->parent ? $model->parent->name : 'Российская Федерация'; }, - 'label' => 'Родитель', + 'label' => 'Административный центр', + 'width' => 'auto', + 'headerOptions' => ['title' => 'Иерархический родитель элемента (для регионов - РФ, для городов - регион и тд)'], + ], + [ + 'attribute' => 'name', + 'label' => 'Название', + 'headerOptions' => ['title' => 'Название административного подразделения'], + ], + [ + 'attribute' => 'type', + 'label' => 'Тип', + 'headerOptions' => ['title' => 'Тип административного подразделения (регион, город, район) - для фильтрации ввести - region, city, district'], + ], + [ + 'attribute' => 'created_at', + 'label' => 'Дата создания', + 'headerOptions' => ['title' => 'Дата добавления записи в систему'], ], - 'name', - 'type', - 'created_at', [ 'class' => ActionColumn::class, 'urlCreator' => function ($action, StoreCityList $model, $key, $index, $column) { diff --git a/erp24/web/uploads/region_temp.xlsx b/erp24/web/uploads/region_temp.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f7d048a5bc0a11f9a4e90ada46b232710a088b9e GIT binary patch literal 7878 zcmb_>1yof1_VyqtT?0cS-60_%B@9S2Fo2{ILrI5}gn)n}-5sOAfCADbAPrIy0@5i+ zIHXAb=Y4(G{nUH?uls%LJG17@I_Ejhv)A6|oV|auw~jg{79{`xzysWf6*7LAssDNg zeI$Ji03ZNR0`9xR96baD{@P;zNYTKrTWLa@Lx&JyI4S^t#s5WhsIYRPd3Rpj%|_f^ zM|R<7{H(7`zI_u3t-w~Jaa2*gy4qu?o*A~#E${uL=Xh9HQqykNcQSSB^yILUmT#iyy+M98kzvHaZZ}>v42AWt6~!8;$GC;(?G@UF=#AYDVIN7PB5G~tp;z`Y z)bio#Ff{dU3zO$Ha&P}I!GB(HXJo%Mv{|w@dQhPtY4h-n#|eaBvcG>Ou;pe9Segx6 zaS!uX=Z|BO1f$T-Polr1KRa*X>iQ?&vxf%p+l5H67X5QsR_6=-NVzW>D2EwKjuRZG zgFg}V8E?+ekv#^)b_g+z5jO=z5?Q*3W#5L@PzGm2brdAlebLQX`#`-TrW@Q#oY0G@ zk!_l;_yRi0`(0AMp?mfoJn%F93ZmDz$b#+SF!*(hSAgytkvt5&a3-!+%c{Lr|Q>3(Pz`WRby{MRIUO!VE8iZu=bswa9K#$@cofG@l$8 zg~%6H-bpWfm%2VE+T|tL=f6elGQr4PMwi=g4TfjdomS3f|JAmZmEy`_OO#}!G5k}b z0Z``Crdi^3$9Oj0&&ahKIs3X^jOEo=Zyv8l5(qvEaW3Z?Om4f``qEE-{A{0U-*Tzm zP70#;ZZx4=8i#$z>w!-UkLzVx9@H0J)0Qh*IG8-4 z`z(a5qREFt5M}}6WWj5L@!;1{^kYcqPNmgkon!nOI*b7m#szffiqYAD_DAS`B#55_ z_`f8JL3FYp4MX|jR~#EZGFIb`_qhJlbmkBv>}{=vqpDql-d#()eB9j5sA`ei zID;*en@(<8acrBseo~%L{nTN;$Zm^&gMWxu^S$Qf2Szb*C<^ZM>(=i?ifl{!eChdt z!WMDa;-5zhIPAFH3xt_=;?gk)PLLXJP@w!da`fJUKn&9Up%Io>C-4;KbdH4n+qcquOWTSR-_tup>_=mYg?jtZ0D<~EyqZY z!tv(j27XNX+bh>p@+~Tn9BWUTCKOKXQ~NaVb+f^3IhW5aoZlkGZlOk=-CLnFA=f;) zp7H77jeUxqrF=)_bF&mHp0nksg1fyuCX!@|3u|25Zg1NjtiI&Rf8;A8y?V+QlSrCt zyCmKPr3@9)h>OeF_e$`XL2z}6oUtl+TICwZnv=d3SS-20wk*sC#%JqFgQ}cxlE3|3`>cwJd{9SJeFpdw|i@O2=mCQdkjDs?oJ*co8#O4 z2op-#WYzTI`CgHDi}2-}P^O0U#3kfYrU{=`PO9~>{K@t+G1-l_*vD6hrz8&NNL-Y^ ztusNn!o!3Qnkf8?4ba`J_~GW=leZY<5Uo&&t|RDn9t7S3a}+o`npShxRi9m#P|gnv z=w79I&ZabB__pgkp;X((b@|@oYgsDdV_}z%aUC+XM5Lq)zLe>7UB5B8oU^E2mc2%! zifC{g2L?nNr9I|#eYX-vO?T> z@PgWDdOGeZt8)oA;F*=wg)lX-syUH|`BhXivxKPT+TGXuN9qZ(7B|{H+qL$Ut!|od zs2E$?v}RL+ZD>+ZMe-7!Et7rkEUxn!wrJ{8?pQ zImMN0x9rbM=b4>VN7_A%c<~7)=GLT{DvaN-d}^Gp&vw+O9;EE$cJ{`$p;8@nKO-`} z-jtq~bgKg?3O%hEK%8OgRqIw)_%IGpqz4F+Q4@5=A=3P)sDgU$3-`U0Gcu|y_3CCk zod%lA4!t*@IUPz`I7jhYPSy6Jl3uZ=ZD2bX+^ec|G}sWoNFv*bJk+A@KZv-FcvTr` z$F&3OiK!Vhsx&63BH6Dhjoah#@D#RUxNpw6kJm#$6G2&_E|bS+`sL0Y)`o$nWFD19 z4n~2(C z{qvALtE@pMK6OYcWy#dow#@S`M$=DCvucdBVFRZ+!{2e}@-=Q8W#;y;3> zL|XaAhI@g>64kPz?sdIfE`QL6^Qz^cSpq)^e4NK-W;0<>Tyu2W#Eo4aj;qSJyDlZq zKSbw_nuqesAg~|0M3y=TtT$XiMovRsSZB(fbWXMJ__{hSeGl-%`%r9<$0MM|vOs=I zE~@!u-(2z5S%mu}_E&@1?6(5m-b{E+^)sKrec=fpMpDd3i^!#qouF&N!Ju$ZM+Qjt z$EnFqykL+#p<+}XM>k$1MyF6G2z?di-&d_(JfrVX~w9bjxRq&o0@YeA??;4}z?w z`nyY%Dh0}cn#R;t1^rV7b8MfTBUtywG*r*`D%b+=3S6D7UR##jz1Hc$j1##oPe?la z1jL+!DJ*{**D~0LxD&8PABnLnNs8HdK>d7OS%lhKkbHRQ;+tXtinVoaUX3VFDBOD{ zH!uH_;0!@JsC%<6*EL)=t`4fzI?=t zb9YCcFm4)ct_E$+0c~zPP^q{XI+gvkHNW^$fAC9Y5a8F60x(p~5XJ=nY;FPop#QUQ z@vwuzJUs;e{`q5FiJmd@m{ta1FP@#_6HzxfJh?EZ*WmE#)-1ALR!#h7{G`k7TBKUL z)>Qzzf^cALk7SFGT@90p`?6gRJWF!W<2lP=TNrI<%nMW2Sn&ytURrU*y^acx?&c!d% zGX$G5c}%DV*Y^vZ?8@zhGBj0+%%3BO#>|`y3f9&Zqg(3X`CFsM-(TH5KKgX_x@or@ zc2X++-N{YT4yE19g9<8zcb!>gZnnVUQ%(ZsJfjWQ8ecQ=`^m0(1%aJfRw8SU7rGEe zX2i=MJnt7Z$R;17blsX9rW-gq`j|6OTZOY((>O*AE)z~6$6o|WXXXRq4r(8LEh`-q z7M%3Dl9{2L3Ebwmns1$FqMA(1Cn+&|>3nH+T(@06E1V@YQXTT6XztrqZjgo4% z_pj;Mk(+63I{kF$ES?kdwb4FSCJ@r&@xrR(qfrOaY^yp?RzQMr)0S%7mLMZgft{+8 z@zgDrciTcsh7o)d%H|=Sy;D@hlJI4?A;RBPw)0qVcI^5#ciZ=LtZ$BuAGFuO*Jg5` zlUyH)(8y6=L}C$>W5vJg!-~;dEXHCaSBihvkCmfIip0Vo*H8*!roa+ccuB5wH*dAv zDv6AR&f*R@?E%&afmA#hha;9);Z4suYdn4<+J4GdWf>+#H(|q z@M9K&7Wh#YLIijC{|~VKWJ7GXh=r@f9!yk(Q~*aq$Ab~!2IH=9TIl#)FcFu7-4B51 zyn+x;YYge&cF=*a0>$!>`9QHO1P)M47lQeJ2h{w`;Qb+0lZBuHq5%T9u`#5d+W`XM z1=i#t3xIzHRwHte$fvP#dk5P8E#)sGUOyY*{9(i^3qkxBfD4y0hV*c6>OeSwUU|qD z!2bpaqNmH_y&Cu~sM9xAyXWc3ULXx>( z&#TS5DG8S0*(^XXQXW+!a`eVuAQX5u6(Iirv@d@EPxM6d&;YIch&(T?1Q?SC4Pa0b zRU`gepo0ResXGFI;~0;;e-I)yW*pJpUVZxh=GeFb0pe?=kbPhUA03K_P)qh z_H|gB`T9S5ib}~md9wiPN0elKJqaZ_8=Umy5<=yw zO7JeCVzobhF_IZRYdmt>`q-j1=^kG8wv}hJ_DgPVJ^l9klHz>?jrCk5(<|9Y#M^~H z^Mak8CaBjlV&C$!tSbA4d-Mw}1GkzC4KI#UueSR?e{8C5QP&h6t|GC|4LnV9KHhpO zm9^ExJ=c0J`?dA-_}17+N7UHJN{w=nin5L1F3Lrr$TEG7W3Mgl+=-oJYW9(ES) zFl#+ecY9}Bk3apLOE&D+n$aPhI{+GdYfA!uG*G<<-K4JG;<-l6BBn)~Suz*Tj8Bfd zj?{+)%ZHG@O1XVQF!O%><%=Ae%-zTpe_LvCh!$T!f8az5EjDkWNMZ%`0fF$K zP^t$njfWV`+3uy;xxOQ}Sn3--6O&sa_a~z38ob7|y3H~1AY*FX6OPhX%9EvQVyv09 zpFMm#Iy1E!?ua|BEVP$6uMsHwbs38gN}n0sH@)XmY&%9HlA?Am9onu1jM7h=q@rld zR@*on2y!m0>K?N_@oW>?iA_%~65K|eaKDkDkSXVK7K4zPxfpuxx}0$L*2$W9-WP3V z5T-1vTT0$-id@iKQo{4e3{Jt=(l+tm7>yJovQZ3N5ggu2Pn6?b=HrckG*`dF;5nO)xxirM(Z zg=}s6(z%$qJ4nNUEEdJaLC=wU3C>hqhg-l_1|OT$WU#n#PeaKY}uOt>bt z`RYaW^O%R|l9wm!^O$n|MV@FJs(lXi=;dUQoN5hgbYMr0Sz<%;v51Jv3J^6*(l;Ww zUDYuk7rwboH?NIQ@dd5FE`43gCE)9kYM-#0arNCc3`DB2vtN(M$8qdbd9DWAd*tuuok|{(P zh$@#4yf3UeQ$wNSlw7$}kTI?`{R%@dE-E@|EdKJ8;XW4|{=>?bhWuP@vZ=!hlCr%K zVX01CZ>4!Mb$9WwdqBQPMJ&9&Wcj&uRV3>hH)ZkZYOD`!w2JrNJ-J1e!K)v%f5DMG z1{du?6w-?}!~r2f$xj!?6B1sJXaNs6LAfVDZb`Ue3(_Xp;VqP}K182MDW^GLm<3CT zZz{RhF04gYi`}9(R&k-B$3nm-_9obXG-9yXTLrXe>6C-d@zQWVs+Q7qxF#wQZk*|o zGzZZy>})C|a9HH;r5(3+L3ZA-?@|C|WDecwn^L6GiUW39XeJ>Nh94|9?Cn&BL*3gL zqAL758{@2LG_>lx?XY-71`+kf(OY+{*tFEB)atFjV+xm_BxmVD0n^NtseMp46~bWE5fR1jGacYRGPQd(by>r)Ctap`9`kU2x1s@q zo}U}Gt^DHRy&-Lm_N($Kv5v&WA$*_WHD+&>V#KDwDMYxxAC92x$T{Pe0DXm z{NlH_V|EsPkc95H*P}b4e|1Am6kVJ>Va}fSp}wv#53@g&&(h@nAAR==IM)o1uqQ+x z7z?&f<=6d!o92@MT8?m}XkYNA$1jPakbk3^M3d`p+pTpoLmUBj5K7^djEVTd93yW7 zcQcAw$?a0vC)egAdC{d68tqzIy;AR~)k?ibZ=*N2l%v^U{h1V$nBlcTZ?Z3U5-?F6DS& z!nPwz$BQJwh?v28&Y$pFQ}KS5?K@~KS>(&!VZyonA%$DXPR{OcrU9^8ELViuOjF%y z`>kGAoRKWrV^!=;a_i5^_RrTBkq(-=~y4@rgKbor~wao9n)Z5jwdM9w` z%u}gv(+qV8sPcNyTbyT_vscG1_O2zn?V`?Ga5?u|gVbzUNE7u3c#hkn?+W1;UOrVp zydG^SbwK0M`Ec*Ar^p~=Xtf-ouR~Br9pjoT`WF7@i6Q#*FWXP^!{3R&j?{i;fzVIN zzYW-ar~f*X`k4+yr{RCm{~1yJ&i-`>^fP+}&Him9^gH?2G04wkMy$Wde;A7VuJh}R z;Ab6G?7ww>pBVfu@M}ltXMrq&e|hn5{h{AgeqG%DtU`@0X6RV_+fw&;g