SET TERM ^ ;

CREATE OR ALTER trigger ttbpedido_item_b0i_02 for tbpedido_item
active before insert position 0
AS
DECLARE VARIABLE Tipo_Pedido  Char(1);
DECLARE VARIABLE Mod_Qtd_Min  Integer;
DECLARE VARIABLE Mod_Qtd_Mult Integer;
DECLARE VARIABLE Blq_Ped      Char(1);
DECLARE VARIABLE Blq_Qtd_Min  Integer;
DECLARE VARIABLE Blq_Qtd_Mult Integer;
DECLARE VARIABLE Cli_Qtd_Min  Char(1);
DECLARE VARIABLE Cli_Qtd_Mult Char(1);
DECLARE VARIABLE Cor_Id       Integer;
DECLARE VARIABLE Produto  VarChar(100);
DECLARE VARIABLE perfil    VarChar(10);
DECLARE VARIABLE ecomerce     Integer;
DECLARE VARIABLE pedido_app   Integer;
begin

  Select c.ecommerce,
         char_length(coalesce(PEDIDO_INTEGRACAO_ID,'')),
         c.classificacao
      From TbPedido c
      Where Pedido               = New.Pedido
      and Estabelecimento_Codigo = New.Estabelecimento_Codigo
      into ecomerce, pedido_app, perfil;

  ecomerce   = coalesce(ecomerce,0);
  pedido_app = coalesce(pedido_app,0);

  Tipo_Pedido = Coalesce((Select Tipo_Pedido From TbPedido Where Pedido = New.Pedido and Estabelecimento_Codigo = New.Estabelecimento_Codigo),'1');
  Cli_Qtd_Min = '1';
  Cli_Qtd_Mult= '1';

  if (:Tipo_Pedido = '1' and New.Tamanho > 0 and New.Situacao = 1 and ecomerce = 0 and pedido_app < 3) Then --Pedido Normal
      Begin

        For
        Select First 1 C.Quantidade_Minima, C.Quantidade_Multipla
          From TbCliente_Modelo_Preco C
         Where C.Cliente_Codigo = New.Cliente_Codigo
           and C.Modelo_Codigo = New.Modelo_Codigo
          Into :Cli_Qtd_Min, :Cli_Qtd_Mult
            Do
         Begin
           End

        For
        Select First 1 P.Cor_Codigo, P.Descricao
          From TbProduto P
         Where P.Codigo = New.Produto_Codigo
          Into :Cor_Id, :Produto
            Do
         Begin

            if (:Cor_Id > 0) Then
                Begin

                Blq_Qtd_Min  = 0;
                Blq_Qtd_Mult = 0;

                For
                Select First 1 B.Blq_Ped, Coalesce(P.Qtd_Min,0), Coalesce(P.Qtd_Mult,0)
                  From TbModelo_Bloqueio B
             Left Join TbPerfil P On B.Perfil = P.Id and P.Tabela = 'SKU' and P.Qtd_Tipo = 'T' --'T' Por Tamanho
                 Where B.Modelo_ID = New.Modelo_Codigo
                   and B.Tamanho = New.Tamanho
                   and B.Cor_Id = :Cor_Id
                  Into :Blq_Ped, :Blq_Qtd_Min, :Blq_Qtd_Mult
                    do
                 Begin

                     /*if (:Blq_Ped = '1' or :Blq_Ped = '3') then
                         Begin
                            Exception "..." 'PRODUTO BLOQUEADO PARA PEDIDO. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO||
                            ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                         End*/

                     if (:Blq_Qtd_Min > 0 and New.Quantidade < :Blq_Qtd_Min and :Cli_Qtd_Min = '1') then
                         Begin
                            Exception "..." 'QUANTIDADE MINIMA DO PRODUTO ATINGIDO, INCLUSAO DO ITEM CANCELADA. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO
                            ||' QUANT.MINIMA: '||:BLQ_QTD_MIN||' QUANT. NO PEDIDO: '||NEW.QUANTIDADE
                            ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                         End

                     if (:Blq_Qtd_Mult > 0 and :Cli_Qtd_Mult = '1') Then
                         Begin
                         if (TRUNC(NEW.QUANTIDADE) - (TRUNC(NEW.QUANTIDADE)/:Blq_Qtd_Mult) * :Blq_Qtd_Mult > 0) then
                             Begin
                                Exception "..." 'QUANTIDADE MULTIMA DO PRODUTO VIOLADO, INCLUSAO DO ITEM CANCELADA. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO
                                ||' QUANT.MULTIPLA: '||:BLQ_QTD_MULT||' QUANT.NO PEDIDO: '||NEW.QUANTIDADE
                                ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                             End
                         End
                   End

                For
                Select First 1 1 as Blq_Ped
                  From TbModelo_Bloqueio_perfil B
                 Where B.Modelo_ID = New.Modelo_Codigo
                    and (b.perfil = (select first 1 classificacao from tbpedido xyz where xyz.PEDIDO = new.PEDIDO) or b.perfil is null)
                     AND ((B.COR_ID  = :COR_ID     AND B.TAMANHO = new.TAMANHO)
                       OR (B.TAMANHO = 0           AND B.COR_ID = 0)
                       OR (B.TAMANHO = new.TAMANHO AND B.COR_ID = 0)
                       OR (B.TAMANHO = 0           AND B.COR_ID = :COR_ID))
                  Into :Blq_Ped
                    do
                 Begin
                    Exception "..." 'PRODUTO BLOQUEADO PARA PEDIDO. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO||
                    ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';

                 end



-------------

                Mod_Qtd_Min  = 0;
                Mod_Qtd_Mult = 0;

                For
                Select First 1
                   Case When NEW.Tamanho = 1 Then IIF(MP.MI01 > 0,MP.MI01,M.MI01)
                        When NEW.Tamanho = 2 Then IIF(MP.MI02 > 0,MP.MI02,M.MI02)
                        When NEW.Tamanho = 3 Then IIF(MP.MI03 > 0,MP.MI03,M.MI03) When NEW.Tamanho = 4 Then IIF(MP.MI04 > 0, MP.MI04, M.MI04)
                        When NEW.Tamanho = 5 Then IIF(MP.MI05 > 0,MP.MI05,M.MI05) When NEW.Tamanho = 6 Then IIF(MP.MI06 > 0, MP.MI06, M.MI06)
                        When NEW.Tamanho = 7 Then IIF(MP.MI07 > 0,MP.MI07,M.MI07) When NEW.Tamanho = 8 Then IIF(MP.MI08 > 0, MP.MI08, M.MI08)
                        When NEW.Tamanho = 9 Then IIF(MP.MI09 > 0,MP.MI09,M.MI09) When NEW.Tamanho =10 Then IIF(MP.MI10 > 0, MP.MI10, M.MI10)
                        When NEW.Tamanho =11 Then IIF(MP.MI11 > 0,MP.MI11,M.MI11) When NEW.Tamanho =12 Then IIF(MP.MI12 > 0, MP.MI12, M.MI12)
                        When NEW.Tamanho =13 Then IIF(MP.MI13 > 0,MP.MI13,M.MI13) When NEW.Tamanho =14 Then IIF(MP.MI14 > 0, MP.MI14, M.MI14)
                        When NEW.Tamanho =15 Then IIF(MP.MI15 > 0,MP.MI15,M.MI15) When NEW.Tamanho =16 Then IIF(MP.MI16 > 0, MP.MI16, M.MI16)
                        When NEW.Tamanho =17 Then IIF(MP.MI17 > 0,MP.MI17,M.MI17) When NEW.Tamanho =18 Then IIF(MP.MI18 > 0, MP.MI18, M.MI18)
                        When NEW.Tamanho =19 Then IIF(MP.MI19 > 0,MP.MI19,M.MI19) When NEW.Tamanho =20 Then IIF(MP.MI20 > 0, MP.MI20, M.MI20) End,

                   Case When NEW.Tamanho = 1 Then IIF(MP.MU01 > 0, MP.MU01, M.MU01) When NEW.Tamanho = 2 Then IIF(MP.MU02 > 0, MP.MU02, M.MU02)
                        When NEW.Tamanho = 3 Then IIF(MP.MU03 > 0, MP.MU03, M.MU03) When NEW.Tamanho = 4 Then IIF(MP.MU04 > 0, MP.MU04, M.MU04)
                        When NEW.Tamanho = 5 Then IIF(MP.MU05 > 0, MP.MU05, M.MU05) When NEW.Tamanho = 6 Then IIF(MP.MU06 > 0, MP.MU06, M.MU06)
                        When NEW.Tamanho = 7 Then IIF(MP.MU07 > 0, MP.MU07, M.MU07) When NEW.Tamanho = 8 Then IIF(MP.MU08 > 0, MP.MU08, M.MU08)
                        When NEW.Tamanho = 9 Then IIF(MP.MU09 > 0, MP.MU09, M.MU09) When NEW.Tamanho =10 Then IIF(MP.MU10 > 0, MP.MU10, M.MU10)
                        When NEW.Tamanho =11 Then IIF(MP.MU11 > 0, MP.MU11, M.MU11) When NEW.Tamanho =12 Then IIF(MP.MU12 > 0, MP.MU12, M.MU12)
                        When NEW.Tamanho =13 Then IIF(MP.MU13 > 0, MP.MU13, M.MU13) When NEW.Tamanho =14 Then IIF(MP.MU14 > 0, MP.MU14, M.MU14)
                        When NEW.Tamanho =15 Then IIF(MP.MU15 > 0, MP.MU15, M.MU15) When NEW.Tamanho =16 Then IIF(MP.MU16 > 0, MP.MU16, M.MU16)
                        When NEW.Tamanho =17 Then IIF(MP.MU17 > 0, MP.MU17, M.MU17) When NEW.Tamanho =18 Then IIF(MP.MU18 > 0, MP.MU18, M.MU18)
                        When NEW.Tamanho =19 Then IIF(MP.MU19 > 0, MP.MU19, M.MU19) When NEW.Tamanho =20 Then IIF(MP.MU20 > 0, MP.MU20, M.MU20) End

                  From TbModelo_Pedido_Cota M
                  LEFT JOIN tbmodelo_pedido_cota_perfil MP ON M.modelo_id = MP.MODELO_ID AND MP.perfil_id = :perfil
                 Where M.Modelo_Id = New.Modelo_Codigo
                  Into :Mod_Qtd_Min, :Mod_Qtd_Mult
                    do
                 Begin
                     if (:Mod_Qtd_Min > 0 and New.Quantidade < :Mod_Qtd_Min and :Cli_Qtd_Min = '1') then
                         Begin
                            Exception "..." 'QUANTIDADE MINIMA DO MODELO ANTINGIDO, INCLUSAO DO ITEM CANCELADA. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO
                            ||' QUANT.MINIMA: '||:Mod_QTD_MIN||' QUANT. NO PEDIDO: '||NEW.QUANTIDADE
                            ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                         End
                     if (:Mod_Qtd_Mult > 0 and :Cli_Qtd_Mult = '1') Then
                         Begin
                         if (TRUNC(NEW.QUANTIDADE) - (TRUNC(NEW.QUANTIDADE)/:Mod_Qtd_Mult) * :Mod_Qtd_Mult > 0) then
                             Begin
                                Exception "..." 'QUANTIDADE MULTIMA DO MODELO VIOLADO, INCLUSAO DO ITEM CANCELADA. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO
                                ||' QUANT.MULTIPLA: '||:MOD_QTD_MULT||' QUANT.NO PEDIDO: '||NEW.QUANTIDADE
                                ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                             End
                         End
                   End

                End
           End
      End

End^

CREATE OR ALTER trigger ttbpedido_item_b0u_02 for tbpedido_item
active before update position 0
AS
DECLARE VARIABLE Tipo_Pedido  Char(1);
DECLARE VARIABLE Mod_Qtd_Min  Integer;
DECLARE VARIABLE Mod_Qtd_Mult Integer;
DECLARE VARIABLE Blq_Ped      Char(1);
DECLARE VARIABLE Blq_Qtd_Min  Integer;
DECLARE VARIABLE Blq_Qtd_Mult Integer;
DECLARE VARIABLE Cli_Qtd_Min  Char(1);
DECLARE VARIABLE Cli_Qtd_Mult Char(1);
DECLARE VARIABLE Cor_Id       Integer;
DECLARE VARIABLE Produto VarChar(100);
DECLARE VARIABLE perfil   VarChar(10);
DECLARE VARIABLE ecomerce     Integer;
begin

  Select c.ecommerce,
         c.classificacao
      From TbPedido c
      Where Pedido               = New.Pedido
      and Estabelecimento_Codigo = New.Estabelecimento_Codigo
      into ecomerce, perfil;
  ecomerce   = coalesce(ecomerce,0);

  if ((New.Tamanho <> Old.Tamanho or
      New.Quantidade <> Old.Quantidade or
      New.Produto_Codigo <> Old.Produto_Codigo or
     (New.Situacao <> Old.Situacao and New.Situacao = 1)) and  ecomerce = 0) Then
       Begin

          Tipo_Pedido = Coalesce((Select Tipo_Pedido From TbPedido Where Pedido = New.Pedido and Estabelecimento_Codigo = New.Estabelecimento_Codigo),'1');
          Cli_Qtd_Min = '1';
          Cli_Qtd_Mult= '1';
        
          if (:Tipo_Pedido = '1' and New.Tamanho > 0 and New.Situacao = 1) Then --Pedido Normal
              Begin
        
                For
                Select First 1 C.Quantidade_Minima, C.Quantidade_Multipla
                  From TbCliente_Modelo_Preco C
                 Where C.Cliente_Codigo = New.Cliente_Codigo
                   and C.Modelo_Codigo = New.Modelo_Codigo
                  Into :Cli_Qtd_Min, :Cli_Qtd_Mult
                    Do
                 Begin
                   End
        
                For
                Select First 1 P.Cor_Codigo, P.Descricao
                  From TbProduto P
                 Where P.Codigo = New.Produto_Codigo
                  Into :Cor_Id, :Produto
                    Do
                 Begin
        
                    if (:Cor_Id > 0) Then
                        Begin
        
                        Blq_Qtd_Min  = 0;
                        Blq_Qtd_Mult = 0;
        
                        For
                        Select First 1 B.Blq_Ped, Coalesce(P.Qtd_Min,0), Coalesce(P.Qtd_Mult,0)
                          From TbModelo_Bloqueio B
                     Left Join TbPerfil P On B.Perfil = P.Id and P.Tabela = 'SKU' and P.Qtd_Tipo = 'T' --'T' Por Tamanho
                         Where B.Modelo_ID = New.Modelo_Codigo
                           and B.Tamanho = New.Tamanho
                           and B.Cor_Id = :Cor_Id
                          Into :Blq_Ped, :Blq_Qtd_Min, :Blq_Qtd_Mult
                            do
                         Begin
                             /*if (:Blq_Ped = '1') then
                                 Begin
                                    Exception "..." 'PRODUTO BLOQUEADO PARA PEDIDO. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO||
                                    ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                                 End */
                             if (:Blq_Qtd_Min > 0 and New.Quantidade < :Blq_Qtd_Min and :Cli_Qtd_Min = '1') then
                                 Begin
                                    Exception "..." 'QUANTIDADE MINIMA DO PRODUTO ANTINGIDO, ALTERACAO DO ITEM CANCELADA. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO
                                    ||' QUANT.MINIMA: '||:BLQ_QTD_MIN||' QUANT. NO PEDIDO: '||NEW.QUANTIDADE
                                    ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                                 End
                             if (:Blq_Qtd_Mult > 0 and :Cli_Qtd_Mult = '1') Then
                                 Begin
                                 if (TRUNC(NEW.QUANTIDADE) - (TRUNC(NEW.QUANTIDADE)/:Blq_Qtd_Mult) * :Blq_Qtd_Mult > 0) then
                                     Begin
                                        Exception "..." 'QUANTIDADE MULTIMA DO PRODUTO VIOLADO, ALTERACAO DO ITEM CANCELADA. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO
                                        ||' QUANT.MULTIPLA: '||:BLQ_QTD_MULT||' QUANT.NO PEDIDO: '||NEW.QUANTIDADE
                                        ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                                     End
                                 End
                           End


                           if(New.Tamanho        <> Old.Tamanho       or
                              new.MODELO_CODIGO  <> old.Modelo_Codigo or
                              new.COR_ID         <> old.cor_id        or
                              New.Produto_Codigo <> Old.Produto_Codigo) then
                              begin
                                        
                                    For
                                    Select First 1 1 as Blq_Ped
                                      From TbModelo_Bloqueio_perfil B
                                     Where B.Modelo_ID = New.Modelo_Codigo
                                        and (b.perfil = (select first 1 classificacao from tbpedido xyz where xyz.PEDIDO = new.PEDIDO) or b.perfil is null)
                                         AND ((B.COR_ID  = :COR_ID     AND B.TAMANHO = new.TAMANHO)
                                           OR (B.TAMANHO = 0           AND B.COR_ID = 0)
                                           OR (B.TAMANHO = new.TAMANHO AND B.COR_ID = 0)
                                           OR (B.TAMANHO = 0           AND B.COR_ID = :COR_ID))
                                      Into :Blq_Ped
                                        do
                                     Begin
                                        Exception "..." 'PRODUTO BLOQUEADO PARA PEDIDO. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO||
                                        ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                    
                                     end
                               end
        
        -------------
        
                        Mod_Qtd_Min  = 0;
                        Mod_Qtd_Mult = 0;
        
                        For
                        Select First 1   
                            Case When NEW.Tamanho = 1 Then IIF(MP.MI01 > 0,MP.MI01,M.MI01)
                                When NEW.Tamanho = 2 Then IIF(MP.MI02 > 0,MP.MI02,M.MI02)
                                When NEW.Tamanho = 3 Then IIF(MP.MI03 > 0,MP.MI03,M.MI03) When NEW.Tamanho = 4 Then IIF(MP.MI04 > 0, MP.MI04, M.MI04)
                                When NEW.Tamanho = 5 Then IIF(MP.MI05 > 0,MP.MI05,M.MI05) When NEW.Tamanho = 6 Then IIF(MP.MI06 > 0, MP.MI06, M.MI06)
                                When NEW.Tamanho = 7 Then IIF(MP.MI07 > 0,MP.MI07,M.MI07) When NEW.Tamanho = 8 Then IIF(MP.MI08 > 0, MP.MI08, M.MI08)
                                When NEW.Tamanho = 9 Then IIF(MP.MI09 > 0,MP.MI09,M.MI09) When NEW.Tamanho =10 Then IIF(MP.MI10 > 0, MP.MI10, M.MI10)
                                When NEW.Tamanho =11 Then IIF(MP.MI11 > 0,MP.MI11,M.MI11) When NEW.Tamanho =12 Then IIF(MP.MI12 > 0, MP.MI12, M.MI12)
                                When NEW.Tamanho =13 Then IIF(MP.MI13 > 0,MP.MI13,M.MI13) When NEW.Tamanho =14 Then IIF(MP.MI14 > 0, MP.MI14, M.MI14)
                                When NEW.Tamanho =15 Then IIF(MP.MI15 > 0,MP.MI15,M.MI15) When NEW.Tamanho =16 Then IIF(MP.MI16 > 0, MP.MI16, M.MI16)
                                When NEW.Tamanho =17 Then IIF(MP.MI17 > 0,MP.MI17,M.MI17) When NEW.Tamanho =18 Then IIF(MP.MI18 > 0, MP.MI18, M.MI18)
                                When NEW.Tamanho =19 Then IIF(MP.MI19 > 0,MP.MI19,M.MI19) When NEW.Tamanho =20 Then IIF(MP.MI20 > 0, MP.MI20, M.MI20) End,

                            Case When NEW.Tamanho = 1 Then IIF(MP.MU01 > 0, MP.MU01, M.MU01) When NEW.Tamanho = 2 Then IIF(MP.MU02 > 0, MP.MU02, M.MU02)
                                When NEW.Tamanho = 3 Then IIF(MP.MU03 > 0, MP.MU03, M.MU03) When NEW.Tamanho = 4 Then IIF(MP.MU04 > 0, MP.MU04, M.MU04)
                                When NEW.Tamanho = 5 Then IIF(MP.MU05 > 0, MP.MU05, M.MU05) When NEW.Tamanho = 6 Then IIF(MP.MU06 > 0, MP.MU06, M.MU06)
                                When NEW.Tamanho = 7 Then IIF(MP.MU07 > 0, MP.MU07, M.MU07) When NEW.Tamanho = 8 Then IIF(MP.MU08 > 0, MP.MU08, M.MU08)
                                When NEW.Tamanho = 9 Then IIF(MP.MU09 > 0, MP.MU09, M.MU09) When NEW.Tamanho =10 Then IIF(MP.MU10 > 0, MP.MU10, M.MU10)
                                When NEW.Tamanho =11 Then IIF(MP.MU11 > 0, MP.MU11, M.MU11) When NEW.Tamanho =12 Then IIF(MP.MU12 > 0, MP.MU12, M.MU12)
                                When NEW.Tamanho =13 Then IIF(MP.MU13 > 0, MP.MU13, M.MU13) When NEW.Tamanho =14 Then IIF(MP.MU14 > 0, MP.MU14, M.MU14)
                                When NEW.Tamanho =15 Then IIF(MP.MU15 > 0, MP.MU15, M.MU15) When NEW.Tamanho =16 Then IIF(MP.MU16 > 0, MP.MU16, M.MU16)
                                When NEW.Tamanho =17 Then IIF(MP.MU17 > 0, MP.MU17, M.MU17) When NEW.Tamanho =18 Then IIF(MP.MU18 > 0, MP.MU18, M.MU18)
                                When NEW.Tamanho =19 Then IIF(MP.MU19 > 0, MP.MU19, M.MU19) When NEW.Tamanho =20 Then IIF(MP.MU20 > 0, MP.MU20, M.MU20) End

                          From TbModelo_Pedido_Cota M
                          LEFT JOIN tbmodelo_pedido_cota_perfil MP ON M.modelo_id = MP.MODELO_ID AND MP.perfil_id = :perfil
                         Where M.Modelo_Id = New.Modelo_Codigo
                          Into :Mod_Qtd_Min, :Mod_Qtd_Mult
                            do
                         Begin
                             if (:Mod_Qtd_Min > 0 and New.Quantidade < :Mod_Qtd_Min and :Cli_Qtd_Min = '1') then
                                 Begin
                                    Exception "..." 'QUANTIDADE MINIMA DO MODELO ANTINGIDO, ALTERACAO DO ITEM CANCELADA. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO
                                    ||' QUANT.MINIMA: '||:Mod_QTD_MIN||' QUANT. NO PEDIDO: '||NEW.QUANTIDADE
                                    ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                                 End
                             if (:Mod_Qtd_Mult > 0 and :Cli_Qtd_Mult = '1') Then
                                 Begin
                                 if (TRUNC(NEW.QUANTIDADE) - (TRUNC(NEW.QUANTIDADE)/:Mod_Qtd_Mult) * :Mod_Qtd_Mult > 0) then
                                     Begin
                                        Exception "..." 'QUANTIDADE MULTIPLA DO MODELO VIOLADO, ALTERACAO DO ITEM CANCELADA. PRODUTO: '||NEW.PRODUTO_CODIGO||'-'||:PRODUTO
                                        ||' QUANT.MULTIPLA: '||:MOD_QTD_MULT||' QUANT.NO PEDIDO: '||NEW.QUANTIDADE
                                        ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
                                     End
                                 End
                           End
        
                        End
                   End
              End
       End
End^


^ SET TERM ; ^