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

[RESOLVIDO] CRAPI001

Discussão em 'EMS , HCM e Totvs 11' iniciado por fbuhl, Junho 23, 2009.

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

    fbuhl Sem Pontuação

    Olá pessoal,

    Estou utilizando a CRAPI001 para criar um titulo, norma, no contas a receber, no EMS 204, no entanto, quando a API é chamada o programa fica processando infinitamente e não devolve o resultado da API. Alguém saberia me dizer o que pode haver de errado com isso?

    FOR EACH nota-fiscal NO-LOCK WHERE nota-fiscal.cod-estabel = tt-param.ini-cod-estabel AND
    nota-fiscal.serie = tt-param.ini-serie AND
    nota-fiscal.nr-nota-fis >= tt-param.ini-nr-nota-fis AND
    nota-fiscal.nr-nota-fis <= tt-param.fim-nr-nota-fis AND
    nota-fiscal.dt-emis-nota >= tt-param.dt-data-nf-ini AND
    nota-fiscal.dt-emis-nota <= tt-param.dt-data-nf-fim,
    FIRST emitente NO-LOCK WHERE emitente.cod-emitente = nota-fiscal.cod-emitente AND
    emitente.estado = "SP"
    BREAK BY nota-fiscal.estado
    BY nota-fiscal.nr-nota-fis:

    ASSIGN base = 0
    d-seg-base = 0
    d-terc-base = 0
    d-recolher = 0
    tt-base = 0
    tt-d-seg-base = 0
    tt-d-terc-base = 0
    tt-d-recolher = 0
    tt-vl-merc-liq = 0
    tt-vl-ipi-it = 0
    tt-vl-icms-it = 0.

    MESSAGE "Antes do FOR EACH it-nota-fisc"
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    FOR EACH it-nota-fisc NO-LOCK OF nota-fiscal,
    FIRST ITEM NO-LOCK WHERE item.it-codigo = it-nota-fisc.it-codigo,
    FIRST item-uf NO-LOCK WHERE item-uf.it-codigo = it-nota-fisc.it-codigo AND
    item-uf.estado = emitente.estado:

    RUN pi-acompanhar IN h-prog(INPUT "Nota : " + nota-fiscal.nr-nota-fis).

    MESSAGE "Dentro do FOR EACH IT-NOTA-FISC"
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    IF INDEX(xclass-fiscal,ITEM.class-fiscal) > 0 THEN NEXT.

    IF ITEM.class-fiscal = "44209000" AND (emitente.nome-abrev = "CONSTRUME 03" OR
    emitente.nome-abrev = "TELHANORTE" OR
    emitente.nome-abrev = "C & C 17") THEN NEXT.

    IF ITEM.class-fiscal = "83024900" AND emitente.nome-matriz = "DI CICCO" THEN NEXT.

    ASSIGN base = it-nota-fisc.vl-ipi-it + it-nota-fisc.vl-merc-liq
    d-seg-base = ((it-nota-fisc.vl-ipi-it + it-nota-fisc.vl-merc-liq ) * ((100 + item-uf.per-sub-tri) / 100)).

    IF item-uf.perc-red-sub <> 0 THEN ASSIGN d-seg-base = d-seg-base * ((100 - item-uf.perc-red-sub) / 100).

    IF item-uf.dec-1 <> 0 THEN ASSIGN d-terc-base = d-seg-base * (item-uf.dec-1 / 100)
    d-recolher = d-terc-base - it-nota-fisc.vl-icms-it.

    ASSIGN tt-base = tt-base + base
    tt-d-seg-base = tt-d-seg-base + d-seg-base
    tt-d-terc-base = tt-d-terc-base + d-terc-base
    tt-d-recolher = tt-d-recolher + d-recolher
    tt-vl-merc-liq = tt-vl-merc-liq + it-nota-fisc.vl-merc-liq
    tt-vl-ipi-it = tt-vl-ipi-it + it-nota-fisc.vl-ipi-it
    tt-vl-icms-it = tt-vl-icms-it + it-nota-fisc.vl-icms-it.
    END.

    FIND FIRST estabelec NO-LOCK WHERE estabelec.cod-estabel = nota-fiscal.cod-estabel NO-ERROR.
    IF AVAIL estabelec THEN ASSIGN xct-conta = SUBSTRING(estabelec.conta-icmsub-ft,1,8)
    xsc-conta = SUBSTRING(estabelec.conta-icmsub-ft,10,8)
    xconta-credito = estabelec.conta-icmsub-ft.

    FIND FIRST natur-oper WHERE natur-oper.nat-operacao = nota-fiscal.nat-operacao NO-LOCK NO-ERROR.
    IF AVAIL natur-oper THEN ASSIGN xcod-esp-vincul = natur-oper.cod-esp.

    CREATE tt-lin-i-cr.
    ASSIGN tt-lin-i-cr.ep-codigo = empresa.ep-codigo
    tt-lin-i-cr.referencia = xreferencia
    tt-lin-i-cr.sequencia = tt-lin-i-cr.sequencia + 1
    tt-lin-i-cr.cod-esp = tt-param.cod-esp
    tt-lin-i-cr.cod-estabel = nota-fiscal.cod-estabel
    tt-lin-i-cr.nr-docto = nota-fiscal.nr-nota-fis
    tt-lin-i-cr.parcela = "01"
    tt-lin-i-cr.cod-emitente = nota-fiscal.cod-emitente
    tt-lin-i-cr.cod-rep = 0
    tt-lin-i-cr.cod-portador = emitente.portador
    tt-lin-i-cr.modalidade = 1
    tt-lin-i-cr.dt-emissao = nota-fiscal.dt-saida
    tt-lin-i-cr.dt-vencimen = nota-fiscal.dt-saida + 30
    tt-lin-i-cr.vl-bruto = tt-d-recolher
    tt-lin-i-cr.vl-liquido = tt-d-recolher
    tt-lin-i-cr.dt-desconto = ?
    tt-lin-i-cr.vl-desconto = 0
    tt-lin-i-cr.pedido-rep = " "
    tt-lin-i-cr.nat-operacao = " "
    tt-lin-i-cr.nr-pedcli = " "
    tt-lin-i-cr.situacao = 0
    /* tt-lin-i-cr.emit-bloq = NO */
    tt-lin-i-cr.ct-conta = xct-conta
    tt-lin-i-cr.sc-conta = xsc-conta
    tt-lin-i-cr.cod-cond-pag = 0
    tt-lin-i-cr.cod-vencto = 0
    tt-lin-i-cr.vl-fatura = 0
    tt-lin-i-cr.seq-import = 0
    tt-lin-i-cr.tp-codigo = tt-param.tp-codigo
    tt-lin-i-cr.vl-abatimento = 0
    tt-lin-i-cr.valor-cmi = 0
    tt-lin-i-cr.valor-pres = 0
    tt-lin-i-cr.valor-fasb = 0
    tt-lin-i-cr.cod-controle = " "
    tt-lin-i-cr.origem = 0
    tt-lin-i-cr.mercado = 0
    tt-lin-i-cr.mo-negoc = 0
    tt-lin-i-cr.conta-credito = xconta-credito
    tt-lin-i-cr.serie = nota-fiscal.serie
    tt-lin-i-cr.contabilizou = NO
    tt-lin-i-cr.cotacao-dia = 1
    tt-lin-i-cr.diversos = 0
    tt-lin-i-cr.dt-pg-prev = tt-lin-i-cr.dt-vencimen
    tt-lin-i-cr.frete = 0
    tt-lin-i-cr.l-calc-desc = NO
    tt-lin-i-cr.mo-codigo = 0
    tt-lin-i-cr.observacao = " "
    tt-lin-i-cr.tipo-titulo = 1
    tt-lin-i-cr.cod-esp-vincul = xcod-esp-vincul
    tt-lin-i-cr.serie-vincul = nota-fiscal.serie
    tt-lin-i-cr.nr-docto-vincul = nota-fiscal.nr-nota-fis
    tt-lin-i-cr.parcela-vincul = "01"
    tt-lin-i-cr.vl-bruto-me = tt-d-recolher
    tt-lin-i-cr.Frete-me = 0
    tt-lin-i-cr.Diversos-me = 0
    tt-lin-i-cr.Vl-liquido-me = tt-d-recolher
    tt-lin-i-cr.Vl-desconto-me = 0
    tt-lin-i-cr.Vl-fatura-me = 0
    tt-lin-i-cr.Vl-abatimento-me = 0
    tt-lin-i-cr.Perc-multa = 0
    tt-lin-i-cr.Dt-multa = ?
    tt-lin-i-cr.Nr-docto-deposito = " "
    tt-lin-i-cr.Cod-entrega = " ".

    END.

    CREATE tt-doc-i-cr.
    ASSIGN tt-doc-i-cr.ep-codigo = empresa.ep-codigo
    tt-doc-i-cr.referencia = xreferencia
    tt-doc-i-cr.cod-estabel = tt-param.ini-cod-estabel
    tt-doc-i-cr.total-movto = tt-d-recolher
    tt-doc-i-cr.dt-movto = TODAY
    tt-doc-i-cr.conta-credito = xconta-credito
    tt-doc-i-cr.ct-credito = xct-conta
    tt-doc-i-cr.sc-credito = xsc-conta
    tt-doc-i-cr.serie = tt-param.ini-serie
    tt-doc-i-cr.cod-portador-cb = 0
    tt-doc-i-cr.mo-codigo = 0
    tt-doc-i-cr.ind-sit-lote-implantacao = 1
    tt-doc-i-cr.refer-integ-cb = " "
    tt-doc-i-cr.ind-elimina-lote = 1.

    CREATE tt-ext-lin-i-cr.
    CREATE tt-rep-i-cr.
    CREATE tt-lin-ant.
    CREATE tt-lin-prev.
    CREATE tt-impto-tit-pend-cr.
    CREATE tt-lin-ven.
    CREATE tt-ext-impto-tit-pend-cr.
    CREATE tt-retorno-lin-i-cr.

    MESSAGE "Antes de chamar a API"
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    RUN crp/crapi001.p(INPUT TABLE tt-doc-i-cr,
    INPUT TABLE tt-lin-i-cr,
    INPUT TABLE tt-ext-lin-i-cr,
    INPUT TABLE tt-rep-i-cr,
    INPUT TABLE tt-lin-ant,
    INPUT TABLE tt-lin-prev,
    INPUT TABLE tt-impto-tit-pend-cr,
    INPUT TABLE tt-lin-ven,
    INPUT TABLE tt-ext-impto-tit-pend-cr,
    OUTPUT TABLE tt-retorno-lin-i-cr).

    MESSAGE "Depois de chamar a API"
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    RUN pi-erro-nota-debito.

    FIND FIRST tt-retorno-lin-i-cr WHERE tt-retorno-lin-i-cr.cod-erro = "0" NO-LOCK NO-ERROR.
    IF AVAIL tt-retorno-lin-i-cr THEN /* RUN pi-criar-nota-debito */ .
    ELSE RUN pi-erro-nota-debito.

    RUN pi-finalizar in h-prog.
  2. af.dums

    af.dums Membro Ativo

    Experimenta colocar um output to c:\temp\teste.txt antes de chamar a api, para ver se não esta dando nenhum erro dentro da api.

    Att,
    Anderson
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página