SET TERM ^ ;

CREATE OR ALTER procedure SPU_MODELO_COR_TAMANHO_FLUXO (
    MODELO_ID integer,
    COR_ID integer,
    TAMANHO integer)
returns (
    FLUXO_ID integer,
    ORDEM integer,
    TEMPO numeric(15,4))
as
declare variable ENCONTRADO integer;
BEGIN

    ENCONTRADO = 0;

    for
        select
            f.fluxo_id,
            f.ordem,
            coalesce(f.tempo,0) as tempo
        from tbmodelo_fluxo_producao f
        where f.modelo_id = :modelo_id
        and f.cor_id = :COR_ID
        and f.tamanho = :TAMANHO
        and f.tempo > 0
    into :FLUXO_ID, :ORDEM, :tempo
    do begin
       ENCONTRADO = 1;
       suspend;
    end

    if(ENCONTRADO = 0)then
    begin
        for
            select
                f.fluxo_id,
                f.ordem,
                coalesce(f.tempo,0) as tempo
            from tbmodelo_fluxo_producao f
            where f.modelo_id = :modelo_id
            and f.cor_id = :COR_ID
            and f.tempo > 0
        into :FLUXO_ID, :ORDEM, :tempo
        do begin
           ENCONTRADO = 1;
           suspend;
        end
    end

    if(ENCONTRADO = 0)then
    begin
        for
            select
                f.fluxo_id,
                f.ordem,
                coalesce(f.tempo,0) as tempo
            from tbmodelo_fluxo_producao f
            where f.modelo_id = :modelo_id
            and f.tamanho = :TAMANHO
            and f.tempo > 0
        into :FLUXO_ID, :ORDEM, :tempo
        do begin
           ENCONTRADO = 1;
           suspend;
        end
    end

    if(ENCONTRADO = 0)then
    begin
        for
            select  
                f.fluxo_id,
                f.ordem,
                coalesce(f.tempo,0) as tempo
            from tbmodelo_fluxo_producao f
            where f.modelo_id = :modelo_id
            and f.tamanho = 0
        into :FLUXO_ID, :ORDEM, :tempo
        do begin
           ENCONTRADO = 1;
           suspend;
        end
    end

END
^

SET TERM ; ^

UPDATE OR INSERT INTO TBMENU (CONTROLE, GRUPO, SUBGRUPO, TIPO, URL, DESCRICAO, DATAHORA)
                      VALUES (22603, 'PCP', 'PCP', '1   ', '', 'IMPRESSÃO DE ETIQUETAS', '2020-12-30 11:06:28')
                    MATCHING (CONTROLE);
					
					
SET TERM ^ ;

CREATE OR ALTER trigger ttbcontrole_usuario_b0iud for tbcontrole_usuario
active before insert or update or delete position 0
AS
begin

    IF ( COALESCE(FN_GET_CONTEXT_TEMPORARY('ALTER_TBPARAMETRO'),0) <> 1 ) THEN
    BEGIN
        FN_SET_CONTEXT('ALTER_TBPARAMETRO',2);

        IF ( DELETING ) THEN
        BEGIN
        
            DELETE FROM TBPARAMETRO_DETALHE
             WHERE PARAMETRO_ID = coalesce(FN_PARAMETRO('TBUSUARIO.'||old.ID,NULL,TRUE),0)
               AND TABELA_ID = OLD.USUARIO_ID;
            DELETE FROM TBPARAMETRO WHERE TABELA = 'TBUSUARIO' AND CONTROLE = OLD.ID;
        END
        ELSE
        BEGIN

            UPDATE OR INSERT INTO TBPARAMETRO_DETALHE (
                PARAMETRO_ID,
                TABELA_ID,
                VALOR
            ) VALUES (
                coalesce(FN_PARAMETRO('TBUSUARIO.'||NEW.ID,NULL,TRUE),0),
                NEW.USUARIO_ID,
                NEW.VALOR_EXT
            ) MATCHING ( PARAMETRO_ID, TABELA_ID );

        END
    END




end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbean_b0i_01 for tbean
active before insert position 0
AS
BEGIN

    UPDATE TBPRODUTO SET PAFECF = ''
    WHERE COR_CODIGO = NEW.COR_ID
      AND MODELO_CODIGO = NEW.MODELO_ID
      AND STATUS = '1';

    if(char_length(NEW.PREFIXO||NEW.CODIGO) = 12)then
    begin
        NEW.EAN = NEW.PREFIXO||NEW.CODIGO||FN_DIGITOEAN(NEW.PREFIXO||NEW.CODIGO);
    end

END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbean_b0u_01 for tbean
active before update position 0
AS
Begin

        if (OLD.CODIGO <> NEW.CODIGO or OLD.PREFIXO <> NEW.PREFIXO) Then
            Begin

            if (Old.CNP = '1') then
                Begin
                Exception "..." 'CODIGO EAN/GTIN NAO PODE SER ALTERADO POR JA ESTAR REGISTRADO NO CNP (CADASTRO NACIONADO DE PRODUTOS)';
                End

            --Update TbProduto Set PAFECF = ''
            --WHERE COR_CODIGO = NEW.COR_ID
            --  AND MODELO_CODIGO = NEW.MODELO_ID
            --  AND STATUS = '1';

                if(char_length(NEW.PREFIXO||NEW.CODIGO) = 12)then
                begin
                    NEW.EAN = NEW.PREFIXO||NEW.CODIGO||FN_DIGITOEAN(NEW.PREFIXO||NEW.CODIGO);
                end

            End

End
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure DIGITOEAN (
    NUMERO char(15))
returns (
    DIGITO numeric(1,0))
as
declare variable SOMA integer;
begin

    
        SOMA = 0;

        if(char_length(:NUMERO) = 12)then
        begin
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  1 FOR 1)) as Integer)*1;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  2 FOR 1)) as Integer)*3;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  3 FOR 1)) as Integer)*1;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  4 FOR 1)) as Integer)*3;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  5 FOR 1)) as Integer)*1;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  6 FOR 1)) as Integer)*3;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  7 FOR 1)) as Integer)*1;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  8 FOR 1)) as Integer)*3;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM  9 FOR 1)) as Integer)*1;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM 10 FOR 1)) as Integer)*3;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM 11 FOR 1)) as Integer)*1;
            SOMA = :SOMA + Cast((SubString( :NUMERO FROM 12 FOR 1)) as Integer)*3;
        end

        IF ((((:SOMA/10.00)-(:SOMA/10)) *10)=0) THEN
           BEGIN
             DIGITO =  0 ;
           END
           ELSE
           BEGIN
             DIGITO =   10-( ((:SOMA/10.00)-(:SOMA/10)) *10   ) ;
           END

    SUSPEND;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbean_b0i_01 for tbean
active before insert position 0
AS
BEGIN

    NEW.CODIGO = fn_lpad(NEW.CODIGO,4,'0');

    UPDATE TBPRODUTO SET PAFECF = ''
    WHERE COR_CODIGO = NEW.COR_ID
      AND MODELO_CODIGO = NEW.MODELO_ID
      AND STATUS = '1';

    if(char_length(NEW.PREFIXO||NEW.CODIGO) = 12)then
    begin
        NEW.EAN = NEW.PREFIXO||NEW.CODIGO||FN_DIGITOEAN(NEW.PREFIXO||NEW.CODIGO);
    end

END
^

SET TERM ; ^


SET TERM ^ ;

CREATE OR ALTER trigger ttbean_b0u_01 for tbean
active before update position 0
AS
Begin

        if (OLD.CODIGO <> NEW.CODIGO or OLD.PREFIXO <> NEW.PREFIXO) Then
            Begin

             NEW.CODIGO = fn_lpad(NEW.CODIGO,4,'0');

            if (Old.CNP = '1') then
                Begin
                Exception "..." 'CODIGO EAN/GTIN NAO PODE SER ALTERADO POR JA ESTAR REGISTRADO NO CNP (CADASTRO NACIONADO DE PRODUTOS)';
                End

            --Update TbProduto Set PAFECF = ''
            --WHERE COR_CODIGO = NEW.COR_ID
            --  AND MODELO_CODIGO = NEW.MODELO_ID
            --  AND STATUS = '1';

                if(char_length(NEW.PREFIXO||NEW.CODIGO) = 12)then
                begin
                    NEW.EAN = NEW.PREFIXO||NEW.CODIGO||FN_DIGITOEAN(NEW.PREFIXO||NEW.CODIGO);
                end

            End

End
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_PROGRAMACAO_22600 (
    ESTABELECIMENTO_1 integer,
    TIPO_1 char(1),
    GP_1 integer,
    UP_1 integer,
    ESTACAO_1 integer,
    ID_1 integer,
    PRODUTO_1 integer,
    TAMANHO_1 integer,
    QUANTIDADE_1 numeric(15,4),
    REMESSA_ID integer,
    REMESSA_DATA date,
    TOTALTEMPO numeric(15,4),
    TOTALSETUP numeric(15,4),
    COLABORADORES numeric(15,2),
    MODELO_ID integer,
    COR_ID integer)
returns (
    DATA_CALENDARIO date,
    DATAHORA_DISPONIVEL timestamp)
as
declare variable DATAHORA_PARTIDA timestamp;
declare variable PROGRAMACAO_ID integer;
declare variable SALDO integer;
declare variable VINICIO char(1);
declare variable TEMPO numeric(15,4);
declare variable TEMPO_SETUP numeric(15,4);
declare variable TEMPO_ORIGINAL numeric(15,4);
declare variable SETUP_ORIGINAL numeric(15,4);
Begin

  if (:Quantidade_1 <= 0) then
      Begin
      Exception "..." 'QUANTIDADE DEVE SER MAIOR QUE ZERO, OPERACAO CANCELADA! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
      End else
      Begin

      programacao_id = Coalesce((Select First 1 Id From TbProgramacao
                                  Where Estabelecimento_id = :estabelecimento_1
                                    and Tipo = :tipo_1
                                    and Tabela_Id = :id_1),0);

     select
        s.TOTAL,
        s.TOTALSETUP
     from SPC_TEMPO_GP(:GP_1, :MODELO_ID, :COR_ID, :TAMANHO_1, :QUANTIDADE_1) s
     into :TOTALTEMPO, :TOTALSETUP;

       if (:programacao_id = 0) then
            Begin

              :TEMPO_ORIGINAL = TOTALTEMPO;
              :SETUP_ORIGINAL = TOTALSETUP;

              TEMPO_SETUP = TOTALSETUP / COLABORADORES;
              Tempo       = TOTALTEMPO / COLABORADORES;
        
              vInicio = '0';

              if (tempo = 0) then
                  Begin
                  Exception "..." '1 - TEMPO DAS OPERACOES DO SKU SELECIONADO ESTA ZERADO OU NAO CONFIGURADO, OPERACAO CANCELADA! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                  End
            
              if (Trunc(:Tempo) = :Tempo) Then
                  Begin
                  Saldo = Trunc(:Tempo);
                  End else
                  Begin
                  Saldo = Trunc(:Tempo) + 1;
                  End
            
                For
                Select
                Coalesce((
                Select First 1 A.DataHora_Fim
                From TbProgramacao A
                Where A.Estabelecimento_id = :Estabelecimento_1
                  and A.Tipo = :Tipo_1
                  and A.Gp_id = :Gp_1
                  and A.Up_id = :Up_1
                  and A.Estacao = :Estacao_1
                  and A.Status in ('0','1')
                  and A.DataHora_Fim >= Current_TimeStamp
                Order By A.DataHora_Fim Desc),Current_TimeStamp) DataHora
                From RDB$DataBase
            
                Into :DataHora_Partida
                DO
                  Begin
            
                     DataHora_Partida = :DataHora_Partida + 0.000694444;
            
                        For
                        Select C.Data
                          From TbCalendario_Up C
                         Where C.Gp_id = :Gp_1
                           and C.Up_id = :Up_1
                           and C.Minutos > 0
                           and C.Data >= Cast(:DataHora_Partida as Date)
                         Order By C.Data
            
                        Into :Data_Calendario
                        DO
                          Begin
            
                              For
                                Select Cast(Cast(:Data_Calendario as Date)||' '||M.Hora as TimeStamp) DataHora
                                From (
                                Select Substring(OSPLIT From 1 for 5) INICIO,
                                       Substring(OSPLIT From 7 for 5) FIM
                                From Split (
                                                (Select C.Horario From TbCalendario_Up C
                                                   Where C.Gp_Id = :Gp_1
                                                     and C.Up_Id = :Up_1
                                                     and C.Data  = :Data_Calendario)
                                            , ';')
                                ) Z, TbMinuto M
                                Where M.Hora Between Z.Inicio and Z.Fim
                                Order By M.Hora
            
                              Into :DataHora_Disponivel
                              Do
                                Begin
                                    
                                  if (:DataHora_Disponivel >= :DataHora_Partida and :Saldo > 0) then
                                       Begin
            
                                         if (vInicio = '0') then
                                             Begin
                                             DataHora_Partida = :DataHora_Disponivel;
                                             vInicio = '1';
                                             End
            
                                         Saldo = :Saldo - 1;
                                         if (Saldo = 0) then
                                             Begin

                                                COLABORADORES = coalesce((select first 1 u.colaboradores from tbcalendario_up u where u.up_id = :Up_1 and u.data = Cast(:DataHora_Partida as Date)),1);

                                                TEMPO_SETUP = (SETUP_ORIGINAL / COLABORADORES);
                                                Tempo       = (TEMPO_ORIGINAL / COLABORADORES);

                                                --exception "..." TEMPO_ORIGINAL||' '||COLABORADORES||' '||Tempo;

                                                update or
                                                insert into tbprogramacao (estabelecimento_id,
                                                                           tipo,
                                                                           DATAHORA_INICIO,
                                                                           DATA_INICIO,
                                                                           TEMPO,
                                                                           TEMPO_SETUP,
                                                                           DATAHORA_FIM,
                                                                           DATA_FIM,
                                                                           tabela_id,
                                                                           gp_id,
                                                                           up_id,
                                                                           estacao,
                                                                           produto_id,
                                                                           tamanho,
                                                                           quantidade,
                                                                           remessa_id,
                                                                           data,
                                                                           COLABORADORES)
                                                values (:Estabelecimento_1,
                                                        :Tipo_1,
                                                        :DataHora_Partida,
                                                        Cast(:DataHora_Partida as Date),
                                                        :Tempo,
                                                        :TEMPO_SETUP,
                                                        :DataHora_Disponivel,
                                                        Cast(:DataHora_Disponivel as Date),
                                                        :id_1,
                                                        :Gp_1,
                                                        :Up_1,
                                                        :Estacao_1,
                                                        :Produto_1,
                                                        :Tamanho_1,
                                                        :Quantidade_1,
                                                        :Remessa_id,
                                                        :Remessa_Data,
                                                        :COLABORADORES)
                                                Matching (estabelecimento_id,tipo,tabela_id);

                                                SUSPEND;
                                                EXIT;
                                             End
            
                                       End
            
                                End
                          End
                
                  if (:Saldo > 0) then
                      begin
                      Exception "..." 'NAO HA CALENDARIO DISPONIVEL PARA ESSA PROGRAMACAO!'|| ' UP: ' || :UP_1 || ' ESTACAO: ' || :ESTACAO_1 ||  'PRODUTO: ' || :PRODUTO_1 || ' QUANTIDADE: ' || :QUANTIDADE_1 || '  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                      end 
                  End

            End
      End
End
^

SET TERM ; ^

SET TERM ^ ;

CREATE trigger ttbmodelo_consumo_cor_b3iu for tbmodelo_consumo_cor
active before insert or update position 3
AS
begin
  if(new.fator_matriz <= 0)then
  begin
      exception "..." 'Fator Multiplicador da Matriz não porde ser 0';
  end
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_PROGRAMACAO_22600 (
    ESTABELECIMENTO_1 integer,
    TIPO_1 char(1),
    GP_1 integer,
    UP_1 integer,
    ESTACAO_1 integer,
    ID_1 integer,
    PRODUTO_1 integer,
    TAMANHO_1 integer,
    QUANTIDADE_1 numeric(15,4),
    REMESSA_ID integer,
    REMESSA_DATA date,
    TOTALTEMPO numeric(15,4),
    TOTALSETUP numeric(15,4),
    COLABORADORES numeric(15,2),
    MODELO_ID integer,
    COR_ID integer)
returns (
    DATA_CALENDARIO date,
    DATAHORA_DISPONIVEL timestamp)
as
declare variable DATAHORA_PARTIDA timestamp;
declare variable PROGRAMACAO_ID integer;
declare variable SALDO integer;
declare variable VINICIO char(1);
declare variable TEMPO numeric(15,4);
declare variable TEMPO_SETUP numeric(15,4);
declare variable TEMPO_ORIGINAL numeric(15,4);
declare variable SETUP_ORIGINAL numeric(15,4);
Begin

  if (:Quantidade_1 <= 0) then
      Begin
      Exception "..." 'QUANTIDADE DEVE SER MAIOR QUE ZERO, OPERACAO CANCELADA! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
      End else
      Begin

      programacao_id = Coalesce((Select First 1 Id From TbProgramacao
                                  Where Estabelecimento_id = :estabelecimento_1
                                    and Tipo = :tipo_1
                                    and Tabela_Id = :id_1),0);

     select
        s.TOTAL,
        s.TOTALSETUP
     from SPC_TEMPO_GP(:GP_1, :MODELO_ID, :COR_ID, :TAMANHO_1, :QUANTIDADE_1) s
     into :TOTALTEMPO, :TOTALSETUP;

       if (:programacao_id = 0) then
            Begin

              :TEMPO_ORIGINAL = TOTALTEMPO;
              :SETUP_ORIGINAL = TOTALSETUP;

              TEMPO_SETUP = TOTALSETUP / COLABORADORES;
              Tempo       = TOTALTEMPO / COLABORADORES;
        
              vInicio = '0';

              if (tempo = 0) then
                  Begin
                  Exception "..." '1 - TEMPO DAS OPERACOES DO SKU SELECIONADO ESTA ZERADO OU NAO CONFIGURADO, OPERACAO CANCELADA! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                  End
            
              if (Trunc(:Tempo) = :Tempo) Then
                  Begin
                  Saldo = Trunc(:Tempo);
                  End else
                  Begin
                  Saldo = Trunc(:Tempo) + 1;
                  End
            
                For
                Select
                Coalesce((
                Select First 1 A.DataHora_Fim
                From TbProgramacao A
                Where A.Estabelecimento_id = :Estabelecimento_1
                  and A.Tipo = :Tipo_1
                  and A.Gp_id = :Gp_1
                  and A.Up_id = :Up_1
                  and A.Estacao = :Estacao_1
                  and A.Status in ('0','1')
                  and A.DataHora_Fim >= Current_TimeStamp
                Order By A.DataHora_Fim Desc),Current_TimeStamp) DataHora
                From RDB$DataBase
            
                Into :DataHora_Partida
                DO
                  Begin
            
                     DataHora_Partida = :DataHora_Partida + 0.000694444;
            
                        For
                        Select C.Data
                          From TbCalendario_Up C
                         Where C.Gp_id = :Gp_1
                           and C.Up_id = :Up_1
                           and C.Minutos > 0
                           and C.Data >= Cast(:DataHora_Partida as Date)
                         Order By C.Data
            
                        Into :Data_Calendario
                        DO
                          Begin
            
                              For
                                Select Cast(Cast(:Data_Calendario as Date)||' '||M.Hora as TimeStamp) DataHora
                                From (
                                Select Substring(OSPLIT From 1 for 5) INICIO,
                                       Substring(OSPLIT From 7 for 5) FIM
                                From Split (
                                                (Select C.Horario From TbCalendario_Up C
                                                   Where C.Gp_Id = :Gp_1
                                                     and C.Up_Id = :Up_1
                                                     and C.Data  = :Data_Calendario)
                                            , ';')
                                ) Z, TbMinuto M
                                Where M.Hora Between Z.Inicio and Z.Fim
                                Order By M.Hora
            
                              Into :DataHora_Disponivel
                              Do
                                Begin
                                    
                                  if (:DataHora_Disponivel >= :DataHora_Partida and :Saldo > 0) then
                                       Begin
            
                                         if (vInicio = '0') then
                                             Begin
                                             DataHora_Partida = :DataHora_Disponivel;
                                             vInicio = '1';
                                             End
            
                                         Saldo = :Saldo - 1;
                                         if (Saldo = 0) then
                                             Begin

                                                COLABORADORES = coalesce((select first 1 u.colaboradores from tbcalendario_up u where u.up_id = :Up_1 and u.data = Cast(:DataHora_Partida as Date)),1);

                                                TEMPO_SETUP = (SETUP_ORIGINAL / COLABORADORES);
                                                Tempo       = (TEMPO_ORIGINAL / COLABORADORES);

                                                --exception "..." TEMPO_ORIGINAL||' '||COLABORADORES||' '||Tempo;

                                                update or
                                                insert into tbprogramacao (estabelecimento_id,
                                                                           tipo,
                                                                           DATAHORA_INICIO,
                                                                           DATA_INICIO,
                                                                           TEMPO,
                                                                           TEMPO_SETUP,
                                                                           DATAHORA_FIM,
                                                                           DATA_FIM,
                                                                           tabela_id,
                                                                           gp_id,
                                                                           up_id,
                                                                           estacao,
                                                                           produto_id,
                                                                           tamanho,
                                                                           quantidade,
                                                                           remessa_id,
                                                                           data,
                                                                           COLABORADORES)
                                                values (:Estabelecimento_1,
                                                        :Tipo_1,
                                                        :DataHora_Partida,
                                                        Cast(:DataHora_Partida as Date),
                                                        :Tempo,
                                                        :TEMPO_SETUP,
                                                        :DataHora_Disponivel,
                                                        Cast(:DataHora_Disponivel as Date),
                                                        :id_1,
                                                        :Gp_1,
                                                        :Up_1,
                                                        :Estacao_1,
                                                        :Produto_1,
                                                        :Tamanho_1,
                                                        :Quantidade_1,
                                                        :Remessa_id,
                                                        :Remessa_Data,
                                                        :COLABORADORES)
                                                Matching (estabelecimento_id,tipo,tabela_id);

                                                SUSPEND;
                                                EXIT;
                                             End
            
                                       End
            
                                End
                          End
                
                  if (:Saldo > 0) then
                      begin
                      Exception "..." 'NAO HA CALENDARIO DISPONIVEL PARA ESSA PROGRAMACAO!'|| ' UP: ' || :UP_1 || ' ESTACAO: ' || :ESTACAO_1 ||  'PRODUTO: ' || :PRODUTO_1 || ' QUANTIDADE: ' || :QUANTIDADE_1 || '  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                      end 
                  End

            End
      End
End
^

SET TERM ; ^

