 SELECT /*@FIRST_TALAO*/ /*@SKIP_TALAO*/
                X.ESTABELECIMENTO_ID,
                X.ID,
                X.GP_ID,
                X.UP_ID,
                X.UP_DESCRICAO,
                X.ESTACAO,
                CAST(SUBSTRING(X.ESTACAO_FIELDS FROM  1 FOR  20) AS VARCHAR( 20)) ESTACAO_DESCRICAO,
                CAST(SUBSTRING(X.ESTACAO_FIELDS FROM 21 FOR 100) AS VARCHAR(100)) ESTACAO_PERFIL_SKU,
				X.TURNO,
                X.REMESSA,
                X.DATA_ORIGEM,
                X.REMESSA_DATA,
                X.REMESSA_ID,
                X.REMESSA_TALAO_ID,     
                X.REMESSA_STATUS,
                X.MODELO_ID,
                X.MODELO_DESCRICAO,
                X.DENSIDADE,
                X.ESPESSURA,
                CAST(SUBSTRING(X.QUANTIDADES FROM  1 FOR 11) AS NUMERIC(15,4)) QUANTIDADE,
                CAST(SUBSTRING(X.QUANTIDADES FROM 12 FOR 11) AS NUMERIC(15,4)) QUANTIDADE_PRODUCAO,
                CAST(SUBSTRING(X.QUANTIDADES FROM 23 FOR 11) AS NUMERIC(15,4)) QUANTIDADE_ALTERNATIVA,
                CAST(SUBSTRING(X.QUANTIDADES FROM 34 FOR 11) AS NUMERIC(15,4)) QUANTIDADE_ALTERNATIVA_PRODUCAO,
                CAST(SUBSTRING(X.QUANTIDADES FROM 45 FOR 11) AS NUMERIC(15,4)) QUANTIDADE_PRODUZIDA,
				X.PARES,
				X.PARES_POR_GP,
                X.UM,
                X.UM_ALTERNATIVA,
                X.STATUS,
                X.STATUS_DESCRICAO,
                X.TEMPO,
                X.TEMPO_REALIZADO,
                X.DATAHORA_INICIO,
                X.DATAHORA_FIM,
                X.DATAHORA_REALIZADO_INICIO,
                X.DATAHORA_REALIZADO_FIM,
                X.DATA_PRODUCAO,
                X.HORA_PRODUCAO,
                CAST(SUBSTRING(X.OPERADOR FROM   1 FOR 10) AS INTEGER) OPERADOR_ID,
                CAST(SUBSTRING(X.OPERADOR FROM  11 FOR 20) AS VARCHAR(20)) OPERADOR_DESCRICAO,
                X.PROGRAMACAO_ID,
                X.PROGRAMACAO_DATA,
                X.PROGRAMACAO_STATUS,
                X.PROGRAMACAO_STATUS_DESCRICAO,
				SUBSTRING(X.DADOS_ORIGEM FROM 1 FOR (POSITION('@', X.DADOS_ORIGEM)-1)) TALOES_ORIGEM,
                SUBSTRING(X.DADOS_ORIGEM FROM (POSITION('@', X.DADOS_ORIGEM)+1)) DATA_REMESSA_ORIGEM,
                X.REMESSA_TIPO,
                X.REMESSA_TIPO_DESCRICAO,
                X.REMESSA_TIPO_VIP,
                X.UP_DESTINO,
                X.STATUS_COMPONENTE,
                X.VIA_ETIQUETA,
                (CASE X.STATUS_COMPONENTE
                    WHEN '0' THEN 'PARADO'
                    WHEN '1' THEN 'EM ANDAMENTO'
                    WHEN '2' THEN 'PRODUZIDO'
                    WHEN '6' THEN 'ENCERRADO'
                    ELSE 'INDEFINIDO' END
                ) STATUS_COMPONENTE_DESCRICAO,
                X.COMPONENTE,
                X.STATUS_MATERIA_PRIMA,
                IIF (X.STATUS_MATERIA_PRIMA = '1', 'ESTOQUE DISPONÍVEL','ESTOQUE INDISPONÍVEL') STATUS_MATERIA_PRIMA_DESCRICAO,
                
                --STATUS DA COMBINACAO DE MATERIA-PRIMA E COMPONENTE
                IIF( X.COMPONENTE = 1,
                    IIF(X.STATUS_COMPONENTE = 2 AND X.STATUS_MATERIA_PRIMA = 1,'1','0')
                , X.STATUS_MATERIA_PRIMA) STATUS_MP_CP,
                
                --EFICIENCIA = ((QTD.PROD. / MIN.PROD.) / (QTD.PROJ. / MIN.PROJ.)) * 100
                IIF(X.STATUS = 2,
                (
                  (
                    CAST(
                        (NULLIF(CAST(SUBSTRING(X.QUANTIDADES FROM 45 FOR 11) AS NUMERIC(15,4)), 0))
                        /
                        NULLIF(X.TEMPO_REALIZADO, 0)
                    AS DOUBLE PRECISION)
                    /
                    CAST(
                        IIF(CAST(SUBSTRING(X.QUANTIDADES FROM 23 FOR 11) AS NUMERIC(15,4)) > 0,
                            NULLIF(CAST(SUBSTRING(X.QUANTIDADES FROM 23 FOR 11) AS NUMERIC(15,4)), 0),
                            NULLIF(CAST(SUBSTRING(X.QUANTIDADES FROM  1 FOR 11) AS NUMERIC(15,4)), 0))
                            /
                            NULLIF(X.TEMPO, 0)
                    AS DOUBLE PRECISION)                    
                  )
                  *
                  100
                )
                , 0) EFICIENCIA

            FROM
                (SELECT
                    R.ESTABELECIMENTO_ID,
                    T.ID,
                    R.DATA REMESSA_DATA,
                    T.REMESSA_ID,
                    R.REMESSA,
                    (select first 1 w.data from vwremessa w where w.remessa = (iif(R.REMESSA like '1M%',substring(R.REMESSA from 3 for char_length(R.REMESSA) -2),'0'))) as DATA_ORIGEM,
                    LPAD(T.REMESSA_TALAO_ID,4,'0')REMESSA_TALAO_ID,
                    R.STATUS REMESSA_STATUS,
                    T.GP_ID,
                    T.UP_ID,
                    U.DESCRICAO UP_DESCRICAO,
                    LPAD(T.ESTACAO,2,'0') ESTACAO,

                   (SELECT CAST((RPAD(S.DESCRICAO, 20) || RPAD(LIST(S.PERFIL_SKU, ', '), 100)) AS VARCHAR(120)) TESTES
                      FROM TBSUB_UP S
                     WHERE S.UP_ID = T.UP_ID
                       AND S.ID = T.ESTACAO
                     GROUP BY DESCRICAO)ESTACAO_FIELDS,
					 
					T.TURNO,

                    LPAD(T.MODELO_ID,5,'0') MODELO_ID,
                    M.DESCRICAO MODELO_DESCRICAO,
                    T.DENSIDADE,
                    T.ESPESSURA,
                    (SELECT
                       (LPAD(SUM(D.QUANTIDADE),11,' '        ) ||
                        LPAD(SUM(D.QUANTIDADE_PRODUCAO       ),11,' ') ||
                        LPAD(SUM(D.QUANTIDADE_ALTERN         ),11,' ') ||
                        LPAD(SUM(D.QUANTIDADE_ALTERN_PRODUCAO),11,' ') ||
                        --QUANTIDADE PRODUZIDA = QUANTIDADE_PRODUCAO - APROVEITAMENTO
                        LPAD(SUM(IIF(D.QUANTIDADE_ALTERN_PRODUCAO > 0, D.QUANTIDADE_ALTERN_PRODUCAO, D.QUANTIDADE_PRODUCAO))
                                - SUM(
                                     COALESCE(
                                        (SELECT FIRST 1 IIF(SUM(V.QUANTIDADE_ALTERNATIVA) > 0, SUM(V.QUANTIDADE_ALTERNATIVA), SUM(V.QUANTIDADE)) APROVEITAMENTO_ALOCADO
                                            FROM TBREMESSA_TALAO_VINCULO V
                                            WHERE
                                                V.STATUS <> '1' 
                                            AND V.TIPO = 'R'
                                            AND V.REMESSA_TALAO_DETALHE_ID = D.ID)
                                     ,0)
                                )
                        ,11,' '))
                    FROM  VWREMESSA_TALAO_DETALHE D
                    WHERE D.REMESSA_ID       = T.REMESSA_ID
                      AND D.REMESSA_TALAO_ID = T.REMESSA_TALAO_ID) QUANTIDADES,
					  
					(SELECT
						SUM(IIF(K.QUANTIDADE_CONSUMO = K.QUANTIDADE_VINCULO,K.QUANTIDADE_ORIGEM,
							((K.QUANTIDADE_ORIGEM * K.QUANTIDADE_VINCULO)/NULLIF(K.QUANTIDADE_CONSUMO, 0)))) QUANTIDADE

						FROM
						(
							SELECT
								C.QUANTIDADE_ORIGINAL QUANTIDADE_ORIGEM,
								IIF(COALESCE(C.QUANTIDADE_NECES,0) > 0,C.QUANTIDADE_NECES, C.QUANTIDADE) QUANTIDADE_CONSUMO,
								V.QUANTIDADE QUANTIDADE_VINCULO

							FROM
								VWREMESSA_CONSUMO C,
								TBREMESSA_CONSUMO_VINCULO V
							WHERE
								V.REMESSA_ID        = T.REMESSA_ID
							AND V.REMESSA_TALAO_ID  = T.REMESSA_TALAO_ID
							AND V.CONSUMO_ID        = C.ID
						)K
					) PARES,
					
					(SELECT LIST(GP,', ')
						FROM
						(
							SELECT
								(X.GP_DESCRICAO || ' / ' ||
								TRUNC(SUM(IIF(X.QUANTIDADE_CONSUMO = X.QUANTIDADE_VINCULO,X.QUANTIDADE_ORIGEM,
									((X.QUANTIDADE_ORIGEM * X.QUANTIDADE_VINCULO)/NULLIF(X.QUANTIDADE_CONSUMO, 0)))))) GP

							FROM
							(
								SELECT
									C.QUANTIDADE_ORIGINAL QUANTIDADE_ORIGEM,
									IIF(COALESCE(C.QUANTIDADE_NECES,0) > 0,C.QUANTIDADE_NECES, C.QUANTIDADE) QUANTIDADE_CONSUMO,
									V.QUANTIDADE QUANTIDADE_VINCULO,
									G.DESCRICAO GP_DESCRICAO

								FROM
									VWREMESSA_CONSUMO C,
									TBREMESSA_CONSUMO_VINCULO V,
									VWREMESSA_TALAO TT,
									TBGP G
								WHERE
									V.REMESSA_ID = T.REMESSA_ID
								AND V.REMESSA_TALAO_ID = T.REMESSA_TALAO_ID
								AND TT.REMESSA_ID = C.REMESSA_ID
								AND TT.REMESSA_TALAO_ID = C.REMESSA_TALAO_ID
								AND G.ID = TT.GP_ID
								AND V.CONSUMO_ID = C.ID
							)X
							GROUP BY GP_DESCRICAO
						)Y
					) PARES_POR_GP,
                      
                    T.QUANTIDADE_ALTERNATIVA,
                    F.UNIDADEMEDIDA_SIGLA UM,
                    F.UNIDADEMEDIDA_ALTERNATIVO UM_ALTERNATIVA,
                    T.STATUS,
                   (CASE
                        T.STATUS
                    WHEN 1 THEN 'EM ABERTO'
                    WHEN 2 THEN 'PRODUZIDO'
                    WHEN 3 THEN 'LIBERADO'
                    ELSE 'INDEFINIDO' END) STATUS_DESCRICAO,
                    P.TEMPO,
                    P.TEMPO_REALIZADO,
                    P.DATAHORA_INICIO,
                    P.DATAHORA_FIM,
                    P.ID PROGRAMACAO_ID,
                    (SELECT MIN(DATAHORA) FROM TBPROGRAMACAO_REGISTRO WHERE PROGRAMACAO_ID = P.ID AND STATUS = '0') DATAHORA_REALIZADO_INICIO,
                    (SELECT MAX(DATAHORA) FROM TBPROGRAMACAO_REGISTRO WHERE PROGRAMACAO_ID = P.ID AND STATUS = '2') DATAHORA_REALIZADO_FIM,
                    T.DATA_PRODUCAO,
                    T.HORA_PRODUCAO,
                    (SELECT FIRST 1 LPAD(PR.OPERADOR_ID,10,' ') || RPAD(O.NOME,20,' ') FROM TBPROGRAMACAO_REGISTRO PR, TBOPERADOR O WHERE PR.PROGRAMACAO_ID = P.ID AND PR.STATUS = '2' AND O.CODIGO = PR.OPERADOR_ID ORDER BY PR.ID DESC)OPERADOR,
                    P.DATA PROGRAMACAO_DATA,
                    P.STATUS PROGRAMACAO_STATUS,
                   (CASE
                        P.STATUS
                    WHEN '0' THEN 'PARADO'
                    WHEN '1' THEN 'INICIADO/PARADO'
                    WHEN '2' THEN 'EM ANDAMENTO'
                    WHEN '3' THEN 'FINALIZADO'
                    WHEN '6' THEN 'ENCERRADO'
                    ELSE 'INDEFINIDO' END) PROGRAMACAO_STATUS_DESCRICAO,
                    
                    (SELECT
                        LIST(DISTINCT LPAD(C.REMESSA_TALAO_ID, 4, '0'), ', ')					--TALOES ORIGEM
						|| '@' ||
                        LIST(DISTINCT RE.DATA, ', ')											--DATA REMESSA ORIGEM
                    FROM
                        VWREMESSA_CONSUMO C,
                        TBREMESSA_CONSUMO_VINCULO V,
                        VWREMESSA RE

                    WHERE
                        V.CONSUMO_ID       = C.ID
                    AND V.REMESSA_ID       = T.REMESSA_ID
                    AND V.REMESSA_TALAO_ID = T.REMESSA_TALAO_ID
					AND RE.REMESSA_ID      = C.REMESSA_ID)DADOS_ORIGEM,
                    
                    COALESCE((SELECT
                        LIST(DISTINCT(SELECT FIRST 1 DESCRICAO FROM TBUP P WHERE P.ID = S.UP_ID), ', ')

                    FROM
                        VWREMESSA_CONSUMO C,
                        TBREMESSA_CONSUMO_VINCULO V,
                        TBPRODUTO P,
                        VWREMESSA_TALAO_DETALHE D,
                        vwremessa_talao S

                    WHERE
                        V.CONSUMO_ID       = C.ID
                    AND P.CODIGO           = D.PRODUTO_ID
                    AND D.REMESSA_ID       = C.REMESSA_ID
                    AND D.REMESSA_TALAO_ID = C.REMESSA_TALAO_ID 
                    AND V.REMESSA_ID       = T.REMESSA_ID
                    AND V.REMESSA_TALAO_ID = T.REMESSA_TALAO_ID
                    AND S.remessa_id = C.remessa_id
                    AND S.remessa_talao_id = C.remessa_talao_id), '') UP_DESTINO,
                    

                    /* 1 - NORMAL     */ CAST(IIF(R.TIPO = '1', '1',
                    /* 2 - VIP        */      IIF(R.TIPO = '2' AND R.REQUISICAO = '0','2',
                    /* 3 - REQUISICAO */      IIF(R.TIPO = '2' AND R.REQUISICAO = '1','3','0'))) AS VARCHAR(1))REMESSA_TIPO,

                    /* 1 - NORMAL     */ CAST(IIF(R.TIPO = '1', 'NORMAL',
                    /* 2 - VIP        */      IIF(R.TIPO = '2' AND R.REQUISICAO = '0','VIP',
                    /* 3 - REQUISICAO */      IIF(R.TIPO = '2' AND R.REQUISICAO = '1','REQ','0'))) AS VARCHAR(15))REMESSA_TIPO_DESCRICAO,
                    
                    CAST(IIF(R.TIPO = '1',0,1) AS VARCHAR(1)) REMESSA_TIPO_VIP,
                    
                    (SELECT CASE AVG(CAST(P.STATUS AS NUMERIC(15,4)))
                             WHEN 0 THEN '0'
                             WHEN 3 THEN '2'
                             ELSE IIF(POSITION('6', LIST(P.STATUS)) > 0, '6', '1') END
                        FROM VWREMESSA_CONSUMO C,
                             TBREMESSA_CONSUMO_VINCULO V,
                             VWREMESSA_TALAO TT,
                             TBPROGRAMACAO P
                        WHERE
                            C.REMESSA_ID = T.REMESSA_ID
                        AND C.REMESSA_TALAO_ID = T.REMESSA_TALAO_ID
                        AND V.CONSUMO_ID = C.ID
                        AND P.TABELA_ID = TT.ID
                        AND P.TIPO = 'A'
                        AND TT.REMESSA_ID = V.REMESSA_ID
                        AND TT.REMESSA_TALAO_ID = V.REMESSA_TALAO_ID
                    ) STATUS_COMPONENTE,
                    
                    COALESCE((SELECT MAX(C.COMPONENTE)
                        FROM VWREMESSA_CONSUMO C
                        WHERE
                            C.REMESSA_ID = T.REMESSA_ID
                        AND C.REMESSA_TALAO_ID = T.REMESSA_TALAO_ID
                    ), 0) COMPONENTE,

                    --SUBSELECT PARA CONSULTA DE STATUS DA MATÉRIA-PRIMA
                    (SELECT
                        IIF( MIN(STATUS_MATERIA_PRIMA) = 0, '0','1')STATUS_MATERIA_PRIMA
                    
                    FROM
                        (SELECT
                            IIF ( (X.ESTOQUE_FISICO-X.ESTOQUE_ALOCADO+X.ALOCADO_ITEM) >= X.NECESSIDADE, 1,0) STATUS_MATERIA_PRIMA
                    
                            FROM
                                (SELECT DISTINCT
                
                                    --ESTOQUE FISICO
                                    CAST(COALESCE((SELECT FIRST 1 IIF(T.TAMANHO=0,S.SALDO,
                                               IIF(T.TAMANHO=1 ,S.T01_SALDO,IIF(T.TAMANHO=2 ,S.T02_SALDO,
                                               IIF(T.TAMANHO=3 ,S.T03_SALDO,IIF(T.TAMANHO=4 ,S.T04_SALDO,
                                               IIF(T.TAMANHO=5 ,S.T05_SALDO,IIF(T.TAMANHO=6 ,S.T06_SALDO,
                                               IIF(T.TAMANHO=7 ,S.T07_SALDO,IIF(T.TAMANHO=8 ,S.T08_SALDO,
                                               IIF(T.TAMANHO=9 ,S.T09_SALDO,IIF(T.TAMANHO=10,S.T10_SALDO,
                                               IIF(T.TAMANHO=11,S.T11_SALDO,IIF(T.TAMANHO=12,S.T12_SALDO,
                                               IIF(T.TAMANHO=13,S.T13_SALDO,IIF(T.TAMANHO=14,S.T14_SALDO,
                                               IIF(T.TAMANHO=15,S.T15_SALDO,IIF(T.TAMANHO=16,S.T16_SALDO,
                                               IIF(T.TAMANHO=17,S.T17_SALDO,IIF(T.TAMANHO=18,S.T18_SALDO,
                                               IIF(T.TAMANHO=19,S.T19_SALDO,IIF(T.TAMANHO=20,S.T20_SALDO,
                                               0.00000))))))))))))))))))))) FROM TBESTOQUE_SALDO S
                                    WHERE S.ESTABELECIMENTO_CODIGO = C.ESTABELECIMENTO_ID
                                      AND S.LOCALIZACAO_CODIGO = F.LOCALIZACAO_CODIGO
                                      AND S.PRODUTO_CODIGO = C.PRODUTO_ID),0) AS NUMERIC(15,4)) ESTOQUE_FISICO,
                        
                                    --ESTOQUE ALOCADO
                                    CAST(COALESCE((SELECT FIRST 1 SA.QUANTIDADE FROM TBESTOQUE_SALDO_ALOCACAO SA
                                      WHERE SA.ESTABELECIMENTO_ID = C.ESTABELECIMENTO_ID
                                        AND SA.LOCALIZACAO_ID = F.LOCALIZACAO_CODIGO
                                        AND SA.PRODUTO_ID = C.PRODUTO_ID
                                        AND SA.TAMANHO = C.TAMANHO),0) AS NUMERIC(15,4)) ESTOQUE_ALOCADO,
                        
                                    --ESTOQUE ALOCADO PARA O ITEM
                                    COALESCE((SELECT SUM(E.QUANTIDADE)
                                        FROM TBESTOQUE_DETALHE_ALOCACAO E,
                                            VWREMESSA_CONSUMO RC
                                        WHERE E.ESTABELECIMENTO_ID = C.ESTABELECIMENTO_ID
                                          AND E.TABELA_ID = C.REMESSA_ID
                                          AND E.TAB_ITEM_ID = RC.ID
                                          AND RC.REMESSA_ID = T.REMESSA_ID
                                          AND RC.REMESSA_TALAO_ID = T.REMESSA_TALAO_ID
                                          AND E.PRODUTO_ID = C.PRODUTO_ID
                                          AND E.TAMANHO = C.TAMANHO
                                          AND E.TIPO = 'R'),0) ALOCADO_ITEM,
                        
                                    --SOMA DOS PRODUTOS DO TALAO
                                    COALESCE((SELECT SUM(D.QUANTIDADE)
                                       FROM VWREMESSA_TALAO_DETALHE D
                                      WHERE D.PRODUTO_ID = C.PRODUTO_ID
                                        AND D.TAMANHO = C.TAMANHO
                                        AND D.REMESSA_ID = C.REMESSA_ID
                                        AND D.REMESSA_TALAO_ID = C.REMESSA_TALAO_ID), 0) NECESSIDADE
                        
                                FROM
                                    VWREMESSA_CONSUMO C,
                                    TBPRODUTO P
                        
                                WHERE
                                    C.REMESSA_ID       = T.REMESSA_ID
                                AND C.REMESSA_TALAO_ID = T.REMESSA_TALAO_ID
                                AND P.CODIGO           = C.PRODUTO_ID
                            )X
                        )Y
                    )STATUS_MATERIA_PRIMA,
                    COALESCE(T.VIA_ETIQUETA,0) VIA_ETIQUETA

                FROM
                    VWREMESSA_TALAO T,
                    TBUP U,
                    VWREMESSA R,
                    TBMODELO M,
                    TBPROGRAMACAO P,
                    TBFAMILIA F

                WHERE
                    U.ID         = T.UP_ID
                AND R.REMESSA_ID = T.REMESSA_ID
                AND M.CODIGO     = T.MODELO_ID
                AND P.TABELA_ID  = T.ID
                AND P.GP_ID      = T.GP_ID
                AND P.UP_ID      = T.UP_ID
                AND (P.ESTACAO    = T.ESTACAO OR T.ESTACAO = 0)
                AND F.CODIGO     = M.FAMILIA_CODIGO)X

            WHERE
                1=1
                /*@ESTABELECIMENTO_ID*/
                /*@REMESSA_ID*/
                /*@REMESSA*/
                /*@TALAO_ID*/
                /*@GP_ID*/
                /*@UP_ID*/
                /*@UP_ORIGEM*/
                /*@ESTACAO*/
                /*@STATUS*/
                /*@PROGRAMACAO_STATUS*/
                /*@PROGRAMACAO_DATAHORA*/
				/*@PERIODO*/
				/*@TURNO*/
                
            ORDER BY
                DATAHORA_REALIZADO_INICIO, DATAHORA_INICIO