Задача 102.179606

Задача :102.179606

2018-03-13 17:24:00
Краткое описание :
Необходим анализ кода расчёта удержаний - обращение к отпускам
Описание :
Расчет удержаний (общие вопросы)
Что измененно :

Исторически сложилось разграничение типов в классификаторе отпусков по коду отпуска:
1...20 - основные отпуска (очередной и т. п.), где 2 - отпуск по уходу за ребенком
21 - административный отпуск (за свой счет)
22...39 - учебный отпуск
40 и выше - компенсация за неиспользованный отпуск
Периодически возникают вопросы и замечания от клиентов о неудобстве такого разграничения. Одним не хватает диапазона кодов до 20, другим (при переходе на Галактику из других систем) просто не хочется менять привычные коды.
Ведутся работы по отказу от проверки номерного значения кода для разделения компенсации от отпуска (40 и выше) и переходу на проверку поля "тип отпуска" из классификатора в значении "компенсация".
В ходе анализа в исходном коде udnalog.pas (Procedure GetUder -> procedure ProcessVacations) нашёлся участок обработки, в котором проверяется условие (OtpuskR^.Kotpus < 40). Но код, похоже, устаревший. Необходимо принять решение - производить ли в этой функции замену на "подгрузку" и проверку классификатора отпусков.
if OtpuskR^.Kotpus < 40 then
begin
CurMonthR^.Summa:=CurMonthR^.Summa+OtpuskR^.SbFzp+OtpuskR^.SbFmp;
if (OtpuskR^.SbFzp<> 0 ) or (OtpuskR^.SbFmp <> 0) then
begin
KlOtpuskR^.Kotpus := OtpuskR^.Kotpus;
{$ifdef _KLCACHE_}
if not GetKlOtpuskCache.Read(OtpuskR^.Kotpus, KlOtpuskR) then
{$else}
if klOtpuskF^.GetEqual(tiklOtpusk01) <> tsOk then
{$endif}
KlOtpuskR^.IsRabDn := 0;
CurMonthR^.Kotpus := KlOtpuskR^.IsRabDn;
end;
if OtpuskR^.DatOk > CurMonthR^.DatOk then
CurMonthR^.DatOk := OtpuskR^.DatOk;
if ((OtpuskR^.DataN < CurMonthR^.DataN) or
(d_day(CurMonthR^.DataN) = 0)) and
(d_day(OtpuskR^.DataN) <> 0) then
CurMonthR^.DataN := OtpuskR^.DataN;
end;
Как измененно :

Удален ненужный код в исходном коде udnalog.pas (Procedure GetUder -> procedure ProcessVacations)
if OtpuskR^.Kotpus < 40 then
begin
CurMonthR^.Summa:=CurMonthR^.Summa+OtpuskR^.SbFzp+OtpuskR^.SbFmp;
if (OtpuskR^.SbFzp<> 0 ) or (OtpuskR^.SbFmp <> 0) then
begin
KlOtpuskR^.Kotpus := OtpuskR^.Kotpus;
{$ifdef _KLCACHE_}
if not GetKlOtpuskCache.Read(OtpuskR^.Kotpus, KlOtpuskR) then
{$else}
if klOtpuskF^.GetEqual(tiklOtpusk01) <> tsOk then
{$endif}
KlOtpuskR^.IsRabDn := 0;
CurMonthR^.Kotpus := KlOtpuskR^.IsRabDn;
end;
if OtpuskR^.DatOk > CurMonthR^.DatOk then
CurMonthR^.DatOk := OtpuskR^.DatOk;
if ((OtpuskR^.DataN < CurMonthR^.DataN) or
(d_day(CurMonthR^.DataN) = 0)) and
(d_day(OtpuskR^.DataN) <> 0) then
CurMonthR^.DataN := OtpuskR^.DataN;
end;

Название продукта Название компонента Тип Последняя версия Дата выхода
G_ZARPLG_ZARPLDLL9.1.269.02018-03-13 17:24:00