Jump to content
Fivewin Brasil

josehilton

Membros
  • Posts

    28
  • Joined

  • Last visited

Posts posted by josehilton

  1. Boa tarde a todos

     

    alguém aqui nesse grupo  tem sistema para emitir nota nfe/nfce em android.

    pois tenho um cliente necessitando desse recurso, ele sai com o carro com as mercadoria e quer emitir a nota no cliente 

    caso alguém tenha entese entrar em contato  71-98770-5929 telefone/zap

     

    Obrigado

     

     

     

     

  2. Bom dia 

     

    eu pego os dados do certificado + mesmo assim ele pedi senha

    realmente parece que não tem jeito para u A3.

    se alguem tiver alguma solução fico muito grato

     

    Grato a todos 

     

     

  3. Bom dia a todos

     

    Alguém sabe mim informa como faco para que essa classe 

    não fique solicitando o PIN  do certificado A3

    Agradeco pela atencao atencipadamento

     

    Grato 

     

    Hilton

     

  4. Bom dia a Todos

    Estou com esse problema no hbnfe

    Error description: Error MSXML2.MXDigitalSignature.5.0/9 Não há suporte para o tipo de Provedor de Serviços de Criptografia '24'.
    : CREATEKEYFROMCSP
    alguem poderia mim ajuda
    Grato
    um bom dia
  5. Meu agradecimento a todos that colaborou e meu Projetos da NFC-e
    Graças a deus eA Ajuda de todos ja ESTA FUNCIONANDO
    Hilton
    DATAHORAEX: = Baixa (Str2Hex (nfe_emissao))
    cdigval: = Baixa (Str2Hex (nfe_digval))
    cQrcode: = "chNFe =" + alltrim (nfe_chave)
    cQrcode + = "& nVersao = 100"
    cQrcode + = "& tpAmb =" + alltrim (nfe_tipoambiente)
    cQrcode + = "& dhEmi =" + DATAHORAEX
    cQrcode + = "& VNF =" + alltrim (nfe_t_valornota)
    cQrCode + = "& vímas =" + ALLTRIM (nfe_t_valoricms)
    CqRcODE + = '& digVal =' + cdigval
    CqRCODE + = '& cIdToken =' + '000001'
    //chNFe=29150513464482000182650010000000071000000077&nVersao=100&tpAmb=2&dhEmi=323031352d30352d30355431323a34393a31322d30333a3030&vNF=800.00&vICMS=0.00&digVal=393547787a314552464a7338652b6b5357592f54367a7a773438733d & CIdToken = 000001
    cCripto: = hb_sha1 (cQrcode)
    Memo1Text + = cQrcode
    Memo1Text + = '& cHashQRCode =' + Superior (cCripto)
    se GeraQrCode (Memo1Text, cFileName) = 0
    cBmpFile: = cFilename //getcurdir()+"\images3.bmp "
    se o arquivo (cBmpFile)
    ? "Existe o bitmap ', cBmpFile
    endif
    // PrintBitMap (oPrinter, cBMPFile)
    // OPrinter: SetPrc (oPrinter: Prow () + 05, 1)
    endif
  6. Meu agradecimento a todos que colaborou e meu projetos da nfc-e


    gracas a deus e a ajuda de todos ja esta funcionando


    Hilton


    DATAHORAEX := Lower(Str2Hex( nfe_emissao ))

    cdigval := Lower(Str2Hex(nfe_digval))

    cQrcode := "chNFe="+alltrim(nfe_chave)

    cQrcode +="&nVersao=100"

    cQrcode +="&tpAmb="+alltrim(nfe_tipoambiente)

    cQrcode +="&dhEmi="+DATAHORAEX

    cQrcode +="&vNF="+alltrim(nfe_t_valornota)

    cQrCode +="&vICMS="+alltrim(nfe_t_valoricms)

    CqRcODE += '&digVal=' +cdigval

    CqRCODE += ' &cIdToken=' +'000001'


    //chNFe=29150513464482000182650010000000071000000077&nVersao=100&tpAmb=2&dhEmi=323031352d30352d30355431323a34393a31322d30333a3030&vNF=800.00&vICMS=0.00&digVal=393547787a314552464a7338652b6b5357592f54367a7a773438733d &cIdToken=000001


    cCripto := hb_sha1(cQrcode)


    Memo1Text += cQrcode

    Memo1Text += '&cHashQRCode=' + Upper(cCripto)




    if GeraQrCode(Memo1Text,cFileName) = 0

    cBmpFile := cFilename //getcurdir()+"\images3.bmp"

    if file(cBmpFile)

    ? 'existe o bitmap',cBmpFile

    endif

    //PrintBitMap( oPrinter, cBMPFile )

    //oPrinter:SetPrc(oPrinter:Prow()+05 ,1 )

    endif
  7. Ola Caro Marsan

    Eu preferir fazer mudancas no projetos HBNFE para o modelo 55 ja funciona perfeitamente e para o modelo 65 NFC-E ja conseguir transmitir com sucesso ja conseguir fazer o qrcode funcionar e agora estou adaptando ao meu frente de loja

    Hilton

    josehiltonribeiro2014@gmail.com

  8. Caro

    igpjinfo

    Estou fazendo alguns teste e nao estou obtendo exito

    o hashcodigo nao esta retornando correto

    veja

    ? hb_sha1("chNFe=43120910585504000174650010000000541123456781&nVersao=100&tpAmb=2&dhEmi=323031322d30392d32375431363a32303a33342d30333a3030&vNF=1000.00&vICMS=180.00&digVal=37327151612b623074616f514f3966414a7766646c5875715176383d &cIdToken=0000011058550420130001")

    deveria me retornar

    3FACB55248244D98C658FC8A826413BCEF10A4AE

    mais esta me retornando assim

    2bfefc89ddebf732ec53238482e1c8ece9f25b36

    Gradeco antecipadamento pela sua ajuda

    Grato

    Hilton

  9. Bom dia a todos

    Estou tentando utilizar o hbnfedanfefast

    so que nao passa daqui

    fastReport := frReportManager():new()
    ele sai sem dar mensagem de error
    o que pode esta faltando
    Agradeco antecipadamento pela ajuda
    Hilton
    Fwh 11 / xharbour 1.2.1 xdevstudio
  10. Bom dia a Todos

    Pessoal eu nao conseguir entender o calculo do Hashqrcode, e gostaria da ajuda de voces para resolver essa questao

    se auguem estiver esse exemplo e poder me ajudar fico muito grato

    chNFe=29150264904295001932550030000499631466480727
    nVersao=100
    &tpAmb=1
    &cDest=13464482000182
    &dhEmi=20202020202020202020
    &vNF=1293.50
    &vICMS=0.00
    &digVal=357030536D7A4C74346B7A68414D71505A4F7855316544772B38633D
    &cIdToken=000001

    chNFe=29150264904295001932550030000499631466480727&nVersao=100&tpAmb=1&cDest=13464482000182&dhEmi=20202020202020202020&vNF=1293.50&vICMS=0.00&digVal=357030536D7A4C74346B7A68414D71505A4F7855316544772B38633D&cIdToken=000001

    cHasharcode := ????????????????????

    Sem mais

    Jose Hilton

    Josehiltonribeiro2014@gmail.com

  11. Bom dia a todos


    Sou iniciante com o mysql e tenhos muitas duvidas


    como por exemplo Tenho um arquivo no Servidor que pretendo duplicalo em outro como faco



    outro situacao seria essa


    aArray := sqlarray("select * from atupro ",nconn2)


    ccmd := "insert into atupro_Pdv Values (" aArray ")"


    ExecuteCmdSql(ccmd,nconn,.f.,.f.,.t.)


    como funcionaria ambus arquivos tem a mesma estrutura



    Grato


    Hilton

  12. Bom dia pessaoal 

     

    Eu estou em processo de Homologacao Tef e Estou com um Probleminha 

    error irrecuper vel 1011: 

    write in index page faild.

     

     

    ===========================================================

     

     
    Function HttpGetFile(cReply,cImprimer,cSeqImp)
    Local wbuffer  := SPACE(2300) 
    Local cString := ""
    Local nCount
    Local rtn := .f.
    Local nLength
    local xBuffer := 2300
    Local cRet := 999
     
    cMsgRet := ''
    VESPAGUE_OPCAO := ''
    cRetornoTipo := ''
    cTipoMascara := ''
    cTent := 0
    cTent ++
    Tem := .t.
    Tent := 1
    qTent := 1
     
    default cmsgespera := 'PROCESSANDO AGUARDE..'
     
    if ! file('c:\respostaTef.txt')
         cFileRet := fCreate('c:\respostaTef.txt')
    else
       cFileRet := fOpen('c:\respostaTef.txt',1)
       RET_TAM =  FSeek( cFileRet, 0, FS_END )
    ENDIF
     
    fwrite(cFileRet,'----------------------------------------------------'+chr(13)+chr(10))
    fwrite(cFileRet,cReply+chr(13)+chr(10))
    fwrite(cFileRet,'--------------programa------------------------------'+chr(13)+chr(10))
     
    InetSetTimeout( HANDLEsocket, 750 )
     
     
    InetSend( HANDLEsocket,cReply )
     
    cTent := 0
     
     
    mensagemvermelha()
     
    cGet13 :=  cMsgEspera
    oGet13:varput(cGet13)
    oGet13:Refresh()
     
    nProgress := 0
    do while InetDataReady( HANDLEsocket, 100 ) == 0  
     
          if GETASYNCKEY( VK_DOWN )  .or. GETKEYSTATE(VK_DOWN) 
             cTent := 0
             fclose(cFileRet)
        
             Return(99)
          endif   
          
     
          if GETKEYSTATE(VK_ESCAPE) 
                cTent := 9999999999999999999999999999999
          endif   
         if cTenta > 10
              cTent ++ 
              if cTent > cTenta
                 cSequenc := alltrim(str(val(cSequenc)+1))
              fclose(cFileRet)
               exit
            endif 
        
       DO CASE
          CASE nProgress = 0
              cmm := "-"
          CASE nProgress = 1
              cmm :=  "\"
          CASE nProgress = 2
              cmm :=  "|"
          CASE nProgress = 3
              cmm :=  "/"
           nProgress := -1    
       ENDCASE
     
     
        nProgress ++    
            
            
            cGet13 := cMsgEspera   + '   '+cmm '
            oGet13:varput(cGet13)
            oGet13:Refresh()
     
         endif      
         
        
     
    enddo
     
    if cTent > cTenta
       cTent := 0
       cMsgRet := ''
       VESPAGUE_OPCAO := ''
        cRetornoTipo := ''
        cTipoMascara := ''
       CMSGRETORNOTEF := ''
       CrET := 9 
      
       Return(99)
    endif   
     
     
    cTent := 0
    cDescr := ''
     
     
    nCount := InetRecvAll( HANDLESOcket, @wBuffer, xBUFFER )
     
     
     
    cString := left(wBuffer, nCount)  //alltrim(cResponse)  //
     
     
     
    fwrite(cFileRet,'----------------------------------------------------'+chr(13)+chr(10))
    fwrite(cFileRet,alltrim(cString))
    fwrite(cFileRet,'--------------vsp-----------------------'+chr(13)+chr(10))
    fclose(cFileret)
     
     
    nPos := At("automacao_coleta_mensagem=",cString)
                   
    if npos > 0
        cRetornoAutomacao := Substr(cString,nPos + 27)
        nPOs := At('"',cRetornoAutomacao)
        
        cRetornoAutomacao := Substr(cRetornoAutomacao,1,nPos - 1)
        cRetornoAutomacao  := StrTran(cRetornoAutomacao,Chr(13)," ")
        cRetornoAutomacao  := StrTran(cRetornoAutomacao,Chr(10)," ")
        nPos := At(Upper("Transacao aprovada"),Upper(cRetornoAutomacao) )
        if nPos > 0
           iRetorno := 8888
        endif
    endif
    xText := ''
    cLoop := 1
    cTipoRetorno := ''
    cValorRetorno := ''
     
    CfILETEXT := FCREATE('TEXTRET.TXT')
     
    cMsgTef := ''                
    FWRITE(cFileText,cString)
    fclose(cfileText)
     

     

  13. Pessoal estou tentando fazer um controle de mesa. Minha tela tem um grid(TsBrowse) com bitmaps que mostram as mesas abertas, fechadas, sem consumo, etc... Estou precisando colorir uma determinada celula quando o usuario clica nela ou quando o tempo determinado de ociosidade é atingido. Para isso preciso que, quando o usuario selecione a mesa (via teclado ou via mouse), eu receba a posicao da celula (array). Melhor explicado seria o seguinte: Se eu criasse uma matriz 02x02, em tese ela seria montada assim m=({1x1 , 1x2},{2x1 , 2x2}) se o usuario selecionasse a posicao {1x2} eu precisaria ter um retorno que me informasse essa posição. Que comando eu posso usar do TsBrowse para obter esse retorno? Obrigado a todos.

  14. Pessoal estou tentando fazer um controle de mesa. Minha tela tem um grid(TsBrowse) com bitmaps que mostram as mesas abertas, fechadas, sem consumo, etc... Estou precisando colorir uma determinada celula quando o usuario clica nela ou quando o tempo determinado de ociosidade é atingido. Para isso preciso que, quando o usuario selecione a mesa (via teclado ou via mouse), eu receba a posicao da celula (array). Melhor explicado seria o seguinte: Se eu criasse uma matriz 02x02, em tese ela seria montada assim m=({1x1 , 1x2},{2x1 , 2x2}) se o usuario selecionasse a posicao {1x2} eu precisaria ter um retorno que me informasse essa posição. Que comando eu posso usar do TsBrowse para obter esse retorno? Obrigado a todos.

  15. DECLARE TABERRO[99999]

    TABERRO[1 ] :="Não foi possível alocar mais memória."

    TABERRO[2 ] :="Memória RAM foi corrompida."

    TABERRO[1000 ] :="Memória Fiscal foi desconectada."

    TABERRO[1001 ] :="Erro de leitura na Memória Fiscal."

    TABERRO[1002 ] :="Memória está setada apenas para leitura."

    TABERRO[1003 ] :="Registro fora dos padrões (erro interno)."

    TABERRO[1004 ] :="Memória Fiscal está lotada."

    TABERRO[1005 ] :="Número máximo de cartuchos excedidos."

    TABERRO[1006 ] :="Tentativa de gravar novo modelo de ECF."

    TABERRO[1007 ] :="Tentativa de gravação de qualquer dado antes da inicialização da Memória Fiscal."

    TABERRO[1008 ] :="Número máximo de usuários foi atingido."

    TABERRO[1009 ] :="Número máximo de intervenções foi atingido."

    TABERRO[1010 ] :="Número máximo de versões foi atingido."

    TABERRO[1011 ] :="Número máximo de reduções foi atingido."

    TABERRO[1012 ] :="Erro na gravação de registro na memória fiscal"

    TABERRO[2000 ] :="Erro de leitura no dispositivo físico."

    TABERRO[2001 ] :="Erro de leitura no dispositivo."

    TABERRO[2002 ] :="Dispositivo de transações foi desconectado."

    TABERRO[3000 ] :="Tipo de registro a ser gravado inválido."

    TABERRO[3001 ] :="Registro de transações está esgotado."

    TABERRO[3002 ] :="Tentativa de abrir nova transação com transação já aberta."

    TABERRO[3003 ] :="Tentativa de fechar uma transação que não se encontrava"

    TABERRO[4000 ] :="Erro de leitura no dispositivo físico."

    TABERRO[4001 ] :="Erro de escrita no dispositivo."

    TABERRO[4002 ] :="Dispositivo de contexto foi desconectado."

    TABERRO[4003 ] :="Leitura após final do arquivo."

    TABERRO[4004 ] :="Escrita após final do arquivo."

    TABERRO[5000 ] :="Versão de contexto fiscal no dispositivo não foi reconhecida."

    TABERRO[5001 ] :="CRC do dispositivo está incorreto."

    TABERRO[5002 ] :="Tentativa de escrita fora da área de contexto."

    TABERRO[6000 ] :="Relógio do ECF inconsistente."

    TABERRO[6001 ] :="Data/hora informadas não estão consistentes."

    TABERRO[7000 ] :="Nenhum mecanismo de impressão presente."

    TABERRO[7001 ] :="Atual mecanismo de impressão está desconectado."

    TABERRO[7002 ] :="Mecanismo não possui capacidade suficiente para realizar esta operação."

    TABERRO[7003 ] :="Impressora está sem papel para imprimir."

    TABERRO[7004 ] :="Faltou papel durante a impressão do comando."

    TABERRO[8000 ] :="Comando fora de seqüência."

    TABERRO[8001 ] :="Código mercadoria não válido."

    TABERRO[8002 ] :="Descrição inválida."

    TABERRO[8003 ] :="Quantidade não inválida."

    TABERRO[8004 ] :="Ãndice da alíquota não válido."

    TABERRO[8005 ] :="Alíquota não carregada."

    TABERRO[8006 ] :="Valor contém caracter inválido."

    TABERRO[8007 ] :="Total da operação igual a 0 (zero)."

    TABERRO[8008 ] :="Alíquota não disponível para carga."

    TABERRO[8009 ] :="Valor da alíquota não válido."

    TABERRO[8010 ] :="Troca de situação tributária somente após Redução Z."

    TABERRO[8011 ] :="Ãndice do Meio de Pagamento não válido."

    TABERRO[8012 ] :="Meio de Pagamento indisponível para carga."

    TABERRO[8013 ] :="Cupom totalizado em 0 (zero)."

    TABERRO[8014 ] :="Meio de Pagamento não definido."

    TABERRO[8015 ] :="Carga de usuário permitido somente após Redução Z."

    TABERRO[8016 ] :="Dia sem movimento."

    TABERRO[8017 ] :="Total pago inferior ao total do cupom."

    TABERRO[8018 ] :="Gerencial não definido."

    TABERRO[8019 ] :="Ãndice do Gerencial fora da faixa."

    TABERRO[8020 ] :="Gerencial não disponível para carga."

    TABERRO[8021 ] :="Nome do Gerencial inválido."

    TABERRO[8022 ] :="Esgotado número de Gerenciais."

    TABERRO[8023 ] :="Acerto do horário de verão somente após a Redução Z."

    TABERRO[8024 ] :="Já acertou horário de verão."

    TABERRO[8025 ] :="Sem Alíquotas disponíveis para carga."

    TABERRO[8026 ] :="Item não vendido no cupom."

    TABERRO[8027 ] :="Quantidade a ser cancelada maior do que a quantidade vendida."

    TABERRO[8028 ] :="Cabeçalho possui campo(s) inválido(s)."

    TABERRO[8029 ] :="Nome do Departamento não válido."

    TABERRO[8030 ] :="Departamento não encontrado."

    TABERRO[8031 ] :="Departamento não definido."

    TABERRO[8032 ] :="Não há Meio de Pagamento disponível."

    TABERRO[8033 ] :="Alteração de Meio de Pagamento somente após a Redução Z."

    TABERRO[8034 ] :="Nome do Documento Não Fiscal não pode ser vazio."

    TABERRO[8035 ] :="Não há mais Documentos Não Fiscais disponíveis."

    TABERRO[8036 ] :="Documento Não Fiscal indisponível para carga."

    TABERRO[8037 ] :="Número da redução inicial inválida."

    TABERRO[8038 ] :="Cabeçalho do documento já foi impresso."

    TABERRO[8039 ] :="Número máximo de linhas de propaganda excedidas."

    TABERRO[8040 ] :="Relógio já está no estado desejado."

    TABERRO[8041 ] :="Valor do acréscimo inconsistente."

    TABERRO[8042 ] :="Não há meio de pagamento definido."

    TABERRO[8043 ] :="COO do documento vinculado inválido."

    TABERRO[8044 ] :="Ãndice do item inexistente no contexto."

    TABERRO[8045 ] :="Código de item não encontrado no cupom atual."

    TABERRO[8046 ] :="Percentual do desconto ultrapassou 100%."

    TABERRO[8047 ] :="Desconto do item inválido."

    TABERRO[8048 ] :="Falta definir valor percentual ou absoluto em operação de desconto/acréscimo."

    TABERRO[8049 ] :="Tentativa de operação sobre item cancelado."

    TABERRO[8050 ] :="Cancelamento de acréscimo/desconto inválidos."

    TABERRO[8051 ] :="Operação de acréscimo/desconto inválida."

    TABERRO[8052 ] :="Número de Departamentos esgotados."

    TABERRO[8053 ] :="Ãndice de Documento Não Fiscal fora da faixa."

    TABERRO[8054 ] :="Troca de Documento Não Fiscal somente após a Redução Z."

    TABERRO[8055 ] :="CNPJ e/ou Inscrição Estadual inválida(s)."

    TABERRO[8056 ] :="Falta(m) parâmetro(s) no comando de abertura de Comprovante Crédito ou Débito."

    TABERRO[8057 ] :="Código e Nome do Documento Não Fiscal indefinidos."

    TABERRO[8058 ] :="Alíquota não definida no comando de venda."

    TABERRO[8059 ] :="Código e Nome do Meio de Pagamento não definidos."

    TABERRO[8060 ] :="Parâmetro de comando não informado."

    TABERRO[8061 ] :="Não há Documentos Não Fiscais definidos."

    TABERRO[8062 ] :="Acréscimo/Desconto de item já cancelado."

    TABERRO[8063 ] :="Não há acréscimo/desconto em item."

    TABERRO[8064 ] :="Item já possui acréscimo."

    TABERRO[8065 ] :="Operação de acréscimo em item ou subtotal só é valido para ICMS"

    TABERRO[8066 ] :="Valor do Comprovante Crédito ou Débito não informado."

    TABERRO[8067 ] :="COO inválido."

    TABERRO[8068 ] :="Ãndice do Meio de Pagamento no cupom inválido."

    TABERRO[8069 ] :="Documento Não Fiscal não encontrado."

    TABERRO[8070 ] :="Seqüência de pagamento não encontrada no cupom."

    TABERRO[8071 ] :="Meio de pagamento não permite CDC."

    TABERRO[8072 ] :="Valor insuficiente para pagar o cupom."

    TABERRO[8073 ] :="Meio de pagamento origem ou destino não encontrado no último cupom emitido"

    TABERRO[8074 ] :="Valor do estorno não pode exceder o valor do pagamento no meio origem."

    TABERRO[8075 ] :="Meios de pagamento origem e destino devem ser diferentes no estorno."

    TABERRO[8076 ] :="Percentual da alíquota inválido."

    TABERRO[8077 ] :="Não houve operação em subtotal para ser cancelada."

    TABERRO[8078 ] :="Só é permitida uma operação de acréscimo em subtotal por cupom."

    TABERRO[8079 ] :="Texto adicional do meio de pagamento deve ter no máximo 2 linhas"

    TABERRO[8080 ] :="Preço unitário ultrapassou o número máximo de dígitos permitido"

    TABERRO[8081 ] :="Código do departamento fora da faixa."

    TABERRO[8082 ] :="O valor do desconto não pode zerar o valo do cupom ou ser maior que o item."

    TABERRO[8083 ] :="Percentual de acréscimo não pode ser superior a 999,99%"

    TABERRO[8084 ] :="Valor do acréscimo ultrapassa o número máximo de dígitos permitido (13 dígitos)"

    TABERRO[8085 ] :="Cupom sem venda em alíquota de ICMS."

    TABERRO[8086 ] :="Cancelamento inválido."

    TABERRO[8087 ] :="Texto de cliche do usuário deve ter no máximo três linhas."

    TABERRO[8088 ] :="Não houve venda de item não fiscal"

    TABERRO[8089 ] :="A data não pode ser inferior a data do último documento emitido."

    TABERRO[8090 ] :="A hora informada no comando não pode ser inferior ao horário do último documento"

    TABERRO[8091 ] :="Sem função"

    TABERRO[8092 ] :="Estado inválido para ajuste de relogio ou horário de verão"

    TABERRO[8093 ] :="A operação de CDC deve preceder as operações de estorno de meio de pagamento."

    TABERRO[8094 ] :="Senha inválida para inicialização do proprietário."

    TABERRO[8095 ] :="Erro gerado pelo mecanismo de cheques"

    TABERRO[8096 ] :="Comando válido somente após a abertura do dia"

    TABERRO[9000 ] :="Não foi encontrado nenhum cartucho de dados vazio para ser inicializado."

    TABERRO[9001 ] :="Cartucho com o número de série informado não foi encontrado."

    TABERRO[9002 ] :="Número de série do ECF é inválido na inicialização."

    TABERRO[9003 ] :="Cartucho de MFD desconectado ou com problemas."

    TABERRO[9004 ] :="Erro de escrita no dispositivo de MFD."

    TABERRO[9005 ] :="Erro na tentativa de posicionar ponteiro de leitura."

    TABERRO[9006 ] :="Endereço do Bad Sector informado é inválido."

    TABERRO[9007 ] :="Erro de leitura na MFD."

    TABERRO[9008 ] :="Tentativa de leitura além dos limites da MFD."

    TABERRO[9009 ] :="MFD não possui mais espaço para escrita."

    TABERRO[9010 ] :="Leitura da MFD serial é interrompida por comando diferente de LeImpressao"

    TABERRO[10000] :="Estado inválido para registro sendo codificado."

    TABERRO[10001] :="Inconsistência nos parâmetros lidos no Logger."

    TABERRO[10002] :="Registro inválido detectado no Logger."

    TABERRO[10003] :="Erro interno."

    TABERRO[11000] :="Parâmetro repassado ao comando é inválido."

    TABERRO[11001] :="Erro de sintaxe na lista de parâmetros."

    TABERRO[11002] :="Valor inválido para parâmetro do comando."

    TABERRO[11003] :="String contém seqüência de caracteres inválidos."

    TABERRO[11004] :="Parâmetro foi declarado 2 ou mais vezes na lista."

    TABERRO[11005] :="Parâmetro obrigatório ausente na lista."

    TABERRO[11006] :="Não existe o comando no protocolo."

    TABERRO[11007] :="Estado atual não permite a execução deste comando."

    TABERRO[11008] :="Sinalização indicando que comando aborta a impressão da segunda via."

    TABERRO[11009] :="Sinalização indicando que comando não possui retorno."

    TABERRO[11010] :="Tempo de execução esgotado."

    TABERRO[11011] :="Nome de registrador inválido."

    TABERRO[11012] :="Tipo de registrador inválido."

    TABERRO[11013] :="Tentativa de escrita em registrador de apenas leitura."

    TABERRO[11014] :="Tentativa de leitura em registrador de apenas escrita."

    TABERRO[11015] :="Comando recebido diferente do anterior no buffer de recepção."

    TABERRO[11016] :="Fila de comandos cheia."

    TABERRO[11017] :="Ãndice de registrador indexado fora dos limites."

    TABERRO[11018] :="Número de emissões do Logger foi excedido na Intervenção Técnica."

    TABERRO[11019] :="Divisão por 0 (zero) nas rotinas de BDC."

    TABERRO[15001] :="Comando aceito apenas em modo de Intervencao Técnica."

    TABERRO[15002] :="Comando não pode ser executado em modo de Intervenção Técnica."

    TABERRO[15003] :="Já existe MFD presente neste ECF."

    TABERRO[15004] :="Não existe MFD neste ECF."

    TABERRO[15005] :="Memória RAM do ECF não está consistente."

    TABERRO[15006] :="Memória fiscal não encontrada."

    TABERRO[15007] :="Dia já fechado."

    TABERRO[15008] :="Dia aberto."

    TABERRO[15009] :="Falta reducao Z."

    TABERRO[15010] :="Mecanismo impressor não selecionado."

    TABERRO[15011] :="Sem bobina de papel na estação de documento fiscal."

    TABERRO[15012] :="Tentativa de finalizar documento já encerrado."

    TABERRO[15013] :="Não há sinal de DTR."

    TABERRO[15014] :="Sem inscrições do usuário no ECF."

    TABERRO[15015] :="Sem dados do proprietário no ECF."

    TABERRO[15016] :="ECF encontra-se indevidamente em linha."

    TABERRO[15017] :="ECF não encontra-se em linha para executar o comando."

    TABERRO[15018] :="Mecanismo está indisponível para impressão."

    DLLURANO := LOADLIB32( "DLLG2.DLL" )

    Porta = DLLG2_IniciaDriver(CPORTA)

    DLLG2_DefineTimeout(Porta, 9600)

    DLLG2_LimpaParams(Porta )

    DLLG2_AdicionaParam(Porta, "NomeInteiro", "EstadoFiscal", 7)

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    if DLLG2_ExecutaComando(Porta, "LeInteiro") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    msginfo(TABERRO[codeRRO],"Aviso")

    FREELIB32( DLLURANO )

    close database

    CANCEL

    endif

    endif

    DLLG2_LimpaParams(Porta )

    // adiciona parametros // pega numero de serie da ecf

    DLLG2_AdicionaParam(Porta, "NomeTexto", "NumeroSerieECF", 7)

    // executa comando

    if DLLG2_ExecutaComando(Porta, "LeTexto") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    msginfo(TABERRO[codeRRO],"Aviso")

    FREELIB32( DLLURANO )

    close database

    CANCEL

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)

    endif

    xSerie := Retorno

    DLLG2_LimpaParams(Porta)

    // adiciona parametros Retorna o Numero do Caixa

    DLLG2_AdicionaParam(Porta, "NomeInteiro", "ECF", 7)

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    If DLLG2_ExecutaComando(Porta, "LeInteiro") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    msginfo(TABERRO[codeRRO],"Aviso")

    FREELIB32( DLLURANO )

    close database

    CANCEL

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno =substr(DLLG2_ObtemRetornos(Porta, Retorno, 100 ),14)

    endif

    xnumcx := strzero(val(retorno),3,0)

    //adiciona parametros Pega o Numero do coo

    DLLG2_AdicionaParam(Porta, "NomeInteiro", "COO", 7)

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    //executa comando

    If DLLG2_ExecutaComando(Porta, "LeInteiro") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    msginfo(TABERRO[codeRRO],"Aviso")

    FREELIB32( DLLURANO )

    close database

    CANCEL

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno = DLLG2_ObtemRetornos(Porta, Retorno, 5000)

    EndIf

    xxxcoo := STRZERO(VAL(substr(Retorno, 14) ),6,0)

    **********************************

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    DLLG2_LimpaParams(Porta)

    DLLG2_AdicionaParam(Porta, "Operador",xnomusu,7)

    IF DLLG2_ExecutaComando(Handle , "CancelaCupom") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    CDESCR:= TABERRO[codeRRO]

    Od:update()

    return nil

    ENDIF

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)

    ENDIF

    *******************************************

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    if DLLG2_ExecutaComando(Porta , "AbreCupomFiscal") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0 .AND. CODERRO # 11007

    * trataerro(codErro)

    CDESCR:= TABERRO[codeRRO]

    if coderro #15009

    // xean := 0

    CDESCR :=TABERRO[codeRRO]

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)

    Od:update()

    return(.f.)

    else

    reducaoz(cimpresora,.f.)

    sysrefresh()

    // xean := 0

    Od:update()

    return nil

    endif

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)

    endif

    DLLG2_LimpaParams(Porta)

    DLLG2_AdicionaParam(Porta, "NomeInteiro", "COO", 7)

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    //executa comando

    If DLLG2_ExecutaComando(Porta, "LeInteiro") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    * trataerro(codErro)

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno = DLLG2_ObtemRetornos(Porta, Retorno, 5000)

    EndIf

    xxxcoo := STRZERO(VAL(substr(Retorno, 14) ),6,0)

    ***********************************************************************

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    DLLG2_LimpaParams(Porta)

    DLLG2_AdicionaParam(Porta, "CodAliquota", xalqfit,9)

    DLLG2_AdicionaParam(Porta, "CodProduto", xcodigo,7)

    DLLG2_AdicionaParam(Porta, "NomeProduto", xdescricao,7)

    DLLG2_AdicionaParam(Porta, "PrecoUnitario", transform(XPRECO,"@e 9,999.99"),6)

    DLLG2_AdicionaParam(Porta, "Quantidade", transform(XQUANTIDADE,"@e 999.999"),6)

    DLLG2_AdicionaParam(Porta, "Unidade", XUNID,7)

    if DLLG2_ExecutaComando(Porta, "VendeItem") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    CDESCR:= TABERRO[codeRRO]

    Od:update()

    return nil

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)

    endif

    ****************************************

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    if DLLG2_ExecutaComando(Porta , "AbreCupomFiscal") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0 .AND. CODERRO # 11007

    CDESCR:= TABERRO[codeRRO]

    if coderro #15009

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)

    sysrefresh()

    Od:update()

    return(.f.)

    else

    reducaoz(cimpresora,.f.)

    sysrefresh()

    Od:update()

    return nil

    endif

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)

    endif

    DLLG2_LimpaParams(Porta)

    DLLG2_AdicionaParam(Porta, "NomeInteiro", "COO", 7)

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    //executa comando

    If DLLG2_ExecutaComando(Porta, "LeInteiro") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    * trataerro(codErro)

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    Retorno = DLLG2_ObtemRetornos(Porta, Retorno, 5000)

    EndIf

    xxxcoo := STRZERO(VAL(substr(Retorno, 14) ),6,0)

    *****************************************

    DLLG2_LimpaParams(Porta )

    DLLG2_AdicionaParam(Porta, "NumItem",strzero(cupom->item,3,0), 9)

    DLLG2_AdicionaParam(Porta, "Quantidade", transform(cupom->quantidade,"@e 999.999"), 6)

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    if DLLG2_ExecutaComando(Porta, "CancelaItemFiscal") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    MSGINFO(CODERRO)

    if codErro#0

    CDESCR:= TABERRO[codeRRO]

    od:update()

    return nil

    endif

    endif

    *****************************

    DLLG2_LimpaParams(Porta)

    IF VAL(XCD) = 1

    xcd := str(VAL(xcd) - 3)

    ELSE

    xcd := strZERO(VAL(xcd) - 2,2,0)

    ENDIF

    XVLRx := MATRIZ[XXX,1]

    XVLR := transform(xvlrX,"@e 9999.99")

    XDESCONT := transform(xdesc,"@e 9,999.99")

    DLLG2_AdicionaParam(Porta, "CodMeioPagamento",xcd, 9)

    DLLG2_AdicionaParam(Porta , "Valor", xvlr, 6)

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    if DLLG2_ExecutaComando(Porta, "PagaCupom") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    MSGINFO( TABERRO[codeRRO])

    od:update()

    return nil

    endif

    endif

    ******************************

    DLLG2_ExecutaComando(Porta, "EncerraDocumento")

    DLLG2_LimpaParams(Porta)

    //adiciona parametros

    DLLG2_AdicionaParam( Porta, "Avanco", "300", 9)

    //'executa comando

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    If DLLG2_ExecutaComando(Porta, "AvancaPapel") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    msginfo(TABERRO[codeRRO],"Aviso")

    endif

    Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)

    EndIf

    ********************************

    DLLG2_LimpaParams(Porta)

    DLLG2_AdicionaParam(Handle , "Operador",xnomusU ,7)

    NomeErro = SPACE(20)

    CodErro = SPACE(5)

    Circunstancia := 0

    RETORNO := 0

    if DLLG2_ExecutaComando(Handle , "EmiteLeituraX") > 0

    NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)

    CodErro = DLLG2_ObtemCodErro(Porta)

    if codErro#0

    CDESCR:= TABERRO[codeRRO]

    od:update()

    return nil

    endif

    endif

    DLL32 FUNCTION DLLG2_Versao(VERSAO AS STRING, TAMVERSAO AS LONG) AS STRING PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_IniciaDriver(PORTA AS STRING) AS LONG PASCAL LIB "DLLG2.DLL"

    DLL32 FUNCTION DLLG2_EncerraDriver(PORTA AS LONG) AS LONG PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_ConfiguraDriver(PORTA AS LONG, VELOCIDADE AS LONG) AS LONG PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_SetaArquivoLog( NOMEARQUIVO AS STRING) AS VOID PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_ObtemNomeLog( NOMEARQUIVO AS STRING, TAMNOMEARQUIVO AS LONG) AS STRING PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_DefineTimeout( PORTA AS LONG, TEMPOMAXIMO AS LONG) AS VOID PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_LeTimeout( PORTA AS LONG) AS LONG PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_LimpaParams(PORTA AS LONG) AS VOID PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_AdicionaParam( PORTA AS LONG, NOMEPARAMETRO AS STRING,VALORPARAMETRO AS STRING, TIPOPARAMETRO AS LONG) AS VOID PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_ListaParams(PORTA AS LONG, LISTAPARAMETROS AS STRING, TAMLISTAPARAMETROS AS LONG) AS STRING PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_LeRegistrador( PORTA AS LONG, NOMEREGISTRADOR AS STRING, NOMECOMANDO AS STRING, TAMNOMECOMANDO AS LONG) AS LONG PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_ExecutaComando( PORTA AS LONG, COMANDO AS STRING) AS LONG PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_ObtemCodErro( PORTA AS LONG) AS LONG PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_ObtemNomeErro( PORTA AS LONG, NOMEERRO AS STRING, TAMNOMEERRO AS LONG) AS STRING PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_ObtemCircunstancia(PORTA AS LONG, CIRCUNSTANCIA AS STRING, TAMNOMECIRCUNSTANCIA AS LONG) AS STRING PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_ObtemRetornos( PORTA AS LONG, RETORNOS AS STRING, TAMRETORNO AS LONG) AS STRING PASCAL LIB DLLURANO

    DLL32 FUNCTION DLLG2_TotalRetornos( PORTA AS LONG) AS LONG PASCAL LIB DLLURANO

×
×
  • Create New...