![]() |
#5 |
Banned
|
Образец, требует лишь минимальной доработки в плане даты:
\Data Dictionary\Tables\WorkCalendarDate\Methods\calcDefinedSeconds X++: server static Seconds calcDefinedSeconds( CalendarId _calendar, TransDate _transDate, Seconds _fromTime = maxint(), Seconds _toTime = 0, boolean _useEffectivity = true, //sp1 boolean _throwIfError = true ) { WorkCalendarDateLine workCalendarDateLine; Seconds seconds; ; while select workCalendarDateLine index hint CalendarDateFromIdx //sp1 where workCalendarDateLine.CalendarId == WorkCalendar::defined(_calendar,_transDate,_throwIfError) && workCalendarDateLine.TransDate == _transDate { workCalendarDateLine.FromTime = workCalendarDateLine.FromTime < _fromTime ? _fromTime : workCalendarDateLine.FromTime; workCalendarDateLine.ToTime = workCalendarDateLine.ToTime > _toTime ? _toTime : workCalendarDateLine.ToTime; if (workCalendarDateLine.FromTime < workCalendarDateLine.ToTime) seconds += workCalendarDateLine.capacity(100,_useEffectivity); } return seconds; } |
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |