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...