select

    NFS_CONTROLE,
    OPERACAO_CODIGO,
    CFOP_CODIGO,
    PRODUTO_CODIGO,
    PRODUTO_DESCRICAO,
    GRADE_CODIGO,
    NCM_CODIGO,
    TRIBUTACAO_ICMS,
    TRIBUTACAO_IPI,
    TRIBUTACAO_ORIGEM,
    LOCALIZACAO_CODIGO,
    ------------------------------------------
    
    controle2 as SEQUENCIA,

    iif(TAM = 1, T01,
    iif(TAM = 2, T02,
    iif(TAM = 3, T03,
    iif(TAM = 4, T04,
    iif(TAM = 5, T05,
    iif(TAM = 6, T06,
    iif(TAM = 7, T07,
    iif(TAM = 8, T08,
    iif(TAM = 9, T09,
    iif(TAM =10, T10, 0)))))))))) QUANTIDADE,

    controle2 as controle,

    --TAM as TAMANHO,
    iif(TAM = 1, T01, 0) as T01,
    iif(TAM = 2, T02, 0) as T02,
    iif(TAM = 3, T03, 0) as T03,
    iif(TAM = 4, T04, 0) as T04,
    iif(TAM = 5, T05, 0) as T05,
    iif(TAM = 6, T06, 0) as T06,
    iif(TAM = 7, T07, 0) as T07,
    iif(TAM = 8, T08, 0) as T08,
    iif(TAM = 9, T09, 0) as T09,
    iif(TAM =10, T10, 0) as T10,
    ------------------------------------------
    VALOR_UNITARIO,
    VALOR_TOTAL,
    BASECALCULO_ICMS,
    PERCENTUAL_ICMS,
    PERCENTUAL_IPI,
    VALOR_IPI,
    PERCENTUAL_PIS,
    VALOR_PIS,
    PERCENTUAL_COFINS,
    VALOR_COFINS,
    NFE,
    NFE_ITEM_CONTROLE,
    NF_EXTERNO,
    NF_EXTERNO_ITEM_CONTROLE,
    PEDIDO,
    PEDIDO_ITEM_CONTROLE,
    PEDIDO_ITEM_PE_CONTROLE,
    PEDIDO_PROC_ITEM_CONTROLE,

    T11,
    T12,
    T13,
    T14,
    T15,
    T16,
    T17,
    T18,
    T19,
    T20,
    ESTABELECIMENTO_CODIGO,
    EMPRESA_CODIGO,
    NUMERO_NOTAFISCAL,
    DATA_EMISSAO,
    SITUACAO,
    VALOR_CUSTO,
    TECELAGEM,
    TRIBUTACAO_PIS,
    TRIBUTACAO_COFINS,
    VALOR_ICMS,
    BASECALCULO_IPI,
    BASECALCULO_PIS,
    BASECALCULO_COFINS,
    VALOR_ACRESCIMO,
    VALOR_DESCONTO,
    FISCAL_ISENTAS_IPI,
    FISCAL_ISENTAS_ICMS,
    FISCAL_OUTRAS_IPI,
    FISCAL_OUTRAS_ICMS,
    FISCAL_VALOR_ICMS,
    FISCAL_VALOR_IPI,
    FISCAL_VALOR_PIS,
    FISCAL_VALOR_COFINS,
    FISCAL_PERCENTUAL_ICMS,
    FISCAL_PERCENTUAL_IPI,
    FISCAL_PERCENTUAL_PIS,
    FISCAL_PERCENTUAL_COFINS,
    FISCAL_BASECALCULO_ICMS,
    FISCAL_BASECALCULO_IPI,
    FISCAL_BASECALCULO_PIS,
    FISCAL_BASECALCULO_COFINS,
    FISCAL_TRIBUTACAO_ORIGEM,
    FISCAL_TRIBUTACAO_ICMS,
    FISCAL_TRIBUTACAO_IPI,
    FISCAL_TRIBUTACAO_PIS,
    FISCAL_TRIBUTACAO_COFINS,
    FISCAL_CFOP_CODIGO,
    VALOR_CONTABIL,
    DESCONTO_BASECALCULO_ICMS,
    VALOR_BASECALCULO_ICMS,
    MODALIDADE_ICMS,
    MODALIDADE_ICMS_ST,
    MARGEM_ICMS_ST,
    REDUCAO_ICMS_ST,
    BASECALCULO_ICMS_ST,
    ALIQUOTA_ICMS_ST,
    VALOR_ICMS_ST,
    PEDIDO_CLIENTE,
    INFORMACOES_COMPLEMENTARES,
    NF_CONSIGNACAO,
    NF_CONSIGNACAO_ITEM,
    FCI_MENSAGEM,
    FCI_PARCELA_IMPORTACAO,
    FCI_CONTEUDO_IMPORTACAO,
    FCI_NUMERO,
    VALOR_FRETE,
    VALOR_SEGURO,
    PESO_LIQUIDO,
    PESO_BRUTO,
    VOLUMES,
    CUBAGEM,
    FISCAL_REDUCAO_ICMS_ST,
    FISCAL_BASECALCULO_ICMS_ST,
    FISCAL_ALIQUOTA_ICMS_ST,
    FISCAL_VALOR_ICMS_ST,
    FLAG,
    EXP_NUMERO_DRAWBACK,
    EXP_NUMERO_RE,
    EXP_CHAVE,
    EXP_QUANTIDADE,
    SALESFORCE,
    CONTA_CONTABIL,
    CCUSTO,
    ENQUADRAMENTO_IPI,
    VALOR_FRETE_RATEADO,
    VBCUFDEST,
    PFCPUFDEST,
    PICMSUFDEST,
    PICMSINTER,
    VFCPUFDEST,
    VICMSUFDEST,
    VICMSUFREMET,
    PICMSINTERPART,
    QUANTIDADE_ALTERNATIVA,
    VALOR_ALTERNATIVO,
    CUSTO_FRETE_RATEADO,
    MARGEM,
    REDUCAO_BASE_PISCOF,
    MARGEM_DATAHORA,
    GC_WEB,
    NF_SITUACAO,
    NF_NATUREZA,
    TIPO_DESCONTO,
    PDV_CONFERENCIA_ITEM_ID,
    PDV_CONFERENCIA_ID,
    UM_ALTERNATIVA,
    PRODUTO_UNIDADEMEDIDA,
    VALOR_DESCONTO_ORIGINAL,
    PERCENTUAL_SUFRAMA,
    VALOR_SUFRAMA,
    PERCENTUAL_ICMS_OPERACAO,
    MODELO_ID,
    COR_ID,
    IMP,
    COMANDA,
    -1 QTD_TAMANHOS,
    '' LS_TAMANHOS
from(
    select
       gen_id(GTBNFS_ITEM,1) as controle2,
       a.linha_corrente,
       fn_array(s.ls_tamanhos,a.linha_corrente, ',') as TAM, 
       s.*
    
    from tbnfs_item_imp s, sp_gerar_linhas(s.qtd_tamanhos) a
    where s.imp = 1
    and qtd_tamanhos > 1
)

update tbnfs_item_imp s set s.qtd_tamanhos = (
        iif(s.t01 > 0,1,0)+
        iif(s.t02 > 0,1,0)+
        iif(s.t03 > 0,1,0)+
        iif(s.t04 > 0,1,0)+
        iif(s.t05 > 0,1,0)+
        iif(s.t06 > 0,1,0)+
        iif(s.t07 > 0,1,0)+
        iif(s.t08 > 0,1,0)+
        iif(s.t09 > 0,1,0)+
        iif(s.t10 > 0,1,0)
    ) where s.imp = 1;
	
update tbnfs_item_imp s set s.ls_tamanhos = (select list(osplit) from split(replace(trim('0'||
        iif(s.t01 > 0,',1',',0')||
        iif(s.t02 > 0,',2',',0')||
        iif(s.t03 > 0,',3',',0')||
        iif(s.t04 > 0,',4',',0')||
        iif(s.t05 > 0,',5',',0')||
        iif(s.t06 > 0,',6',',0')||
        iif(s.t07 > 0,',7',',0')||
        iif(s.t08 > 0,',8',',0')||
        iif(s.t09 > 0,',9',',0')||
        iif(s.t10 > 0,',10','')),'',' '),',') where osplit > 0)
     where s.imp = 1
    and s.qtd_tamanhos > 1;