CREATE OR ALTER VIEW VWESTOQUE_MINIMO(
    ID,
	CODIGO,
    ESTABELECIMENTO_ID,
    PRODUTO_ID,
    LOCALIZACAO_ID,
    FAMILIA_ID,
    PRODUTO_DESCRICAO,
    SEGURANCA,
    PONTO_REPOSICAO,
    TIPO_REPOSICAO,
    TAMANHO,
    ESTOQUE_MIN,
    ESTOQUE_MAX,
    TAM_DESCRICAO,
    HABILITA_KANBAN,
    KANBAN_LOCALIZACAO_ID)
AS
SELECT A.ID, CAST(A.ID||LPAD(00,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 00 TAMANHO, A.QUANTIDADE,  A.ESTOQUE_MAX,                                                 '' TAM_DESCRICAO, A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.QUANTIDADE > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO = 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(01,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 01 TAMANHO,        A.T01,          A.M01, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,01)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T01        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(02,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 02 TAMANHO,        A.T02,          A.M02, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,02)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T02        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(03,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 03 TAMANHO,        A.T03,          A.M03, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,03)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T03        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(04,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 04 TAMANHO,        A.T04,          A.M04, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,04)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T04        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(05,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 05 TAMANHO,        A.T05,          A.M05, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,05)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T05        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(06,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 06 TAMANHO,        A.T06,          A.M06, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,06)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T06        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(07,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 07 TAMANHO,        A.T07,          A.M07, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,07)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T07        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(08,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 08 TAMANHO,        A.T08,          A.M08, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,08)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T08        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(09,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 09 TAMANHO,        A.T09,          A.M09, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,09)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T09        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(10,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 10 TAMANHO,        A.T10,          A.M10, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,10)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T10        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(11,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 11 TAMANHO,        A.T11,          A.M11, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,11)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T11        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(12,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 12 TAMANHO,        A.T12,          A.M12, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,12)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T12        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(13,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 13 TAMANHO,        A.T13,          A.M13, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,13)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T13        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(14,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 14 TAMANHO,        A.T14,          A.M14, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,14)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T14        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(15,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 15 TAMANHO,        A.T15,          A.M15, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,15)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T15        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(16,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 16 TAMANHO,        A.T16,          A.M16, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,16)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T16        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(17,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 17 TAMANHO,        A.T17,          A.M17, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,17)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T17        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(18,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 18 TAMANHO,        A.T18,          A.M18, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,18)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T18        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(19,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 19 TAMANHO,        A.T19,          A.M19, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,19)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T19        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0 UNION
SELECT A.ID, CAST(A.ID||LPAD(20,2,0) AS INTEGER) as CODIGO, A.ESTABELECIMENTO_CODIGO, A.PRODUTO_CODIGO, A.LOCALIZACAO_CODIGO, P.FAMILIA_CODIGO, P.DESCRICAO, A.SEGURANCA, A.PONTO_REPOSICAO, A.TIPO_REPOSICAO, 20 TAMANHO,        A.T20,          A.M20, (SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,20)), A.HABILITA_KANBAN, A.KANBAN_LOCALIZACAO_ID FROM TBESTOQUE_MINIMO A LEFT JOIN TBPRODUTO P ON P.CODIGO = A.PRODUTO_CODIGO WHERE A.T20        > 0 AND P.STATUS = '1' AND P.GRADE_CODIGO > 0
;