CREATE OR ALTER procedure sp_notificar_romaneio_pend (
    romaneio integer)
as
declare variable romaneio_id integer;
declare variable numero_notafiscal integer;
declare variable empresa_id integer;
declare variable produto_id integer;
declare variable produto_tamanho varchar(5);
declare variable status char(1);
declare variable perda numeric(18,5);
declare variable quantidade_b_romaneio numeric(18,5);
declare variable quantidade_l_romaneio numeric(18,5);
declare variable nfe_item_id integer;
declare variable quantidade_nota numeric(18,5);
declare variable produto_descricao varchar(100);
declare variable razaosocial varchar(300);
declare variable nomefantasia varchar(300);
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 assunto varchar(500);
BEGIN

    ASSUNTO = 'ROMANEIO (DIVERGÊNCIA ROMANEIO/NOTA FISCAL)';

    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-0">ID</TH>'||
                '<TH STYLE="PADDING: 3PX;" CLASS="COL-1">PRODUTO</TH>'||
                '<TH STYLE="PADDING: 3PX;" CLASS="COL-2">PERDA</TH>'||
                '<TH STYLE="PADDING: 3PX;" CLASS="COL-3">QTD. BRUTA</TH>'||
                '<TH STYLE="PADDING: 3PX;" CLASS="COL-4">QTD. LIQUIDA</TH>'||
                '<TH STYLE="PADDING: 3PX;" CLASS="COL-5">QTD. NOTA</TH>'||
              '</TR></THEAD><TBODY>';

    --NOTIFICAR
    FOR
        SELECT DISTINCT
            N.ROMANEIO_ID,
            N.NUMERO_NOTAFISCAL,
            N.EMPRESA_ID,
            N.PRODUTO_ID,
            N.PRODUTO_TAMANHO,
            N.STATUS,
            N.PERDA,
            N.QUANTIDADE_B_ROMANEIO,
            N.QUANTIDADE_L_ROMANEIO,
            N.NFE_ITEM_ID,
            N.QUANTIDADE_NOTA,
            N.PRODUTO_DESCRICAO,
            E.RAZAOSOCIAL,
            E.NOMEFANTASIA
        FROM VWROMANEIO_NOTA N, TBEMPRESA E
        WHERE N.STATUS > 1
        AND N.QUANTIDADE_B_ROMANEIO <> N.QUANTIDADE_NOTA
        AND N.ROMANEIO_ID = :ROMANEIO
        AND E.CODIGO = N.EMPRESA_ID
    INTO
        ROMANEIO_ID,
        NUMERO_NOTAFISCAL,
        EMPRESA_ID,
        PRODUTO_ID,
        PRODUTO_TAMANHO,
        STATUS,
        PERDA,
        QUANTIDADE_B_ROMANEIO,
        QUANTIDADE_L_ROMANEIO,
        NFE_ITEM_ID,
        QUANTIDADE_NOTA,
        PRODUTO_DESCRICAO,
        RAZAOSOCIAL,
        NOMEFANTASIA
    DO BEGIN

        TABELA = TABELA||'<TR CLASS="--">';
        TABELA = TABELA||'<TD STYLE="PADDING: 3PX;" CLASS="COL-STRING" ID="COL-STRING">' || COALESCE(PRODUTO_ID            ,'')||'</TD>';
        TABELA = TABELA||'<TD STYLE="PADDING: 3PX; OVERFLOW: HIDDEN; TEXT-OVERFLOW: ELLIPSIS; WHITE-SPACE: NOWRAP;" CLASS="COL-STRING" ID="COL-STRING">' || COALESCE(PRODUTO_DESCRICAO     ,'')||'</TD>';
        TABELA = TABELA||'<TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING">' || COALESCE(PERDA                 ,'')||'</TD>';
        TABELA = TABELA||'<TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING">' || COALESCE(QUANTIDADE_B_ROMANEIO ,'')||'</TD>';
        TABELA = TABELA||'<TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING">' || COALESCE(QUANTIDADE_L_ROMANEIO ,'')||'</TD>';
        TABELA = TABELA||'<TD STYLE="PADDING: 3PX; TEXT-ALIGN: RIGHT;" CLASS="COL-STRING" ID="COL-STRING">' || COALESCE(QUANTIDADE_NOTA       ,'')||'</TD>';
        TABELA = TABELA||'</TR>';

    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')||'/_15210?ID='||:ROMANEIO_ID,'')||'" TARGET="_BLANK">[ABRIR NA WEB]</A></P>';
    CORPO1 = CORPO1 || '<BR>';
    CORPO1 = CORPO1 || '<P STYLE="FONT-WEIGHT: BOLD;"><U>ID: '||COALESCE(:ROMANEIO_ID,'')||'</U></P>';
    CORPO1 = CORPO1 || '<P><U>NF</U>: '||COALESCE(:NUMERO_NOTAFISCAL,'')||'</P>';
    CORPO1 = CORPO1 || '<P><U>EMPRESA</U>: '||COALESCE(:EMPRESA_ID,'')||' - '||COALESCE(:RAZAOSOCIAL,'')||'</P>';
    CORPO1 = CORPO1 || '<BR>';
    CORPO1 = CORPO1 || TABELA;
    CORPO1 = CORPO1 || '</TBODY></TABLE></BODY></HTML>';

    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')||'/_15210?ID='||:ROMANEIO_ID,'')||'" TARGET="_BLANK">[ABRIR NA WEB]</A></P>';
    CORPO2 = CORPO2 || '<BR>';
    CORPO2 = CORPO2 || '<P STYLE="FONT-WEIGHT: BOLD;"><U>ID: '||COALESCE(:ROMANEIO_ID,'')||'</U></P>';
    CORPO2 = CORPO2 || '<P><U>NF</U>: '||COALESCE(:NUMERO_NOTAFISCAL,'')||'</P>';
    CORPO2 = CORPO2 || '<P><U>EMPRESA</U>: '||COALESCE(:EMPRESA_ID||' - '||:RAZAOSOCIAL,'')||'</P>';
    CORPO2 = CORPO2 || '<BR>';
    CORPO2 = CORPO2 || '<P>DIVERGÊNCIA ENTRE QUANTIDADES NO ROMANEIO E NOTA FISCAL. PARA DETALHAMENTO, VERIFIQUE SEU E-MAIL OU CLIQUE NO LINK ACIMA.</P>';
    CORPO2 = CORPO2 || '</TBODY></TABLE></BODY></HTML>';

    IF( COALESCE(:ROMANEIO_ID,0) > 0 )THEN
    BEGIN
        FOR
            SELECT
                U.EMAIL,
                U.CODIGO
            FROM TBCONTROLE_USUARIO O,  TBUSUARIO U
            WHERE U.CODIGO = O.USUARIO_ID
            AND O.ID = 901
            AND O.VALOR_EXT = '1'
        INTO
            :EMAIL,
            :USUARIO_ID
        DO BEGIN
    
           EXECUTE PROCEDURE SPI_NOTIFICAR(
              CURRENT_TIMESTAMP,
              :USUARIO_ID,
              :ASSUNTO,
              :CORPO1,
              1,
              0
           );
    
           EXECUTE PROCEDURE SPI_NOTIFICAR(
              CURRENT_TIMESTAMP,
              :USUARIO_ID,
              :ASSUNTO,
              :CORPO2,
              0,
              1
           );
        
        END
    END
END;

