403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/mcart.xls/lib/orm/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/mcart.xls/lib/orm/profile.php
<?php

namespace Mcart\Xls\ORM;

use Bitrix\Main\Entity;
use Bitrix\Main\Localization\Loc;
use Mcart\Xls\ORM\Profile\ColumnTable;
use Mcart\Xls\ORM\Profile\ConstTable;
use Mcart\Xls\ORM\Profile\Column\CustomFieldsTable;
use Bitrix\Main\Web\Json;

Loc::loadMessages(__FILE__);

/**
 * Class ProfileTable
 *
 * Fields:
 * <ul>
 * <li> ID int mandatory
 * <li> NAME string(255) mandatory
 * <li> FILE string(255) mandatory
 * <li> IBLOCK_ID int mandatory
 * <li> QUANTITY_ELEMENTS_IMPORTED_PER_STEP int mandatory
 * <li> ONLY_UPDATE string(1) mandatory
 * <li> DEACTIVATE_IF_NEW string(1) mandatory
 * <li> DEACTIVATE_IF_QUANTITY_0 string(1) mandatory
 * <li> DEACTIVATE_IF_PRICE_0 string(1) mandatory
 * <li> DEACTIVATE_ELEMENT_IF_NOT_IN_FILE string(1) mandatory
 * <li> ACTIVATE_IF_QUANTITY_AND_PRICE_NOT_0 string(1) mandatory
 * <li> HEADER_ROW string(255) mandatory
 * <li> START_ROW string(255) mandatory
 * <li> END_ROW string(255) mandatory
 * <li> IBLOCK_SECTION_ID_FOR_NEW int mandatory
 * </ul>
 *
 * @package Mcart\Xls
 * use Bitrix\Main\Application;
 * $conn = Application::getConnection();
 * $conn->queryExecute(
    'ALTER TABLE `mcart_xls_profile` ADD `SKU_CODE` TEXT NULL DEFAULT NULL AFTER `ONLY_UPDATE` '
    );
 **/
final class ProfileTable extends Entity\DataManager {

    /**
     * Returns DB table name for entity
     *
     * @return string
     */
    public static function getTableName() {
        return 'mcart_xls_profile';
    }

    /**
     * Returns entity map definition
     *
     * @return array
     */
    public static function getMap() {
        $loc_pref = 'MCART_XLS_PROFILE_';
        return [
            new Entity\IntegerField('ID', [
                'primary' => true,
                'autocomplete' => true,
                'title' => Loc::getMessage($loc_pref.'ID'),
            ]),
            new Entity\StringField('NAME', [
                'required' => true,
                'title' => Loc::getMessage($loc_pref.'NAME'),
                'validation' => function() {
                    return [new Entity\Validator\Length(1, 255)];
                }
            ]),
            new Entity\StringField('FILE', [
                'required' => false,
                'title' => Loc::getMessage($loc_pref.'FILE'),
                'validation' => function() {
                    return [new Entity\Validator\Length(null, 255)];
                }
            ]),
            new Entity\TextField('FILE_HEADERS', [
                'required' => false,
                'title' => Loc::getMessage($loc_pref.'FILE_HEADERS'),
                'save_data_modification' => function () {
                    return [
                        function ($value) {
                            if (empty($value)) {
                                $value = [];
                            }
                            return Json::encode($value);
                        }
                    ];
                },
                'fetch_data_modification' => function () {
                    return [
                        function ($value) {
                            if (empty($value)) {
                                return [];
                            }
                            return Json::decode($value);
                        }
                    ];
                }
            ]),
            new Entity\IntegerField('IBLOCK_ID', [
                'required' => true,
                'title' => Loc::getMessage($loc_pref.'IBLOCK_ID')
            ]),
            new Entity\ReferenceField(
                'IBLOCK',
                'Bitrix\Iblock\Iblock',
                ['=this.IBLOCK_ID' => 'ref.ID']
            ),
            new Entity\IntegerField('QUANTITY_ELEMENTS_IMPORTED_PER_STEP', [
                'required' => true,
                'default_value' => 100,
                'title' => Loc::getMessage($loc_pref.'QUANTITY_ELEMENTS_IMPORTED_PER_STEP'),
                'validation' => function() {
                    return [new Entity\Validator\Range(1)];
                }
            ]),
            new Entity\BooleanField('ONLY_UPDATE', [
                'required' => false,
                'default_value' => 'N',
				'values' => ['N','Y'],
                'title' => Loc::getMessage($loc_pref.'ONLY_UPDATE')
            ]),
            new Entity\StringField('SKU_CODE', [
                'required' => false,
                'title' => Loc::getMessage($loc_pref . 'SKU_CODE'),
                'validation' => function () {
                    return [new Entity\Validator\RegExp('/^[0-9]{0,255}$/')];
                }
            ]),
            new Entity\BooleanField('DEACTIVATE_IF_NEW', [
                'required' => false,
                'default_value' => 'N',
				'values' => ['N','Y'],
                'title' => Loc::getMessage($loc_pref.'DEACTIVATE_IF_NEW')
            ]),
            new Entity\BooleanField('DEACTIVATE_IF_QUANTITY_0', [
                'required' => false,
                'default_value' => 'N',
				'values' => ['N','Y'],
                'title' => Loc::getMessage($loc_pref.'DEACTIVATE_IF_QUANTITY_0')
            ]),
            new Entity\BooleanField('DEACTIVATE_IF_PRICE_0', [
                'required' => false,
                'default_value' => 'N',
				'values' => ['N','Y'],
                'title' => Loc::getMessage($loc_pref.'DEACTIVATE_IF_PRICE_0')
            ]),
            new Entity\BooleanField('ACTIVATE_IF_QUANTITY_AND_PRICE_NOT_0', [
                'required' => false,
                'default_value' => 'N',
				'values' => ['N','Y'],
                'title' => Loc::getMessage($loc_pref.'ACTIVATE_IF_QUANTITY_AND_PRICE_NOT_0')
            ]),
            new Entity\StringField('HEADER_ROW', [
                'required' => true,
                'default_value' => 1,
                'title' => Loc::getMessage($loc_pref.'HEADER_ROW'),
                'validation' => function() {
                    return [new Entity\Validator\RegExp('/^[0-9A-z]{1,255}$/')];
                }
            ]),
            new Entity\StringField('START_ROW', [
                'required' => true,
                'default_value' => 2,
                'title' => Loc::getMessage($loc_pref.'START_ROW'),
                'validation' => function() {
                    return [new Entity\Validator\RegExp('/^[0-9A-z]{1,255}$/')];
                }
            ]),
            new Entity\StringField('END_ROW', [
                'required' => false,
                'title' => Loc::getMessage($loc_pref.'END_ROW'),
                'validation' => function() {
                    return [new Entity\Validator\RegExp('/^[0-9A-z]{0,255}$/')];
                }
            ]),
            new Entity\IntegerField('IBLOCK_SECTION_ID_FOR_NEW', [
                'required' => false,
                'title' => Loc::getMessage($loc_pref.'IBLOCK_SECTION_ID_FOR_NEW')
            ]),
        ];
    }

    public static function onBeforeDelete(Entity\Event $event) {
        $result = new Entity\EventResult;
        $id = $event->getParameter("primary")['ID'];

        $conn = \Bitrix\Main\Application::getConnection();
        $conn->startTransaction();

        $dbItems = ConstTable::getList(['filter' => ['PROFILE_ID' => $id]]);
        while ($ar = $dbItems -> fetch()) {
            $resultConst = ConstTable::delete($ar['ID']);
            if(!$resultConst->isSuccess()) {
                foreach ($resultConst->getErrors() as $ob) {
                    $result->addError($ob);
                }
                $conn->rollbackTransaction();
                return $result;
            }
        }

        $dbItems = ColumnTable::getList(['filter' => ['PROFILE_ID' => $id]]);
        while ($ar = $dbItems->fetch()) {

            /*$dbItems2 = CustomFieldsTable::getList(['filter' => ['COLUMN_ID' => $ar['ID']]]);
            while ($ar2 = $dbItems2->fetch()) {
                $resultCustomFields = CustomFieldsTable::delete($ar2['ID']);
                if(!$resultCustomFields->isSuccess()){
                    foreach ($resultCustomFields->getErrors() as $ob) {
                        $result->addError($ob);
                    }
                    $conn->rollbackTransaction();
                    return $result;
                }
            }*/

            $resultColumn = ColumnTable::delete($ar['ID']);
            if(!$resultColumn->isSuccess()) {
                foreach ($resultColumn->getErrors() as $ob) {
                    $result->addError($ob);
                }
                $conn->rollbackTransaction();
                return $result;
            }
        }

        return $result;
    }

    public static function onAfterDelete(Entity\Event $event){
        \Bitrix\Main\Application::getConnection()->commitTransaction();
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit