SELECT
        FN_LPAD(MODELO_ID,6,'0')||' - '||MODELO_DESCRICAO AS MODELO,
        FN_LPAD(COR_ID,4,'0')||' - '||COR_DESCRICAO AS COR,
        TAMANHO,
        EAN,
        ESTABELECIMENTO,
        VENDEDOR,
        DOCUMENTO,
        DATA_EMISSAO,
        (QUANTIDADE) QUANTIDADE,
        SALDO,
        VALOR_UNITARIO,
        VALOR AS VALOR_TOTAL,
        VALOR_DESCONTO,
        FN_ARRENDONDAR(CAST( VALOR_DESCONTO / VALOR * 100.000 AS DOUBLE PRECISION),1) AS PERCENTUAL_DESCONTO,
        VALOR-VALOR_DESCONTO AS VALOR_LIQUIDO,
        TIPO

        FROM (
          
            SELECT
                   (SELECT FIRST 1 FN_LPAD(EST.CODIGO,2,'0')||' - '||EST.NOMEFANTASIA||'/'||EST.UF
                      FROM TBESTABELECIMENTO EST WHERE EST.CODIGO = X.ESTABELECIMENTO_ID) AS ESTABELECIMENTO,
                    X.MODELO_ID,
                   (SELECT FIRST 1 M.DESCRICAO FROM TBMODELO M WHERE M.CODIGO = X.MODELO_ID) AS MODELO_DESCRICAO,
                    X.COR_ID,
                   (SELECT C.DESCRICAO FROM TBCOR C WHERE C.CODIGO = X.COR_ID) AS COR_DESCRICAO,
                    FN_TAMANHO_MODELO(X.MODELO_ID,X.TAMANHO_ID) AS TAMANHO,
                    X.TAMANHO_ID,
          
                    COALESCE(X.VENDEDOR_ID,0) VENDEDOR_ID,
                    COALESCE((SELECT FIRST 1 V.NOME FROM  TBREPRESENTANTE_VENDEDOR V WHERE V.CODIGO = X.VENDEDOR_ID),'SEM VENDEDOR') VENDEDOR,
                    DOCUMENTO,
                    X.DATA_EMISSAO,

                    IIF(CHAR_LENGTH(X.EAN)=13,X.EAN,
                   (SELECT PREFIXO||CODIGO||FN_DIGITOEAN(PREFIXO||CODIGO) FROM TBEAN EAN
                     WHERE EAN.MODELO_ID = X.MODELO_ID AND EAN.COR_ID = X.COR_ID AND EAN.TAMANHO = X.TAMANHO_ID)) EAN,  
          
                    X.VALOR_UNITARIO,
                    X.QUANTIDADE,
                    X.VALOR,
                    X.VALOR_DESCONTO,
                    X.SALDO,
                    IIF(PROMOCIONAL=1,'PROMO',IIF(BRINDE=1,'BRINDE','')) AS TIPO
                                
                    FROM (
                         SELECT B.ESTABELECIMENTO_CODIGO AS ESTABELECIMENTO_ID,
                                P.MODELO_CODIGO AS MODELO_ID,
                                P.COR_CODIGO AS COR_ID,
                                A.TAMANHO AS TAMANHO_ID,
                                A.VALOR_UNITARIO,
                                SUM(CAST(A.QUANTIDADE*(A.VALOR_UNITARIO + COALESCE(A.MARGEM,0.00)) AS DOUBLE PRECISION)) AS VALOR,
                                SUM(A.VALOR_DESCONTO + COALESCE(A.MARGEM_DESCONTO,0.00) + COALESCE(A.VALOR_SUFRAMA,0.00)) AS VALOR_DESCONTO,
                                SUM(A.QUANTIDADE) AS QUANTIDADE, 
                                B.VENDEDOR_ID,
                                B.TIPO_DESCRICAO||FN_LPAD(B.NUMERO_NOTAFISCAL,5,'0') AS DOCUMENTO,
                                B.DATA_EMISSAO,
                                B.EMPRESA_CODIGO AS CLIENTE_ID,
                                0 COLABORADOR_ID,
                                SUM(S.QUANTIDADE) AS SALDO,
                                0 PROMOCIONAL,
                                0 BRINDE,
                                '' EAN
                           FROM TBNFS_ITEM A
                          INNER JOIN TBNFS B ON A.NFS_CONTROLE = B.CONTROLE
                          INNER JOIN TBOPERACAO D ON A.OPERACAO_CODIGO = D.CODIGO
                          INNER JOIN TBNFS_ITEM_SALDO S ON S.NFS_CONTROLE = B.CONTROLE AND S.NFS_ITEM_CONTROLE = A.CONTROLE
                          INNER JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO
                          WHERE D.CONTROLE_FATURAMENTO = 1
                            AND ((B.SITUACAO = 2) OR (B.SITUACAO = 1 AND B.NATUREZA = 2))
                            AND B.DATA_EMISSAO BETWEEN :DATA_1 AND :DATA_2
                        GROUP BY
                            B.ESTABELECIMENTO_CODIGO,
                            P.MODELO_CODIGO,
                            P.COR_CODIGO,
                            A.TAMANHO,
                            B.VENDEDOR_ID,
                            B.TIPO_DESCRICAO,
                            B.NUMERO_NOTAFISCAL,
                            B.DATA_EMISSAO,
                            B.EMPRESA_CODIGO,
                            A.VALOR_UNITARIO
                            
                        UNION ALL
                        
                            SELECT
                            B.ESTABELECIMENTO_CODIGO,
                            P.MODELO_CODIGO AS MODELO_ID,
                            P.COR_CODIGO AS COR_ID,
                            A.TAMANHO AS TAMANHO_ID,
                            A.VALOR_UNITARIO,
                            SUM(CAST(A.QUANTIDADE*A.VALOR_UNITARIO AS DOUBLE PRECISION)) VALOR,
                            SUM(A.VALOR_DESCONTO+COALESCE(A.VALOR_SUFRAMA,0.00)) VALOR_DESCONTO,
                            SUM(A.QUANTIDADE) QUANTIDADE,
                            B.VENDEDOR_CODIGO AS VENDEDOR_ID,
                            B.TIPO_DESCRICAO||FN_LPAD(B.NUMERO_NOTAFISCAL,5,'0') AS DOCUMENTO,
                            B.DATA_EMISSAO,
                            B.EMPRESA_CODIGO AS CLIENTE_ID,
                            B.COLABORADOR_ID,
                            SUM(PS.QUANTIDADE) AS SALDO,
                            A.PROMOCIONAL,
                            A.BRINDE,
                            A.EAN
                        FROM VWMFE_ITEM A
                        INNER JOIN TBPRODUTO  P ON A.PRODUTO_CODIGO  =  P.CODIGO
                        INNER JOIN TBOPERACAO O ON A.OPERACAO_CODIGO =  O.CODIGO
                        INNER JOIN VWMFE      B ON A.MFE_ID          =  B.MFE_ID
                        INNER JOIN TBPDV_CFE_ITEM_SALDO PS ON PS.PDV_CFE_ITEM_ID = A.MFE_ITEM_ID AND PS.PDV_CFE_ID = A.MFE_ID
                        WHERE O.CONTROLE_FATURAMENTO = '1'
                          AND B.SITUACAO = 2 AND B.NATUREZA = 1
                            AND B.DATA_EMISSAO BETWEEN :DATA_1 AND :DATA_2 
                        GROUP BY
                            B.ESTABELECIMENTO_CODIGO,
                            P.MODELO_CODIGO,
                            P.COR_CODIGO,
                            A.TAMANHO,
                            B.VENDEDOR_CODIGO,
                            B.TIPO_DESCRICAO,
                            B.NUMERO_NOTAFISCAL,
                            B.DATA_EMISSAO,
                            B.EMPRESA_CODIGO,
                            B.COLABORADOR_ID,
                            A.PROMOCIONAL,
                            A.BRINDE,
                            A.EAN,
                            A.VALOR_UNITARIO
                        ) X
                    WHERE IIF(:CLIENTE_ID > 0, X.CLIENTE_ID = :CLIENTE_ID, X.COLABORADOR_ID = :COLABORADOR_ID)
              )
        WHERE TRUE
          -- :EAN

ORDER BY 
        MODELO_ID,
        COR_DESCRICAO,
        TAMANHO_ID,
        DATA_EMISSAO,
        DOCUMENTO