[RESOLVIDO] ft0909

Discussão em 'EMS , HCM e Totvs 11' iniciado por thimmu2205, Setembro 2, 2015.

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

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Então, a coisa funciona assim:
    1) no cd0606 vc seleciona uma natureza de operação e marca que será enviado o XML manualmente, sugestão minha, pega a nat.operação que vc já tem, faz uma copia, 5112A01 que é a normal, cria uma 5112A02 e essa vc muda a questão do XML, assim, seus usuarios pra nota normal usa a nat.operação de sempre e o seu especifico usa essa outra;
    2) vc tem que enviar o XML da nota, então:
    Código:
            define temp-table tt-param no-undo
                FIELD destino           AS INTEGER
                FIELD arquivo           AS CHAR FORMAT "x(35)"
                FIELD usuario           AS CHAR FORMAT "x(12)"
                FIELD data-exec         AS DATE
                FIELD hora-exec         AS INTEGER
                FIELD cod-estabel       LIKE nota-fiscal.cod-estabel
                FIELD serie             LIKE nota-fiscal.serie
                FIELD nr-nota-fis-ini   LIKE nota-fiscal.nr-nota-fis
                FIELD nr-nota-fis-fim   LIKE nota-fiscal.nr-nota-fis
                FIELD nome-ab-cli-ini   LIKE nota-fiscal.nome-ab-cli
                FIELD nome-ab-cli-fim   LIKE nota-fiscal.nome-ab-cli
                FIELD dt-emis-nota-ini  LIKE nota-fiscal.dt-emis-nota
                FIELD dt-emis-nota-fim  LIKE nota-fiscal.dt-emis-nota
                FIELD gera-nfe-n-gerada AS LOG
                FIELD gera-nfe-gerada   AS LOG
                FIELD exporta-est-txt   AS LOG
                FIELD gera-nfe-cancel   AS LOG
                FIELD gera-nfe-inut     AS LOG
                FIELD c-motivo          AS CHAR.
    
            define variable raw-param as raw no-undo.
    
            define temp-table tt-raw-digita no-undo
                field raw-digita as raw.
    
                create tt-param.
                assign tt-param.usuario           = 'datasul'
                       tt-param.destino           = 2
                       tt-param.data-exec         = today
                       tt-param.hora-exec         = time
                       tt-param.arquivo           = session:temp-directory + 'atualizaSefaz.tmp'
                       tt-param.cod-estabel       = estabelecimento
                       tt-param.serie             = serie
                       tt-param.nr-nota-fis-ini   = nota
                       tt-param.nr-nota-fis-fim   = nota
                       tt-param.nome-ab-cli-ini   = ''
                       tt-param.nome-ab-cli-fim   = 'zzzzzzzzzzzz'
                       tt-param.dt-emis-nota-ini  = 01/01/1900
                       tt-param.dt-emis-nota-fim  = 12/31/9999
                       tt-param.gera-nfe-n-gerada = true
                       tt-param.gera-nfe-gerada   = true
                       tt-param.exporta-est-txt   = false
                       tt-param.gera-nfe-cancel   = false
                       tt-param.gera-nfe-inut     = false
                       tt-param.c-motivo          = 'Envio manual XML'.
       
                raw-transfer tt-param    to raw-param.
       
                run ftp/ft0910rp.p (raw-param, input table tt-raw-digita).
    
    3) Agora vc tem que fazer o datasul verificar a situação da nota junto ao sefaz e se estiver autorizado, atualizar o que precisa:
    Código:
            define temp-table tt-nota-fiscal-aux no-undo like nota-fiscal
                field r-rowid as rowid.
    
            define temp-table RowErrorsAux no-undo
                field ErrorSequence    as integer
                field ErrorNumber      as integer
                field ErrorDescription as character
                field ErrorParameters  as character
                field ErrorType        as character
                field ErrorHelp        as character
                field ErrorSubType     as character.
    
                        create tt-nota-fiscal-aux.
                        buffer-copy nota-fiscal to tt-nota-fiscal-aux
                                assign r-rowid = rowid(nota-fiscal).
    
                            run ftp/ft0915a.p (table tt-nota-fiscal-aux, no, h-acomp, output table rowErrorsAux).
    
    Não esqueça, depois desse comando, vc tem que verificar o campo nota-fiscal.idi-sit-nf-eletro, se a nota for rejeitada, consulta a tabela ret-nf-eletro que tem todas as mensagens lá.

    os status do campo idi-sit-nf-eletro são:
    Código:
    1    NF-e nÆo gerada
    2    Em processamento no EAI
    3    Uso autorizado
    4    Uso denegado
    5    Documento Rejeitado
    6    Documento Cancelado
    7    Documento Inutilizado
    8    Em processamento no aplicativo de transmissÆo
    9    Em processamento na SEFAZ
    10    Em processamento no SCAN
    11    NF-e Gerada
    12    NF-e em Processo de Cancelamento
    13    NF-e em Processo de Inutiliza‡Æo
    14    NF-e Pendente de Retorno
    15    DPEC recebido pelo SCE
    
    Acho que não esqueci de nada, eu coloco os testes dentro de um repeat com pause de 5 segundos.
    rohis, cintiasottelli e reissobr curtiram isso.
  2. reissobr

    reissobr Membro Ativo

    Não é bem o assunto, mas na 12.1.6 tivemos problemas com cancelamento de notas proprias de entrada (gera nota pelo faturamento) inutilizadas.
    Tem download disponivel no portal para a situação.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página