Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Faker\Provider\ru_RU;
4
 
5
class Company extends \Faker\Provider\Company
6
{
7
    protected static $companyNameFormats = [
8
        '{{companyPrefix}} {{companyNameElement}}',
9
        '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}',
10
        '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}{{companyNameElement}}',
11
        '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}{{companyNameElement}}{{companyNameSuffix}}',
12
    ];
13
 
14
    protected static $companyPrefixes = [
15
        'ООО', 'ЗАО', 'ООО Компания', 'ОАО', 'ОАО', 'ПАО', 'МКК', 'МФО',
16
    ];
17
 
18
    protected static $companyNameSuffixes = [
19
        'Маш', 'Наладка', 'Экспедиция', 'Пром', 'Комплекс', 'Машина', 'Снос', '-М', 'Лизинг', 'Траст', 'Снаб',
20
        '-H', 'Трест', 'Банк', 'Опт', 'Проф', 'Сбыт', 'Центр',
21
    ];
22
    /**
23
     * @note Words and parts of words that usually used in company names
24
     */
25
    protected static $companyElements = [
26
        'ЖелДор', 'Гараж', 'Цемент', 'Асбоцемент', 'Строй', 'Лифт', 'Креп', 'Авто', 'Теле', 'Транс', 'Алмаз', 'Метиз',
27
        'Мотор', 'Рос', 'Тяж', 'Тех', 'Сантех', 'Урал', 'Башкир', 'Тверь', 'Казань', 'Обл', 'Бух', 'Хоз', 'Электро',
28
        'Текстиль', 'Восток', 'Орион', 'Юпитер', 'Финанс', 'Микро', 'Радио', 'Мобайл', 'Дизайн', 'Метал', 'Нефть',
29
        'Телеком', 'Инфо', 'Сервис', 'Софт', 'IT', 'Рыб', 'Глав', 'Вектор', 'Рем', 'Гор', 'Газ', 'Монтаж', 'Мор',
30
        'Реч', 'Флот', 'Cиб', 'Каз', 'Инж', 'Вод', 'Пив', 'Хмель', 'Мяс', 'Томск', 'Омск', 'Север', 'Лен',
31
    ];
32
 
33
    protected static $catchPhraseWords = [
34
        [
35
            'Адаптивная', 'Дополнительно', 'Улучшить', 'Ассимилировали', 'Автоматическая', 'Сбалансированный', 'Бизнес-ориентированных', 'Централизации', 'Клонировать', 'Совместимость', 'Настраивается', 'Кросс-группа', 'Кросс-платформы', 'Клиентоориентированного', 'Децентрализации', 'Де-инженерии', 'Передал', 'Оцифровки', 'Распространяться', 'Разное', 'Габаритами', 'Расширения', 'Предприятия', 'Эргономичность', 'Эксклюзив', 'Расширенный', 'Очного', 'Целенаправленный', 'Фронтовые', 'Полностью настраиваемый', 'Функции', 'Основной', 'Будущее', 'Низовые', 'Горизонтальной', 'Реализовано', 'Инновационных', 'Интегрированный', 'Интуитивно', 'Обратная', 'Управлять', 'Обязательно', 'Наблюдение', 'Многоканальной', 'Многосторонний', 'Многослойная', 'Многоуровневые', 'Сеть', 'Объектно-ориентированный', 'Открытая архитектура', 'Открытое', 'Оперативная', 'Оптимизация', 'Дополнительно', 'Органический', 'Организованная', 'Стойкость', 'Постоянный', 'Постепенно', 'Полярности', 'Превентивный', 'Инициативный', 'Прибыльных', 'Глубокий', 'Программируемый', 'Прогрессивный', 'Ключ', 'Ориентированные на качество', 'Реактивная', 'Реорганизации', 'Повторно контекст', 'Модернизированной', 'Снижается', 'Копирования', 'Размер', 'Надежный', 'Бесшовные', 'Обеспеченный', 'Собственной активации', 'Запрашиваемого', 'Автономный', 'Упорядочить', 'Переключение', 'Синхронизированы', 'Синергетический', 'Согласования', 'Командный', 'Общий', 'Тройной буферизацией', 'Универсальный', 'Размера', 'Комплектация', 'Пользователя', 'Удобный', 'Универсальный', 'Виртуальный', 'Фантазер',
36
        ],
37
        [
38
            '24часа', '24/7', '3-го поколения', '4-го поколения', '5-го поколения', '6-го поколения', 'активация', 'анализ', 'ассиметричный', 'асинхронный', 'ориентированныйнаориентацию', 'фон', 'мониторинг пропускной способности', 'двунаправленный', 'раздвоенный', 'итоговый', 'ясное мышление', 'управляемый клиентом', 'клиент-сервер', 'связный', 'составной', 'контекстно-зависимый', 'контентно-ориентированный', 'выделенный', 'управляемый спросом', 'дидактический', 'направленный', 'дискретный', 'динамический', 'экоцентричный', 'уполномочивающий', 'охватывающий', 'четный', 'исполнительный', 'явный', 'отказоустойчивый', 'передний план', 'свежее мышление', 'полный диапазон', 'глобальный', 'включенный в сетку', 'эвристический', 'высокоуровневый', 'целостный', 'однородный', 'человеческий ресурс', 'гибридный', 'эффективный', 'инкрементальный', 'нематериальный', 'интерактивный', 'промежуточный', 'ведущий', 'локальный', 'логистический', 'развернутый', 'методический', 'критический', 'мобильный', 'модульный', 'мотивирующий', 'мультимедиа', 'мультисостояние', 'многозадачность', 'национальный', 'основанныйнапотребностях', 'нейтральный', 'следующее поколение', 'энергонезависимый', 'объектно-ориентированный', 'оптимальный', 'оптимизирующий', 'радикальный', 'в реальном времени', 'взаимный', 'региональный', 'отзывчивый', 'масштабируемый', 'вторичный', 'ориентированный на решение', 'стабильный', 'статический', 'систематический', 'системный', 'материальный', 'третичный', 'переходный', 'равномерный', 'восходящий тренд', 'ориентированный на пользователя', 'добавленная стоимость', 'веб-поддержка', 'хорошо модулированный', 'нулевое администрирование', 'нулевой дефект', 'нулевая терпимость',
39
        ],
40
        [
41
            'способности', 'открыть', 'адаптер', 'алгоритм', 'альянс', 'анализатор', 'приложения', 'подходить', 'архитектура', 'архив', 'время', 'отношение', 'тест', 'блокчейн', 'возможность', 'емкость', 'вызов', 'цепи', 'сотрудничество', 'сложность', 'понятие', 'конгломерат', 'случай', 'ядро', 'база данных', 'хранилищ данных', 'определение', 'эмуляция', 'кодировка', 'шифрования', 'экстранет', 'прошивки', 'гибкости', 'фокус-групповых', 'прогноз', 'раму', 'основы', 'функция', 'функциональные возможности', 'групповой', 'оборудование', 'число', 'иерархия', 'хаб', 'реализация', 'инфопосредников', 'инфраструктура', 'инициатива', 'монтаж', 'интерфейс', 'интранет', 'базы знаний', 'плечо', 'матрицы', 'матрица', 'методика', 'промежуточного', 'миграции', 'модель', 'модератор', 'контроль', 'мораторий', 'нейронные сети', 'согласование', 'парадигмы', 'параллельность', 'политика', 'портал', 'товара', 'производительности', 'проект', 'прогноз', 'протокол', 'сервис-бюро', 'программное обеспечение', 'решение', 'стандартизации', 'стратегия', 'структура', 'успех', 'надстройка', 'поддержка', 'синергия', 'команду', 'производительности', 'время', 'набор', 'загрузки', 'сайт', 'работников',
42
        ],
43
    ];
44
 
45
    /**
46
     * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%BE%D1%84%D0%B5%D1%81%D1%81%D0%B8%D0%B8
47
     *
48
     * @note Randomly took from this list - some jobs titles for each letter
49
     */
50
    protected static $jobTitleFormat = [
51
        'Абразивоструйщик', 'Автоинструктор', 'Администратор', 'Арт-директор', 'Архивист', 'Бариста', 'Бармен',
52
        'Бестиарий (гладиатор)', 'Бизнес-аналитик', 'Бухгалтер', 'Ветеринар', 'Водитель', 'Водолаз', 'Геймдизайнер',
53
        'Герольд', 'Гитарный мастер', 'Горный проводник', 'Детектив', 'Диджей', 'Диктор', 'Дипломат', 'Егерь', 'Жокей',
54
        'Зубной техник', 'Интеллектуал', 'Информационный работник', 'Кассир', 'Ковбой', 'Креативный директор', 'Критик',
55
        'Крупье', 'Лесоруб', 'Лингвист', 'Машинист', 'Менеджер', 'Музыкант', 'Научный сотрудник', 'Офис-менеджер',
56
        'Печник', 'Пианист', 'Писатель', 'Продюсер', 'Промоутер', 'Психолог', 'Радист', 'Редактор', 'Садовник',
57
        'Системный аналитик', 'Стилист', 'Столяр', 'Сторож', 'Телефонистка', 'Телохранитель', 'Технический писатель',
58
        'Учёный', 'Физик', 'Финансовый советник', 'Фотограф', 'Фрезеровщик', 'Художник', 'Чабан', 'Штурман',
59
        'Экономист', 'Электромонтёр',
60
    ];
61
 
62
    /**
63
     * @example 'Robust full-range hub'
64
     */
65
    public function catchPhrase()
66
    {
67
        $result = [];
68
 
69
        foreach (static::$catchPhraseWords as &$word) {
70
            $result[] = static::randomElement($word);
71
        }
72
 
73
        return implode(' ', $result);
74
    }
75
 
76
    /**
77
     * @example 'ООО АсбестЦементМонтаж'
78
     */
79
    public function company()
80
    {
81
        $format = static::randomElement(static::$companyNameFormats);
82
 
83
        return $this->generator->parse($format);
84
    }
85
 
86
    public static function companyPrefix()
87
    {
88
        return static::randomElement(static::$companyPrefixes);
89
    }
90
 
91
    public static function companyNameElement()
92
    {
93
        return static::randomElement(static::$companyElements);
94
    }
95
 
96
    public static function companyNameSuffix()
97
    {
98
        return static::randomElement(static::$companyNameSuffixes);
99
    }
100
 
101
    /**
102
     * Generates a Russian Taxpayer Personal Identification Number
103
     *
104
     * @param string $area_code
105
     *
106
     * @return string
107
     *
108
     * @deprecated use {@link \Faker\Provider\ru_RU\Company::inn10()} instead
109
     * @see \Faker\Provider\ru_RU\Company::inn10()
110
     */
111
    public static function inn($area_code = '')
112
    {
113
        return self::inn10($area_code);
114
    }
115
 
116
    /**
117
     * Generates a Russian Taxpayer Personal Identification Number
118
     *
119
     * @param string $area_code
120
     *
121
     * @return string
122
     */
123
    public static function inn10($area_code = '')
124
    {
125
        if ($area_code === '' || (int) $area_code === 0) {
126
            //Simple generation code for areas in Russian without check for valid
127
            $area_code = self::numberBetween(1, 91);
128
        } else {
129
            $area_code = (int) $area_code;
130
        }
131
        $area_code = str_pad($area_code, 2, '0', STR_PAD_LEFT);
132
        $inn_base = $area_code . static::numerify('#######');
133
 
134
        return $inn_base . self::inn10Checksum($inn_base);
135
    }
136
 
137
    public static function kpp($inn = '')
138
    {
139
        if ($inn === '' || strlen($inn) < 4) {
140
            $inn = self::inn10();
141
        }
142
 
143
        return substr($inn, 0, 4) . '01001';
144
    }
145
 
146
    /**
147
     * Generates INN Checksum
148
     *
149
     * @see https://ru.wikipedia.org/wiki/%D0%98%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80_%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%89%D0%B8%D0%BA%D0%B0
150
     *
151
     * @param string $inn
152
     *
153
     * @return string Checksum (one digit)
154
     */
155
    public static function inn10Checksum($inn)
156
    {
157
        $multipliers = [2, 4, 10, 3, 5, 9, 4, 6, 8];
158
        $sum = 0;
159
 
160
        for ($i = 0; $i < 9; ++$i) {
161
            $sum += (int) $inn[$i] * $multipliers[$i];
162
        }
163
 
164
        return (string) (($sum % 11) % 10);
165
    }
166
 
167
    /**
168
     * Checks whether an INN has a valid checksum
169
     *
170
     * @param string $inn
171
     *
172
     * @return bool
173
     */
174
    public static function inn10IsValid($inn)
175
    {
176
        return strlen($inn) === 10 && self::inn10Checksum($inn) === $inn[9];
177
    }
178
}