Ir para conteúdo
  • Cadastre-se

Atenas Soluções Softwares

Membros Pro
  • Total de ítens

    601
  • Registro em

  • Última visita

  • Days Won

    8

Tudo que Atenas Soluções Softwares postou

  1. Daniel , referente novamente a questão AV . Pra mapear estes retornos coloquei um try na linha 992 , que é onde esta o AV , assim : ///// meu teste mylist := tstringlist.create ; try PosSTX := PosEx( STX , Result, PosETX); // Acha inicio do proximo Bloco mylist.add( '----------------------' ); mylist.add( 'PosETX = ' + inttostr(PosETX) ); mylist.add( 'Retorno = ' + Retorno ); mylist.add( 'Result = ' + Result ); mylist.add( 'STX = ' + VartoStr(STX) ); mylist.add( '----------------------' ); mylist.SaveToFile( 'c:\TesteSwedaSTX\Normal-' + Formatdatetime('yyyymmdd hhnnss' , now) + '.txt' ); except on e:exception do begin PosSTX := 100 ; mylist.add( '----------------------' ); mylist.add( 'Exception = ' + e.message ); mylist.add( 'PosETX = ' + inttostr(PosETX) ); mylist.add( 'Retorno = ' + Retorno ); mylist.add( 'Result = ' + Result ); mylist.add( 'STX = ' + VartoStr(STX) ); mylist.add( '----------------------' ); mylist.SaveToFile( 'c:\TesteSwedaSTX\Erro-' + Formatdatetime('yyyymmdd hhnnss' , now) + '.txt' ); end; end; mylist.Free ; ///// meu teste
  2. Vamos la em algumas coisa que encontrei referente Classe SwedaSTX , 1 - Na maioria da vezes , não sei ao certo se todas as vezes , sempre é quando se desliga o ECF ou retira o cabo e o componente fica tentado se conectar sem a resposta do ECF . 2 - Uma coisa que ja documento aqui e é um bug desta classe é que se em procedure TACBrECFSwedaSTX.AbreRelatorioGerencial(Indice: Integer = 2 ); o relatório gerencial não for encontrado pelo motivo de falta de comunicação com o ECF a perda de comunicação o componente entra em looping passando indice = 2 e retornando sempre nil na função AchaRGIndice neste caso segue correção ; procedure TACBrECFSwedaSTX.AbreRelatorioGerencial(Indice: Integer = 2 ); var sDescricao:String; RG:TACBrECFRelatorioGerencial; begin { Não existe indice 0 nessa impressora usando esse protocolo} { O indice 1 é reservado } if ( Indice = 0 ) or ( Indice = 1 ) then Indice := 2; RG := AchaRGIndice(FormatFloat('00',Indice)); if RG = nil then begin CarregaRelatoriosGerenciais ; // Se não recarregar fica retornando sempre (RG = nil) (Indice := 2) raise EACBrECFERRO.create( ACBrStr('Relatório Gerencial: '+IntToStr(Indice)+ ' não foi cadastrado.' )); end ; sDescricao := PadRight(RG.Descricao,15); AguardaImpressao := True; EnviaComando('43|'+sDescricao); end;
  3. Daniel bom dia , Este bug vem de alguns meses , como disse eu estava utilizando a classe antiga , mas estou investigando ainda , ta dando uma trabalheira danada , o interessante é que compilando com a Classe antiga não ocorre estes erros , no mesmo Delphi .
  4. Bom dia , Vinha utilizando uma classe ACBrECFSwedaSTX antiga no meu frente como relato tambem de outros colegas aqui no fórum utilizando a classe antiga , ou seja , a nova eu não conseguia trabalhar com ela onde a mesma em tempo aleatório gerava Acces Violation varias vezes no dia nos clientes e com debug tentei muito debug mas sem sucesso . Como migrei tudo para trunk2 e todos provavelmente vão fazer isso em breve estou passando o Log do Eureka na sequencia de comandos onde gera o Erro da Classe ACBrECFSwedaSTX .
  5. Daniel bom dia , Fiz a atualização hj SVN (estou utilizando somente trunk2) , acho que isso até o pessoal que não utiliza ACBrECFVirtualSat talvez esta com problema , ja expliquei acima , na verdade somente comentar uma linha resolve dentro do procedimento explicado no post acima : function TACBrSAT.CancelarUltimaVenda: String ; var dadosCancelamento : string; begin // if CFeCanc.infCFe.chCanc = '' then CFe2CFeCanc; // Atualiza a chave do CFe para a última atica do componente e tbm demais campos do objeto . dadosCancelamento := CFeCanc.GerarXML( true ); // True = Gera apenas as TAGs da aplicação Result := CancelarUltimaVenda( CFeCanc.infCFe.chCanc, dadosCancelamento); end ;
  6. Um outro bug utilizando Virtual SAT. Faço uma venda e cancelo blz . (Com a AC Aberta) "Lógico" , vou explicar porque do Lógico . Faço outra venda e tento cancelar novamente (Com a AC Aberta) ele pega a chave anterior ja cancelada não a do último cupom vendido . function TACBrSAT.CancelarUltimaVenda: String ; var dadosCancelamento : string; begin if CFeCanc.infCFe.chCanc = '' then CFe2CFeCanc; dadosCancelamento := CFeCanc.GerarXML( true ); // True = Gera apenas as TAGs da aplicação Result := CancelarUltimaVenda( CFeCanc.infCFe.chCanc, dadosCancelamento); end ; "Porque do Lógico" Se eu fechar fazer o procedimento fechando a AC a cada teste assim : Vendo e Cancelo e Fecho a AC , Vendo e Cancelo Fecho a AC , Vendo e Cancelo Fecho a AC , funciona , somente com a AC Aberta o componente pega a penúltima chave ja cancelada .
  7. Daniel , bacana , Uma outra coisa interessante para o Virtual seria na criação do objeto ACBrECFVirtual... ele alterasse a Flag Estado da chave [Variaveis] do ini sempre para 0 , porque quando a AC cai em um relatório gerencial ele fica o Estado = 5 por exemplo , quando sobe a aplicação em Virtual não nescessita deste Estado ao abrir a AC ja que existem testes de cancelamento de cupom , Redução-Z dependendo do Estado . Ini.WriteInteger( 'Variaveis' , 'Estado' , 0 ); // No create do objeto Virtual . Oque acha disso ?
  8. Daniel , Exemplo , 1-emito uma venda , 2-emito um relatório gerencial , 3-tento cancelar o cupom , ele me retorna um Raise impossibilitando o cancelamento . Resultado , Tive que implementar ( Estado <> estLivre ) : procedure TACBrECFVirtualClass.CancelaCupom; Var A : Integer ; begin if ((fpItensCupom.Count = 0) and (Estado <> estVenda) and (Estado <> estLivre)) and ((fpCNFCupom.Count = 0) and (Estado <> estNaoFiscal) ) then raise EACBrECFERRO.Create(ACBrStr('Último Documento não é Cupom')) ; .....
  9. Rodolfo bom dia , No meu caso rateio os desconto na propriedade vDesc dos itens , exemplo : Total da Compra = 100,00 Total do desconto= 10,00 ---> ratear nos itens na propriedade vDesc . Total a pagar=90,00 ---> independente de dinheiro cartao etc etc numero de itens do cupom=5 ----> no caso desta compra cada item tem 2,00 em sua propriedade vDesc .
  10. Funcionou Daniel , Vou poder efetuar mais testes a tarde devido a questão Sefaz , posto aqui caso algo estranho .
  11. Bom dia Italo . Ainda não resolveu veja : XML de Envio <ConsCad xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"> <infCons> <xServ>CONS-CAD</xServ> <UF>SP</UF> <CNPJ>65611691000105</CNPJ> </infCons> </ConsCad> XML de retorno <retConsCad xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"> <infCons> <verAplic>SP_NFE_PL_006q</verAplic> // Meus Schemas estão atualizados e ele pega a versão PL_006q <cStat>239</cStat> <xMotivo> Rejeição: Cabeçalho - Versão do arquivo XML não suportada </xMotivo> <UF/> <dhCons>2015-06-23T09:07:06</dhCons> <cUF>35</cUF> </infCons> </retConsCad>
  12. Objeto acessado não criado .
  13. Vc tem que que setar a propridade Preview = True do Componente ACBrDanfeRave antes do imprimir .
  14. ACBrNFe.WebServices.ConsultaCadastro.Executar ... Versão Xml Envio : <ConsCad xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"> <infCons> <xServ>CONS-CAD</xServ> <UF>SP</UF> <CNPJ>65611691000105</CNPJ> </infCons> </ConsCad> Versão Xml Retorno : <retConsCad xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"> <infCons> <verAplic>SP_NFE_PL_008f</verAplic> <cStat>238</cStat> <xMotivo> Rejeição: Cabeçalho - Versão do arquivo XML superior a versão vigente </xMotivo> <UF/> <dhCons>0001-01-01T00:00:00+00:00</dhCons> <cUF>35</cUF> </infCons> </retConsCad>
  15. Alguns componentes do Trunk2 foram remapeados para outras Abas do Delphi , por exemplo ACBrNFe , ACBrBoleto entre alguns outros componentes vai para outras Abas , eu tinha os componentes ACBr tudo em uma unica Aba = 'ACBr' , quando miguei do Trunk para o Trunk2 para que não houvesse problema eu desinstalei nativamente todo o ACBr pelo Delphi e recriei tudo do zero , a maioria dos componentes assumiram a minha antiga Aba ACBr e alguns outros componentes foram reacriadas novas abas .
  16. O meu tbm esta "bloqueio autônomo" desde sábado , e não estou conseguindo enviar as vendas pro SAT (Dimep). Quando tento enviar a venda : NumeroSessao: 412288 - Resposta:412288|06008|0000|SAT bloqueado por falta de comunicacão||| Consulta de Status Oper : -- 07:17:50:390 - numeroSessao: 743477 - Comando: ConsultarStatusOperacional NumeroSessao: 743477 - Resposta:743477|10000|Resposta com Sucesso.|||900001190|DHCP|192.168.000.100|02:01:00:00:11:90|255.255.255.000|192.168.000.001|192.168.000.001|000.000.000.000|CONECTADO|MEDIO|1 Gbyte|178 MbytesMbytes|20150622071742|01.00.00|00.06|35150661099008000141599000011900001262450488|35150661099008000141599000011900001262450488|35150661099008000141599000011900001131475916|20150619180959|20150619181130|20141128|20191126|3 NSERIE.........: 900001190 LAN_MAC........: 02:01:00:00:11:90 STATUS_LAN.....: CONECTADO NIVEL_BATERIA..: MEDIO MT_TOTAL.......: 1 Gbyte MT_USADA.......: 178 MbytesMbytes DH_ATUAL.......: 22/06/2015 07:17:42 VER_SB.........: 01.00.00 VER_LAYOUT.....: 00.06 ULTIMO_CFe.....: 35150661099008000141599000011900001262450488 LISTA_INICIAL..: 35150661099008000141599000011900001262450488 LISTA_FINAL....: 35150661099008000141599000011900001131475916 DH_CFe.........: 19/06/2015 18:09:59 DH_ULTIMA......: 19/06/2015 18:09:59 CERT_EMISSAO...: 28/11/2014 CERT_VENCIMENTO: 26/11/2019 ESTADO_OPERACAO: BLOQUEIO_AUTONOMO
  17. Bom dia galera , Não estava conseguindo emitir nada aqui hoje de manhã no Sat . Entrei no portal Sefaz e eis a ma noticia , até dia 23 parado . Eu precisando testar mais coisas que estou implementando tbm com o Virtual Sat . http://www.fazenda.sp.gov.br/sat/
  18. <infCFe versao="0.00" versaoDadosEnt="0.06" versaoSB="000000" Id=""> <ide> <tpAmb>2</tpAmb> <CNPJ>16716114000172</CNPJ> <signAC>SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT</signAC> <numeroCaixa>001</numeroCaixa> </ide> <emit> <CNPJ>08723218000186</CNPJ> <enderEmit> </enderEmit> <IE>149626224113</IE> <cRegTrib>3</cRegTrib> <indRatISSQN>N</indRatISSQN> </emit> <dest> <xNome>CONSUMIDOR</xNome> </dest> <det nItem="1"> <prod> <cProd>1</cProd> <xProd>TIJOLO BAIANO 08 FUROS 9X19X19 DSFN SKFN SADF</xProd> <NCM>61034300</NCM> <CFOP>5500</CFOP> <uCom>UN</uCom> <qCom>1.0000</qCom> <vUnCom>25.00</vUnCom> <vProd>0.00</vProd> <indRegra>A</indRegra> <vItem>0.00</vItem> </prod> <imposto> <vItem12741>3.00</vItem12741> <ICMS> <ICMS00> <Orig>0</Orig> <CST>00</CST> <pICMS>18.00</pICMS> <vICMS>0.00</vICMS> </ICMS00> </ICMS> <PIS> <PISAliq> <CST>01</CST> <vBC>25.00</vBC> <pPIS>0.6500</pPIS> <vPIS>0.00</vPIS> </PISAliq> </PIS> <COFINS> <COFINSAliq> <CST>01</CST> <vBC>25.00</vBC> <pCOFINS>3.0000</pCOFINS> <vCOFINS>0.00</vCOFINS> </COFINSAliq> </COFINS> </imposto> <infAdProd>Informacoes adicionais</infAdProd> </det> <total> <vCFe>0.00</vCFe> <vCFeLei12741>0.00</vCFeLei12741> </total> <pgto> <MP> <cMP>01</cMP> <vMP>25.00</vMP> </MP> <vTroco>0.00</vTroco> </pgto> <infAdic> <infCpl>SAT Emitido pelo SAC (Sistema de Automacao Comercial)Conheca o SAC - www.sistemasnetsolutions.com.br</infCpl> </infAdic> </infCFe> </CFe>
  19. Atualizei a versão completa ACBr hoje as 14:30 , Revisão 9078 : Efetuei o teste mencionado pelo colega ITWORKS mas em meu teste tudo funcionou perfeitamente ( Acréscimo / Desconto ) ECF Sweda ST120 (Física) (SwedaSTX) . Colocarei em produção nossa AC em um Cliente na Segunda-Feira e estarei testando outras características negativas que vinha acontecendo nas últimas atualizações da SwedaSTX como se encontra em alguns posts no fórum , caso encontre posto aqui . ( Não vou prometer - Mas tem um cliente que estará repassando o ponto comercial e já pedi a ele o ECF dele Sweda ST120 , caso ele nos doar estarei doando para o projeto ) Log do teste Efetuado :
  20. Isso mesmo Italo , se não colocar esta linha a propriedade retorna vazia . Para o Ret do Xml de Inutilização tbm precisa implementar essa mesma sistêmica , mas a propriedade XML ainda não existe na colection !
  21. A Rotina : ACBrNFe.EventoNFe.Evento.Clear ; ACBrNFe.EventoNFe.LerXML( Arquivo ) ; with ACBrNFe.EventoNFe.Evento.Items[0].RetInfEvento do begin Ret_Prot := nProt ; Ret_Data := dhRegEvento ; Ret_Xml := XML ; // XML aqui retorna vazio end ; ...Não encontrei outra TAG que traz a conteuro do XML . Verificando o Fonte vi que em function TEventoNFe.LerXMLFromString(const AXML: String): Boolean; não preenche a TAG XML , vejam : function TEventoNFe.LerXMLFromString(const AXML: String): Boolean; var RetEventoNFe : TRetEventoNFe; begin RetEventoNFe := TRetEventoNFe.Create; try RetEventoNFe.Leitor.Arquivo := AXML; Result := RetEventoNFe.LerXml; with FEvento.Add do begin infEvento.ID := RetEventoNFe.InfEvento.id; infEvento.cOrgao := RetEventoNFe.InfEvento.cOrgao; infEvento.tpAmb := RetEventoNFe.InfEvento.tpAmb; infEvento.CNPJ := RetEventoNFe.InfEvento.CNPJ; infEvento.chNFe := RetEventoNFe.InfEvento.chNFe; infEvento.dhEvento := RetEventoNFe.InfEvento.dhEvento; infEvento.tpEvento := RetEventoNFe.InfEvento.tpEvento; infEvento.nSeqEvento := RetEventoNFe.InfEvento.nSeqEvento; infEvento.VersaoEvento := RetEventoNFe.InfEvento.VersaoEvento; infEvento.DetEvento.xCorrecao := RetEventoNFe.InfEvento.DetEvento.xCorrecao; infEvento.DetEvento.xCondUso := RetEventoNFe.InfEvento.DetEvento.xCondUso; infEvento.DetEvento.nProt := RetEventoNFe.InfEvento.DetEvento.nProt; infEvento.DetEvento.xJust := RetEventoNFe.InfEvento.DetEvento.xJust; infEvento.detEvento.cOrgaoAutor := RetEventoNFe.InfEvento.detEvento.cOrgaoAutor; infEvento.detEvento.tpAutor := RetEventoNFe.InfEvento.detEvento.tpAutor; infEvento.detEvento.verAplic := RetEventoNFe.InfEvento.detEvento.verAplic; infEvento.detEvento.dhEmi := RetEventoNFe.InfEvento.detEvento.dhEmi; infEvento.detEvento.tpNF := RetEventoNFe.InfEvento.detEvento.tpNF; infEvento.detEvento.IE := RetEventoNFe.InfEvento.detEvento.IE; infEvento.detEvento.dest.UF := RetEventoNFe.InfEvento.detEvento.dest.UF; infEvento.detEvento.dest.CNPJCPF := RetEventoNFe.InfEvento.detEvento.dest.CNPJCPF; infEvento.detEvento.dest.idEstrangeiro := RetEventoNFe.InfEvento.detEvento.dest.idEstrangeiro; infEvento.detEvento.dest.IE := RetEventoNFe.InfEvento.detEvento.dest.IE; infEvento.detEvento.vNF := RetEventoNFe.InfEvento.detEvento.vNF; infEvento.detEvento.vICMS := RetEventoNFe.InfEvento.detEvento.vICMS; infEvento.detEvento.vST := RetEventoNFe.InfEvento.detEvento.vST; if RetEventoNFe.retEvento.Count > 0 then begin FRetInfEvento.Id := RetEventoNFe.retEvento.Items[0].RetInfEvento.Id; FRetInfEvento.tpAmb := RetEventoNFe.retEvento.Items[0].RetInfEvento.tpAmb; FRetInfEvento.verAplic := RetEventoNFe.retEvento.Items[0].RetInfEvento.verAplic; FRetInfEvento.cOrgao := RetEventoNFe.retEvento.Items[0].RetInfEvento.cOrgao; FRetInfEvento.cStat := RetEventoNFe.retEvento.Items[0].RetInfEvento.cStat; FRetInfEvento.xMotivo := RetEventoNFe.retEvento.Items[0].RetInfEvento.xMotivo; FRetInfEvento.chNFe := RetEventoNFe.retEvento.Items[0].RetInfEvento.chNFe; FRetInfEvento.tpEvento := RetEventoNFe.retEvento.Items[0].RetInfEvento.tpEvento; FRetInfEvento.xEvento := RetEventoNFe.retEvento.Items[0].RetInfEvento.xEvento; FRetInfEvento.nSeqEvento := RetEventoNFe.retEvento.Items[0].RetInfEvento.nSeqEvento; FRetInfEvento.CNPJDest := RetEventoNFe.retEvento.Items[0].RetInfEvento.CNPJDest; FRetInfEvento.emailDest := RetEventoNFe.retEvento.Items[0].RetInfEvento.emailDest; FRetInfEvento.dhRegEvento := RetEventoNFe.retEvento.Items[0].RetInfEvento.dhRegEvento; FRetInfEvento.nProt := RetEventoNFe.retEvento.Items[0].RetInfEvento.nProt; FRetInfEvento.XML := RetEventoNFe.retEvento.Items[0].RetInfEvento.XML; // Acrescentar esta linha !! end; end; finally RetEventoNFe.Free; end; end; Estou certo ou errado ?
  22. No acompanhamento que tenho feito ao forum percebi que aqui http://www.projetoacbr.com.br/forum/index.php?/topic/20803-duvida-sem-papel-desabilitado-no-ecf/?p=133651 , e como o Daniel disse no tópico alterou muita coisa da classe SwedaStx e de acordo com o tópico mencionado as mudanças são em " Aguardar o retorno do ECF até que a impressão termine por completo..." , ou seja , somente isso , na verdade particularmente nunca tive problema na classe anterior quanto a isso . Vou tentar explicar o nosso caso aqui oque aconteceu nesta nova classe ; O ECF Sweda tem um comportamento que quando desliga-se o ECF e liga-o novamente a Aplicação perde a conexão do ECF e demora um pouco pra Estabilizar quando liga-o , ainda assim depois de ligado perde-se novamente a conexão "Escrevendo Falta de Energia no cupom" e ai sim esta Estabilizado por completo , e isto é comum na Sweda e é tranquilamente bem tratado na antiga classe SwedaStx porque ela respondia nos loop's de Try Except da aplicação e são nestas quedas de energia ou perda de conexão da porta Serial ou USB emulada que estão gerando estas violações . Na minha opinião , acho bastante valido sim a idéia do comportamento da Aplicação atuar verificando por completo a finalização do cupom mas não que a classe anterior possa ser descartada por este motivo ja que a mesma esta a bastante tempo debugada e funcionando 100% , não vejo uma necessidade de altera-la agora somente pra isso , mas é só a minha opinião .
  23. Tivemos o mesmo problema com a nova classe que esta no SVN e para o momento tivemos que também retornar a versão . Seria ate interessante voltar a classe anterior para o SVN ate que esta seja corrigida e melhorada , para outros colegas não terem o mesmo problema já mencionado .
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...