Ir para conteúdo
  • Cadastre-se

Italo Giurizzato Junior

Consultores
  • Total de ítens

    38.025
  • Registro em

  • Última visita

  • Days Won

    1.075

Tudo que Italo Giurizzato Junior postou

  1. Maiko, Uma dica, no MOC - Manual de Orientação do Contribuinte versão 1.04b você encontra as respostas para as suas perguntas, principalmente no que diz respeito o que é obrigatório e opcional. Inclusive sobre a chave do CTe que é composta por 44 digitos. Note que temos 2 campos um chamado nCT e o outro cCT. O nCT se refere ao numero do conhecimento que deve ser sequencial (1, 2, 3, ...) e o cCT se refere ao código do conhecimento que pode ser um numero aleatório ou pode ser igual ao nCT. Na versão 1.04 do CTe o nCT contém 9 digitos e o cCT contém 8 digitos. Como eu implementei? Quando o usuário lança os dados pertinentes ao transporte da carga, ao clicar no botão para salvar os dados no banco de dados, gero o cCT usando a função Random do Delphi para gerar um numero aleatório com no máximo 8 digitos e salvo tambem no banco de dados (campo: CTChave). Randomize; codigoNumerico := Random(99999999); E ao alimentar o componente passo essa informação: Ide.cCT := DM_CNT.Conhec2CTChave.AsInteger; // Código Aleatório (...) Ide.modelo := '57'; Ide.serie := DM_CNT.Conhec2Serie.AsInteger; Ide.nCT := DM_CNT.Conhec2Numero.AsInteger; // Numero sequencial Espero ter ajudado.
  2. Bom dia Maiko, Vamos as respostas: Sim, tenho no banco de dados uma tabela que contem os dados para a configuração do componente, logo não utilizo neste caso o arquivo .INI A minha aplicação roda com o Capicom. Durante 1 ano o meu cliente usou o certificado A1 e depois mudou para o A3 (Cartão + Leitora) sem nenhum problema. O nosso colega Janis utiliza o certificado A3 (Tokem) também sem nenhum problema e como mencionado no post dele já chegou a casa dos 100 mil CTe emitidos. Quanto a configuração do componente com relação ao certificado, devemos informar somente o numero de serie do mesmo. Existe uma propriedade no componente para informar a senha, no caso do A1 não devemos informa-la, recentemente foi realizada uma alteração no componente para que esta propriedade receba a senha (PIN) do certificado A3, caso você não informe, ao ocorrece o primeiro acesso ao WebServices ela sera solicitada. Portanto não há necessidade de informar o caminho onde encontra-se o certificado. Com relação aos arquivos Schemas: A secretaria da fazenda disponibiliza esses arquivos, no decorrer do tempo, a medida que vai surgindo necessidades ou proplemas são detectados a SEFAZ faz as alterações e disponibiliza uma nova versão dos Schemas, atualmente estamos na versão 1.04 do CTe. Qual é a finalidade desses arquivos? Esses arquivos contem a estrutura de cada elemento, grupo que compõem o arquivo XML do CT-e. O componente por sua vez realiza uma "comparação" entre o XML gerado com o Schema. Se um elemente tem um tamanho máximo de 40 caracteres (por exemplo) e ao gerar o o XML você passa uma string com 50, ao executar a rotina de validação (comparação entre o XML com o schema) o componente vai parar a sua aplicação e apontar o problema, informando que o referido elemente esta com um tamanho maior do que o permitido. Espero ter ajudado.
  3. Boa noite Marcos, Os fragmentos de código em TXT são da minha aplicação, o data module DMCTE, você mesmo pode criar um e incluir nele os componentes ACBrCTe e o ACBrCTeDACTEQR. Espero ter ajudado.
  4. Boa tarde Julian, Informe somente neste caso o CPF, deixe o CNPJ em branco, ou seja não informe zeros.
  5. Bom dia Maiko, Qual é o motivo de usar o OpenSSL? Caso haja necessidade do uso do OpenSSL, temos que realizar uma alteração no arquivo ACBr.inc que encontra-se na pasta ...\fontes\ACBrComum. Padrão: //{$DEFINE ACBrNFeOpenSSL} // Para Usar OpenSSL no ACBrNFe em Delphi, descomente essa linha //{$DEFINE ACBrCTeOpenSSL} //{$DEFINE CLX} // Para usar CLX no Windows / Delphi descomente essa linha Alterado para usar o OpenSSL: //{$DEFINE ACBrNFeOpenSSL} // Para Usar OpenSSL no ACBrNFe em Delphi, descomente essa linha {$DEFINE ACBrCTeOpenSSL} //{$DEFINE CLX} // Para usar CLX no Windows / Delphi descomente essa linha Quanto as tabelas e respectivos campos que você deve criar no banco de dados, uma dica é o proprio MOC - Manual de Orientação do Contribuinte disponibilizado junto com o programa exemplo (Manual_CTe_v1.04b.PDF). Outra é através do fragmento de código Alimentarcomponente.txt disponibilizado junto com o programa exemplo, nele você encontra os acessos ao banco de dados "Select ...." veja este exemplo: DM_CTA.PessoaFJ.Close; DM_CTA.PessoaFJ.SQL.Clear; DM_CTA.PessoaFJ.SQL.Add('Select * From Sis_PessoaFJ'); DM_CTA.PessoaFJ.SQL.Add('Where CGC = :xCGC'); DM_CTA.PessoaFJ.Params[0].AsString := DM_CNT.Conhec2Remetente.AsString; DM_CTA.PessoaFJ.Active := True; DM_CTA.PessoaFJ.Open; Rem.xNome := DM_CTA.PessoaFJRSocial.AsString; Rem.xFant := DM_CTA.PessoaFJFantasia.AsString; Rem.EnderReme.xLgr := DM_CTA.PessoaFJEndereco.AsString; Rem.EnderReme.nro := DM_CTA.PessoaFJNumero.AsString; Rem.EnderReme.xCpl := DM_CTA.PessoaFJComplemento.AsString; Rem.EnderReme.xBairro := DM_CTA.PessoaFJBairro.AsString; CodigoMunicipio := DM_CTA.PessoaFJCodigoEstado.AsInteger * 100000 + DM_CTA.PessoaFJCodigoMunicipio.AsInteger; Rem.EnderReme.cMun := CodigoMunicipio; Rem.EnderReme.xMun := DM_CTA.PessoaFJCidade.AsString; Rem.EnderReme.CEP := StrToIntDef(DM_CTA.PessoaFJCEP.AsString, 0); Rem.EnderReme.UF := DM_CTA.PessoaFJEstado.AsString; Rem.EnderReme.cPais := DM_CTA.PessoaFJCodigoPais.AsInteger; Rem.EnderReme.xPais := DM_CTA.PessoaFJPais.AsString; if copy(DM_CTA.PessoaFJCGC.AsString,10,4) <> '0000' then begin Rem.CNPJCPF := Copy(DM_CTA.PessoaFJCGC.AsString, 2, 14); IE := DM_CTA.PessoaFJIEstadual.AsString; end else begin Rem.CNPJCPF := Copy(DM_CTA.PessoaFJCGC.AsString, 1, 9) + Copy(DM_CTA.PessoaFJCGC.AsString, 14, 2); IE := 'ISENTO'; end; Rem.IE := IE; Rem.fone := DM_CTA.PessoaFJTelefone.AsString; No exemplo acima estou acessando a tabela Sis_PessoaFJ para ler os dados do Remetente, para alimentar o componente. Rem.xNome := DM_CTA.PessoaFJRSocial.AsString; Note que estou pegando o conteudo do campo RSocial (tabela Sis_PessoaFJ) e atribuindo a propriedade xNome do Remetente. Outra coisa importante é quanto a nova versão 1.04, que devemos habilitar através da diretiva de compilação que tambem encontra-se no arquivo ACBr.inc Padrão: //------------------------------------------------------------------------------ // Definições para o compomente ACBrCTe //------------------------------------------------------------------------------ // Define o Pacote de Liberação / Descomente o pacote a ser utilizado // Atenção não comente ou descomente as duas definições {$DEFINE PL_103} //{$DEFINE PL_104} Alterar para: //------------------------------------------------------------------------------ // Definições para o compomente ACBrCTe //------------------------------------------------------------------------------ // Define o Pacote de Liberação / Descomente o pacote a ser utilizado // Atenção não comente ou descomente as duas definições //{$DEFINE PL_103} {$DEFINE PL_104} Espero ter ajudado.
  6. Boa tarde Jeferson, Já existe um componente ACBrCLe no repositório branches.
  7. Bom dia ncc, Se a placa de um veículo estrangeiro é xxx999, ao informar inclua um ZERO para ficar no formato 3 letras e 4 numeros, por exemplo: Placa do veículo: ABC-432 Informar da seguinte forma: ABC0432, resolva desta forma até que a sefaz disponibilize um novo schema.
  8. Bom dia, Para qual cidade você esta emitindo a NFSe?
  9. Bom dia Janio, Sim, é isso mesmo o prazo passa a ser de 24 horas, contados apartir da data e hora de autorização. Exemplo: se uma NF-e foi autorizada em 29/12/2011 as 09:20, o usuário poderá solicitar o cancelamento da mesma até as 09:20 do dia 30/12/2011. Lembre-se o prazo é de 24 horas e não de 1 dia. Segundo o exemplo após as 09:20 não será mais possível o seu cancelamento. E tem mais apartir de 01/12/2012 o cancelamento deverá ser feito por evento, de uma lida na NT2011.006
  10. Bom dia José, Chegei a realizar testes com a minha aplicação em um Note com o Windows 7 32 bits, rodou 100%. Detalhe, SEFAZ-SP e não MG. Como foi dito esses ultimos mês, devido as alterações nos WebServices por conta da nova versão 1.04 do CT-e o SEFAZ-MG esta muito instavel.
  11. Boa noite José, De uma olhada no portal nacional do CTe em Disponibilidade de Serviços, note que há vários serviços na situação AMARELO.
  12. Boa noite Julian, Poste a imagem com a mensagem de erro.
  13. Boa tarde Kiko, E tem outra: A NT2011.006 contendo as especificações técnicas para a implementação do cancelamento da NF-e como um evento da NF-e de segunda geração. A adoção desse evento será realizado de forma gradual e as Sefaz têm até 01/07/2012 para implementarem esse processo em suas respectivas aplicações de autorização de NF-e. O Web Service de Cancelamento existente será eliminado em 01/12/2012, permanecendo unicamente a possibilidade de cancelamento da NF-e através do Web Service de Registro de Eventos.
  14. Boa tarde, Se possível poste o XML.
  15. Bom dia Wagner, Note que no código do municipio você já esta informando o código da UF no caso 35. Sendo assim, a maneira de alimentar o componente esta correta do jeito que você esta fazendo. Rem.EnderReme.cMun := StrToInt(txtRemeCodCid.Text); Eu já armazeno o código do municipo sem o código da UF ou seja: UF: SP (tabela do IBGE = 35) xMun: Campinas (09502) desta forma tenho que realizar o calculo no momento de alimentar o componente. txtRemeCodUf.Text := '35'; txtRemeCodCid.Text := '09502'; CodigoMunicipio := StrToInt(txtRemeCodUf.Text) * 100000 + StrToInt(txtRemeCodCid.Text); Rem.EnderReme.cMun := CodigoMunicipio;
  16. Boa tarde Wagner, Qual é o conteudo de txtRemeCodCid.Text ? No meu sistema utilizo a formula apresentada no post anterior, pois armazeno no banco de dados o código da UF e do Municipio separados. Agora se você armazena os dois juntos, ai tem que ser do seu jeito.
  17. Bom dia Wagner, Dica: baixe o MOC - Manual de Orientações do Contribuinte, para eventuais consultas. No que diz respeito ao campo Rem.EnderReme.cMun (Página 95 do MOC 1.03 ou Página 106 do MOC 1.04b), temos que o tamanho desse campo é 7. O código do município (tabela do IBGE) tem tamanho 5, portanto falta 2 para completar os 7 e esses 2 digitos refere-se ao código da UF (tabela do IBGE). Exemplo: UF: SP (tabela do IBGE = 35) xMun: ARARAQUARA (tabela do IBGE = 03208) txtRemeCodUf.Text := '35'; txtRemeCodCid.Text := '03208'; CodigoMunicipio := StrToInt(txtRemeCodUf.Text) * 100000 + StrToInt(txtRemeCodCid.Text); Rem.EnderReme.cMun := CodigoMunicipio; Eu sei, o MOC não deixa claro que tem que ser desta forma. Espero ter ajudado.
  18. Boa tarde, Voce deve baixar os fontes da pasta Branches, como Jundiaí utiliza o provedor GINFES, o componente esta preparado para este servidor, portanto vai funcionar.
  19. Bom dia John, O provedor SimplISS foi o primeiro que eu vi que exige que seja informado no xml de envio do lote o CNPJ e senha. Todos os provedores exige CNPJ e senha no caso de emitir a NFSe via site, mas via webservice o normal é a utilização do certificado. Até onde sei no xml de envio do lote do provedor GovBR não há necessidade de informar a senha. Outra coisa, para emitir uma NFSe via webservice há necessidade da empresa (prestador de serviço) possuir o certificado digital e a mesma estar credenciada junto a prefeitura a emitir a NFSe, o que eu não sei te responder é, se existe um credenciamento para emitir via site e outro via webservice.
  20. Bom dia, O componente impõe um limite de 990 notas emitidas pelo remetente para o mesmo destinatário. No DACTE todas elas vão ser impressas, caso seja necessário o DACTE terá 2 ou mais páginas, para que todas as notas informadas constem no DACTE.
  21. Boa noite johnbh3, Favor baixar a atualização e testar novamente.
  22. Bom dia a todos, Esta disponivel no SVN as alterações no componente, acredito que agora ele esta em conformidade com o novo pacote de liberação PL_104b. Esta faltando a publicação do Manual de Integração Contribuinte - DACTE que vai conter todas as informações necessárias e respectivos Lay-out dos DACTE de cada modal, para que possamos realizar as alterações, vamos aguardar. Desejo a todos um Feliz Natal e um Próspero Ano Novo.
  23. Bom dia Josemar, Estude os fragmentos de código disponibilizados juntamente com o programa exemplo, pasta: ...\Exemplos\ACBrCTe Você vai notar que a procedure para envio de Lote é a mesma proposta pelo Janis, e esta funcionando. São fragmentos da minha aplicação que esta rodando em ambiente de produção a mais de 1 ano.
  24. Bom dia, Essa mensagem de erro: Ancestor for 'QRNFSe' not found aparece porque o Delphi abre somente o fonte que contem o erro, se ele depende de um fonte PAI ocorre esse erro, até ai tudo bem. O fonte que ele abre deve ser o ACBrNFSeDANFSeQRRetrato, é nele que contem o erro, qual é a linha deste fonte que ele aponta como errada?
  25. Boa tarde Josemar, Verifique se a sua rotina não esta limpando o conteudo do componente antes de gerar e enviar.
×
×
  • 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.