Задача 102.150398

Задача :102.150398

2016-03-04 15:20:55
Краткое описание :
При наличии более 2-х ПЛ в один день неверно суммируется время по ПЛ
Описание :
Сверка с табелем "Зарплаты"
Что измененно :

Если у водителя было более двух ПЛ, итоговая сумма считается неверно.
Ошибку нашел в исходнике mvktab.vip, строка 845
было
----------------------------------------------------------------------
PutVal[Day(PutLst.ExitDn)]:= PutLst.TimeMove + PutLst_Prev.TimeMove
+ if (wtimerep = 1,PutLst.TimeRep,0) + if (wtimerep = 1,PutLst_Prev.TimeRep,0);
----------------------------------------------------------------------
т.е. суммируется время первого и текущего ПЛ.
Надо:
----------------------------------------------------------------------
PutVal[Day(PutLst.ExitDn)]:= PutVal[Day(PutLst.ExitDn)] + PutLst.TimeMove
+ if (wtimerep = 1,PutLst.TimeRep,0);
----------------------------------------------------------------------
Аналогично в стр.855 должно быть:
PutVal[Day(PutLst.ExitDn)]:= PutVal[Day(PutLst.ExitDn)] - (PutLst_Prev.TimeMove + if (wtimerep = 1,PutLst_prev.TimeRep,0)) + (PutLst.TimeMove + if (wtimerep = 1,PutLst.TimeRep, 0));

Дополнительно во вьюхе надо сделать сортировку putlst по дате и времени выезда (чтобы более точно делать проверку на пересечение времени в путевых):
order byDateTime by PUTLST.EXITDN, PUTLST.EXITCH

И сохранять NRec предыдущего ПЛ не только при первой итерации, но и последующих. Для этого после 848 и 857 строчки в вышеуказанном mvktab.vip добавить
Driver.nrecPutlst[Day(PutLst.ExitDn)]:= PutLst.nrec;
Как измененно :

Учитывается более двух путевых на один день при расчете времени. При перекрытии по времени путевых берется наибольшее время из перекрывающихся ПЛ(ранее существоваший функционал).

Название продукта Название компонента Тип Последняя версия Дата выхода
M_TRANSPM_TRANSPRES9.1.42.02016-03-04 15:20:55
M_TRANSPM_TRANSPRES9.1.042.0