CREATE OR ALTER trigger ttbmodelo_b2u for tbmodelo
active after update position 2
AS
Begin

  if (OLD.MATRIZ_CODIGO <> NEW.MATRIZ_CODIGO or
      OLD.STATUS <> NEW.STATUS) then
      BEGIN
      if (NEW.STATUS = '1') then
          Begin
          EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (NEW.CODIGO,1,20);
          End
      END

End;

CREATE OR ALTER trigger ttbmatriz_b2u for tbmatriz
active after update position 2
AS
declare variable Modelo_Id Integer;
Begin

  if (New.Quantidade_T01 <> Old.Quantidade_T01 or
      New.Placa_T01 <> Old.Placa_T01 or
      New.Sobra_T01 <> Old.Sobra_T01 or
      New.Placas_Por_Matriz_T01 <> Old.Placas_Por_Matriz_T01) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,1,1); End
      End

  if (New.Quantidade_T02 <> Old.Quantidade_T02 or
      New.Placa_T02 <> Old.Placa_T02 or
      New.Sobra_T02 <> Old.Sobra_T02 or
      New.Placas_Por_Matriz_T02 <> Old.Placas_Por_Matriz_T02) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,2,2); End
      End

  if (New.Quantidade_T03 <> Old.Quantidade_T03 or
      New.Placa_T03 <> Old.Placa_T03 or
      New.Sobra_T03 <> Old.Sobra_T03 or
      New.Placas_Por_Matriz_T03 <> Old.Placas_Por_Matriz_T03) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,3,3); End
      End

  if (New.Quantidade_T04 <> Old.Quantidade_T04 or
      New.Placa_T04 <> Old.Placa_T04 or
      New.Sobra_T04 <> Old.Sobra_T04 or
      New.Placas_Por_Matriz_T04 <> Old.Placas_Por_Matriz_T04) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,4,4); End
      End

  if (New.Quantidade_T05 <> Old.Quantidade_T05 or
      New.Placa_T05 <> Old.Placa_T05 or
      New.Sobra_T05 <> Old.Sobra_T05 or
      New.Placas_Por_Matriz_T05 <> Old.Placas_Por_Matriz_T05) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,5,5); End
      End

  if (New.Quantidade_T06 <> Old.Quantidade_T06 or
      New.Placa_T06 <> Old.Placa_T06 or
      New.Sobra_T06 <> Old.Sobra_T06 or
      New.Placas_Por_Matriz_T06 <> Old.Placas_Por_Matriz_T06) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,6,6); End
      End

  if (New.Quantidade_T07 <> Old.Quantidade_T07 or
      New.Placa_T07 <> Old.Placa_T07 or
      New.Sobra_T07 <> Old.Sobra_T07 or
      New.Placas_Por_Matriz_T07 <> Old.Placas_Por_Matriz_T07) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,7,7); End
      End

  if (New.Quantidade_T08 <> Old.Quantidade_T08 or
      New.Placa_T08 <> Old.Placa_T08 or
      New.Sobra_T08 <> Old.Sobra_T08 or
      New.Placas_Por_Matriz_T08 <> Old.Placas_Por_Matriz_T08) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,8,8); End
      End

  if (New.Quantidade_T09 <> Old.Quantidade_T09 or
      New.Placa_T09 <> Old.Placa_T09 or
      New.Sobra_T09 <> Old.Sobra_T09 or
      New.Placas_Por_Matriz_T09 <> Old.Placas_Por_Matriz_T09) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,9,9); End
      End

  if (New.Quantidade_T10 <> Old.Quantidade_T10 or
      New.Placa_T10 <> Old.Placa_T10 or
      New.Sobra_T10 <> Old.Sobra_T10 or
      New.Placas_Por_Matriz_T10 <> Old.Placas_Por_Matriz_T10) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,10,10); End
      End

----


  if (New.Quantidade_T11 <> Old.Quantidade_T11 or
      New.Placa_T11 <> Old.Placa_T11 or
      New.Sobra_T11 <> Old.Sobra_T11 or
      New.Placas_Por_Matriz_T11 <> Old.Placas_Por_Matriz_T11) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,11,11); End
      End

  if (New.Quantidade_T12 <> Old.Quantidade_T12 or
      New.Placa_T12 <> Old.Placa_T12 or
      New.Sobra_T12 <> Old.Sobra_T12 or
      New.Placas_Por_Matriz_T12 <> Old.Placas_Por_Matriz_T12) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,12,12); End
      End

  if (New.Quantidade_T13 <> Old.Quantidade_T13 or
      New.Placa_T13 <> Old.Placa_T13 or
      New.Sobra_T13 <> Old.Sobra_T13 or
      New.Placas_Por_Matriz_T13 <> Old.Placas_Por_Matriz_T13) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,13,13); End
      End

  if (New.Quantidade_T14 <> Old.Quantidade_T14 or
      New.Placa_T14 <> Old.Placa_T14 or
      New.Sobra_T14 <> Old.Sobra_T14 or
      New.Placas_Por_Matriz_T14 <> Old.Placas_Por_Matriz_T14) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,14,14); End
      End

  if (New.Quantidade_T15 <> Old.Quantidade_T15 or
      New.Placa_T15 <> Old.Placa_T15 or
      New.Sobra_T15 <> Old.Sobra_T15 or
      New.Placas_Por_Matriz_T15 <> Old.Placas_Por_Matriz_T15) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,15,15); End
      End

  if (New.Quantidade_T16 <> Old.Quantidade_T16 or
      New.Placa_T16 <> Old.Placa_T16 or
      New.Sobra_T16 <> Old.Sobra_T16 or
      New.Placas_Por_Matriz_T16 <> Old.Placas_Por_Matriz_T16) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,16,16); End
      End

  if (New.Quantidade_T17 <> Old.Quantidade_T17 or
      New.Placa_T17 <> Old.Placa_T17 or
      New.Sobra_T17 <> Old.Sobra_T17 or
      New.Placas_Por_Matriz_T17 <> Old.Placas_Por_Matriz_T17) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,17,17); End
      End

  if (New.Quantidade_T18 <> Old.Quantidade_T18 or
      New.Placa_T18 <> Old.Placa_T18 or
      New.Sobra_T18 <> Old.Sobra_T18 or
      New.Placas_Por_Matriz_T18 <> Old.Placas_Por_Matriz_T18) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,18,18); End
      End

  if (New.Quantidade_T19 <> Old.Quantidade_T19 or
      New.Placa_T19 <> Old.Placa_T19 or
      New.Sobra_T19 <> Old.Sobra_T19 or
      New.Placas_Por_Matriz_T19 <> Old.Placas_Por_Matriz_T19) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,19,19); End
      End

  if (New.Quantidade_T20 <> Old.Quantidade_T20 or
      New.Placa_T20 <> Old.Placa_T20 or
      New.Sobra_T20 <> Old.Sobra_T20 or
      New.Placas_Por_Matriz_T20 <> Old.Placas_Por_Matriz_T20) Then
      Begin
      For Select Codigo From TbModelo Where Matriz_Codigo = New.Codigo
             and Status = '1' Into :Modelo_Id
          Do begin EXECUTE PROCEDURE SPU_ATUALIZA_MODELO_FLUXO (Modelo_Id,20,20); End
      End

End;

COMMENT ON TRIGGER TTBMATRIZ_B2U IS 'recalcula tempo no fluxo de producao';


