1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-19 21:07:53 +02:00

#18 При переносе в статус архив не отправлять уведомления (УЗ 120)

This commit is contained in:
Anton Ivanov 2017-01-04 17:28:13 +03:00
parent 60b78077c8
commit b9422703be

View File

@ -81,18 +81,27 @@
СобытияВИстории = Новый Структура();
СобытияВИстории.Вставить("СтарыйИсполнитель",СтарыйИсполнитель);
ТЗСобытияВИстории = Новый ТаблицаЗначений;
ТЗСобытияВИстории.Колонки.Добавить("ВидСобытия",Новый ОписаниеТипов("ПеречислениеСсылка.узВидыСобытий"));
ТЗСобытияВИсторииДляУведомлений = Новый ТаблицаЗначений;
ТЗСобытияВИсторииДляУведомлений.Колонки.Добавить("ВидСобытия",Новый ОписаниеТипов("ПеречислениеСсылка.узВидыСобытий"));
ДатаСобытия = ТекущаяДата();
пАвтор = Пользователи.ТекущийПользователь();
ПараметрыДляИстории = Новый Структура();
ПараметрыДляИстории.Вставить("ДатаСобытия",ДатаСобытия);
ПараметрыДляИстории.Вставить("Автор",пАвтор);
ПараметрыДляИстории.Вставить("НовыйСтатус",Статус);
Если ЭтоНовый() Тогда
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленаЗадача");
Событие = "Добавлена задача";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
ДобавитьВИсториюСтатусов();
СобытияВИстории.Вставить("ТЗСобытияВИстории",ТЗСобытияВИстории);
СобытияВИстории.Вставить("ТЗСобытияВИсторииДляУведомлений",ТЗСобытияВИсторииДляУведомлений);
Возврат СобытияВИстории;
Конецесли;
@ -104,7 +113,11 @@
Иначе
Событие = "Изменен исполнитель с ["+СтарыйИсполнитель+"] на [" + Исполнитель+"]";
Конецесли;
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
ДобавитьВИсториюСтатусов();
Конецесли;
@ -114,20 +127,31 @@
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзменениеСтатуса");
Событие = "Изменен статус с ["+СтарыйСтатус+"] на [" + Статус+"]";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Конецесли;
СтарыеКомментарии = Ссылка.Комментарии;
Если Комментарии.Количество() <> СтарыеКомментарии.Количество() Тогда
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленКомментарий");
Событие = "Добавлен новый комментарий";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Иначе
ИзменилисьЛиКомментарии = ПолучитьИзменилисьЛиКомментарии();
Если ИзменилисьЛиКомментарии Тогда
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененКомментарий");
Событие = "Изменили комментарий";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Конецесли;
Конецесли;
@ -138,12 +162,15 @@
ИЛИ СокрЛП(ТекстСодержания) <> СтароеТекстСодержания Тогда
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененоОписаниеЗадачи");
Событие = "Изменено описание задачи";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Конецесли;
История.Сортировать("ДатаСобытия УБЫВ");
СобытияВИстории.Вставить("ТЗСобытияВИстории",ТЗСобытияВИстории);
СобытияВИстории.Вставить("ТЗСобытияВИсторииДляУведомлений",ТЗСобытияВИсторииДляУведомлений);
Возврат СобытияВИстории;
@ -196,16 +223,20 @@
СтрокаИсторияСтатусов.ДатаОкончания = ТекущаяДата();
КонецПроцедуры
Процедура ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории)
Процедура ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений)
СтрокаИстория = История.Добавить();
СтрокаИстория.ДатаСобытия = ДатаСобытия;
СтрокаИстория.Автор = пАвтор;
СтрокаИстория.ВидСобытия = ВидСобытия;
СтрокаИстория.Событие = Событие;
СтрокаИстория.ДатаСобытия = ПараметрыДляИстории.ДатаСобытия;
СтрокаИстория.Автор = ПараметрыДляИстории.Автор;
СтрокаИстория.ВидСобытия = ПараметрыДляИстории.ВидСобытия;
СтрокаИстория.Событие = ПараметрыДляИстории.Событие;
СтрокаТЗСобытияВИстории = ТЗСобытияВИстории.Добавить();
СтрокаТЗСобытияВИстории.ВидСобытия = ВидСобытия;
Если ПараметрыДляИстории.НовыйСтатус = ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Архив") Тогда
Возврат;
Конецесли;
СтрокаТЗСобытияВИсторииДляУведомлений = ТЗСобытияВИсторииДляУведомлений.Добавить();
СтрокаТЗСобытияВИсторииДляУведомлений.ВидСобытия = ПараметрыДляИстории.ВидСобытия;
КонецПроцедуры
Процедура ОтправитьУведомлениеНаПочту(СобытияВИстории)
@ -273,8 +304,8 @@
Если ТекПользователь = Исполнитель Тогда
Возврат;
Конецесли;
ТЗСобытияВИстории = СобытияВИстории.ТЗСобытияВИстории;
ВсегоСобытий = ТЗСобытияВИстории.Количество();
ТЗСобытияВИсторииДляУведомлений = СобытияВИстории.ТЗСобытияВИсторииДляУведомлений;
ВсегоСобытий = ТЗСобытияВИсторииДляУведомлений.Количество();
Если ВсегоСобытий = 0 Тогда
Возврат;
Конецесли;
@ -317,8 +348,8 @@
Возврат;
КонецЕсли;
ТЗСобытияВИстории = СобытияВИстории.ТЗСобытияВИстории;
ВсегоСобытий = ТЗСобытияВИстории.Количество();
ТЗСобытияВИсторииДляУведомлений = СобытияВИстории.ТЗСобытияВИсторииДляУведомлений;
ВсегоСобытий = ТЗСобытияВИсторииДляУведомлений.Количество();
Если ВсегоСобытий = 0 Тогда
Возврат;
Конецесли;
@ -343,8 +374,8 @@
КонецПроцедуры
Процедура ОтправитьУведомлениеНаПочтуНаблюдателям(НастройкиСобытий,СобытияВИстории)
ТЗСобытияВИстории = СобытияВИстории.ТЗСобытияВИстории;
ВсегоСобытий = ТЗСобытияВИстории.Количество();
ТЗСобытияВИсторииДляУведомлений = СобытияВИстории.ТЗСобытияВИсторииДляУведомлений;
ВсегоСобытий = ТЗСобытияВИсторииДляУведомлений.Количество();
Если ВсегоСобытий = 0 Тогда
Возврат;
Конецесли;
@ -399,7 +430,7 @@
Функция ПолучитьТемаПисьмаСобытие(ДопПараметры,СобытияВИстории)
ТЗСобытияВИстории = СобытияВИстории.ТЗСобытияВИстории;
ТЗСобытияВИсторииДляУведомлений = СобытияВИстории.ТЗСобытияВИсторииДляУведомлений;
РезультатФункции = Новый Структура();
НастройкиСобытий = ДопПараметры.НастройкиСобытий;
@ -425,10 +456,10 @@
НеобходимоОтправитьУведомление = Ложь;
ТемаПисьмаСобытие = "";
ВсегоСобытий = ТЗСобытияВИстории.Количество();
ВсегоСобытий = ТЗСобытияВИсторииДляУведомлений.Количество();
Если ВсегоСобытий = 1 Тогда
СтрокаТЗСобытияВИстории = ТЗСобытияВИстории[0];
ВидСобытия = СтрокаТЗСобытияВИстории.ВидСобытия;
СтрокаТЗСобытияВИсторииДляУведомлений = ТЗСобытияВИсторииДляУведомлений[0];
ВидСобытия = СтрокаТЗСобытияВИсторииДляУведомлений.ВидСобытия;
Если ВидСобытия = НастройкиСобытий.ВидыСобытий_ДобавленаЗадача Тогда
Если ЭтоОтправкаИсполнителю Тогда
НеобходимоОтправитьУведомление = Истина;
@ -463,7 +494,7 @@
Конецесли;
Конецесли;
Иначе
Если ТЗСобытияВИстории.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель,"ВидСобытия") <> Неопределено Тогда
Если ТЗСобытияВИсторииДляУведомлений.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель,"ВидСобытия") <> Неопределено Тогда
Если ЭтоОтправкаИсполнителю Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Вам была назначена задача: ";
@ -474,8 +505,8 @@
ТемаПисьмаСобытие = "Изменился исполнитель у задачи:";
Конецесли;
Иначе
Для каждого СтрокаТЗСобытияВИстории из ТЗСобытияВИстории цикл
ВидСобытия = СтрокаТЗСобытияВИстории.ВидСобытия;
Для каждого СтрокаТЗСобытияВИсторииДляУведомлений из ТЗСобытияВИсторииДляУведомлений цикл
ВидСобытия = СтрокаТЗСобытияВИсторииДляУведомлений.ВидСобытия;
Если МассивСобытийКоторыеПодлежатОтправки.Найти(ВидСобытия) <> Неопределено Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Изменена задача: ";