-
Posts
270 -
Joined
-
Last visited
-
Days Won
9
Posts posted by HERGON
-
-
Boa tarde
Alguém tem rotina de geração da GNRE pela dll da FlexDocs que possa disponibilizar? De preferência utilizando a classe do Gilmer.
Herberson Gontijo
-
Boa tarde
Tente fazer assim:
cNome:=GetPvProfString( "LOCAL", "Computador", " ", "arquivo.ini")
Herberson Gontijo
-
Olá
Implementamos no nosso PDV utilizando SHIPAY.
Nessa integração vc consegue disponibilizar para vários bancos e carteiras digitais sem ter que fazer um a um, compensa dar uma olhada.
Att.
Herberson Gontijo
-
Boa tarde
Att.
Herberson Gontijo
-
Bom dia
Eu faço assim, talvez ajude:
Function fAcertarDtHr(lMostraOk)
Local oWeb, cWeb, cProcura, cExtrai, cHora, cData, lAjusta:=.f.
Default lMostraOk:=.t.
If !VerificaNet()
If lMostraOk
fMsgStop("Computador não está conectado na internet.", "Sem Acesso à Internet")
Endif
Return .f.
Endif
MsgAguarde("Verificando data/hora pela internet.", "Aguarde...")
SysRefresh()
CursorWait()
oWeb := WebConnect():New()
cWeb := oWeb:Open( "http://www.horacerta.com.br/index.php?city=sao_paulo" )
cProcura:= '<input name="mostrador" type="text" size="25" value="'
cExtrai := Subs(cWeb, At(cProcura,cWeb)+53,24)
cData := Alltrim(Left(alltrim(cExtrai),10))
cHora := Alltrim(StrZero(If(Right(cExtrai,2)=="PM" .and. Val(subs(cExtrai,14,2))<=11, 12, 0)+Val(subs(cExtrai,14,2)),2)+":"+subs(cExtrai,17,5))
If Val(GetPvProfString("Diversos", "Ajuste da Hora", "", CurDrive()+":\"+CurDir()+"\"+cNomeTerm+".ini"))==0
// Não alterar a hora
Elseif Val(GetPvProfString("Diversos", "Ajuste da Hora", "", CurDrive()+":\"+CurDir()+"\"+cNomeTerm+".ini"))==1
cHora := TsTring(Secs(cHora)-3600)
Else
cHora := TsTring(Secs(cHora)+3600)
EndifMsgFechaAguarde()
If Ctod(cData)<>Date() .and. Val(cData)<>0 .and. Subs(cHora,1,5)<>Subs(Time(),1,5) .and. Val(cHora)<>0
If MsgYesNo("Data e hora da Internet:"+CRLF+;
cData+" - "+cHora+CRLF+CRLF+;
"Data e hora do computador:"+CRLF+;
Dtoc(Date())+" - "+Time()+CRLF+CRLF+;
"Deseja ajustar a data e hora?", "Data e hora do computador parecem desatualizadas.")
lAjusta:=.t.
Endif
Elseif Ctod(cData)==Date() .and. Val(cData)<>0 .and. Subs(cHora,1,5)<>Subs(Time(),1,5) .and. Val(cHora)<>0
If MsgYesNo("Hora da Internet:"+CRLF+;
cHora+CRLF+CRLF+;
"Hora do computador:"+CRLF+;
Time()+CRLF+CRLF+;
"Deseja ajustar a hora?", "A hora do computador está desatualizada")
lAjusta:=.t.
Endif
Elseif Ctod(cData)<>Date() .and. Val(cData)<>0 .and. Subs(cHora,1,5)==Subs(Time(),1,5) .and. Val(cHora)<>0
If MsgYesNo("Data da Internet:"+CRLF+;
cData+CRLF+CRLF+;
"Data do computador:"+CRLF+;
Dtoc(Date())+CRLF+CRLF+;
"Deseja ajustar a data?", "A data do computador está desatualizada")
lAjusta:=.t.
Endif
Else
If lMostraOk
MsgInfo("A data/hora do seu computador conferem com as informações da internet."+CRLF+CRLF+;
"Data: "+cData+" - Hora: "+cHora, "Informações da Internet")
Endif
Endif
If lAjusta
MsgRun( "Ajustando data e hora.", "Aguarde...", { || fAjustaDataHora(cData, cHora) } )
MsgInfo("Ajuste realizado com sucesso.", "Ajuste")
Endif
Return NilStatic Function fAjustaDataHora(cData, cHora)
MyRun( "date "+cData )
MyRun( "time "+cHora )
If Ctod(cData) <> date()
MyRun("timedate.cpl") //abre tela data e hora windows
Endif
Return .t.
Tem algumas funções próprias, mas comente e teste.
Herberson Gontijo
-
Olá Rossine
Então, eu utilizo a classe do Gilmer com a dll da FlexDocs apenas para emissão da NF-e (para NFC-e, NÃO utilizo), fiz testes hoje em homologação para NF-e e tudo funcionou normal. Se quiser posso colocar um xml de exemplo com as novas tag's aqui.
Abraço
Herberson Gontijo
-
-
-
Bom dia
Obrigado pela resposta Jmsilva, será de grande ajuda. Infelizmente não tenho a LIB do ACBr para testar. Vou tentar conseguir, mas o fonte que disponibilizou facilitará muito o meu trabalho, o que agradeço mais uma vez.
Herberson Gontijo
-
Bom dia
Alguém já implementou, em xHarbour, boletos/remessa com ACBr utilizando a DLL?
Hoje utilizo o ACBr Monitor, mas gostaria de migrar para DLL, se tiver algum exemplo para me basear. Agradeço qualquer ajuda.
Herberson Gontijo
-
Bom dia amigo
Tudo bem?
Eu uso o ACBr para emissão e registro dos boletos. Ainda utilizando o monitor, mas já tem a dll que já tem posts aqui no fórum, talvez seja a melhor opção.
Abraços
Herberson Gontijo
-
Boa tarde Wellington
Salvo engano, em todos os estados a numeração da NF-e e NFC-e são independentes, começando em 1 até 999.999, devendo recomeçar a numeração a cada nova série.
Att.
Herberson Gontijo
-
Realmente, acho que tive que mexer na classe, só agora estou lembrando... vou colar aqui.
// Consulta NF-e destinadas
Method distNSU(cSiglaUFDestinado,cCNPJDestinatario,cUltNSURecebido,cVerAplic,cUltNsu,cMaxNsu,nQtdeDocto,uRetorno,lRetArray) Class TVoNFeUtil2G
Local nStat:=0
Local cMsgResultado:="",nIndContinuacao:=1
local cMsgDados:="", cMsgRetWS:="",cRetTxt:="",aRegistro:={},oTxt
Default cSiglaUFDestinado:=::SiglaUF,cUltNSURecebido:="0",cUltNsu:="0",lRetArray:=.t.
Default cVerAplic:="",cMaxNsu:="",nQtdeDocto:=1
::Limpa()
If ::CertificadoSelecionado()
If ::ConsultaStatus()
Try
/*
cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,;
"4.00", @cMsgDados, @cMsgRetWS,@nStat,;
@cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,;
cUltNSURecebido,@cVerAplic,@::Recebimento,@cUltNsu,;
@cMaxNsu,@nQtdeDocto,;
::proxy,::usuario,::senha,::Licenca)
*/
cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,;
"4.00", @cMsgDados, cMsgRetWS,@nStat,;
cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,;
cUltNSURecebido,cVerAplic,::Recebimento,@cUltNsu,;
@cMaxNsu,@nQtdeDocto,;
::proxy,::usuario,::senha,::Licenca)Memowrit("manifest.txt", cRetTxt, .f.)
Catch oError
fMsgStop("Erro! oNFeUtil:DistNSU."+CRLF+;
"Error: " + cValToChar( oError:GenCode) + CRLF + ;
"SubC: " + cValToChar( oError:SubCode ) + CRLF + ;
"OSCode: " + cValToChar( oError:OsCode ) + CRLF + ;
"SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + ;
"Operação: " + cValToChar( oError:Operation ) + CRLF + ;
"Mensagem: " + oError:Description, CAPTION_MSG)
Return(.f.)
End Try
::cStsNFe := Alltrim(Str(nStat))
::cStsNFeMsg := cMsgResultado
::Protocolo := cUltNsu
Else
//Tratar erro para servidor fora
Endif
If !Empty(cRetTxt)
::lAutorizada:=.t.
If lRetArray
While .t.
nPos:=At(CHR(13), cRetTxt)
If nPos>0
AAdd(uRetorno, {Subs(cRetTxt,1,15), Subs(cRetTxt,17,35), Subs(cRetTxt,53,nPos-53)})
cRetTxt:=Subs(cRetTxt,nPos+1)
Else
Exit
Endif
Enddo
Else
uRetorno:=cRetTxt
Endif
Endif
Endif
Return( ::lAutorizada )
Att.
Herberson Gontijo
-
-
Empresoft
Você está fazendo o teste com o certificado do cliente e está configurado para PRODUCAO? Porque se tiver para HOMOLOGAÇÃO, não mostrará as NF-e's que foram emitidas contra o CNPJ dele em produção não.
Tente passar o cUltNsuRec :="0" para processar desde o começo.
Att.
Herberson Gontijo
-
Faça assim:
oNfeUtil:distNSU(cUfManif,cCnpjManif,cUltNsuRec,"",@cUltNsu,@cMaxNsu,1,@aRegistros)
If oNfeUtil:cStsNFe=="7001" .or. oNfeUtil:cStsNFe=="7003"
fMsgStop("Licença da dll da FlexDocs não confere, contacte o suporte.", "Atenção")
cChaveDll:=" "
Return .f.
Endif
If Len(aRegistros)==0
MsgAlert("Não existe nenhum documento pendente.","Consulta")
Elsexbrowse(aRegistros)
Endif
Att.
Herberson Gontijo
-
Olá
Já tem um bom tempo que fiz, mas pelo que me lembro há problemas ao se passar as variáveis por referencia... Estou utilizando assim e dá certo:
oNfeUtil:distNSU(cUfManif,cCnpjManif,cUltNsuRec,"",@cUltNsu,@cMaxNsu,1,@aRegistros)
Passe por referência apenas as variáveis estritamente necessárias e retire "@" das demais, conforme acima.
Att.
Herberson Gontijo
-
Bom dia
Vitor, fiquei na sexta-feira o dia inteiro tentando resolver esse problema, inclusive abri ticket na Flexdocs... no final do dia com a resposta da Flexdocs e a interpretaão/ajuda do Gilmer conseguimos resolver (ele, rsrsrs).
Teve que mudar a classe... se o trecho...
ElseIf CSOSN=="500"
AAdd( axArray, {"ICMSSN500" , {}, 1 } ); nPos := len(axArray)
AAdd( axArray[nPos][2], {"orig" , TVoNFeItem():New("N", 1, 1, 1 ,,,oItem:orig ) } )
AAdd( axArray[nPos][2], {"CSOSN" , TVoNFeItem():New("N", 1, 1, 3 ,,,oItem:CSOSN ) } )
AAdd( axArray[nPos][2], {"vBCSTRet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vBCSTRet ) } )
AAdd( axArray[nPos][2], {"pST" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:pST ) } )
AAdd( axArray[nPos][2], {"vICMSSTRet" , TVoNFeItem():New("N", 0, 1, 15,2,,oItem:vICMSSTRet ) } )
AAdd( axArray[nPos][2], {"vBCFCPSTRet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vBCFCPSTRET ) } )
AAdd( axArray[nPos][2], {"pFCPSTRet" , TVoNFeItem():New("N", 0, 1, 6 ,2 ,,oItem:pFCPSTRET ) } )
AAdd( axArray[nPos][2], {"vFCPSTRet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vFCPSTRET ) } )
Att.
Herberson Gontijo
-
Bom dia
Mas como você testa se foi clicado no cabeçalho marcando ou desmarcando a opção ?
Herberson Gontijo
-
Bom dia
Tentei rodar o exemplo mas deu o erro abaixo:
Error: Unresolved external '_hb_partdt' referenced from H:\FWH1608\LIB\FIVEHX.LIB|VALTOSTR
Esse exemplo é para xHarbour ou Harbour? Se for para Harbour como passo para funcionar com xHarbour?
Herberson Gontijo
-
Bom dia
Utilize a Manifestação do Destinatário que vc nunca mais precisará de baixar xml pelo navegador.
Abraço
Herberson Gontijo
-
-
-
Bom dia
Sim está marcado, mas mesmo assim não processa.
Herberson Gontijo
Qual Melhor Aplicativo de Acesso Remoto?
in Programação
Posted
Bom dia
Apoio o mini encontro, de preferência em BH.
Galera quando veio aqui da última vez, gostou.
Herberson Gontijo