CREATE OR ALTER procedure SPC_PRODUTOS_CUSTO_V2 (
    FAMILIA_ID integer,
    ANO integer,
    MES integer,
    MODELO integer = 0)
returns (
    MODELO_ID integer,
    COR_ID integer,
    PRODUTO_ID integer,
    N_PRODUTO bigint,
    L_PRODUTO bigint,
    LINHA_ID integer)
as
declare variable DATA1 date;
declare variable DATA2 date;
begin

  DATA1 = fn_start_of_month('01.'||:MES||'.'||:ANO||'');
  DATA2 = fn_end_of_month(  '01.'||:MES||'.'||:ANO||'');

  if(:FAMILIA_ID = 3)then
  begin
    For
        select distinct
            y.MODELO_CODIGO,
            c.cor_id,
            k.codigo as PRODUTO,
            count(y.MODELO_CODIGO) over() as N_PRODUTO,
            row_number() over() as L_PRODUTO,
            y.linha_codigo
        from(
            select distinct a.modelo_codigo, m.linha_codigo
              from tbpedido_item_processado a, tbmodelo m
             where a.familia_codigo = :FAMILIA_ID
               and a.data_producao between :DATA1 and :DATA2
               and m.codigo = a.modelo_codigo
            
            union
            
            select distinct pp.modelo_codigo modelo_id, m.linha_codigo
              from tbpedido p, tbpedido_item a, tbproduto pp, tbmodelo m
             where a.produto_codigo = pp.codigo
               and p.pedido = a.pedido
               and pp.familia_codigo = :FAMILIA_ID
               and p.data between :DATA1 and :DATA2
               and m.codigo = pp.modelo_codigo
            
            union
            
            select distinct pp.modelo_codigo modelo_id, m.linha_codigo
              from tbnfs p, tbnfs_item a, tbproduto pp, tbmodelo m
             where a.produto_codigo = pp.codigo
               and a.nfs_controle = p.controle
               and pp.familia_codigo = :FAMILIA_ID
               and p.data_emissao between :DATA1 and :DATA2
               and m.codigo = pp.modelo_codigo

            union
            
            select distinct m.codigo modelo_id, m.linha_codigo
              from tbmodelo m
            where m.codigo = :MODELO
        
        ) y, tbmodelo_cor c, tbproduto k, tbcor l
        where c.modelo_id = y.MODELO_CODIGO
        and k.modelo_codigo = c.modelo_id
        and k.cor_codigo = c.cor_id
        and l.codigo = c.cor_id
        and l.status = '1'
        and k.status = 1

    Into :modelo_id, :cor_id, :produto_id, :N_PRODUTO, :L_PRODUTO, :LINHA_ID
    do
    begin
      suspend;
    end 
  end else
  begin
    For
        select
            j.modelo_id,
            j.cor_id,
            j.produto_id,
            count(j.produto_id) over() as N_PRODUTO,
            row_number() over() as L_PRODUTO,
            j.linha_codigo
        from(
        Select distinct
            a.modelo_id,
            a.cor_id,
            a.produto_id,
            m.linha_codigo
        from tbficha_tecnica a, TbModelo m
          Where m.codigo = a.modelo_id
          and a.ano = :ano and a.mes = :mes
          and m.familia_codigo = :FAMILIA_ID
        ) j
    Into :modelo_id, :cor_id, :produto_id, :N_PRODUTO, :L_PRODUTO, :LINHA_ID
    do
    begin
      suspend;
    end
  end

end;

CREATE OR ALTER procedure SPU_TEMPOMEDIO_MODELOS_V2 (
    ESTABELECIMENTO_ID integer,
    DATA date,
    IMODELO_ID integer)
as
declare variable VFAMILIA_ID integer;
declare variable VGP_ID varchar(10);
declare variable VPERFIL_UP char(1);
declare variable VUP_PADRAO1 integer;
declare variable VUP_PADRAO2 integer;
declare variable VCALCULO_REBOBINAMENTO char(1);
declare variable VCALCULO_CONFORMACAO char(1);
declare variable VCCUSTO varchar(10);
declare variable VFATOR numeric(15,2);
declare variable VREMESSAS_DEFEITO integer;
declare variable VESTACOES integer;
declare variable VTOTAL_MINUTOS_DIA integer;
declare variable VTOTAL_MINUTOS_NOITE integer;
declare variable PERCENTUAL_PERDA numeric(15,5);
declare variable TAM integer;
declare variable MES integer;
declare variable ANO integer;
declare variable MODELO_ID integer;
declare variable COR_ID integer;
declare variable PRODUTO_ID integer;
declare variable TOTALSETUP numeric(15,4);
declare variable TOTALPROCESSO numeric(15,4);
declare variable CUSTO_MINUTO numeric(18,8);
declare variable MOI_PROPRIO numeric(18,8);
declare variable MOI_ABSORVIDO numeric(18,8);
declare variable VTOTAL_MINUTOS integer;
declare variable N_FAMILIA integer;
declare variable L_FAMILIA integer;
declare variable N_PRODUTO integer;
declare variable L_PRODUTO integer;
declare variable TIPO integer;
declare variable LINHA_ID integer;
Begin

  MES  = EXTRACT(MONTH FROM :DATA);
  ANO  = EXTRACT(YEAR  FROM :DATA);

  DATA = fn_end_of_month(DATA);

  DELETE FROM TBFICHA_TEMPO WHERE MES = :MES AND ANO = :ANO and iif(:IMODELO_ID > 0, modelo_id = :IMODELO_ID, true);

  --DELETE FROM TBFICHA_TEMPO pm WHERE pm.MES = :MES AND pm.ANO = :ANO and pm.produto_id in (
  --  select p.codigo from tbproduto p where p.familia_codigo = 133
  --);

  delete from tblog_procedure h where h.tabela = 'MODELOS - '||:DATA;

  FOR
    SELECT
        FAMILIA_ID, GP_ID, PERFIL_UP, UP_PADRAO1, UP_PADRAO2,
        CALCULO_REBOBINAMENTO, CALCULO_CONFORMACAO, CCUSTO, FATOR, REMESSAS_DEFEITO,
        Count(FAMILIA_ID) over() as N_FAMILIA, row_number() over()
    FROM (
        Select DISTINCT FAMILIA_ID, GP_ID, PERFIL_UP, UP_PADRAO1, UP_PADRAO2,
                 CALCULO_REBOBINAMENTO, CALCULO_CONFORMACAO, CCUSTO, FATOR,
                 REMESSAS_DEFEITO
            From TBREGRA_CALCULO_CUSTO h
           Where Status = '1'
           and iif(:IMODELO_ID > 0, h.familia_id = (select m.familia_codigo from tbmodelo m where m.codigo = :IMODELO_ID), true)
          Order By ID
    ) A

  Into :vFAMILIA_ID,:vGP_ID,:vPERFIL_UP,:vUP_PADRAO1,:vUP_PADRAO2,
       :vCALCULO_REBOBINAMENTO, :vCALCULO_CONFORMACAO, :vCCUSTO,
       :vFATOR, :vREMESSAS_DEFEITO, :N_FAMILIA, :L_FAMILIA
    Do Begin

        --in autonomous transaction do
        --begin

             PERCENTUAL_PERDA = 0;

             Select estacoes, total_minutos_dia, total_minutos_noite, minutos
             From spc_minutos_disponiveis (:vFamilia_id,:vGp_Id,:vPerfil_Up,:Mes,:Ano)
             INTO :vestacoes, :vtotal_minutos_dia, :vtotal_minutos_noite, :vtotal_minutos;
        
              --Custo Operacional por Minuto
              CUSTO_MINUTO = FN_CUSTO_MINUTO (:ESTABELECIMENTO_ID,:ANO,:MES,1,1,:vtotal_minutos_dia,:vCCUSTO);       -- MAO DE OBRA DIRETA
              MOI_PROPRIO  = FN_CUSTO_MINUTO (:ESTABELECIMENTO_ID,:ANO,:MES,2,:vestacoes,:vtotal_minutos,:vCCUSTO);  -- MAO DE OBRA INDIRETA PROPRIA (LIDERES)
              MOI_ABSORVIDO= FN_CUSTO_MINUTO (:ESTABELECIMENTO_ID,:ANO,:MES,3,:vestacoes,:vtotal_minutos,:vCCUSTO);  -- MAO DE OBRA INDIRETA ABSORVIDA (SETORES DE APOIO)
        
              For   select * from
                    (select
                         a.*
                     from SPC_PRODUTOS_CUSTO_V2(:vFamilia_id, :ANO, :MES, :IMODELO_ID) a) where iif(:IMODELO_ID > 0, modelo_id = :IMODELO_ID, true)
              Into :modelo_id, :cor_id, :produto_id, :N_PRODUTO, :L_PRODUTO, :linha_id
              do Begin

              --in autonomous transaction do
              --begin

                 if(vFATOR > 1)then
                 begin
                    vFATOR = fn_parametro('TBMODELO_LINHA.FATOR_CONVERSAO', linha_id);
                 end

                 execute procedure SPU_LOG_PROCEDURE( 'MODELOS - '||:DATA, 'Tratando Familia:'||:L_FAMILIA||'/'||:N_FAMILIA||'  Produto:'||:L_PRODUTO||'/'||:N_PRODUTO);

                 INSERT INTO TBFICHA_TEMPO (MES, ANO, MODELO_ID, COR_ID, PRODUTO_ID, TO00, TS00, CUSTO_MINUTO, MOI_PROPRIO, MOI_ABSORVIDO) Values
                 (:MES, :ANO, :MODELO_ID, :COR_ID, :PRODUTO_ID, 0, 0, :CUSTO_MINUTO, :MOI_PROPRIO, :MOI_ABSORVIDO);
            
                 For Select A.Tamanho From TbGrade_Seq A, tbmodelo M Where M.Codigo = :Modelo_Id
                       and((M.Grade_codigo = 0 and Tamanho = 0) or
                           (M.t01 = '1' and Tamanho = 1) or (M.t02 = '1' and Tamanho = 2) or (M.t03 = '1' and Tamanho = 3) or (M.t04 = '1' and Tamanho = 4) or
                           (M.t05 = '1' and Tamanho = 5) or (M.t06 = '1' and Tamanho = 6) or (M.t07 = '1' and Tamanho = 7) or (M.t08 = '1' and Tamanho = 8) or
                           (M.t09 = '1' and Tamanho = 9) or (M.t10 = '1' and Tamanho =10) or (M.t11 = '1' and Tamanho =11) or (M.t12 = '1' and Tamanho =12) or
                           (M.t13 = '1' and Tamanho =13) or (M.t14 = '1' and Tamanho =14) or (M.t15 = '1' and Tamanho =15) or (M.t16 = '1' and Tamanho =16) or
                           (M.t17 = '1' and Tamanho =17) or (M.t18 = '1' and Tamanho =18) or (M.t19 = '1' and Tamanho =19) or (M.t20 = '1' and Tamanho =20))
                     Into :Tam
                     Do Begin

                         if (:vREMESSAS_DEFEITO > 0) then
                              Begin
                              PERCENTUAL_PERDA = Coalesce((SELECT PERCENTUAL_DEFEITO FROM SPC_REMESSA_SKU_DEFEITO_PERCENT
                                                          (:Modelo_Id, :Cor_Id, :Tam, 0, 3, '1')),0);
                              End

                         Delete from Tmp22040 Where True;
                         INSERT INTO TMP22040 (UP_ID, MODELO_ID, COR_ID, TAMANHO, QUANTIDADE) VALUES (:vUP_PADRAO1 ,:modelo_id, :cor_id, :Tam, 1);
                         if (:vCALCULO_REBOBINAMENTO = '1') then
                             Begin
                             INSERT INTO TMP22040 (UP_ID, MODELO_ID, COR_ID, TAMANHO, QUANTIDADE) VALUES (:vUP_PADRAO1 ,:modelo_id, 99999, :Tam, 0);
                             End
    
                             SELECT TOTALPROCESSO * :vFATOR, TOTALSETUP From SPC_PROGRAMACAO_TEMPO_NOVO(1) INTO :TOTALPROCESSO, :TOTALSETUP;
        
                             if (:Tam = 0) then begin UPDATE TBFICHA_TEMPO SET TO00 = :TOTALPROCESSO, TS00 = :TOTALSETUP, PERDA00 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 1) then begin UPDATE TBFICHA_TEMPO SET TO01 = :TOTALPROCESSO, TS01 = :TOTALSETUP, PERDA01 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 2) then begin UPDATE TBFICHA_TEMPO SET TO02 = :TOTALPROCESSO, TS02 = :TOTALSETUP, PERDA02 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 3) then begin UPDATE TBFICHA_TEMPO SET TO03 = :TOTALPROCESSO, TS03 = :TOTALSETUP, PERDA03 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 4) then begin UPDATE TBFICHA_TEMPO SET TO04 = :TOTALPROCESSO, TS04 = :TOTALSETUP, PERDA04 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 5) then begin UPDATE TBFICHA_TEMPO SET TO05 = :TOTALPROCESSO, TS05 = :TOTALSETUP, PERDA05 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 6) then begin UPDATE TBFICHA_TEMPO SET TO06 = :TOTALPROCESSO, TS06 = :TOTALSETUP, PERDA06 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 7) then begin UPDATE TBFICHA_TEMPO SET TO07 = :TOTALPROCESSO, TS07 = :TOTALSETUP, PERDA07 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 8) then begin UPDATE TBFICHA_TEMPO SET TO08 = :TOTALPROCESSO, TS08 = :TOTALSETUP, PERDA08 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam = 9) then begin UPDATE TBFICHA_TEMPO SET TO09 = :TOTALPROCESSO, TS09 = :TOTALSETUP, PERDA09 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =10) then begin UPDATE TBFICHA_TEMPO SET TO10 = :TOTALPROCESSO, TS10 = :TOTALSETUP, PERDA10 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =11) then begin UPDATE TBFICHA_TEMPO SET TO11 = :TOTALPROCESSO, TS11 = :TOTALSETUP, PERDA11 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =12) then begin UPDATE TBFICHA_TEMPO SET TO12 = :TOTALPROCESSO, TS12 = :TOTALSETUP, PERDA12 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =13) then begin UPDATE TBFICHA_TEMPO SET TO13 = :TOTALPROCESSO, TS13 = :TOTALSETUP, PERDA13 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =14) then begin UPDATE TBFICHA_TEMPO SET TO14 = :TOTALPROCESSO, TS14 = :TOTALSETUP, PERDA14 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =15) then begin UPDATE TBFICHA_TEMPO SET TO15 = :TOTALPROCESSO, TS15 = :TOTALSETUP, PERDA15 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =16) then begin UPDATE TBFICHA_TEMPO SET TO16 = :TOTALPROCESSO, TS16 = :TOTALSETUP, PERDA16 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =17) then begin UPDATE TBFICHA_TEMPO SET TO17 = :TOTALPROCESSO, TS17 = :TOTALSETUP, PERDA17 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =18) then begin UPDATE TBFICHA_TEMPO SET TO18 = :TOTALPROCESSO, TS18 = :TOTALSETUP, PERDA18 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =19) then begin UPDATE TBFICHA_TEMPO SET TO19 = :TOTALPROCESSO, TS19 = :TOTALSETUP, PERDA19 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                             if (:Tam =20) then begin UPDATE TBFICHA_TEMPO SET TO20 = :TOTALPROCESSO, TS20 = :TOTALSETUP, PERDA20 = :PERCENTUAL_PERDA WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End

                         if (:vUP_PADRAO2 > 0) then
                             Begin

                             Delete from Tmp22040 Where True;
                             INSERT INTO TMP22040 (UP_ID, MODELO_ID, COR_ID, TAMANHO, QUANTIDADE) VALUES (:vUP_PADRAO2 ,:modelo_id, :cor_id, :Tam, 1);
                             if (:vCALCULO_REBOBINAMENTO = '1') then
                                 Begin
                                 INSERT INTO TMP22040 (UP_ID, MODELO_ID, COR_ID, TAMANHO, QUANTIDADE) VALUES (:vUP_PADRAO2 ,:modelo_id, 99999, :Tam, 0);
                                 End
                    
                                 SELECT TOTALPROCESSO * :vFATOR, TOTALSETUP From SPC_PROGRAMACAO_TEMPO_NOVO(1) INTO :TOTALPROCESSO, :TOTALSETUP;

                                 if (:Tam = 0) then begin UPDATE TBFICHA_TEMPO SET TO00 = TO00 + :TOTALPROCESSO, TS00 = TS00 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 1) then begin UPDATE TBFICHA_TEMPO SET TO01 = TO01 + :TOTALPROCESSO, TS01 = TS01 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 2) then begin UPDATE TBFICHA_TEMPO SET TO02 = TO02 + :TOTALPROCESSO, TS02 = TS02 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 3) then begin UPDATE TBFICHA_TEMPO SET TO03 = TO03 + :TOTALPROCESSO, TS03 = TS03 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 4) then begin UPDATE TBFICHA_TEMPO SET TO04 = TO04 + :TOTALPROCESSO, TS04 = TS04 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 5) then begin UPDATE TBFICHA_TEMPO SET TO05 = TO05 + :TOTALPROCESSO, TS05 = TS05 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 6) then begin UPDATE TBFICHA_TEMPO SET TO06 = TO06 + :TOTALPROCESSO, TS06 = TS06 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 7) then begin UPDATE TBFICHA_TEMPO SET TO07 = TO07 + :TOTALPROCESSO, TS07 = TS07 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 8) then begin UPDATE TBFICHA_TEMPO SET TO08 = TO08 + :TOTALPROCESSO, TS08 = TS08 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 9) then begin UPDATE TBFICHA_TEMPO SET TO09 = TO09 + :TOTALPROCESSO, TS09 = TS09 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =10) then begin UPDATE TBFICHA_TEMPO SET TO10 = TO10 + :TOTALPROCESSO, TS10 = TS10 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =11) then begin UPDATE TBFICHA_TEMPO SET TO11 = TO11 + :TOTALPROCESSO, TS11 = TS11 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =12) then begin UPDATE TBFICHA_TEMPO SET TO12 = TO12 + :TOTALPROCESSO, TS12 = TS12 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =13) then begin UPDATE TBFICHA_TEMPO SET TO13 = TO13 + :TOTALPROCESSO, TS13 = TS13 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =14) then begin UPDATE TBFICHA_TEMPO SET TO14 = TO14 + :TOTALPROCESSO, TS14 = TS14 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =15) then begin UPDATE TBFICHA_TEMPO SET TO15 = TO15 + :TOTALPROCESSO, TS15 = TS15 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =16) then begin UPDATE TBFICHA_TEMPO SET TO16 = TO16 + :TOTALPROCESSO, TS16 = TS16 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =17) then begin UPDATE TBFICHA_TEMPO SET TO17 = TO17 + :TOTALPROCESSO, TS17 = TS17 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =18) then begin UPDATE TBFICHA_TEMPO SET TO18 = TO18 + :TOTALPROCESSO, TS18 = TS18 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =19) then begin UPDATE TBFICHA_TEMPO SET TO19 = TO19 + :TOTALPROCESSO, TS19 = TS19 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =20) then begin UPDATE TBFICHA_TEMPO SET TO20 = TO20 + :TOTALPROCESSO, TS20 = TS20 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End
                             End
    
                         if (:vCALCULO_CONFORMACAO = '1') then
                             Begin

                                 SELECT TEMPO, TEMPO_SETUP From SPC_PROGRAMACAO_TEMPO_BOJO (:modelo_id, :Tam, :cor_id, 1) INTO :TOTALPROCESSO, :TOTALSETUP;

                                 if (:Tam = 0) then begin UPDATE TBFICHA_TEMPO SET TO00 = TO00 + :TOTALPROCESSO, TS00 = TS00 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 1) then begin UPDATE TBFICHA_TEMPO SET TO01 = TO01 + :TOTALPROCESSO, TS01 = TS01 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 2) then begin UPDATE TBFICHA_TEMPO SET TO02 = TO02 + :TOTALPROCESSO, TS02 = TS02 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 3) then begin UPDATE TBFICHA_TEMPO SET TO03 = TO03 + :TOTALPROCESSO, TS03 = TS03 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 4) then begin UPDATE TBFICHA_TEMPO SET TO04 = TO04 + :TOTALPROCESSO, TS04 = TS04 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 5) then begin UPDATE TBFICHA_TEMPO SET TO05 = TO05 + :TOTALPROCESSO, TS05 = TS05 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 6) then begin UPDATE TBFICHA_TEMPO SET TO06 = TO06 + :TOTALPROCESSO, TS06 = TS06 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 7) then begin UPDATE TBFICHA_TEMPO SET TO07 = TO07 + :TOTALPROCESSO, TS07 = TS07 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 8) then begin UPDATE TBFICHA_TEMPO SET TO08 = TO08 + :TOTALPROCESSO, TS08 = TS08 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam = 9) then begin UPDATE TBFICHA_TEMPO SET TO09 = TO09 + :TOTALPROCESSO, TS09 = TS09 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =10) then begin UPDATE TBFICHA_TEMPO SET TO10 = TO10 + :TOTALPROCESSO, TS10 = TS10 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =11) then begin UPDATE TBFICHA_TEMPO SET TO11 = TO11 + :TOTALPROCESSO, TS11 = TS11 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =12) then begin UPDATE TBFICHA_TEMPO SET TO12 = TO12 + :TOTALPROCESSO, TS12 = TS12 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =13) then begin UPDATE TBFICHA_TEMPO SET TO13 = TO13 + :TOTALPROCESSO, TS13 = TS13 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =14) then begin UPDATE TBFICHA_TEMPO SET TO14 = TO14 + :TOTALPROCESSO, TS14 = TS14 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =15) then begin UPDATE TBFICHA_TEMPO SET TO15 = TO15 + :TOTALPROCESSO, TS15 = TS15 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =16) then begin UPDATE TBFICHA_TEMPO SET TO16 = TO16 + :TOTALPROCESSO, TS16 = TS16 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =17) then begin UPDATE TBFICHA_TEMPO SET TO17 = TO17 + :TOTALPROCESSO, TS17 = TS17 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =18) then begin UPDATE TBFICHA_TEMPO SET TO18 = TO18 + :TOTALPROCESSO, TS18 = TS18 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =19) then begin UPDATE TBFICHA_TEMPO SET TO19 = TO19 + :TOTALPROCESSO, TS19 = TS19 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End else
                                 if (:Tam =20) then begin UPDATE TBFICHA_TEMPO SET TO20 = TO20 + :TOTALPROCESSO, TS20 = TS20 + :TOTALSETUP WHERE MES = :MES AND ANO = :ANO AND PRODUTO_ID = :PRODUTO_ID; End

                             END
                        END
                  --END
           END
     END
END;


