CREATE OR ALTER trigger ttbrefeitorio_refeicao_b01u for tbrefeitorio_refeicao
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

   NEW.TURNO = NEW.TIPO_ID;
    
   HISTORICO = '';

   IF(NEW.TIPO_ID <> OLD.TIPO_ID)THEN
   BEGIN
        HISTORICO = HISTORICO ||' TIPO:' || OLD.TIPO_ID || '->' || NEW.TIPO_ID;
   END

   IF(NEW.DATA_RESERVA <> OLD.DATA_RESERVA)THEN
   BEGIN
        HISTORICO = HISTORICO || ' DT. RESERVA: ' || FORMATDATE(OLD.DATA_RESERVA) || '->' || FORMATDATE(NEW.DATA_RESERVA);
   END

   IF(NEW.DATA_REFEICAO <> OLD.DATA_REFEICAO)THEN
   BEGIN
        HISTORICO = HISTORICO || ' DT. REF.: ' || FORMATDATE(OLD.DATA_REFEICAO) || '->' || FORMATDATE(NEW.DATA_REFEICAO);
   END

   IF(NEW.REFEICAO1_ID <> OLD.REFEICAO1_ID)THEN
   BEGIN
        HISTORICO = HISTORICO || ' REF. PRINCIPAL: ' || OLD.REFEICAO1_ID || '->' || NEW.REFEICAO1_ID;
   END

   IF(NEW.REFEICAO2_ID <> OLD.REFEICAO2_ID)THEN
   BEGIN
        HISTORICO = HISTORICO || ' REF ALT.: ' || OLD.REFEICAO2_ID || '->' || NEW.REFEICAO2_ID;
   END

   IF(NEW.RESERVA1_ID <> OLD.RESERVA1_ID)THEN
   BEGIN
        HISTORICO = HISTORICO || ' RESERVA PRINC.: ' || OLD.RESERVA1_ID || '->' || NEW.RESERVA1_ID;
   END

   IF(NEW.RESERVA2_ID <> OLD.RESERVA2_ID)THEN
   BEGIN
        HISTORICO = HISTORICO || ' RESERVA ALT.: ' || OLD.RESERVA2_ID || '->' || NEW.RESERVA2_ID;
   END

   IF (HISTORICO <> '') THEN
   BEGIN
      EXECUTE PROCEDURE SPI_HISTORICO('TBREFEITORIO_REFEICAO', NEW.ID, :HISTORICO);
   END
END

