CREATE OR ALTER VIEW VWREMESSA_CONSUMO(
    ID,
    ESTABELECIMENTO_ID,
    REMESSA_ID,
    REMESSA_TALAO_ID,
    REMESSA_TALAO_DETALHE_ID,
    CONTROLE,
    LOCALIZACAO_ID,
    PRODUTO_ID,
    TAMANHO,
    DENSIDADE,
    ESPESSURA,
    QUANTIDADE_ORIGINAL,
    QUANTIDADE_NECES,
    QUANTIDADE_NECES_ALTERN,
    FATOR_UNIDADE,
    FATOR_UNIDADE_ALTERN,
    QUANTIDADE,
    QUANTIDADE_CONSUMO,
    QUANTIDADE_SALDO,
    QUANTIDADE_ALTERNATIVA,
    QUANTIDADE_SOBRA,
    STATUS,
    QUANTIDADE_ALTERNATIVA_CONSUMO,
    QUANTIDADE_ALTERNATIVA_SALDO,
    DATAHORA_CONFERENCIA,
    COMPONENTE,
    ESTOQUE_ID,
    SALDO_BAIXAR,
    LIBERAR_TOLERANCIA,
    OPERADOR_LIBERACAO,
    quantidade_encerrada)
AS
SELECT
    R.ID,
    R.ESTABELECIMENTO_ID,
    R.REMESSA,
    R.TALAO,
    R.TALAO_DETALHE_ID,   
    R.CONTROLE,
    R.LOCALIZACAO_ID,
    R.PRODUTO_ID,
    R.TAMANHO,
    R.DENSIDADE,
    R.ESPESSURA,
    R.QUANTIDADE,
    R.QUANTIDADE_NECES, 
    R.QUANTIDADE_NECES_ALTERN, 
    R.FATOR_UNIDADE, 
    R.FATOR_UNIDADE_ALTERN, 
    R.CONSUMO_KG,
    R.QUANTIDADE_CONFERENCIA,
    R.SALDO,
    R.CONSUMO_ML,
    R.QUANTIDADE_SOBRA,
    R.CONFERENCIA,
    R.QUANTIDADE_CONFERENCIA_ML,
    R.SALDO_ML,
    R.DATAHORA_CONFERENCIA,
    R.COMPONENTE,
    R.CONTROLE_ESTOQUE,
    R.SALDO_BAIXAR,
    r.liberar_tolerancia,
    r.OPERADOR_LIBERACAO,
    r.quantidade_encerrada
FROM
    TBREMESSA_CONSUMO R
;

CREATE INDEX ITBREMESSA_15 ON TBREMESSA (DATA_FIM)

CREATE OR ALTER VIEW VWREMESSA_CONSUMO(
    ID,
    ESTABELECIMENTO_ID,
    REMESSA_ID,
    REMESSA_TALAO_ID,
    REMESSA_TALAO_DETALHE_ID,
    CONTROLE,
    LOCALIZACAO_ID,
    PRODUTO_ID,
    TAMANHO,
    DENSIDADE,
    ESPESSURA,
    QUANTIDADE_ORIGINAL,
    QUANTIDADE_NECES,
    QUANTIDADE_NECES_ALTERN,
    FATOR_UNIDADE,
    FATOR_UNIDADE_ALTERN,
    QUANTIDADE,
    QUANTIDADE_CONSUMO,
    QUANTIDADE_SALDO,
    QUANTIDADE_ALTERNATIVA,
    QUANTIDADE_SOBRA,
    STATUS,
    QUANTIDADE_ALTERNATIVA_CONSUMO,
    QUANTIDADE_ALTERNATIVA_SALDO,
    DATAHORA_CONFERENCIA,
    COMPONENTE,
    ESTOQUE_ID,
    SALDO_BAIXAR,
    LIBERAR_TOLERANCIA,
    OPERADOR_LIBERACAO,
    QUANTIDADE_ENCERRADA)
AS
SELECT
    R.ID,
    R.ESTABELECIMENTO_ID,
    R.REMESSA,
    R.TALAO,
    R.TALAO_DETALHE_ID,   
    R.CONTROLE,
    R.LOCALIZACAO_ID,
    R.PRODUTO_ID,
    R.TAMANHO,
    R.DENSIDADE,
    R.ESPESSURA,
    R.QUANTIDADE,
    R.QUANTIDADE_NECES, 
    R.QUANTIDADE_NECES_ALTERN, 
    R.FATOR_UNIDADE, 
    R.FATOR_UNIDADE_ALTERN, 
    R.CONSUMO_KG,
    R.QUANTIDADE_CONFERENCIA,
    0 SALDO,
    R.CONSUMO_ML,
    R.QUANTIDADE_SOBRA,
    R.CONFERENCIA,
    R.QUANTIDADE_CONFERENCIA_ML,
    R.SALDO_ML,
    R.DATAHORA_CONFERENCIA,
    R.COMPONENTE,
    R.CONTROLE_ESTOQUE,
    R.SALDO_BAIXAR,
    r.liberar_tolerancia,
    r.OPERADOR_LIBERACAO,
    r.quantidade_encerrada
FROM
    TBREMESSA_CONSUMO R
;

CREATE OR ALTER VIEW VWREMESSA_CONSUMO_V2(
    ID,
    ESTABELECIMENTO_ID,
    REMESSA_ID,
    REMESSA_TALAO_ID,
    REMESSA_TALAO_DETALHE_ID,
    CONTROLE,
    LOCALIZACAO_ID,
    PRODUTO_ID,
    TAMANHO,
    DENSIDADE,
    ESPESSURA,
    QUANTIDADE_ORIGINAL,
    QUANTIDADE_NECES,
    QUANTIDADE_NECES_ALTERN,
    FATOR_UNIDADE,
    FATOR_UNIDADE_ALTERN,
    QUANTIDADE,
    QUANTIDADE_CONSUMO,
    QUANTIDADE_SALDO,
    QUANTIDADE_ALTERNATIVA,
    QUANTIDADE_SOBRA,
    STATUS,
    QUANTIDADE_ALTERNATIVA_CONSUMO,
    QUANTIDADE_ALTERNATIVA_SALDO,
    DATAHORA_CONFERENCIA,
    COMPONENTE,
    ESTOQUE_ID,
    SALDO_BAIXAR,
    LIBERAR_TOLERANCIA,
    OPERADOR_LIBERACAO,
    SETOR_ID)
AS
SELECT
    R.ID,
    R.ESTABELECIMENTO_ID,
    R.REMESSA,
    R.TALAO,
    R.TALAO_DETALHE_ID,   
    R.CONTROLE,
    R.LOCALIZACAO_ID,
    R.PRODUTO_ID,
    R.TAMANHO,
    R.DENSIDADE,
    R.ESPESSURA,
    R.QUANTIDADE,
    R.QUANTIDADE_NECES, 
    R.QUANTIDADE_NECES_ALTERN, 
    R.FATOR_UNIDADE, 
    R.FATOR_UNIDADE_ALTERN, 
    R.CONSUMO_KG,
    R.QUANTIDADE_CONFERENCIA,
    0 SALDO,
    R.CONSUMO_ML,
    R.QUANTIDADE_SOBRA,
    R.CONFERENCIA,
    R.QUANTIDADE_CONFERENCIA_ML,
    R.SALDO_ML,
    R.DATAHORA_CONFERENCIA,
    R.COMPONENTE,
    R.CONTROLE_ESTOQUE,
    R.SALDO_BAIXAR,
    r.liberar_tolerancia,
    r.OPERADOR_LIBERACAO,
    r.SETOR_ID
FROM
    TBREMESSA_CONSUMO R
;

ALTER TABLE TBREMESSA_CONSUMO DROP SALDO;

ALTER TABLE TBREMESSA_CONSUMO
    ADD SALDO COMPUTED BY ((IIF(CONFERENCIA = '1', 0, (CONSUMO_KG - Coalesce(QUANTIDADE_CONFERENCIA,0) - Coalesce(QUANTIDADE_ENCERRADA,0)))));

CREATE OR ALTER VIEW VWREMESSA_CONSUMO(
    ID,
    ESTABELECIMENTO_ID,
    REMESSA_ID,
    REMESSA_TALAO_ID,
    REMESSA_TALAO_DETALHE_ID,
    CONTROLE,
    LOCALIZACAO_ID,
    PRODUTO_ID,
    TAMANHO,
    DENSIDADE,
    ESPESSURA,
    QUANTIDADE_ORIGINAL,
    QUANTIDADE_NECES,
    QUANTIDADE_NECES_ALTERN,
    FATOR_UNIDADE,
    FATOR_UNIDADE_ALTERN,
    QUANTIDADE,
    QUANTIDADE_CONSUMO,
    QUANTIDADE_SALDO,
    QUANTIDADE_ALTERNATIVA,
    QUANTIDADE_SOBRA,
    STATUS,
    QUANTIDADE_ALTERNATIVA_CONSUMO,
    QUANTIDADE_ALTERNATIVA_SALDO,
    DATAHORA_CONFERENCIA,
    COMPONENTE,
    ESTOQUE_ID,
    SALDO_BAIXAR,
    LIBERAR_TOLERANCIA,
    OPERADOR_LIBERACAO,
    QUANTIDADE_ENCERRADA)
AS
SELECT
    R.ID,
    R.ESTABELECIMENTO_ID,
    R.REMESSA,
    R.TALAO,
    R.TALAO_DETALHE_ID,   
    R.CONTROLE,
    R.LOCALIZACAO_ID,
    R.PRODUTO_ID,
    R.TAMANHO,
    R.DENSIDADE,
    R.ESPESSURA,
    R.QUANTIDADE,
    R.QUANTIDADE_NECES, 
    R.QUANTIDADE_NECES_ALTERN, 
    R.FATOR_UNIDADE, 
    R.FATOR_UNIDADE_ALTERN, 
    R.CONSUMO_KG,
    R.QUANTIDADE_CONFERENCIA,
    R.SALDO,
    R.CONSUMO_ML,
    R.QUANTIDADE_SOBRA,
    R.CONFERENCIA,
    R.QUANTIDADE_CONFERENCIA_ML,
    R.SALDO_ML,
    R.DATAHORA_CONFERENCIA,
    R.COMPONENTE,
    R.CONTROLE_ESTOQUE,
    R.SALDO_BAIXAR,
    r.liberar_tolerancia,
    r.OPERADOR_LIBERACAO,
    r.quantidade_encerrada
FROM
    TBREMESSA_CONSUMO R
;

CREATE OR ALTER VIEW VWREMESSA_CONSUMO_V2(
    ID,
    ESTABELECIMENTO_ID,
    REMESSA_ID,
    REMESSA_TALAO_ID,
    REMESSA_TALAO_DETALHE_ID,
    CONTROLE,
    LOCALIZACAO_ID,
    PRODUTO_ID,
    TAMANHO,
    DENSIDADE,
    ESPESSURA,
    QUANTIDADE_ORIGINAL,
    QUANTIDADE_NECES,
    QUANTIDADE_NECES_ALTERN,
    FATOR_UNIDADE,
    FATOR_UNIDADE_ALTERN,
    QUANTIDADE,
    QUANTIDADE_CONSUMO,
    QUANTIDADE_SALDO,
    QUANTIDADE_ALTERNATIVA,
    QUANTIDADE_SOBRA,
    STATUS,
    QUANTIDADE_ALTERNATIVA_CONSUMO,
    QUANTIDADE_ALTERNATIVA_SALDO,
    DATAHORA_CONFERENCIA,
    COMPONENTE,
    ESTOQUE_ID,
    SALDO_BAIXAR,
    LIBERAR_TOLERANCIA,
    OPERADOR_LIBERACAO,
    SETOR_ID)
AS
SELECT
    R.ID,
    R.ESTABELECIMENTO_ID,
    R.REMESSA,
    R.TALAO,
    R.TALAO_DETALHE_ID,   
    R.CONTROLE,
    R.LOCALIZACAO_ID,
    R.PRODUTO_ID,
    R.TAMANHO,
    R.DENSIDADE,
    R.ESPESSURA,
    R.QUANTIDADE,
    R.QUANTIDADE_NECES, 
    R.QUANTIDADE_NECES_ALTERN, 
    R.FATOR_UNIDADE, 
    R.FATOR_UNIDADE_ALTERN, 
    R.CONSUMO_KG,
    R.QUANTIDADE_CONFERENCIA,
    R.SALDO,
    R.CONSUMO_ML,
    R.QUANTIDADE_SOBRA,
    R.CONFERENCIA,
    R.QUANTIDADE_CONFERENCIA_ML,
    R.SALDO_ML,
    R.DATAHORA_CONFERENCIA,
    R.COMPONENTE,
    R.CONTROLE_ESTOQUE,
    R.SALDO_BAIXAR,
    r.liberar_tolerancia,
    r.OPERADOR_LIBERACAO,
    r.SETOR_ID
FROM
    TBREMESSA_CONSUMO R
;
