SET TERM ^ ;

CREATE OR ALTER procedure SP_NOTIFICAR_PEDIDO2 (
    PEDIDO integer,
    TIPO integer,
    CONFIRMACAO varchar(1),
    MOTIVO blob sub_type 0 segment size 80 = '',
    INCLUSAO integer = 0)
as
declare variable PEDIDO_CLIENTE varchar(500);
declare variable PERFIL_PEDIDO varchar(500);
declare variable TIPO_PEDIDO varchar(500);
declare variable SUBTIPO_PEDIDO varchar(500);
declare variable CLIENTE_DESCRICAO varchar(500);
declare variable CLIENTE_AMOSTRA_DESCRICAO varchar(500);
declare variable REPRESENTANTE_DESCRICAO varchar(500);
declare variable PAGAMENTO_FORMA_DESCRICAO varchar(500);
declare variable PAGAMENTO_CONDICAO_DESCRICAO varchar(500);
declare variable VALOR_FRETE varchar(500);
declare variable FRETE_DESCRICAO varchar(500);
declare variable VALOR_TOTAL numeric(15,8);
declare variable USUARIO_ID integer;
declare variable EMAIL varchar(200);
declare variable CORPO1 blob sub_type 1 segment size 80;
declare variable CORPO2 blob sub_type 1 segment size 80;
declare variable TABELA blob sub_type 1 segment size 80;
declare variable TABELA2 blob sub_type 1 segment size 80;
declare variable ASSUNTO varchar(500);
declare variable PRODUTO_CODIGO varchar(10);
declare variable MODELO_DESCRICAO varchar(500);
declare variable PRODUTO_DESCRICAO varchar(500);
declare variable QUANTIDADE numeric(15,8);
declare variable VALOR numeric(15,8);
declare variable TAMANHO varchar(10);
declare variable TAMANHO_DESCRICAO varchar(20);
declare variable COR_DESCRICAO varchar(500);
declare variable SUB_TOTAL numeric(15,8);
declare variable VALOR_ORIGINAL numeric(15,8);
declare variable VALOR_DESCONTO numeric(15,8);
declare variable PERCENTUAL_DESCONTO numeric(15,8);
declare variable PERCENTUAL_ACRESCIMO numeric(15,8);
declare variable VALOR_ACRESCIMO numeric(15,8);
declare variable TAXA_MOEDA numeric(15,8);
declare variable VALOR_UNIT_ESTRANGEIRO numeric(15,8);
declare variable VALOR_IPI numeric(15,8);
declare variable PERCENTUAL_IPI numeric(15,8);
declare variable PERFIL_ID varchar(10);
declare variable MOEDA varchar(1);
declare variable PEDIDO_CLIENTE_ITEM varchar(20);
declare variable MOEDA_DESCRICAO varchar(10);
declare variable AUTORIZACAO_SUPERVISOR varchar(1);
declare variable AUTORIZACAO_FINANCEIRO varchar(1);
declare variable OBSERVACAO varchar(1000);
declare variable DATAHORA timestamp;
declare variable CLIENTE_CODIGO integer;
declare variable TITULO varchar(50);
declare variable REPRESENTANTE_CODIGO integer;
declare variable VALOR_ST_TOTAL numeric(15,8);
declare variable QUANTIDADE_TOTAL numeric(15,8);
declare variable ACRESCIMO_TOTAL numeric(15,8);
declare variable DESCONTO_TOTAL numeric(15,8);
declare variable VALOR_IPI_TOTAL numeric(15,8);
declare variable SITUACAO integer;
declare variable VALOR_ITENS_TOTAL numeric(15,8);
declare variable CLIENTE_TIPO_ID integer;
declare variable CONSIGNACAO varchar(1);
declare variable AMOSTRA varchar(1);
declare variable CLIENTE_SUB_TIPO_ID integer;
declare variable NOTIFICAR_PEDIDO varchar(1) = 1;
declare variable AUTOMATICO varchar(1) = 0;
BEGIN

    ASSUNTO          = 'PEDIDO ';
    TITULO           = 'PEDIDO ';
    TABELA           = '';
    TABELA2          = '';
    NOTIFICAR_PEDIDO = 1;
    AUTOMATICO       = 0;

    --NOTIFICAR
    FOR
       SELECT FIRST 1
            C.PEDIDO_CLIENTE,
            C.CLASSIFICACAO AS PERFIL_ID,
            D.ID||' - '||D.DESCRICAO AS PERFIL_PEDIDO,
            FN_LPAD(J.CODIGO, 5,0)||' - '||J.DESCRICAO   AS TIPO_PEDIDO,
            FN_LPAD(K.ID, 5,0)||' - '||K.DESCRICAO       AS SUBTIPO_PEDIDO,
            E.CODIGO AS CLIENTE_CODIGO,
            FN_LPAD(E.CODIGO, 5,0)||' - '||E.RAZAOSOCIAL||'('||E.UF||')' AS CLIENTE_DESCRICAO,
            FN_LPAD(X.CODIGO, 5,0)||' - '||X.RAZAOSOCIAL AS CLIENTE_AMOSTRA_DESCRICAO,
            C.REPRESENTANTE_CODIGO,
            FN_LPAD(G.CODIGO, 5,0)||' - '||G.RAZAOSOCIAL AS REPRESENTANTE_DESCRICAO,
            FN_LPAD(I.CODIGO, 4,0)||' - '||H.DESCRICAO   AS PAGAMENTO_FORMA_DESCRICAO,
            FN_LPAD(I.CODIGO, 4,0)||' - '||I.DESCRICAO   AS PAGAMENTO_CONDICAO_DESCRICAO,
            C.VALOR_FRETE AS VALOR_FRETE,
            CASE C.FRETE
                WHEN 0 THEN '0 - POR CONTA DO EMITENTE(CIF)'
                WHEN 1 THEN '1 - POR CONTA DO DESTINATARIO(FOB)'
                WHEN 2 THEN '2 - POR CONTA DE TERCEIROS'
                WHEN 3 THEN '3 - PROPRIO POR CONTA DO REMETENTE'
                WHEN 4 THEN '4 - PROPRIO POR CONTA DO DESTINATARIO'
                WHEN 9 THEN '9 - SEM FRETE'
                ELSE '9 - SEM FRETE'
            END FRETE_DESCRICAO,
            (SELECT SUM(TOTAL_GERAL)
            FROM(
                SELECT ((Z.VALOR_ACRESCIMO + Z.VALOR_IPI + ((Z.TOTAL_ITEM) * (Z.ALIQUOTA_ST / 100)) + (Z.TOTAL_ITEM)) - Z.VALOR_DESCONTO) TOTAL_GERAL,
                  Z.PEDIDO
                FROM (
                    SELECT I.PEDIDO,
                        IIF( k.UF = e.uf AND k.Substituido_Tributario = '1' and e.Substituto_Tributario = '1',
                        Coalesce((Select First 1 F.Aliquota_St From TbFamilia_Ficha F
                                        Where F.Familia_Codigo = j.Familia_Codigo
                                        and F.Estabelecimento_Codigo = E.codigo),0.00) ,0.000) Aliquota_ST,
                        COALESCE(I.VALOR_DESCONTO      ,0) AS VALOR_DESCONTO,
                        COALESCE(I.VALOR_ACRESCIMO     ,0) AS VALOR_ACRESCIMO,
                        I.VALOR_IPI,
                        I.VALOR,
                        I.QUANTIDADE,
                        FN_CALC_PRECISION(I.VALOR,I.QUANTIDADE,'*') AS TOTAL_ITEM
        
                    FROM TBPEDIDO_ITEM I
                    LEFT JOIN TBPEDIDO O
                        ON O.PEDIDO = I.PEDIDO
                    LEFT JOIN TBPERFIL P
                        ON P.ID = I.PERFIL AND P.TABELA = 'SKU'
        
                    LEFT JOIN tbcliente k
                        ON k.codigo = i.cliente_codigo
        
                    LEFT JOIN tbproduto j
                        ON j.codigo = i.produto_codigo
                    LEFT JOIN tbestabelecimento e
                        ON e.codigo = i.estabelecimento_codigo
        
                    WHERE I.PEDIDO = C.PEDIDO) Z ) Y
                    GROUP BY Y.PEDIDO) VALOR_TOTAL,
                
            (SELECT SUM(ST_VALOR)
            FROM(
                SELECT (((Z.VALOR_ACRESCIMO + Z.TOTAL_ITEM) * (Z.ALIQUOTA_ST / 100.00))) ST_VALOR,
                  Z.PEDIDO
                FROM (
                    SELECT I.PEDIDO,
                        IIF( k.UF = e.uf AND k.Substituido_Tributario = '1' and e.Substituto_Tributario = '1',
                        Coalesce((Select First 1 F.Aliquota_St From TbFamilia_Ficha F
                                        Where F.Familia_Codigo = j.Familia_Codigo
                                        and F.Estabelecimento_Codigo = E.codigo),0.00) ,0.000) Aliquota_ST,
                        COALESCE(I.VALOR_DESCONTO      ,0) AS VALOR_DESCONTO,
                        COALESCE(I.VALOR_ACRESCIMO     ,0) AS VALOR_ACRESCIMO,
                        I.VALOR_IPI,
                        I.VALOR,
                        I.QUANTIDADE,
                        FN_CALC_PRECISION(I.VALOR,I.QUANTIDADE,'*') AS TOTAL_ITEM
        
                    FROM (SELECT I.* FROM TBPEDIDO_ITEM I WHERE I.PEDIDO = C.PEDIDO) I
                    LEFT JOIN TBPEDIDO O
                        ON O.PEDIDO = I.PEDIDO
                    LEFT JOIN TBPERFIL P
                        ON P.ID = I.PERFIL AND P.TABELA = 'SKU'
                    LEFT JOIN tbcliente k
                        ON k.codigo = i.cliente_codigo
                    LEFT JOIN tbproduto j
                        ON j.codigo = i.produto_codigo
                    LEFT JOIN tbestabelecimento e
                        ON e.codigo = i.estabelecimento_codigo
        
                    WHERE I.PEDIDO = C.PEDIDO) Z ) Y
                    GROUP BY Y.PEDIDO) VALOR_ST_TOTAL,
                    (SELECT SUM(I.VALOR*I.QUANTIDADE) FROM TBPEDIDO_ITEM I WHERE I.PEDIDO = C.PEDIDO) ITEM_TOTAL,
                    (SELECT SUM(I.QUANTIDADE) FROM TBPEDIDO_ITEM I WHERE I.PEDIDO = C.PEDIDO)         QUANTIDADE_TOTAL,
                    (SELECT SUM(I.VALOR_ACRESCIMO) FROM TBPEDIDO_ITEM I WHERE I.PEDIDO = C.PEDIDO)    ACRESCIMO_TOTAL,
                    (SELECT SUM(I.VALOR_DESCONTO) FROM TBPEDIDO_ITEM I WHERE I.PEDIDO = C.PEDIDO)     DESCONTO_TOTAL,
                    (SELECT SUM(I.VALOR_IPI) FROM TBPEDIDO_ITEM I WHERE I.PEDIDO = C.PEDIDO)          VALOR_IPI_TOTAL,
                    C.USUARIO_CODIGO,
                    C.MOEDA,
                    F.CODIGO AS MOEDA_DESCRICAO,
                    c.AUTORIZACAO_SUPERVISOR,
                    c.AUTORIZACAO_FINANCEIRO,
                    C.SITUACAO,
                    c.OBSERVACAO,
                    C.USUARIO_DATA,
                    C.CLIENTE_TIPO_ID,
                    C.CLIENTE_SUB_TIPO_ID,
                    COALESCE(D.CONSIGNACAO_FITNESS,0) AS CONSIGNACAO_FITNESS,
                    COALESCE(D.AMOSTRA,0) AS AMOSTRA
            FROM ( SELECT C.* FROM TBPEDIDO C WHERE C.PEDIDO = :PEDIDO ) C
            INNER JOIN TBPERFIL  D           ON D.ID     = C.CLASSIFICACAO and D.TABELA = 'PED'
            INNER JOIN TBCLIENTE E           ON E.CODIGO = C.CLIENTE_CODIGO
            INNER JOIN TBREPRESENTANTE G     ON G.CODIGO = C.REPRESENTANTE_CODIGO
            LEFT JOIN TBCLIENTE_TIPO    J    ON J.CODIGO = C.CLIENTE_TIPO_ID
            LEFT JOIN TBCLIENTE_SUBTIPO K    ON K.CLIENTE_TIPO_ID = J.CODIGO
            LEFT JOIN TBPAGAMENTO_FORMA H    ON H.CODIGO = C.PAGAMENTO_FORMA
            LEFT JOIN TBPAGAMENTO_CONDICAO I ON I.CODIGO = C.PAGAMENTO_CONDICAO
            LEFT JOIN TBMOEDA_ESTRANGEIRA  F ON CAST(F.ID AS VARCHAR(3)) = C.MOEDA
            LEFT JOIN TBCLIENTE            X ON X.CODIGO = C.CLIENTE_ID_AMOSTRA
    INTO
        PEDIDO_CLIENTE,
        PERFIL_ID,
        PERFIL_PEDIDO,
        TIPO_PEDIDO,
        SUBTIPO_PEDIDO,
        CLIENTE_CODIGO,
        CLIENTE_DESCRICAO,
        CLIENTE_AMOSTRA_DESCRICAO,
        REPRESENTANTE_CODIGO,
        REPRESENTANTE_DESCRICAO,
        PAGAMENTO_FORMA_DESCRICAO,
        PAGAMENTO_CONDICAO_DESCRICAO,
        VALOR_FRETE,
        FRETE_DESCRICAO,
        VALOR_TOTAL,
        VALOR_ST_TOTAL,
        VALOR_ITENS_TOTAL,
        QUANTIDADE_TOTAL,
        ACRESCIMO_TOTAL,
        DESCONTO_TOTAL,
        VALOR_IPI_TOTAL,
        USUARIO_ID,
        MOEDA,
        MOEDA_DESCRICAO,
        AUTORIZACAO_SUPERVISOR,
        AUTORIZACAO_FINANCEIRO,
        SITUACAO,
        OBSERVACAO,
        DATAHORA,
        CLIENTE_TIPO_ID,
        CLIENTE_SUB_TIPO_ID,
        CONSIGNACAO,
        AMOSTRA
    DO BEGIN

        IF(:MOEDA = '1') THEN
        BEGIN
            --EXCEPTION "..." 'SIT 1';
            TABELA = '<TABLE BORDERCOLOR="BLACK" BORDERCOLORLIGHT="#33CCFF" BORDER="5" STYLE="BORDER: 1PX SOLID; BORDER-SPACING: 1PX; BORDER-COLLAPSE: COLLAPSE;" CLASS="TBL"><THEAD STYLE="BACKGROUND-COLOR: #337AB7;COLOR: WHITE;"><TR>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-1">PRODUTO</TH>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-2">QTD</TH>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-3">VR.UNIT(R$)</TH>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-4">SUB TOTAL</TH>'||
                      '</TR></THEAD><TBODY>';
        END
        IF(:MOEDA <> '1') THEN
        BEGIN
            --EXCEPTION "..." 'SIT 1-2';
            TABELA = '<TABLE BORDERCOLOR="BLACK" BORDERCOLORLIGHT="#33CCFF" BORDER="5" STYLE="BORDER: 1PX SOLID; BORDER-SPACING: 1PX; BORDER-COLLAPSE: COLLAPSE;" CLASS="TBL"><THEAD STYLE="BACKGROUND-COLOR: #337AB7;COLOR: WHITE;"><TR>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-1">PRODUTO</TH>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-2">QTD</TH>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-3">TAXA</TH>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-3">VR.UNIT('||COALESCE(:MOEDA_DESCRICAO,'')||')</TH>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-3">VR.UNIT(R$)</TH>'||
                        '<TH STYLE="PADDING: 3PX;" CLASS="COL-4">SUB TOTAL</TH>'||
                      '</TR></THEAD><TBODY>';
        END

            TABELA2 = '<TABLE BORDERCOLOR="BLACK" BORDERCOLORLIGHT="#33CCFF" BORDER="5" STYLE="BORDER: 1PX SOLID; BORDER-SPACING: 1PX; BORDER-COLLAPSE: COLLAPSE;" CLASS="TBL"><THEAD STYLE="BACKGROUND-COLOR: #337AB7;COLOR: WHITE;">'||
                ' <TR>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: CENTER;" COLSPAN="8" CLASS="COL-1">TOTAIS</TD>'||
                ' </TR></THEAD><TBODY>'||
                ' <TR>'||
                '   <TD STYLE="BACKGROUND-COLOR: #337AB7; COLOR: WHITE; PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-1">QTD.TOTAL</TD>'||
                '   <TD STYLE="BACKGROUND-COLOR: #337AB7; COLOR: WHITE; PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-1">SUB-TOTAL</TD>'||
                '   <TD STYLE="BACKGROUND-COLOR: #337AB7; COLOR: WHITE; PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-1">ACRESCIMO</TD>'||
                '   <TD STYLE="BACKGROUND-COLOR: #337AB7; COLOR: WHITE; PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-1">DESCONTO</TD>'||
                '   <TD STYLE="BACKGROUND-COLOR: #337AB7; COLOR: WHITE; PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-1">IPI</TD>'||
                '   <TD STYLE="BACKGROUND-COLOR: #337AB7; COLOR: WHITE; PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-1">SUBST.TRIB</TD>'||
                '   <TD STYLE="BACKGROUND-COLOR: #337AB7; COLOR: WHITE; PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-1">FRETE</TD>'||
                '   <TD STYLE="BACKGROUND-COLOR: #337AB7; COLOR: WHITE; PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-1">VALOR TOTAL</TD>'||
                ' </TR>'||
                ' <TR>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> '||     COALESCE(FN_FORMAT_NUMBER2(:QUANTIDADE_TOTAL ,2),'')||'</TD>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:VALOR_ITENS_TOTAL,2),'')||'</TD>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:ACRESCIMO_TOTAL  ,2),'')||'</TD>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:DESCONTO_TOTAL   ,2),'')||'</TD>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:VALOR_IPI_TOTAL  ,2),'')||'</TD>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:VALOR_ST_TOTAL   ,2),'')||'</TD>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:VALOR_FRETE      ,2),'')||'</TD>'||
                '    <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:VALOR_TOTAL      ,2),'')||'</TD>'||
                ' </TR>';

        if(:tipo = 1)then
        /*PEDIDO EM CONFIRMA????O/REPROVA????O PELO COMERCIAL*/
        begin
           IF(COALESCE(:MOTIVO,'') = '') THEN
           BEGIN
               if(:CONFIRMACAO = 1)THEN
               BEGIN
               --aprovado
               ASSUNTO = ASSUNTO||:PEDIDO||' APROVADO PELO SETOR COMERCIAL';
               TITULO  = TITULO||:PEDIDO||' APROVADO(COMERCIAL)';
               END
               if(:CONFIRMACAO = 2)THEN
               BEGIN
               --aprovado e confirmado
               ASSUNTO = ASSUNTO||:PEDIDO||' CONFIRMADO PELO SETOR COMERCIAL';
               TITULO  = TITULO||:PEDIDO||' CONFIRMADO(COMERCIAL)';
               END               
               if(:CONFIRMACAO = 3)THEN
               BEGIN
               ASSUNTO = ASSUNTO||:PEDIDO||' REPROVADO PELO SETOR COMERCIAL';
               TITULO  = TITULO||:PEDIDO||' REPROVADO(COMERCIAL)';
               --reprovado
               END               
               if(:CONFIRMACAO = 4)THEN
               BEGIN
               ASSUNTO = ASSUNTO||:PEDIDO||' CONFIRMACAO CANCELADA PELO SETOR COMERCIAL';
               TITULO  = TITULO||:PEDIDO||' CONFIRMACAO CANCELADA(COMERCIAL)';
               --cancelamento
               END
           END ELSE
           BEGIN
               IF(:CONFIRMACAO = 1)THEN
               BEGIN 
                  ASSUNTO = ASSUNTO||:PEDIDO||' INCLUIDO';
                  TITULO  = TITULO||:PEDIDO||' INCLUIDO';
               END
               
               if(:AUTORIZACAO_SUPERVISOR = 1 OR :AUTORIZACAO_FINANCEIRO = 1)THEN
               BEGIN
                  ASSUNTO = ASSUNTO||' PENDENTE DE CONFIRMACAO(';
                  TITULO  = TITULO||'(PENDENTE)';
                  if(:AUTORIZACAO_SUPERVISOR = 1 AND :AUTORIZACAO_FINANCEIRO <> 1)THEN
                  BEGIN
                    ASSUNTO = ASSUNTO||'COMERCIAL';
                  END
                  if(:AUTORIZACAO_SUPERVISOR <> 1 AND :AUTORIZACAO_FINANCEIRO = 1)THEN
                  BEGIN
                    ASSUNTO = ASSUNTO||'FINANCEIRO';
                  END
                  if(:AUTORIZACAO_SUPERVISOR = 1  AND :AUTORIZACAO_FINANCEIRO = 1)THEN
                  BEGIN
                    ASSUNTO = ASSUNTO||'COMERCIAL, FINANCEIRO';
                  END
                  ASSUNTO = ASSUNTO||')';
               END

               IF(:AUTORIZACAO_SUPERVISOR <> 1 AND :AUTORIZACAO_FINANCEIRO <> 1)THEN
               BEGIN
                  ASSUNTO = ASSUNTO||' APROVADO';
                  if(:SITUACAO = 1)then
                  begin
                     ASSUNTO = ASSUNTO||' AUTOMATICAMENTE';
                     TITULO  = TITULO||'(APROVADO AUTOMATICAMENTE)';
                     AUTOMATICO = 1;
                     NOTIFICAR_PEDIDO = COALESCE((SELECT FN_PARAMETRO('SISTEMA.NOTIFICAR_PEDIDO_AUT') FROM RDB$DATABASE),0);
                  end
                  ELSE
                  BEGIN
                     TITULO  = TITULO||'(APROVADO)';
                  END
               END
           END
        end

        if(:tipo = 2)then
        /*PEDIDO EM CONFIRMA????O/REPROVA????O PELO FINANCEIRO*/
        begin  
           IF(COALESCE(:MOTIVO,'') = '') THEN
           BEGIN
              IF(:CONFIRMACAO = 1)THEN
               BEGIN
               --aprovado
               ASSUNTO = ASSUNTO||:PEDIDO||' APROVADO PELO SETOR FINANCEIRO';
               TITULO  = TITULO||:PEDIDO||' APROVADO(FINANCEIRO)';
               END
               IF(:CONFIRMACAO = 2)THEN
               BEGIN
               --aprovado e confirmado
               ASSUNTO = ASSUNTO||:PEDIDO||' CONFIRMADO PELO SETOR FINANCEIRO';
               TITULO  = TITULO||:PEDIDO||' CONFIRMADO(FINANCEIRO)';
               END               
               IF(:CONFIRMACAO = 3)THEN
               BEGIN
               ASSUNTO = ASSUNTO||:PEDIDO||' REPROVADO PELO SETOR FINANCEIRO';
               TITULO  = TITULO||:PEDIDO||' REPROVADO(FINANCEIRO)';
               --reprovado
               END                 
               IF(:CONFIRMACAO = 4)THEN
               BEGIN
               ASSUNTO = ASSUNTO||:PEDIDO||' CONFIRMACAO CANCELADA PELO SETOR FINANCEIRO';
               TITULO  = TITULO||:PEDIDO||' CONFIRMACAO CANCELADA(FINANCEIRO)';
               --cancelamento
               END
           END ELSE
           BEGIN
               IF(:CONFIRMACAO = 1)THEN
               BEGIN 
                  ASSUNTO = ASSUNTO||:PEDIDO||' INCLUIDO';
                  TITULO  = TITULO||:PEDIDO||' INCLUIDO';
               END
               
               IF(:AUTORIZACAO_SUPERVISOR = 1 OR :AUTORIZACAO_FINANCEIRO = 1)THEN
               BEGIN
                  ASSUNTO = ASSUNTO||' PENDENTE DE CONFIRMACAO(';
                  TITULO  = TITULO||'(PENDENTE)';
                  IF(:AUTORIZACAO_SUPERVISOR = 1 AND :AUTORIZACAO_FINANCEIRO <> 1)THEN
                  BEGIN
                    ASSUNTO = ASSUNTO||'COMERCIAL';
                  END
                  IF(:AUTORIZACAO_SUPERVISOR <> 1 AND :AUTORIZACAO_FINANCEIRO = 1)THEN
                  BEGIN
                    ASSUNTO = ASSUNTO||'FINANCEIRO';
                  END
                  IF(:AUTORIZACAO_SUPERVISOR = 1  AND :AUTORIZACAO_FINANCEIRO = 1)THEN
                  BEGIN
                    ASSUNTO = ASSUNTO||'COMERCIAL, FINANCEIRO';
                  END
                  ASSUNTO = ASSUNTO||')';
               END

               IF(:AUTORIZACAO_SUPERVISOR <> 1 AND :AUTORIZACAO_FINANCEIRO <> 1)THEN
               BEGIN
                  ASSUNTO = ASSUNTO||' APROVADO';
                  if(:SITUACAO = 1)then
                  begin
                     ASSUNTO = ASSUNTO||' AUTOMATICAMENTE';
                     TITULO  = TITULO||'(APROVADO AUTOMATICAMENTE)';
                     AUTOMATICO = 1;
                     NOTIFICAR_PEDIDO = COALESCE((SELECT FN_PARAMETRO('SISTEMA.NOTIFICAR_PEDIDO_AUT') FROM RDB$DATABASE),0);
                  end
                  ELSE
                  BEGIN
                     TITULO  = TITULO||'(APROVADO)';
                  END
               END
           END
        end

        if(:tipo = 0)then
        /*PEDIDO SENDO INCLUIDO OU ALTERADO*/
        begin
           if(:confirmacao = 0)then
           BEGIN
              ASSUNTO = ASSUNTO||:PEDIDO||' ALTERADO';
              TITULO  = TITULO||:PEDIDO||' ALTERADO';
           END
           if(:confirmacao = 1)then
           BEGIN
              ASSUNTO = ASSUNTO||:PEDIDO||' INCLUIDO';
              TITULO  = TITULO||:PEDIDO||' INCLUIDO';
           END
           if(:AUTORIZACAO_SUPERVISOR = 1 OR :AUTORIZACAO_FINANCEIRO = 1)THEN
           BEGIN
              ASSUNTO = ASSUNTO||' PENDENTE DE CONFIRMACAO(';
              TITULO  = TITULO||'(PENDENTE)';
              if(:AUTORIZACAO_SUPERVISOR = 1 AND :AUTORIZACAO_FINANCEIRO <> 1)THEN
              BEGIN
                ASSUNTO = ASSUNTO||'COMERCIAL';
              END
              if(:AUTORIZACAO_SUPERVISOR <> 1 AND :AUTORIZACAO_FINANCEIRO = 1)THEN
              BEGIN
                ASSUNTO = ASSUNTO||'FINANCEIRO';
              END
              if(:AUTORIZACAO_SUPERVISOR = 1  AND :AUTORIZACAO_FINANCEIRO = 1)THEN
              BEGIN
                ASSUNTO = ASSUNTO||'COMERCIAL, FINANCEIRO';
              END
              ASSUNTO = ASSUNTO||')';
           END
           if(:AUTORIZACAO_SUPERVISOR <> 1 AND :AUTORIZACAO_FINANCEIRO <> 1)THEN
           BEGIN
              ASSUNTO = ASSUNTO||' APROVADO';
              if(:SITUACAO = 1)then
              begin
                 ASSUNTO = ASSUNTO||' AUTOMATICAMENTE';
                 TITULO  = TITULO||'(APROVADO AUTOMATICAMENTE)';
                 AUTOMATICO = 1;
                 NOTIFICAR_PEDIDO = COALESCE((SELECT FN_PARAMETRO('SISTEMA.NOTIFICAR_PEDIDO_AUT') FROM RDB$DATABASE),0);
              end
              ELSE
              BEGIN
                 TITULO  = TITULO||'(APROVADO)';
              END
           END
        END

        FOR SELECT
                FN_LPAD(I.PRODUTO_CODIGO,6,0) AS PRODUTO_CODIGO,
                J.DESCRICAO AS PRODUTO_DESCRICAO,
                (SELECT FIRST 1 M.DESCRICAO
                    FROM TBMODELO M
                    WHERE M.CODIGO = I.MODELO_CODIGO
                ) MODELO_DESCRICAO,
            
                I.QUANTIDADE,
                I.VALOR,
            
                FN_LPAD(I.TAMANHO,2,0) AS TAMANHO,
            
                (SELECT FIRST 1 TAM_DESCRICAO
                    FROM SP_TAMANHO_GRADE(
                        (SELECT FIRST 1 PROD.GRADE_CODIGO FROM TBPRODUTO PROD WHERE PROD.CODIGO = I.PRODUTO_CODIGO),
                        I.TAMANHO
                    )
                ) TAMANHO_DESCRICAO,
                FN_LPAD(I.COR_ID,5,0)||' - '||
                (SELECT FIRST 1 C.DESCRICAO
                    FROM TBCOR C
                    WHERE C.CODIGO = I.COR_ID
                ) COR_DESCRICAO,
                (I.VALOR * I.QUANTIDADE) AS SUB_TOTAL,
                coalesce(VALOR_ORIGINAL      ,0) AS VALOR_ORIGINAL,
                COALESCE(VALOR_DESCONTO      ,0) AS VALOR_DESCONTO,
                COALESCE(PERCENTUAL_DESCONTO ,0) AS PERCENTUAL_DESCONTO,
                COALESCE(PERCENTUAL_ACRESCIMO,0) AS PERCENTUAL_ACRESCIMO,
                COALESCE(VALOR_ACRESCIMO     ,0) AS VALOR_ACRESCIMO,
                I.TAXA_MOEDA,
                I.VALOR_UNIT_ESTRANGEIRO,
                I.VALOR_IPI,
                I.PERCENTUAL_IPI,
                I.PEDIDO_CLIENTE
            
            FROM (select I.* from TBPEDIDO_ITEM I WHERE I.PEDIDO = :PEDIDO) I
                LEFT JOIN TBPEDIDO O
                    ON O.PEDIDO = I.PEDIDO
                LEFT JOIN TBPERFIL P
                    ON P.ID = I.PERFIL and p.tabela = 'SKU'
                LEFT JOIN TBMODELO_BLOQUEIO MB
                    ON MB.PERFIL = P.ID
                    AND MB.MODELO_ID= I.MODELO_CODIGO
                    AND MB.COR_ID  = I.COR_ID
                    AND MB.TAMANHO = I.TAMANHO
                LEFT JOIN TBMODELO_PEDIDO_COTA MPC
                    ON MPC.MODELO_ID = MB.MODELO_ID
                LEFT JOIN tbcliente k
                    ON k.codigo = i.cliente_codigo
                LEFT JOIN tbproduto j
                    ON j.codigo = i.produto_codigo
                LEFT JOIN tbestabelecimento e
                    ON e.codigo = i.estabelecimento_codigo
                LEFT JOIN TBMOEDA_ESTRANGEIRA V
                    ON V.ID = O.MOEDA
            

            INTO PRODUTO_CODIGO,
                PRODUTO_DESCRICAO,
                MODELO_DESCRICAO,
                QUANTIDADE,
                VALOR,
                TAMANHO,
                TAMANHO_DESCRICAO,
                COR_DESCRICAO,
                SUB_TOTAL,
                VALOR_ORIGINAL,
                VALOR_DESCONTO,
                PERCENTUAL_DESCONTO,
                PERCENTUAL_ACRESCIMO,
                VALOR_ACRESCIMO,
                TAXA_MOEDA,
                VALOR_UNIT_ESTRANGEIRO,
                VALOR_IPI,
                PERCENTUAL_IPI,
                PEDIDO_CLIENTE_ITEM DO
                BEGIN
                    IF(:MOEDA = '1') THEN
                    BEGIN
                        TABELA = TABELA||'<TR CLASS="--">';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; OVERFLOW: HIDDEN; TEXT-OVERFLOW: ELLIPSIS; WHITE-SPACE: NOWRAP;" CLASS="COL-STRING" ID="COL-STRING">' ||COALESCE(:PRODUTO_CODIGO,'')||'/'||COALESCE(:TAMANHO,'')||' - '||COALESCE(:PRODUTO_DESCRICAO,'')||' TAM.'||COALESCE(:TAMANHO_DESCRICAO,'')||' </TD>';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING">' || COALESCE(FN_FORMAT_NUMBER2(:QUANTIDADE,2),'')||'</TD>';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:VALOR,2) ,'')||'</TD>';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:SUB_TOTAL,2)  ,'')||'</TD>';
                        TABELA = TABELA||'</TR>';
                        -- EXCEPTION "..." 'SIT 2-1';
                    END
                    IF(:MOEDA <> '1') THEN
                    BEGIN
                        TABELA = TABELA||'<TR CLASS="--">';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; OVERFLOW: HIDDEN; TEXT-OVERFLOW: ELLIPSIS; WHITE-SPACE: NOWRAP;" CLASS="COL-STRING" ID="COL-STRING">' ||COALESCE(:PRODUTO_CODIGO,'')||'/'||COALESCE(:TAMANHO,'')||' - '||COALESCE(:PRODUTO_DESCRICAO,'')||' TAM.'||COALESCE(:TAMANHO_DESCRICAO,'')||' </TD>';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING">' || COALESCE(FN_FORMAT_NUMBER2(:QUANTIDADE,2)     ,'')||'</TD>';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> ' || COALESCE(FN_FORMAT_NUMBER2(:TAXA_MOEDA,2)    ,'')||'</TD>';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> '||COALESCE(:MOEDA_DESCRICAO,'')||' '||COALESCE(FN_FORMAT_NUMBER2(:VALOR_UNIT_ESTRANGEIRO,2),'')||'</TD>';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:VALOR,2)   ,'')||'</TD>';
                        TABELA = TABELA||'  <TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING"> R$ ' || COALESCE(FN_FORMAT_NUMBER2(:SUB_TOTAL,2),'')||'</TD>';
                        TABELA = TABELA||'</TR>';
                       -- EXCEPTION "..." TABELA;
                    END

                END
    END

    CORPO1 = '<HTML><HEAD><META CHARSET="CONTENT-TYPE: TEXT/HTML; CHARSET=UTF-8"><STYLE>P {MARGIN: 2PX;}</STYLE></HEAD><BODY>';
    CORPO1 = CORPO1 || '<P></P>';
    CORPO1 = CORPO1 || '<P><A HREF="'||COALESCE(FN_PARAMETRO('SISTEMA.URL_SERVER')||'/_12201?PEDIDO='||:PEDIDO,'')||'" TARGET="_BLANK">[ABRIR NA WEB]</A></P>';
--    CORPO1 = CORPO1 || '<P><A HREF="'||COALESCE(FN_PARAMETRO('SISTEMA.URL_SERVER')||'/_12360?CLIENTE_ID='||:CLIENTE_CODIGO,'')||'" TARGET="_BLANK">[ABRIR CLIENTE NA WEB]</A></P>';
    CORPO1 = CORPO1 || '<BR>';
    CORPO1 = CORPO1 || '<P STYLE="FONT-WEIGHT: BOLD;"><U>PEDIDO: '||COALESCE(:PEDIDO,'')||'</U></P>';
    CORPO1 = CORPO1 || '<P><U>PERFIL</U>: '||COALESCE(:PERFIL_PEDIDO,'')||'</P>';
    CORPO1 = CORPO1 || '<P><U>TIPO DO PEDIDO</U>: '||COALESCE(:TIPO_PEDIDO,'')||'</P>';
    CORPO1 = CORPO1 || '<P><U>TIPO DO CLIENTE</U>: '||COALESCE(:SUBTIPO_PEDIDO,'')||'</P>';
    CORPO1 = CORPO1 || '<P><U>CLIENTE</U>: '||COALESCE(:CLIENTE_DESCRICAO,'')||'</P>';
    IF(:AMOSTRA = 1)THEN
    BEGIN
      CORPO1 = CORPO1 || '<P><U>CLIENTE AMOSTRA</U>: '||COALESCE(:CLIENTE_AMOSTRA_DESCRICAO,'')||'</P>';
    END
    CORPO1 = CORPO1 || '<P><U>REPRESENTANTE</U>: '||COALESCE(:REPRESENTANTE_DESCRICAO,'')||'</P>';
    
    IF(:AMOSTRA = 0 AND :CONSIGNACAO = 0)THEN
    BEGIN
       CORPO1 = CORPO1 || '<P><U>FORMA DE PAGAMENTO</U>: '||COALESCE(:PAGAMENTO_FORMA_DESCRICAO,'')||'</P>';
       CORPO1 = CORPO1 || '<P><U>CONDICAO DE PAGAMENTO</U>: '||COALESCE(:PAGAMENTO_CONDICAO_DESCRICAO,'')||'</P>';
    END
    CORPO1 = CORPO1 || '<P><U>DIGITADO POR</U>: '||COALESCE((SELECT UPPER(COALESCE(U.NOME, U.USUARIO)) FROM TBUSUARIO U WHERE U.CODIGO = :USUARIO_ID),'')||'</P>';
    CORPO1 = CORPO1 || '<P><U>DATA/HORA INCLUSAO DO PEDIDO:</U>: '||COALESCE(FORMATDATETIME(:DATAHORA),'')||'</P>';
    CORPO1 = CORPO1 || '<P><U>OBSERVACAO</U>: '||COALESCE(:OBSERVACAO,'')||'</P>';
    if(:AUTORIZACAO_SUPERVISOR = 2)then
    /*PEDIDO SENDO REPROVADO*/
    begin
       CORPO1 = CORPO1 || '<P><U>MOTIVO DE REPROVACAO</U>: '||COALESCE((select first 1 UPPER(s.motivo) from TBPEDIDO_APROVACAO s where s.pedido_id = :pedido and s.tipo = 1 AND S.STATUS = 2 ORDER BY S.ID DESC),'')||'</P>';
    END

    if(:AUTORIZACAO_FINANCEIRO = 2)then
    /*PEDIDO TENDO REPROVADO*/
    begin
       CORPO1 = CORPO1 || '<P><U>MOTIVO DE REPROVACAO</U>: '||COALESCE((select first 1 UPPER(s.motivo) from TBPEDIDO_APROVACAO s where s.pedido_id = :pedido and s.tipo = 2 AND S.STATUS = 2 ORDER BY S.ID DESC),'')||'</P>';
    END

    if(:AUTORIZACAO_SUPERVISOR = 1 AND :CONFIRMACAO = 4)then
    /*PEDIDO TENDO CONFIRMA????O CANCELADA PELO COMERCIAL*/
    begin
       CORPO1 = CORPO1 || '<P><U>MOTIVO DE CANCELAMENTO DE CONFIRMACAO</U>: '||COALESCE((select first 1 UPPER(s.motivo) from TBPEDIDO_APROVACAO s where s.pedido_id = :pedido and s.tipo = 1 and s.status = 1 ORDER BY S.ID DESC),'')||'</P>';
    END

    if(:AUTORIZACAO_FINANCEIRO = 1 AND :CONFIRMACAO = 4)then
    /*PEDIDO TENDO CONFIRMA????O CANCELADA PELO FINANCEIRO*/
    begin
       CORPO1 = CORPO1 || '<P><U>MOTIVO DE CANCELAMENTO DE CONFIRMACAO</U>: '||COALESCE((select first 1 UPPER(s.motivo) from TBPEDIDO_APROVACAO s where s.pedido_id = :pedido and s.tipo = 2 and s.status = 1 ORDER BY S.ID DESC),'')||'</P>';
    END
    IF(:MOTIVO IS NOT NULL AND CHAR_LENGTH(:MOTIVO) > 0)THEN
    BEGIN
       CORPO1 = CORPO1 ||UPPER(:MOTIVO);
    END
    CORPO1 = CORPO1 || '<BR>';
    CORPO1 = CORPO1 || TABELA;
    CORPO1 = CORPO1 || '<BR>';
    CORPO1 = CORPO1 || TABELA2;

    CORPO1 = CORPO1 || '</TBODY></TABLE>';
    /*SE HOUVER MOTIVO DEVE SER ADICIONADO NO EMAIL APS A TABELA E SEU RESUMO*/

    CORPO1 = CORPO1 || '</BODY></HTML>';
   -- EXCEPTION "..." CORPO1;
    CORPO2 = '<HTML><HEAD><META CHARSET="CONTENT-TYPE: TEXT/HTML; CHARSET=UTF-8"><STYLE>P {MARGIN: 2PX;}</STYLE></HEAD><BODY>';
    CORPO2 = CORPO2 || '<P></P>';
    CORPO2 = CORPO2 || '<P><A HREF="'||COALESCE(FN_PARAMETRO('SISTEMA.URL_SERVER')||'/_12201?PEDIDO='||:PEDIDO,'')||'" TARGET="_BLANK">[ABRIR NA WEB]</A></P>';
    CORPO2 = CORPO2 || '<BR>';
    CORPO2 = CORPO2 || '<P STYLE="FONT-WEIGHT: BOLD;"><U>PEDIDO: '||COALESCE(:PEDIDO,'')||'</U></P>';
    CORPO2 = CORPO2 || '<P><U>PERFIL</U>: '||COALESCE(:PERFIL_PEDIDO,'')||'</P>';
    CORPO2 = CORPO2 || '<P><U>TIPO DO PEDIDO</U>: '||COALESCE(:TIPO_PEDIDO,'')||'</P>';
    CORPO2 = CORPO2 || '<P><U>TIPO DO CLIENTE</U>: '||COALESCE(:SUBTIPO_PEDIDO,'')||'</P>';
    CORPO2 = CORPO2 || '<P><U>CLIENTE</U>: '||COALESCE(:CLIENTE_DESCRICAO,'')||'</P>';
    IF(:AMOSTRA = 1)THEN
    BEGIN
      CORPO2 = CORPO2 || '<P><U>CLIENTE AMOSTRA</U>: '||COALESCE(:CLIENTE_AMOSTRA_DESCRICAO,'')||'</P>';
    END
    CORPO2 = CORPO2 || '<P><U>REPRESENTANTE</U>: '||COALESCE(:REPRESENTANTE_DESCRICAO,'')||'</P>';
    
    IF(:AMOSTRA = 0 AND :CONSIGNACAO = 0)THEN
    BEGIN
       CORPO2 = CORPO2 || '<P><U>FORMA DE PAGAMENTO</U>: '||COALESCE(:PAGAMENTO_FORMA_DESCRICAO,'')||'</P>';
       CORPO2 = CORPO2 || '<P><U>CONDICAO DE PAGAMENTO</U>: '||COALESCE(:PAGAMENTO_CONDICAO_DESCRICAO,'')||'</P>';
    END

    CORPO2 = CORPO2 || '<BR>';
    CORPO2 = CORPO2 || '<P>PARA DETALHAMENTO, VERIFIQUE SEU E-MAIL OU CLIQUE NO LINK ACIMA.</P>';
    CORPO2 = CORPO2 || '</BODY></HTML>';

    IF(COALESCE(:PEDIDO,0) > 0 AND (NOTIFICAR_PEDIDO = 1 AND AUTOMATICO = 1 or NOTIFICAR_PEDIDO = 1 AND AUTOMATICO = 0))THEN
    BEGIN
        --EXCEPTION "..." ASSUNTO;
        FOR
--           SELECT
--                U.EMAIL,
--                U.CODIGO
--            FROM TBUSUARIO U
--            WHERE (U.CODIGO = :USUARIO_ID
--            or (U.CODIGO IN (SELECT N.USUARIO_ID FROM TBPERFIL_PEDIDO_CONF_USER N WHERE N.PERFIL = :PERFIL_ID AND (IIF((:TIPO > 0),N.TIPO = :TIPO,N.TIPO IN (1,2)))))
--            --or (u.REPRESENTANTE_ID = :REPRESENTANTE_CODIGO)
--            )
        SELECT
          EMAIL,
          CODIGO
          FROM(
            SELECT
                U.EMAIL,
                U.CODIGO
                FROM TBUSUARIO U
            WHERE (U.CODIGO = :USUARIO_ID)
            AND CHAR_LENGTH(COALESCE(U.EMAIL,'')) > 0
    
            UNION
    
             SELECT
                U.EMAIL,
                U.CODIGO
                FROM (SELECT N.USUARIO_ID FROM TBPERFIL_PEDIDO_CONF_USER N WHERE N.PERFIL = :PERFIL_ID AND (IIF((:TIPO > 0),N.TIPO = :TIPO,N.TIPO IN (1,2)))) N,  TBUSUARIO U
            WHERE U.CODIGO = N.USUARIO_ID
            AND CHAR_LENGTH(COALESCE(U.EMAIL,'')) > 0
    
            UNION
    
            SELECT
             Z.EMAIL,
             0 AS CODIGO
            FROM TBEMPRESA Z WHERE Z.CODIGO = :REPRESENTANTE_CODIGO
            AND CHAR_LENGTH(COALESCE(Z.EMAIL,'')) > 0
            AND Z.EMAIL NOT IN (SELECT
                U.EMAIL
                FROM TBUSUARIO U
            WHERE (U.CODIGO = :USUARIO_ID
            or (U.CODIGO IN (SELECT N.USUARIO_ID FROM TBPERFIL_PEDIDO_CONF_USER N WHERE N.PERFIL = :PERFIL_ID AND (IIF((:TIPO > 0),N.TIPO = :TIPO,N.TIPO IN (1,2))))))
            AND CHAR_LENGTH(COALESCE(U.EMAIL,'')) > 0))
        INTO
            :EMAIL,
            :USUARIO_ID
        DO BEGIN
            if (CHAR_LENGTH(COALESCE(:EMAIL,'')) > 0) then
            BEGIN
              in autonomous transaction
              do begin
              -- EXCEPTION "..." TABELA;
                   EXECUTE PROCEDURE SPI_NOTIFICAR_V2(
                      CURRENT_TIMESTAMP,
                      :USUARIO_ID,
                      :ASSUNTO,
                      :CORPO1,
                      1,
                      0
                   );
            
                   EXECUTE PROCEDURE SPI_NOTIFICAR_V2(
                      CURRENT_TIMESTAMP,
                      :USUARIO_ID,
                      :TITULO,
                      :CORPO2,
                      0,
                      1
                   );
              END
            END
        END
    END
END
^

SET TERM ; ^

