Перейти к основному контенту

XX_SHIFT_DODO Перевод смены в ночном аудите до актуальной даты процедурой

Установка текущей даты в качестве даты ночного аудита.

В случае длительных перерывов в работе объектов или несвоевременного перевода смен, может понадобиться произвести перевод смены на текущую дату.

ВАЖНО! Ни в коем случае не применять на рабочей базе объекта без проверки на копии базы!

Перевод смены на завтрашний день вызовет затруднения при работе в продолжение текущего дня. Операция перевода смены не обратима!

Процедура выполняется долго! Чем старее у вас смена в ночном аудите, тем дольше будет применяться процедура ее перевода до актуальной.


Для этого можно использовать специализированную процедуру XX_SHIFT_DODO

Добавляете процедуру в базу в IBExpert (SQL editor):

create procedure XX_SHIFT_DODO (PARAMSTR varchar(1024))
as
declare variable XINFO varchar(1024);
declare variable SHIFT integer;
declare variable SUCCESS smallint;
declare variable WORKSHIFT double precision; declare variable CURRSHIFT double precision; begin
  xinfo = paramstr;
  xinfo =
SetNamedParam(xinfo,'hotel',getnamedparamdefnum(paramstr,'hotel',1));
  shift = 0;
  CURRSHIFT = floor(d2dbl('now'));
  select WORKSHIFT from sp_get_workshift(:xinfo) into :WORKSHIFT;
  WORKSHIFT = snn(WORKSHIFT);
  while (WORKSHIFT < CURRSHIFT) do
  begin
    select SUCCESS from sp_workshift_change(:shift,1,:xinfo) into :SUCCESS;
    if (SUCCESS<> 1) then break;
    select WORKSHIFT from sp_get_workshift(:xinfo) into :WORKSHIFT;
    WORKSHIFT = snn(WORKSHIFT);
  end
end

Commit   image.png

После чего находим данную процедуру в базе, открываем ее и жмем Compile procedure  image.png

Далее Commit. 

image.png

После закрытия окна компиляции выполняем Execute procedure (с параметром  ' ' ):

image.png

После выполнения процедуры не забываем нажать commit  image.png

Итог: Дата ночного аудита соответствует календарной.