1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

API item x fornecedor

Discussão em 'EMS , HCM e Totvs 11' iniciado por Carlos Alberto Giusti, Junho 20, 2024.

  1. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    No caso da item-cli, o que eu sei que ao criar por exemplo um pedido de venda, o totvs já cadastra automaticamente, vou ver se acho alguma coisa.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tento a item-cli como a item-fornec são criado diretamente na tabela sem API.

    Nesse caso do OC0201, é criado se não existe na view oc0201a-v01.w, e dentro da API ocapi002, só que essa API é só pra trazer "cotação vencedora".

    Dentro da oc0201a-v01.w
    Código:
    create item-fornec.
    assign item-fornec.it-codigo    = item.it-codigo
           item-fornec.cod-emitente = emitente.cod-emitente
           item-fornec.item-do-forn = item.it-codigo
           item-fornec.ativo        = yes
           item-fornec.cod-cond-pag = emitente.cod-cond-pag
           item-fornec.classe-repro = 1
           &IF "{&bf_mat_versao_ems}" >= "2.06" &THEN
               item-fornec.idi-tributac-pis    = 2  /*Tributacao PIS Isento*/
               item-fornec.idi-tributac-cofins = 2. /*Tributacao COFINS Isento*/
           &ELSE
               OVERLAY(item-fornec.char-1,1,1) = "2"  /*Tributacao PIS Isento*/
               OVERLAY(item-fornec.char-1,8,1) = "2". /*Tributacao COFINS Isento*/
           &ENDIF
         
        /* param-compra.char-2,136,1 -> Sugere Fator de Conv. Gera»’o Item/Fornec */
        ASSIGN l-sugeriu-fator-conver   = YES
               item-fornec.unid-med-for = cotacao-item.un:SCREEN-VALUE IN FRAME {&FRAME-NAME}
               item-fornec.fator-conver = 1
               item-fornec.num-casa-dec = 0.
             
        IF SUBSTRING(param-compra.char-2,136,1) = "S"
           AND cotacao-item.un:SCREEN-VALUE IN FRAME {&FRAME-NAME} <> item.un  THEN DO:
            FOR FIRST item-unid-compra FIELDS(cdd-fator-conver nr-casa-dec)
                WHERE item-unid-compra.it-codigo = item.it-codigo
                AND   item-unid-compra.un        = cotacao-item.un:SCREEN-VALUE IN FRAME {&FRAME-NAME} NO-LOCK: END.
             
                IF AVAIL item-unid-compra THEN DO:
                    /* buscar fator de conversÆo do cc0106*/
                    ASSIGN item-fornec.fator-conver = item-unid-compra.cdd-fator-conver
                           item-fornec.num-casa-dec = item-unid-compra.nr-casa-dec.
                END.
                ELSE DO:
                    /* buscar fator de conversÆo do cd0902*/
                    FOR FIRST tab-conv-un FIELDS (fator-conver num-casa-dec)
                        WHERE tab-conv-un.un = item.un
                        AND tab-conv-un.unid-med-for = cotacao-item.un:SCREEN-VALUE IN FRAME {&FRAME-NAME} NO-LOCK:
                        ASSIGN item-fornec.fator-conver = tab-conv-un.fator-conver
                               item-fornec.num-casa-dec = tab-conv-un.num-casa-dec.
                    END.
                END.
        END.
    
    Dentro da ocapi002
    Código:
    create item-fornec.
    assign item-fornec.it-codigo    = item.it-codigo
           item-fornec.cod-emitente = emitente.cod-emitente
           item-fornec.item-do-forn = item.it-codigo
           item-fornec.unid-med-for = item.un
           item-fornec.fator-conver = 1
           item-fornec.num-casa-dec = 0
           item-fornec.ativo        = yes
           item-fornec.cod-cond-pag = emitente.cod-cond-pag
           item-fornec.classe-repro = 1
           &IF "{&bf_mat_versao_ems}" >= "2.06" &THEN
               item-fornec.idi-tributac-pis    = 2  /*Tributacao PIS Isento*/
               item-fornec.idi-tributac-cofins = 2. /*Tributacao COFINS Isento*/
           &ELSE
               OVERLAY(item-fornec.char-1,1,1) = "2"  /*Tributacao PIS Isento*/
               OVERLAY(item-fornec.char-1,8,1) = "2". /*Tributacao COFINS Isento*/
           &ENDIF
    
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Usa-se apenas um find simples pra verificar se existe o relacionamento:

    FIND item-fornec
    WHERE item-fornec.it-codigo = tt-cotacao-item-venc.it-codigo
    AND item-fornec.cod-emitente = tt-cotacao-item-venc.cod-emitente NO-LOCK NO-ERROR.
  4. Carlos Alberto Giusti

    Carlos Alberto Giusti Membro Ativo

    Obrigado
    rafael.andrade curtiu isso.

Compartilhe esta Página