Skip to content

Commit

Permalink
Merge pull request #18 from alei1180/17-add-status-complete
Browse files Browse the repository at this point in the history
Добавлен фильтр по завершенным задачам Битрикс24
  • Loading branch information
alei1180 authored Nov 29, 2023
2 parents f966f6e + 59ac343 commit 4ff44b6
Show file tree
Hide file tree
Showing 5 changed files with 175 additions and 72 deletions.
Binary file modified bin/ClockifyToBitrix24.epf
Binary file not shown.
22 changes: 15 additions & 7 deletions src/ClockifyToBitrix24/Ext/ObjectModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -236,13 +236,13 @@
Функция Bitrix_Задача_ПолучитьИнформацию(URL,
Вебхук,
НомераЗадач,
ПолучитьНазваниеЗадачи = Истина,
ПолучитьОписаниеЗадачи = Ложь,
ПолучитьСтатусЗадачи = Ложь,
ПолучитьПостановщика = Ложь,
ПолучитьОтветственного = Ложь,
ПолучитьСоисполнителей = Ложь,
ПолучитьНаблюдателей = Ложь) Экспорт
ПолучитьНазваниеЗадачи = Истина,
ПолучитьОписаниеЗадачи = Ложь,
ПолучитьСтатусЗадачи = Ложь,
ПолучитьПостановщика = Ложь,
ПолучитьОтветственного = Ложь,
ПолучитьСоисполнителей = Ложь,
ПолучитьНаблюдателей = Ложь) Экспорт

Если НЕ ТипЗнч(НомераЗадач) = Тип("Массив") Тогда
Возврат Неопределено;
Expand Down Expand Up @@ -272,6 +272,9 @@
Если ПолучитьНаблюдателей Тогда
ТЗ.Колонки.Добавить("Наблюдатели");
КонецЕсли;
Если ПолучитьСтатусЗадачи Тогда
ТЗ.Колонки.Добавить("Завершена");
КонецЕсли;

МассивПолучаемыхПолей = Новый Массив;

Expand All @@ -296,6 +299,7 @@
Если ПолучитьНаблюдателей Тогда
МассивПолучаемыхПолей.Добавить("AUDITORS");
КонецЕсли;


СтрПолучаемыеПоля = СтрСоединить(МассивПолучаемыхПолей, "&select[]=");
СтрНомераЗадач = СтрСоединить(НомераЗадач, "&filter[ID][]=");
Expand Down Expand Up @@ -363,6 +367,10 @@
КонецЦикла;
СтрТЗ.Наблюдатели = СтрСоединить(МассивФИОНаблюдатели, ", ");
КонецЕсли;
Если ПолучитьСтатусЗадачи Тогда
СтрТЗ.Завершена = ЗадачаБитрикс.Получить("status") = "5";
КонецЕсли;


КонецЦикла;

Expand Down
179 changes: 126 additions & 53 deletions src/ClockifyToBitrix24/Forms/Форма/Ext/Form.xml
Original file line number Diff line number Diff line change
Expand Up @@ -73,62 +73,96 @@
</Button>
<InputField name="ДатаС" id="50">
<DataPath>ДатаС</DataPath>
<TitleLocation>Left</TitleLocation>
<ClearButton>true</ClearButton>
<ContextMenu name="ДатаСКонтекстноеМеню" id="51"/>
<ExtendedTooltip name="ДатаСРасширеннаяПодсказка" id="52"/>
</InputField>
<RadioButtonField name="ФильтрПоНевыгруженнымВБитрикс" id="101">
<DataPath>ФильтрПоНевыгруженнымВБитрикс</DataPath>
<TitleLocation>None</TitleLocation>
<RadioButtonType>Tumbler</RadioButtonType>
<ChoiceList>
<xr:Item>
<xr:Presentation/>
<xr:CheckState>0</xr:CheckState>
<xr:Value xsi:type="FormChoiceListDesTimeValue">
<Presentation>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Все</v8:content>
</v8:item>
</Presentation>
<Value xsi:type="xs:decimal">0</Value>
</xr:Value>
</xr:Item>
<xr:Item>
<xr:Presentation/>
<xr:CheckState>0</xr:CheckState>
<xr:Value xsi:type="FormChoiceListDesTimeValue">
<Presentation>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Не выгруженные</v8:content>
</v8:item>
</Presentation>
<Value xsi:type="xs:decimal">1</Value>
</xr:Value>
</xr:Item>
</ChoiceList>
<ContextMenu name="ФильтрПоНевыгруженнымВБитриксКонтекстноеМеню" id="102"/>
<ExtendedTooltip name="ФильтрПоНевыгруженнымВБитриксРасширеннаяПодсказка" id="103"/>
<Events>
<Event name="OnChange">ФильтрПоНевыгруженнымВБитриксПриИзменении</Event>
</Events>
</RadioButtonField>
<InputField name="БитриксСписокЗадач" id="149">
<DataPath>БитриксСписокЗадач</DataPath>
<AutoMaxWidth>false</AutoMaxWidth>
<MaxWidth>18</MaxWidth>
<HorizontalStretch>false</HorizontalStretch>
<ClearButton>true</ClearButton>
<ListChoiceMode>true</ListChoiceMode>
<ContextMenu name="БитриксСписокЗадачКонтекстноеМеню" id="150"/>
<ExtendedTooltip name="БитриксСписокЗадачРасширеннаяПодсказка" id="151"/>
<Events>
<Event name="OnChange">БитриксСписокЗадачПриИзменении</Event>
<Event name="AutoComplete">БитриксСписокЗадачАвтоПодбор</Event>
</Events>
</InputField>
<UsualGroup name="ГруппаФильтровЗатраченноеВремя" id="158">
<Enabled>false</Enabled>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа фильтров затраченное время</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа фильтров затраченное время</v8:content>
</v8:item>
</ToolTip>
<Group>AlwaysHorizontal</Group>
<Behavior>Usual</Behavior>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаФильтровЗатраченноеВремяРасширеннаяПодсказка" id="159"/>
<ChildItems>
<RadioButtonField name="ФильтрПоНевыгруженнымВБитрикс" id="101">
<DataPath>ФильтрПоНевыгруженнымВБитрикс</DataPath>
<TitleLocation>None</TitleLocation>
<RadioButtonType>Tumbler</RadioButtonType>
<ChoiceList>
<xr:Item>
<xr:Presentation/>
<xr:CheckState>0</xr:CheckState>
<xr:Value xsi:type="FormChoiceListDesTimeValue">
<Presentation>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Все</v8:content>
</v8:item>
</Presentation>
<Value xsi:type="xs:decimal">0</Value>
</xr:Value>
</xr:Item>
<xr:Item>
<xr:Presentation/>
<xr:CheckState>0</xr:CheckState>
<xr:Value xsi:type="FormChoiceListDesTimeValue">
<Presentation>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Не выгруженные</v8:content>
</v8:item>
</Presentation>
<Value xsi:type="xs:decimal">1</Value>
</xr:Value>
</xr:Item>
</ChoiceList>
<ContextMenu name="ФильтрПоНевыгруженнымВБитриксКонтекстноеМеню" id="102"/>
<ExtendedTooltip name="ФильтрПоНевыгруженнымВБитриксРасширеннаяПодсказка" id="103"/>
<Events>
<Event name="OnChange">ФильтрПоНевыгруженнымВБитриксПриИзменении</Event>
</Events>
</RadioButtonField>
<InputField name="БитриксСписокЗадач" id="149">
<DataPath>БитриксСписокЗадач</DataPath>
<TitleLocation>Left</TitleLocation>
<AutoMaxWidth>false</AutoMaxWidth>
<MaxWidth>18</MaxWidth>
<HorizontalStretch>false</HorizontalStretch>
<ClearButton>true</ClearButton>
<ListChoiceMode>true</ListChoiceMode>
<ContextMenu name="БитриксСписокЗадачКонтекстноеМеню" id="150"/>
<ExtendedTooltip name="БитриксСписокЗадачРасширеннаяПодсказка" id="151"/>
<Events>
<Event name="OnChange">БитриксСписокЗадачПриИзменении</Event>
<Event name="AutoComplete">БитриксСписокЗадачАвтоПодбор</Event>
</Events>
</InputField>
<CheckBoxField name="ФильтрПоЗавершеннымЗадачамБитрикс" id="155">
<DataPath>ФильтрПоЗавершеннымЗадачамБитрикс</DataPath>
<TitleLocation>Right</TitleLocation>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ФильтрПоЗавершеннымЗадачамБитриксКонтекстноеМеню" id="156"/>
<ExtendedTooltip name="ФильтрПоЗавершеннымЗадачамБитриксРасширеннаяПодсказка" id="157"/>
<Events>
<Event name="OnChange">ФильтрПоЗавершеннымЗадачамБитриксПриИзменении</Event>
</Events>
</CheckBoxField>
</ChildItems>
</UsualGroup>
</ChildItems>
</UsualGroup>
<Table name="ЗатраченноеВремя" id="21">
Expand Down Expand Up @@ -184,7 +218,7 @@
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Учтено в Б24</v8:content>
<v8:content>Запись выгружена в Б24</v8:content>
</v8:item>
</ToolTip>
<EditMode>EnterOnInput</EditMode>
Expand Down Expand Up @@ -222,6 +256,23 @@
<ContextMenu name="ЗатраченноеВремяНазваниеЗадачиКонтекстноеМеню" id="57"/>
<ExtendedTooltip name="ЗатраченноеВремяНазваниеЗадачиРасширеннаяПодсказка" id="58"/>
</InputField>
<LabelField name="ЗатраченноеВремяЗавершена" id="152">
<DataPath>ЗатраченноеВремя.Завершена</DataPath>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Битрикс задача в статусе завершена</v8:content>
</v8:item>
</ToolTip>
<HorizontalAlign>Center</HorizontalAlign>
<EditMode>EnterOnInput</EditMode>
<HeaderPicture>
<xr:Abs>HeaderPicture.png</xr:Abs>
<xr:LoadTransparent>false</xr:LoadTransparent>
</HeaderPicture>
<ContextMenu name="ЗатраченноеВремяЗавершенаКонтекстноеМеню" id="153"/>
<ExtendedTooltip name="ЗатраченноеВремяЗавершенаРасширеннаяПодсказка" id="154"/>
</LabelField>
<InputField name="ЗатраченноеВремяДата" id="34">
<DataPath>ЗатраченноеВремя.Дата</DataPath>
<EditMode>EnterOnInput</EditMode>
Expand Down Expand Up @@ -751,6 +802,17 @@ https://&lt;you bitrix&gt;.bitrix24.ru/company/personal/user/&lt;user id&gt;/</v
</v8:DateQualifiers>
</Type>
</Column>
<Column name="Завершена" id="10">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Завершена</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Column>
</Columns>
</Attribute>
<Attribute name="ДатаС" id="5">
Expand Down Expand Up @@ -955,6 +1017,17 @@ https://&lt;you bitrix&gt;.bitrix24.ru/company/personal/user/&lt;user id&gt;/</v
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ФильтрПоЗавершеннымЗадачамБитрикс" id="13">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Завершённые задачи</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<ConditionalAppearance>
<dcsset:item>
<dcsset:selection>
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 34 additions & 12 deletions src/ClockifyToBitrix24/Forms/Форма/Ext/Form/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
ОчиститьСообщения();
ОчиститьЗатраченноеВремя();
ФильтрПоНевыгруженнымВБитрикс = 0;
ФильтрПоЗавершеннымЗадачамБитрикс = Ложь;

Если НЕ ПроверитьЗаполнение() Тогда
Возврат;
Expand All @@ -50,7 +51,8 @@
ЗаполнитьБитриксСписокЗадач();
ПересчитатьПодвал();
УстановитьВидомостьОшибок();

УстановитьВидимостьГруппыФильтровЗатраченноеВремя();

КонецПроцедуры

&НаКлиенте
Expand Down Expand Up @@ -224,6 +226,14 @@

КонецПроцедуры

&НаКлиенте
Процедура ФильтрПоЗавершеннымЗадачамБитриксПриИзменении(Элемент)

ЗатраченноеВремяУстановитьОтборСтрок();
ПересчитатьПодвал();

КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции
Expand All @@ -248,13 +258,13 @@

Ошибки.Очистить();

ТЗНазваниеЗадачБитрикс = НазваниеЗадачБитрикс(МассивНомеровЗадач);
Если НЕ ЗначениеЗаполнено(ТЗНазваниеЗадачБитрикс) Тогда
ИнформацияПоЗадачамБитрикс = ИнформацияПоЗадачамБитрикс(МассивНомеровЗадач);
Если НЕ ЗначениеЗаполнено(ИнформацияПоЗадачамБитрикс) Тогда
СообщитьПользователю("В комментариях по затраченному времени Clockify, не указано ни одного номера задачи", Неопределено, Неопределено);
Возврат;
КонецЕсли;

МассивАктуальныхНомеровЗадач = ТЗНазваниеЗадачБитрикс.ВыгрузитьКолонку("НомерЗадачи");
МассивАктуальныхНомеровЗадач = ИнформацияПоЗадачамБитрикс.ВыгрузитьКолонку("НомерЗадачи");

Для Каждого ClockifyДанные Из ClockifyДанныеПоЗатраченномуВремени Цикл

Expand Down Expand Up @@ -290,10 +300,11 @@
СтрЗатраченоеВремя.УчтеноВБитрикс = ЗначениеЗаполнено(НайденноеВремяБитрикс);

НомерЗадачи = СокрЛП(СтрРазделить(ClockifyДанные.description, " ", Ложь)[0]);
СтрТЗНазваниеЗадачБитрикс = ТЗНазваниеЗадачБитрикс.Найти(НомерЗадачи, "НомерЗадачи");
Если НЕ СтрТЗНазваниеЗадачБитрикс = Неопределено Тогда
СтрЗатраченоеВремя.НомерЗадачи = СтрТЗНазваниеЗадачБитрикс.НомерЗадачи;
СтрЗатраченоеВремя.НазваниеЗадачи = СтрТЗНазваниеЗадачБитрикс.НазваниеЗадачи;
СтрИнформацияПоЗадачамБитрикс = ИнформацияПоЗадачамБитрикс.Найти(НомерЗадачи, "НомерЗадачи");
Если НЕ СтрИнформацияПоЗадачамБитрикс = Неопределено Тогда
СтрЗатраченоеВремя.НомерЗадачи = СтрИнформацияПоЗадачамБитрикс.НомерЗадачи;
СтрЗатраченоеВремя.НазваниеЗадачи = СтрИнформацияПоЗадачамБитрикс.НазваниеЗадачи;
СтрЗатраченоеВремя.Завершена = СтрИнформацияПоЗадачамБитрикс.Завершена;
КонецЕсли;

КонецЦикла;
Expand Down Expand Up @@ -563,16 +574,16 @@
КонецФункции

&НаСервере
Функция НазваниеЗадачБитрикс(МассивНомеровЗадач)
Функция ИнформацияПоЗадачамБитрикс(МассивНомеровЗадач)

ТЗНазваниеЗадачБитрикс = Новый ТаблицаЗначений;
ИнформацияПоЗадачамБитрикс = Новый ТаблицаЗначений;

Если ЗначениеЗаполнено(МассивНомеровЗадач) Тогда
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТЗНазваниеЗадачБитрикс = ОбработкаОбъект.Bitrix_Задача_ПолучитьИнформацию(BitrixURL, Bitrix24WebHook, МассивНомеровЗадач, Истина);
ИнформацияПоЗадачамБитрикс = ОбработкаОбъект.Bitrix_Задача_ПолучитьИнформацию(BitrixURL, Bitrix24WebHook, МассивНомеровЗадач, Истина,,Истина);
КонецЕсли;

Возврат ТЗНазваниеЗадачБитрикс;
Возврат ИнформацияПоЗадачамБитрикс;

КонецФункции

Expand Down Expand Up @@ -858,8 +869,19 @@
СтруктураПоиска.Вставить("УчтеноВБитрикс", Ложь);
КонецЕсли;

Если ФильтрПоЗавершеннымЗадачамБитрикс Тогда
СтруктураПоиска.Вставить("Завершена", Истина);
КонецЕсли;

Элементы.ЗатраченноеВремя.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураПоиска);

КонецПроцедуры

&НаКлиенте
Процедура УстановитьВидимостьГруппыФильтровЗатраченноеВремя()

Элементы.ГруппаФильтровЗатраченноеВремя.Доступность = ЗначениеЗаполнено(ЗатраченноеВремя);

КонецПроцедуры

#КонецОбласти

0 comments on commit 4ff44b6

Please sign in to comment.