CREATE OR ALTER VIEW VWNFE_DEVOLUCAO_COMISSAO(
    REPRESENTANTE_ID,
    DOCUMENTO,
    DATA_EMISSAO,
    PARCELAMENTO_ID,
    COMISSAO,
    FATOR)
AS
SELECT
REPRESENTANTE_ID,
DOCUMENTO,
DATA_EMISSAO,
PARCELAMENTO_ID,
COMISSAO, 
VALOR_DEV / SUM(VALOR_DEV) OVER (PARTITION BY PARCELAMENTO_ID)
FROM (
        SELECT REPRESENTANTE_ID,
               DOCUMENTO,
               DATA_EMISSAO,
               PARCELAMENTO_ID,
               COMISSAO, 
               SUM(VALOR_DEV) VALOR_DEV
        FROM (
                SELECT IIF(N.NATUREZA=1 AND N.SITUACAO=2,'NF.','ROM.')||FN_LPAD(N.NUMERO_NOTAFISCAL,5,'0')||'-'||FN_LPAD(N.SERIE,3,'0')||
                       IIF(P.PEDIDO>0,' PED.'||FN_LPAD(P.PEDIDO,5,'0'),'') AS DOCUMENTO,
                       N.DATA_EMISSAO,
                       N.REPRESENTANTE_CODIGO AS REPRESENTANTE_ID,
                       NFD.PARCELAMENTO_ID,
                       F.VALOR_TOTAL AS VALOR_DEV, 
                       COALESCE(IIF(C.PERCENTUAL_COMISSAO>0,C.PERCENTUAL_COMISSAO,P.REPRESENTANTE_COMISSAO),N.REPRESENTANTE_COMISSAO) AS COMISSAO
                  FROM TBNFS N,
                       TBNFE D,
                       TBNFE_ITEM F,
                       TBNF_DEVOLUCAO NFD,
                       TBNFS_ITEM B
                       LEFT JOIN TBPEDIDO P ON B.PEDIDO = P.PEDIDO
                       LEFT JOIN TBPEDIDO_ITEM C ON B.PEDIDO_ITEM_PE_CONTROLE = C.CONTROLE
                 WHERE N.CONTROLE = B.NFS_CONTROLE
                   AND D.CONTROLE = F.NFE_CONTROLE
                   AND F.NFS_ITEM_CONTROLE = B.CONTROLE
                   AND NFD.NFE_ID = D.CONTROLE
              )
        GROUP BY REPRESENTANTE_ID,
                 DOCUMENTO,
                 DATA_EMISSAO,
                 PARCELAMENTO_ID,
                 COMISSAO
     );