From 29ea6a9a790e9a8de2c2baeb81eee790c9b9fb3c Mon Sep 17 00:00:00 2001 From: Arsen Mirzaev Tatyano-Muradovich Date: Tue, 2 Nov 2021 12:21:46 +1000 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../skillparts/system/config/web.php.example | 3 +- mirzaev/skillparts/system/models/Account.php | 10 ++++++ .../skillparts/system/models/AccountForm.php | 10 ++++++ mirzaev/skillparts/system/models/Product.php | 18 +++++++++-- .../system/views/profile/supplies.php | 30 ++++++++++++++++-- .../skillparts/system/web/img/logos/1с.png | Bin 0 -> 22053 bytes .../web/img/logos/h50px/compressed/1с.png | Bin 0 -> 481 bytes 7 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 mirzaev/skillparts/system/web/img/logos/1с.png create mode 100644 mirzaev/skillparts/system/web/img/logos/h50px/compressed/1с.png diff --git a/mirzaev/skillparts/system/config/web.php.example b/mirzaev/skillparts/system/config/web.php.example index cfe88cc..2c56453 100644 --- a/mirzaev/skillparts/system/config/web.php.example +++ b/mirzaev/skillparts/system/config/web.php.example @@ -111,7 +111,8 @@ $config = [ 'invoices/' => 'invoice/index', 'invoices//' => 'invoice/', 'verify/send' => 'verify/send', - 'verify/' => 'verify/index' + 'verify/' => 'verify/index', + 'terminals/' => 'terminal/' ], ], diff --git a/mirzaev/skillparts/system/models/Account.php b/mirzaev/skillparts/system/models/Account.php index 86a6b34..a4c7435 100644 --- a/mirzaev/skillparts/system/models/Account.php +++ b/mirzaev/skillparts/system/models/Account.php @@ -967,4 +967,14 @@ class Account extends Document implements IdentityInterface, PartnerInterface return false; } + + /** + * Проверка на то, что аккаунт имеет минимальный доступ + * + * @param static|null $account Аккаунт + */ + public static function isMinimalAuthorized($account = null): bool + { + return self::isModer($account) || self::isAdmin($account); + } } diff --git a/mirzaev/skillparts/system/models/AccountForm.php b/mirzaev/skillparts/system/models/AccountForm.php index 77205f5..c2e0c26 100644 --- a/mirzaev/skillparts/system/models/AccountForm.php +++ b/mirzaev/skillparts/system/models/AccountForm.php @@ -103,6 +103,16 @@ class AccountForm extends Model ]; } + public function attributeLabels() + { + return [ + 'mail' => 'Почта', + 'pswd' => 'Пароль', + 'auto' => '', + 'pols' => 'Политика конфедециальности' + ]; + } + public function validateMail($attribute, $params) { if (!$this->hasErrors()) { diff --git a/mirzaev/skillparts/system/models/Product.php b/mirzaev/skillparts/system/models/Product.php index 5ff6b96..0ed56c7 100644 --- a/mirzaev/skillparts/system/models/Product.php +++ b/mirzaev/skillparts/system/models/Product.php @@ -47,10 +47,19 @@ class Product extends Document */ const SCENARIO_WRITE = 'write'; + /** + * Аккаунт + * + * Используется для управления администратором от лица пользователя + */ + public Account|string|null $account = null; + /** * Файл .excel для импорта товаров */ public Excel|string|array|null $file_excel = null; + public Excel|string|array|null $file_excel_1 = null; + public Excel|string|array|null $file_excel_2 = null; /** * Изображение для импорта @@ -108,8 +117,11 @@ class Product extends Document 'time' => 'Срок доставки (time)', 'bffr' => 'Буфер', 'file_excel' => 'Документ (file_excel)', + 'file_excel_1' => 'Документ (file_excel)', + 'file_excel_2' => 'Документ (file_excel)', 'file_image' => 'Изображение (file_image)', - 'group' => 'Группа (group)' + 'group' => 'Группа (group)', + 'account' => 'Аккаунт' ] ); } @@ -366,6 +378,9 @@ class Product extends Document // Поиск всех артикулов (каталожных номеров) $products = explode(',', $doc['catn'], 300); + // Поиск количества товаров + $amount = $doc['amnt'] ?? 1; + foreach ($products as $_product) { // Перебор продуктов (если catn перечислены через запятую) @@ -385,7 +400,6 @@ class Product extends Document if (($_product = $product->validateForUniqueness()) instanceof static) { // Найден документ с такими параметрами - // Инициализация буфера с параметрами загружаемого товара $vars = $product->getAttributes(); diff --git a/mirzaev/skillparts/system/views/profile/supplies.php b/mirzaev/skillparts/system/views/profile/supplies.php index aee3e9d..9447ba6 100644 --- a/mirzaev/skillparts/system/views/profile/supplies.php +++ b/mirzaev/skillparts/system/views/profile/supplies.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use app\models\Account; use yii; use yii\bootstrap\ActiveForm; @@ -51,7 +52,32 @@ $panel ?? $panel = 'profile_panel_supplies_input_import'; ]); ?> - field($model, 'file_excel', ['enableLabel' => false])->fileInput(['multiple' => true, 'class' => 'mb-2', 'onChange' => 'page_profile_supplies_import_excel(this.parentElement.parentElement, \'profile_panel_supplies_input_import\')']) ?> + + field($model, 'account', ['options' => ['class' => "mb-4 col-4"]])->input('text', ['placeholder' => yii::$app->user->identity->_key]); ?> + + +
+
1.
+
+ Тест импорта.xlsx +
+ + +
+ +
+
2.
+
+ field($model, 'file_excel_1', ['enableLabel' => false])->fileInput(['multiple' => true, 'onChange' => 'page_profile_supplies_import_excel(this.parentElement.parentElement, \'profile_panel_supplies_input_import\')']) ?> +
+
+ +
+
3.
+
+ field($model, 'file_excel_2', ['enableLabel' => false])->fileInput(['multiple' => true, 'onChange' => 'page_profile_supplies_import_excel(this.parentElement.parentElement, \'profile_panel_supplies_input_import\')']) ?> +
+
errorSummary($model, ['header' => 'В документе были допущены ошибки:' /*, 'footer' => 'Исправьте их и попробуйте снова'*/]); ?> @@ -70,4 +96,4 @@ $panel ?? $panel = 'profile_panel_supplies_input_import'; || yii::$app->user->identity->type === 'moderator') ) : ?> - \ No newline at end of file + diff --git a/mirzaev/skillparts/system/web/img/logos/1с.png b/mirzaev/skillparts/system/web/img/logos/1с.png new file mode 100644 index 0000000000000000000000000000000000000000..db835bd2ee2cfcf350e3424b9526eb84b9ffdeae GIT binary patch literal 22053 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 literal 0 HcmV?d00001 diff --git a/mirzaev/skillparts/system/web/img/logos/h50px/compressed/1с.png b/mirzaev/skillparts/system/web/img/logos/h50px/compressed/1с.png new file mode 100644 index 0000000000000000000000000000000000000000..5e11134da712f100c17324b64e0f0b20ba0322ed GIT binary patch literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^MnEjX!VDxYZvS`$NU@|l`Z_W&Z0zU$lgJ9>GZqKA zJ29*~C-V}>(GBnkadj{7;j&pvB=R}8e+^J0UrCT(Fhg@R&(trLifiw0FFfPE7;)9Tvrv8x7e5)IP^@T-fxg(qA;e=#Fu^-^PmN2ll*M+O)PK z!13JfOasYd=Uf5&~<U-zkz;@O`!H8dW4 z5>n`IJ?l*L2A<7^%^Mk)WlCQ-EcJ>>twlaCW!*lVxbK&uIT^VUfR@P=-BWDlHIQ6Z z?)YZy2_q&0$!GhPOW!ctrEq|C29NXE-5sYRVh