forked from Vladislav_k0ncept/Element_Test_V2
246 lines
12 KiB
Plaintext
246 lines
12 KiB
Plaintext
импорт Основное
|
||
импорт Мероприятия
|
||
импорт Общие
|
||
|
||
@Обработчик
|
||
метод ВычислитьРазрешенияДоступа(): Массив<РазрешениеДоступа>
|
||
возврат [ПользователиКлиентИСервер.ПолныеПраваНаСправочникДляАутентифицированных()]
|
||
;
|
||
|
||
@Обработчик
|
||
метод ВычислитьРазрешенияДоступаДляОбъектов(Объекты: ЧитаемыйМассив<Сделки.ДанныеРасчетаРазрешений>): Соответствие<Сделки.ДанныеРасчетаРазрешений, Массив<РазрешениеДоступа>>
|
||
знч Результат = <Сделки.ДанныеРасчетаРазрешений, Массив<РазрешениеДоступа>>{:}
|
||
|
||
знч КлиентыСделок = Объекты.Преобразовать(Объект -> Объект.Клиент!).Уникальные()
|
||
|
||
знч РегионыКлиентов = Клиенты.ПолучитьРегионыКлиентов(КлиентыСделок)
|
||
|
||
для Объект из Объекты
|
||
знч Разрешения = <РазрешениеДоступа>[
|
||
ПользователиКлиентИСервер.ПолныеПраваНаСправочникДляРуководителя(),
|
||
новый РазрешениеДоступа(
|
||
[новый КлючДоступаМенеджера.Объект(Владелец = РегионыКлиентов.Получить(Объект.Клиент))],
|
||
[Сущность.Право.Создание, Сущность.Право.Чтение, Сущность.Право.Изменение, Сущность.Право.Удаление])
|
||
]
|
||
|
||
Результат.Вставить(Объект, Разрешения)
|
||
;
|
||
|
||
возврат Результат
|
||
;
|
||
|
||
@ВПроекте
|
||
метод ПолучитьСтатистикуАктивныхСделок(): СтатистикаСделок
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
КОЛИЧЕСТВО(*) КАК ОбщееКоличество,
|
||
СУММА(СуммаВВалютеУчета).ЗаменитьNull(0) КАК ОбщаяСумма
|
||
ПОРОДИТЬ СтатистикаСделок
|
||
ИЗ
|
||
Сделки
|
||
ГДЕ
|
||
Стадия.Вид == ВидСтадииСделки.Активна
|
||
}
|
||
|
||
возврат Запрос.Выполнить().Единственный()
|
||
;
|
||
|
||
@ВПроекте
|
||
метод СуммаВыигранныхСделокПоНаправлениям(): Соответствие<Направления.Ссылка, Число>
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Направление,
|
||
СУММА(СуммаВВалютеУчета) КАК Сумма
|
||
ИЗ
|
||
Сделки
|
||
ГДЕ
|
||
Стадия.Вид == ВидСтадииСделки.ЗакрытаВыиграна
|
||
СГРУППИРОВАТЬ ПО
|
||
Направление
|
||
}
|
||
|
||
исп РезультатЗапроса = Запрос.Выполнить()
|
||
|
||
знч СуммаСделок = новый Соответствие<Направления.Ссылка, Число>()
|
||
|
||
для СтрокаРезультата из РезультатЗапроса
|
||
СуммаСделок.Вставить(СтрокаРезультата.Направление, СтрокаРезультата.Сумма)
|
||
;
|
||
|
||
возврат СуммаСделок
|
||
;
|
||
|
||
@ВПроекте
|
||
метод КоличествоСделокПоАктивнымСтадиям(): Соответствие<СтадииСделок.Ссылка, Число>
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Стадия,
|
||
КОЛИЧЕСТВО(*) КАК Количество
|
||
ИЗ
|
||
Сделки
|
||
ГДЕ
|
||
Стадия.Вид == ВидСтадииСделки.Активна
|
||
СГРУППИРОВАТЬ ПО
|
||
Стадия
|
||
}
|
||
|
||
исп РезультатЗапроса = Запрос.Выполнить()
|
||
|
||
знч КоличествоСделок = новый Соответствие<СтадииСделок.Ссылка, Число>()
|
||
|
||
для СтрокаРезультата из РезультатЗапроса
|
||
КоличествоСделок.Вставить(СтрокаРезультата.Стадия, СтрокаРезультата.Количество)
|
||
;
|
||
|
||
возврат КоличествоСделок
|
||
;
|
||
|
||
@ВПроекте
|
||
метод ПолучитьДанныеСделок(Сделки: ЧитаемыйМассив<Сделки.Ссылка>): ЧитаемыйМассив<ДанныеСделки>
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Сделки.Ссылка КАК Ссылка,
|
||
Сделки.Код КАК Код,
|
||
Сделки.Наименование КАК Наименование,
|
||
Сделки.Ответственный КАК Ответственный,
|
||
Сделки.ДатаСоздания КАК ДатаСоздания,
|
||
Сделки.ДатаЗакрытия КАК ДатаЗакрытия,
|
||
Сделки.Клиент КАК Клиент,
|
||
Сделки.Стадия КАК Стадия,
|
||
Сделки.СуммаВВалютеСделки КАК СуммаВВалютеСделки,
|
||
Сделки.СуммаВВалютеУчета КАК СуммаВВалютеУчета,
|
||
Сделки.ВалютаСделки.Код.ЗаменитьNull(Неопределено) КАК КодВалютыСделки,
|
||
КОЛИЧЕСТВО(Задачи.Ссылка) КАК КоличествоОткрытыхЗадач
|
||
ЗАПОЛНИТЬ ДанныеСделки
|
||
ИЗ
|
||
Сделки КАК Сделки
|
||
ЛЕВОЕ СОЕДИНЕНИЕ Задачи КАК Задачи
|
||
ПО Сделки.Ссылка == Задачи.Владелец
|
||
И Задачи.Статус В (СтатусМероприятия.Запланировано, СтатусМероприятия.ВПроцессе)
|
||
ГДЕ
|
||
Сделки.Ссылка В (%Сделки)
|
||
СГРУППИРОВАТЬ ПО
|
||
Сделки.Ссылка,
|
||
Сделки.Код,
|
||
Сделки.Наименование,
|
||
Сделки.Ответственный,
|
||
Сделки.ДатаСоздания,
|
||
Сделки.ДатаЗакрытия,
|
||
Сделки.Клиент,
|
||
Сделки.Стадия,
|
||
Сделки.СуммаВВалютеСделки,
|
||
Сделки.СуммаВВалютеУчета,
|
||
Сделки.ВалютаСделки.Код
|
||
УПОРЯДОЧИТЬ ПО
|
||
ДатаСоздания УБЫВ
|
||
}
|
||
|
||
возврат Запрос.Выполнить().ВМассив()
|
||
;
|
||
|
||
@ВПроекте
|
||
метод ПолучитьКлиентаСделки(Сделка: Сделки.Ссылка): Клиенты.Ссылка?
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Сделки.Клиент
|
||
ИЗ
|
||
Сделки КАК Сделки
|
||
ГДЕ
|
||
Ссылка == %Сделка
|
||
}
|
||
|
||
возврат Запрос.Выполнить().Единственный().Клиент
|
||
;
|
||
|
||
@ВПроекте
|
||
метод ПолучитьРегионыСделок(Сделки: Коллекция<Сделки.Ссылка>): ЧитаемоеСоответствие<Сделки.Ссылка, Регионы.Ссылка>
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Ссылка КАК Сделка,
|
||
Клиент.Регион.ЗаменитьNull(Неопределено) КАК Регион
|
||
ИЗ
|
||
Сделки
|
||
Где
|
||
Ссылка В (%Сделки)
|
||
}
|
||
|
||
знч РегионыСделок = <Сделки.Ссылка, Регионы.Ссылка>{:}
|
||
|
||
исп РезультатЗапроса = Запрос.Выполнить()
|
||
для СтрокаРезультата из РезультатЗапроса
|
||
РегионыСделок.Вставить(СтрокаРезультата.Сделка, СтрокаРезультата.Регион)
|
||
;
|
||
|
||
возврат РегионыСделок
|
||
;
|
||
|
||
@ВПроекте
|
||
метод ПолучитьЗадачиСделки(Сделка: Сделки.Ссылка): ЧитаемыйМассив<Задачи.Ссылка>
|
||
возврат ПолучитьЗадачиСделок([Сделка])
|
||
;
|
||
|
||
@ВПроекте
|
||
метод ПолучитьЗадачиСделок(Сделки: Обходимое<Сделки.Ссылка>): ЧитаемыйМассив<Задачи.Ссылка>
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Ссылка
|
||
ИЗ
|
||
Задачи
|
||
ГДЕ
|
||
Владелец В (%Сделки)
|
||
}
|
||
|
||
возврат Запрос.Выполнить().Преобразовать(СтрокаРезультатаЗапроса -> СтрокаРезультатаЗапроса.Ссылка)
|
||
;
|
||
|
||
@ВПроекте
|
||
метод ПолучитьСобытияСделки(Сделка: Сделки.Ссылка): ЧитаемыйМассив<События.Ссылка>
|
||
возврат ПолучитьСобытияСделок([Сделка])
|
||
;
|
||
|
||
@ВПроекте
|
||
метод ПолучитьСобытияСделок(Сделки: Обходимое<Сделки.Ссылка>): ЧитаемыйМассив<События.Ссылка>
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Ссылка
|
||
ИЗ
|
||
События
|
||
ГДЕ
|
||
Владелец В (%Сделки)
|
||
}
|
||
|
||
возврат Запрос.Выполнить().Преобразовать(СтрокаРезультатаЗапроса -> СтрокаРезультатаЗапроса.Ссылка)
|
||
;
|
||
|
||
@ВПодсистеме
|
||
@НаСервере @ДоступноСКлиента
|
||
метод ЕстьЗадачиПоСделке(Сделка: Сделки.Ссылка): Булево
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ ПЕРВЫЕ 1
|
||
Ссылка
|
||
ИЗ
|
||
Задачи
|
||
ГДЕ
|
||
Владелец == %Сделка
|
||
}
|
||
|
||
исп РезультатЗапроса = Запрос.Выполнить()
|
||
возврат не РезультатЗапроса.Пусто()
|
||
;
|
||
|
||
@ВПодсистеме
|
||
@НаСервере @ДоступноСКлиента
|
||
метод ЕстьСобытияПоСделке(Сделка: Сделки.Ссылка): Булево
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ ПЕРВЫЕ 1
|
||
Ссылка
|
||
ИЗ
|
||
События
|
||
ГДЕ
|
||
Владелец == %Сделка
|
||
}
|
||
|
||
исп РезультатЗапроса = Запрос.Выполнить()
|
||
возврат не РезультатЗапроса.Пусто()
|
||
;
|