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   

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

Далее Commit.

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

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

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

