LASTPRODSHIFT — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
(Новая страница: «LastProdShift - это функция из справочника R266 LASTPRODSHIFT( prod, shift ) Поиск предыдущей смены произв…»)
(нет различий)

Версия 16:47, 21 апреля 2016

LastProdShift - это функция из справочника R266

LASTPRODSHIFT( prod, shift )

Поиск предыдущей смены производства

( возвращает дату предыдущей смены в виде ггггддммс )

prod - код аналитики производства

shift - текущая смена

Полный текст функции

Parameters prod, shift

local sql, aa

result := 

// --- ТЕКУЩИЙ МЕСЯЦ ---
sql := [ Select MAX( DSHIFT ) last_shift ;
  From ] + RetDbName( 'PAC', StoD( shift ) ) + Ret_f_ext( StoD( shift ) ) + [ ;
  Where KINDDOC = 'PAC' and LVLNUM = '1' and DANAL1 = ] + prod + [ and ;
    DSHIFT < '] + shift + [' ]
aa := SelectSqlToArr( sql, { 'last_shift' }, OpdataPath, false )
if !Empty( aa )
  if !Empty( aa[1,1] )
    result := aa[1,1]
    return
  endif
endif
// *** ТЕКУЩИЙ МЕСЯЦ ***

// --- ПРОШЛЫЙ МЕСЯЦ ---
if Empty( result )
  sql := [ Select MAX( DSHIFT ) last_shift ;
    From ] + RetDbName( 'PAC', TimeBack( StoD( shift ), -1 ) ) + ;
      Ret_f_ext( TimeBack( StoD( shift ), -1 ) ) + [ ;
    Where KINDDOC = 'PAC' and LVLNUM = '1' and DANAL1 = ] + prod
  aa := SelectSqlToArr( sql, { 'last_shift' }, OpdataPath, false )
  if !Empty( aa )
    if !Empty( aa[1,1] )
      result := aa[1,1]
      return
    endif
  endif
endif
// *** ПРОШЛЫЙ МЕСЯЦ ***