1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-17 20:58:01 +02:00

№286 Servicedesk: отправка уведомления заказчику, что задача выполнена

This commit is contained in:
Anton Ivanov 2018-02-11 11:02:29 +03:00
parent e6cd509ca0
commit c139487a69
3 changed files with 184 additions and 25 deletions

View File

@ -139,6 +139,7 @@
ВидыСобытий_ИзмененоОписаниеЗадачи = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененоОписаниеЗадачи");
ВидыСобытий_ИзменениеСтатуса = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзменениеСтатуса");
ВидыСобытий_ВходящееПисьмо = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ВходящееПисьмо");
ВидыСобытий_ВыполненаЗадача = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ВыполненаЗадача");
РезультатФункции.Вставить("ВидыСобытий_ДобавленаЗадача",ВидыСобытий_ДобавленаЗадача);
РезультатФункции.Вставить("ВидыСобытий_НовыйИсполнитель",ВидыСобытий_НовыйИсполнитель);
@ -147,6 +148,7 @@
РезультатФункции.Вставить("ВидыСобытий_ИзмененоОписаниеЗадачи",ВидыСобытий_ИзмененоОписаниеЗадачи);
РезультатФункции.Вставить("ВидыСобытий_ИзменениеСтатуса",ВидыСобытий_ИзменениеСтатуса);
РезультатФункции.Вставить("ВидыСобытий_ВходящееПисьмо",ВидыСобытий_ВходящееПисьмо);
РезультатФункции.Вставить("ВидыСобытий_ВыполненаЗадача",ВидыСобытий_ВыполненаЗадача);
МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки = Новый Массив();
МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ИзменениеСтатуса);
@ -172,6 +174,7 @@
МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки = Новый Массив();
МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ДобавленаЗадача);
МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ВыполненаЗадача);
РезультатФункции.Вставить("МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки",МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки);

View File

@ -205,6 +205,16 @@
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
ВидСтатуса_Готово = ПредопределенноеЗначение("Справочник.узВидыСтатусов.Готово");
Если СтарыйСтатус.ВидСтатуса <> ВидСтатуса_Готово
И Статус.ВидСтатуса = ВидСтатуса_Готово Тогда
ВидСобытия_ВыполненаЗадача = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ВыполненаЗадача");
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия_ВыполненаЗадача);
ПараметрыДляИстории.Вставить("Событие","Выполнена задача");
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Конецесли;
Конецесли;
@ -750,10 +760,19 @@
ИЛИ ЭтоОтправкаНаблюдателям Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Входящее письмо по задаче:";
Конецесли;
Конецесли;
ИначеЕсли ВидСобытия = НастройкиСобытий.ВидыСобытий_ВыполненаЗадача Тогда
Если ЭтоОтправкаКонтрагентам Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Ваша заявка выполнена:";
Конецесли;
Конецесли;
Иначе
Если ТЗСобытияВИсторииДляУведомлений.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель,"ВидСобытия") <> Неопределено Тогда
Если ЭтоОтправкаКонтрагентам
И ТЗСобытияВИсторииДляУведомлений.Найти(НастройкиСобытий.ВидыСобытий_ВыполненаЗадача,"ВидСобытия") <> Неопределено Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Ваша заявка выполнена:";
ИначеЕсли ТЗСобытияВИсторииДляУведомлений.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель,"ВидСобытия") <> Неопределено Тогда
Если ЭтоОтправкаИсполнителю Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = узОбщийМодульСервер.ПолучитьТекстСообщения("Вам была назначена задача:",31);
@ -781,8 +800,139 @@
Возврат РезультатФункции;
КонецФункции
Функция ПолучитьПараметрыПисьма(ДопПараметры)
//МассивКодовСообщений = Новый Массив();
//МассивКодовСообщений.Добавить(22); //Добрый день
//МассивКодовСообщений.Добавить(23); //Номер задачи
//МассивКодовСообщений.Добавить(24); //Описание задачи
//МассивКодовСообщений.Добавить(25); //Комментарии
//МассивКодовСообщений.Добавить(26); //Реквизиты задачи
//МассивКодовСообщений.Добавить(27); //Исполнитель
//МассивКодовСообщений.Добавить(28); //Статус
//МассивКодовСообщений.Добавить(29); //Важность
//МассивКодовСообщений.Добавить(30); //ОсновнаяЗадача
//
//СтруктураСообщений = узОбщийМодульСервер.ПолучитьСтруктуруСообщений(МассивКодовСообщений);
//
//ТекстВПисьмеДобрыйДень = СтруктураСообщений.Текст22;
//ТекстВПисьмеНомерЗадачи = СтруктураСообщений.Текст23;
//ТекстВПисьмеОписаниеЗадачи = СтруктураСообщений.Текст24;
//ТекстВПисьмеКомментарий = СтруктураСообщений.Текст25;
//ТекстВПисьмеРеквизитыЗадачи = СтруктураСообщений.Текст26;
//ТекстВПисьмеИсполнитель = СтруктураСообщений.Текст27;
//ТекстВПисьмеСтатус = СтруктураСообщений.Текст28;
//ТекстВПисьмеВажность = СтруктураСообщений.Текст29;
//ТекстВПисьмеОсновнаяЗадача = СтруктураСообщений.Текст30;
//
//
//ЭтоОтправкаКонтрагентам = Ложь;
//Если ДопПараметры.Свойство("ЭтоОтправкаКонтрагентам")
// И ДопПараметры.ЭтоОтправкаКонтрагентам Тогда
// ЭтоОтправкаКонтрагентам = Истина;
//Конецесли;
//
//ТемаПисьмаСобытие = ДопПараметры.ТемаПисьмаСобытие;
//МассивИзмененнийПоКомментариям = ДопПараметры.МассивИзмененнийПоКомментариям;
//
//РезультатФункции = Новый Структура();
//
//НаименованиеЗадачи = СокрЛП(Наименование);
//НомерЗадачи = ""+Формат(Код,"ЧГ=0");
//ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи;
//ТекстПисьма = "
//|"+ТекстВПисьмеДобрыйДень+".
//|
//|"+ТемаПисьмаСобытие+" "+НаименованиеЗадачи+"
//|"+ТекстВПисьмеНомерЗадачи+": #"+НомерЗадачи+"
//|";
//
//Если МассивИзмененнийПоКомментариям.Количество() = 0 Тогда
// Если ЗначениеЗаполнено(ТекстСодержания) Тогда
// ТекстПисьма = ТекстПисьма + "
// |
// |"+ТекстВПисьмеОписаниеЗадачи+":
// |"+ТекстСодержания+"
// |";
// Конецесли;
//Иначе
// ТекстПисьма = ТекстПисьма + "
// |
// |"+ТекстВПисьмеКомментарий+":";
// Для каждого ЭлМассивИзмененнийПоКомментариям из МассивИзмененнийПоКомментариям цикл
// ТекстПисьма = ТекстПисьма + Символы.ПС
// + " - "+ЭлМассивИзмененнийПоКомментариям;
// Конеццикла;
//Конецесли;
//
//Если НЕ ЭтоОтправкаКонтрагентам Тогда
// ТекстПисьма = ТекстПисьма + "
// |
// |"+ТекстВПисьмеРеквизитыЗадачи+":
// |- "+ТекстВПисьмеИсполнитель+" ["+Исполнитель+"]
// |- "+ТекстВПисьмеСтатус+" ["+Статус+"]
// |- "+ТекстВПисьмеВажность+" ["+Важность+"]
// |- "+ТекстВПисьмеОсновнаяЗадача+" ["+ОсновнаяЗадача+"]
// |";
//Конецесли;
НаименованиеЗадачи = СокрЛП(Наименование);
ТемаПисьмаСобытие = ДопПараметры.ТемаПисьмаСобытие;
НомерЗадачи = ""+Формат(Код,"ЧГ=0");
ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи;
ДопПараметры.Вставить("ТемаПисьма",ТемаПисьма);
ДопПараметры.Вставить("НомерЗадачи",НомерЗадачи);
ТекстПисьма = ПолучитьТекстПисьма(ДопПараметры);
РезультатФункции = Новый Структура();
РезультатФункции.Вставить("ТемаПисьма",ТемаПисьма);
РезультатФункции.Вставить("ТекстПисьма",ТекстПисьма);
Возврат РезультатФункции;
КонецФункции
Функция ПолучитьТекстПисьма(ДопПараметры)
Перем пТекстПисьма;
ЭтоОтправкаКонтрагентам = Ложь;
Если ДопПараметры.Свойство("ЭтоОтправкаКонтрагентам")
И ДопПараметры.ЭтоОтправкаКонтрагентам Тогда
ЭтоОтправкаКонтрагентам = Истина;
Конецесли;
Если ЭтоОтправкаКонтрагентам Тогда
пТекстПисьма = ПолучитьТекстПисьма_Контрагентам(ДопПараметры);
Иначе
пТекстПисьма = ПолучитьТекстПисьма_Общее(ДопПараметры);
Конецесли;
Возврат пТекстПисьма;
КонецФункции
Функция ПолучитьТекстПисьма_Контрагентам(ДопПараметры)
Перем ТекстПисьма;
ТемаПисьмаСобытие = ДопПараметры.ТемаПисьмаСобытие;
ТекстПисьма = "
| Добрый день.
|
| "+ТемаПисьмаСобытие+"
| Номер заявки: " + ДопПараметры.НомерЗадачи + "
| Тема заявки: "+ ДопПараметры.ТемаПисьма + "
|
| Описание задачи:
| "+ТекстСодержания+"
|";
Возврат ТекстПисьма;
КонецФункции
Функция ПолучитьТекстПисьма_Общее(ДопПараметры)
МассивКодовСообщений = Новый Массив();
МассивКодовСообщений.Добавить(22); //Добрый день
МассивКодовСообщений.Добавить(23); //Номер задачи
@ -806,13 +956,6 @@
ТекстВПисьмеВажность = СтруктураСообщений.Текст29;
ТекстВПисьмеОсновнаяЗадача = СтруктураСообщений.Текст30;
ЭтоОтправкаКонтрагентам = Ложь;
Если ДопПараметры.Свойство("ЭтоОтправкаКонтрагентам")
И ДопПараметры.ЭтоОтправкаКонтрагентам Тогда
ЭтоОтправкаКонтрагентам = Истина;
Конецесли;
ТемаПисьмаСобытие = ДопПараметры.ТемаПисьмаСобытие;
МассивИзмененнийПоКомментариям = ДопПараметры.МассивИзмененнийПоКомментариям;
@ -820,7 +963,7 @@
НаименованиеЗадачи = СокрЛП(Наименование);
НомерЗадачи = ""+Формат(Код,"ЧГ=0");
ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи;
//ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи;
ТекстПисьма = "
|"+ТекстВПисьмеДобрыйДень+".
|
@ -846,23 +989,19 @@
Конеццикла;
Конецесли;
Если НЕ ЭтоОтправкаКонтрагентам Тогда
ТекстПисьма = ТекстПисьма + "
|
|"+ТекстВПисьмеРеквизитыЗадачи+":
|- "+ТекстВПисьмеИсполнитель+" ["+Исполнитель+"]
|- "+ТекстВПисьмеСтатус+" ["+Статус+"]
|- "+ТекстВПисьмеВажность+" ["+Важность+"]
|- "+ТекстВПисьмеОсновнаяЗадача+" ["+ОсновнаяЗадача+"]
|";
Конецесли;
ТекстПисьма = ТекстПисьма + "
|
|"+ТекстВПисьмеРеквизитыЗадачи+":
|- "+ТекстВПисьмеИсполнитель+" ["+Исполнитель+"]
|- "+ТекстВПисьмеСтатус+" ["+Статус+"]
|- "+ТекстВПисьмеВажность+" ["+Важность+"]
|- "+ТекстВПисьмеОсновнаяЗадача+" ["+ОсновнаяЗадача+"]
|";
РезультатФункции.Вставить("ТемаПисьма",ТемаПисьма);
РезультатФункции.Вставить("ТекстПисьма",ТекстПисьма);
Возврат РезультатФункции;
Возврат ТекстПисьма;
КонецФункции
Функция ЕстьПодчиненныеЗадачи(Задача,ЗадачаРебенок = Неопределено) Экспорт
пЕстьПодчиненныеЗадачи = Ложь;
Если ЭтоНовый() Тогда
@ -1100,3 +1239,8 @@
МассивСтатусов.Добавить(Выборка.Ссылка);
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
КонецПроцедуры

View File

@ -270,6 +270,18 @@
<Comment/>
</Properties>
</EnumValue>
<EnumValue uuid="78acbc1f-0162-4db0-8ebc-f6e06aa5f88a">
<Properties>
<Name>ВыполненаЗадача</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выполнена задача</v8:content>
</v8:item>
</Synonym>
<Comment/>
</Properties>
</EnumValue>
</ChildObjects>
</Enum>
</MetaDataObject>