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
После чего находим данную процедуру в базе, открываем ее и жмем Compile procedure 
Далее Commit.
После закрытия окна компиляции выполняем Execute procedure (с параметром ' ' ):
После выполнения процедуры не забываем нажать commit 
Итог: Дата ночного аудита соответствует календарной.


