[RESOLVIDO] alguem sabe quais sao as tabelas que contem as informações do CD0908 - aliquota icms 4%

Discussão em 'EMS , HCM e Totvs 11' iniciado por gilsiqueira, Agosto 29, 2014.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. gilsiqueira

    gilsiqueira Membro Participativo

    andre, a principio parece sim ser a tabela que contem a informação, os atributos da tabela não são "logicos-obvios ", sabe qual o "relacionamneto" com a tabela item ?
    obrigado pela informação.... ja é meio caminho andado. muito
  2. andregs85

    andregs85 Sem Pontuação

    Bom dia gilsiqueira.

    A principio procurei e também não encontrei a relação com a tabela item, acredito estar escondido no campo cdn-identif substring.

    Eu tinha o nome da tabela pelo fato de uma vez termos trocados os códigos de todos os produtos através do programa cd0205 e nos deparamos que o programa da TOTVS estava falho, pois não contemplava a troca dos códigos dos produtos no programa CD0908, sendo assim um analista desenvolveu esses dois QG's para trocar o nome dos produtos nesta tabela, vou te enviar, veja se ajuda. Pelo que entendi ele leu de um arquivo .txt o código do item relacionando com o campo cdn-identif e você poderia seguir a mesma lógica. O que vc realmente está precisando?

    Código 1:

    /* PARA SER UTILIZADO APàS A TROCA DE CàDIGO DE ITEM */

    def var v-item-velho like item.it-codigo .
    def var v-item-novo like item.it-codigo .


    input from C:\temp\de-para.txt .
    output to C:\temp\log-5.txt .

    repeat:

    import delimiter ";"
    v-item-velho
    v-item-novo .


    find item where codigo-refer = v-item-velho and
    it-codigo = v-item-novo no-error .

    if avail item then do:
    disp "achou item" v-item-velho .

    for each inf-compl where cdn-identif = 5 and
    substring (cod-indice , 1 , ( length(cod-indice) - 6 ) ) = trim(v-item-velho) .

    if avail inf-compl then do:
    assign substring (cod-indice , 1 , ( length(cod-indice) - 6 ) ) = trim(v-item-novo) .
    disp v-item-novo .
    end.

    end.

    end.


    end . /* repeat */

    ---------------------------------------------------------------------------------------------------

    Código 2:

    /* PARA SER UTILIZADO APàS A TROCA DE CàDIGO DE ITEM */

    def var v-item-velho like item.it-codigo .
    def var v-item-novo like item.it-codigo .


    input from C:\temp\de-para.txt .
    output to C:\temp\log-9.txt .

    repeat:

    import delimiter ";"
    v-item-velho
    v-item-novo .


    find item where codigo-refer = v-item-velho and
    it-codigo = v-item-novo no-error .

    if avail item then do:
    disp "achou item" .

    find inf-compl where cdn-identif = 9 and
    inf-compl.cod-indice = v-item-velho no-error .
    if avail inf-compl then do:
    assign inf-compl.cod-indice = trim(v-item-novo) .
    disp v-item-novo .
    end.

    end.



    end . /* repeat */
  3. gilsiqueira

    gilsiqueira Membro Participativo

    eu fiz alguns QG para identificar como esta informação fica armazenada aqui nesta tabela.

    para começar esta tabela mantem varios tipos de registros. veja a tabela reg-inf-compl - tem poucos registros e estes descrevem o conteudo de cada tipo de registro (INF-COMPL.CDN-IDENTIf).

    o tipo de registro 5 é o que mantem a infomação

    assim no campo cod-indice (x350) da posicao 1 ate o length do codigo do item - está armazenado o item.it-codigo, logo apos vem um hifen "-" e apos as duas UF ( origem e destino com 5 caracactes assim "SP-RJ". o que vc como hifen, no registro não é bem um hifen, um caracter estranho.
    veja abaixo um rotina que fiz:


    os meus codigos de item possum 14 caracteres.
    fiz para identificar os itens procedencia nacional contidos na tabela.


    DEF VAR C-CONT AS INT NO-UNDO.

    FOR EACH INF-COMPL WHERE INF-COMPL.CDN-IDENTIF = 5 NO-LOCK:

    FIND FIRST ITEM WHERE ITEM.IT-CODIGO = SUBSTRING(INF-COMPL.COD-INDICE,1,14) NO-ERROR.

    IF AVAIL ITEM AND ITEM.CODIGO-ORIG = 0 THEN
    DO:
    assign c-cont = c-cont + 1.

    DISP ITEM.IT-CODIGO
    INT(ITEM.CODIGO-ORIG)
    SUBSTRING(INF-COMPL.COD-INDICE,1,14) FORMAT "X(16)"
    SUBSTRING(INF-COMPL.COD-INDICE,16,5)
    C-CONT WITH WIDTH 400.

    PAUSE 0.
    END.



    END.


    muito obrigado pela dica. valeu mesmo.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página