Ir para conteúdo
  • Cadastre-se

Italo Giurizzato Junior

Consultores
  • Total de ítens

    37.475
  • Registro em

  • Última visita

  • Days Won

    1.056

Tudo que Italo Giurizzato Junior postou

  1. Bom dia Daniel, Já encontra-se disponivel as alterações no DACTE - Quick Report, para que o mesmo formate o CNPJ/CPF de forma correta. Fica ainda a pendencia para a solução do problema que você apresentou.
  2. Bom dia Mauro, Caso você encontre alguma dificuldade, post aqui, vamos ajuda-lo.
  3. Bom dia a todos, O que o Alexandre escreveu esta correto. Na minha aplicação inclui um DataModule com o nome DMCTE. Dentro dele coloquei os componentes ACBrCTe e o ACBrCTeDACTeQR. Alterei o nome de ambos para CTe e DACTe respectivamente. Logo para utilizar o componente ACBrCTe tenho que informar primeiramente o DataModule antes do nome do componente, isso explica a linha abaixo: with DMCTE.CTe.Conhecimentos.Add.CTe do Caso você inclua o componente diretamente no forme e não altere o nome dele a linha acima ficaria da seguinte forma: with ACBrCTe1.Conhecimentos.Add.CTe do Outra coisa DMCNT é um DataModule que contem as tabelas utilizadas na minha aplicação: Controle de Conhecimentos - CNT. Espero ter esclarecido as dúvidas.
  4. Bom dia Medreis, Quem tem as informações no RPS é quem o emite, algumas ou praticamente todas são utilizadas pelo webservice para gerar o XML da NFS-e. Portanto ao realizar uma consulta de NFS-e por RPS por exemplo vamos ter o XML da NFS-e e neste XML temos as informações do RPS. Ao carregar o componente com o XML da NFS-e você consegue todas as informações, lendo as propriedades.
  5. Boa tarde Mauro, Eu que peço desculpa, o problema é que tem alguns usuários que parece que não gosta muito de ler, que não é o seu caso. O EPEC é um evento, caso você já tenha feito a CC-e ou o Cancelamento por evento para NF-e, não vai ter dificuldades com o EPEC do CT-e. Eu não implementei o EPEC na minha aplicação, caso contrario postaria a rotina. Tente implementar e post as duvidas.
  6. Bom dia Mauro, Já deu uma olha na Nota Técnica que se refere ao EPEC?
  7. Bom dia Marcos, Você não informou qual é o identificador não declarado que encontra-se na unit: pcteProcCte.pas.
  8. Bom dia Andreas, Essa alteração e outras como as novas TAGs já foram realizadas por mim, e o André já esta fazendo uma analise de todas as alterações, acredito que vai estar disponivel para que todos possam atulizar os seus fontes ainda esta semana ou semana que vem. Vamos aguardar.
  9. Daniel, Você entendeu exatamente o meu post anterior, só ficou faltando informar se a TAGparada for vazia, a rotina procederia como ela é hoje, desta forma não teriamos nenhum problema quanto aos demais componentes. Com relação a mascara na impressão do CNPJ / CPF no DACTE vou providenciar a alteração. Já a alteração nas funções relatadas no post anterior, fica ai a minha sugestão para resolver o problema, posso até implementar a solução, mas preciso do aval dos nossos mestres.
  10. Bom dia Neo, Primeiramente, você não vai alterar nada. Segundo, pelo schema que possuo e esta disponivel dentro da pasta ...\Exemplos\ACBrNFSe\Delphi\Schemas\Abaco não existe o GerarNfse somente o EnviarLoteRpsEnvio. Isso explica o porque a função Gera_DadosMsgGerarNFSe() retorna vazio para o provedor Abaco. O dia que o provedor implementar essa funcionalidade em seus WebServices e trocar o schema, ai sim para que o componente possa utilizar essa funcionalidade, vai ser necessário apenas remover da lista do IF o proAbaco. Agora se o provedor já possui essa funcionalidade GerarNFSe, então precisamos do novo schema, neste caso por favor entre em contato com o provedor e solicite o schema mais atual uitilizado para validar o lote a ser enviado para o WebService. Se esse novo schema consta o GerarNfse ai sim, com o schema atualizado podemos remover o proAbaco da lista do IF. Esta me esquecendo alem de remover o proAbaco do IF há necessidade de realizar algumas alterações na unit ACBrProvedorAbaco para atender a funcionalidade GerarNFSe. Portanto antes de remover algo, comentar alguma linha, procure saber se o provedor possui a funcionalidade desejada. Volto a lhe dizer se o componente retorna a mensagem informado que a funcionalidade não foi implementada, não é porque eu não quiz ou não tive tempo de implementar, é por que o provedor não possui ela.
  11. Bom dia a todos, Acredito ter encontrado uma solução para o problema acima, vamos a um estudo de caso. Layout do CT-e temos: <rem> nivel 1 <CNPJ> ou <CPF> nivel 2 (...) <enderReme> nivel 2 <xCpl> nivel 3 - opcional (...) <infNF> nivel 2 (...) <locRet> nivel 3 - opcional <CNPJ> ou <CPF> nivel 4 <xCpl> nivel 4 - opcional <infNFe> nivel 2 (...) <infOutros> nivel 2 (...) Não sei se ficou claro mas vamos ao estudo. if Leitor.rExtrai(2, 'enderReme') <> '' then begin CTe.Rem.enderReme.xCpl := Leitor.rCampo(tcStr, 'xCpl'); A linha em negrito acima le o conteudo da tag xCpl e armazena o seu valor na propriedade xCpl, que neste caso se refere ao complemento de endereço do remetente. Muito bem, essa tag é opcional e vamos supor que ela não foi informada, mas foi informado o local de retirada e este possui o complemento. Estudando a lógica da funcion rCampo que encontra-se na unit pcnLeitor ao ser executado a linha acima o rCampo não vai encontrar a tag xCpl do endereço do rememente por não ter sido informada, mas vai encontrar a tag de mesmo nome dentro do grupo <locRet> uma vez que este grupo esta contido dentro do grupo <rem>. No final tanto o complemento de endereço do remetente quanto o do local de retirada vão possuir a mesma informação. Problema semelhante apontado pelo nosso amigo Daniel F. Dixini, com relação ao CNPJ/CPF. Solução proposta por mim: Incluir na function rCampo um terceiro parametro chamado TAGparada. Esse paramentro tem por finalidade de abortar a busca pela TAG quando for encontrada a TAGparada, vamos ao exemplo: if Leitor.rExtrai(2, 'enderReme') <> '' then begin CTe.Rem.enderReme.xCpl := Leitor.rCampo(tcStr, 'xCpl', 'locRet'); Na linha acima em negrito, quando o rCampo for buscar pela tag xCpl para ler o seu conteudo, se localizar primeiro a tag locRet retorna vazio, caso contrario retorna o conteudo da tag xCpl. Algo semelhante poderiamos ter na função rCampoCNPJCPF, ela passaria a ter o parametro TAGparada, exemplo. if Leitor.rExtrai(1, 'rem') <> '' then begin CTe.Rem.CNPJCPF := Leitor.rCampoCNPJCPF('locRet'); Na linha acima em negrito, quando o rCampoCNPJCPF for buscar pela tag CNPJ ou CPF para ler o seu conteudo, se localizar a tag locRet retorna vazio, caso contrario retorna o conteudo. Acredito que desta forma vamos ler a tag correta.
  12. Boa tarde Akai, Atualiza os fontes e tente novamente.
  13. Boa tarde, Essa funcionalidade só vai ser implementada no componente, quando o provedor Betha implementar o websevice: GerarNfse. Você tentou usar o [Gerar e Enviar Lote]?
  14. Boa tarde Neo No caso do provedor Abaco, não devemos incluir o atributo Identificador na tag Signature e consequentemente o atributo URI da tag Reference deve receber o valor vazio. Caso contrario vai ocorrer erro ao assinar o lote. Esse erro não ocorreu quando testei com o programa exemplo, as alterações que fiz. Inclusive obtive o seguinte retorno do webservice após o envio do lote: <EnviarLoteRpsResposta> <NumeroLote>1</NumeroLote> <DataRecebimento>2013-08-07T10:21:08</DataRecebimento> <Protocolo>E49A8FBD2395EDC4DF0AB4D1BD0091F1</Protocolo> </EnviarLoteRpsResposta> Como você pode ver o lote foi enviado e o webservice inclusive retornou o protocolo de recebimento do mesmo. e esse outro após consultar a situação do lote: <MensagemRetorno> <Codigo>E45</Codigo> <Mensagem>RPS:0 - CNPJ nao encontrado na base de dados</Mensagem> <Correcao>Confira o numero do CNPJ informado. Caso esteja correto, o prestador nao esta inscrito no municipio.</Correcao> </MensagemRetorno> Essa mensagem de erro ao consultar a situação é aceitavel, uma vez que utilizei um CNPJ de outra cidade.
  15. Boa tarde, Esse DANFE é em Quick Report, Rave, .... ? Você não esta emitindo em contingencia?
  16. Boa tarde Daniel, Vamos aguardar mais sugestões para a solução do problema. Não devemos alterar essas funções para resolver um problema no componente ACBrCTe, uma vez que elas são utilizadas por outros componentes e dependendo da alteração realizada, corremos o risco de prejudicar o funcionamento dos demais componentes.
  17. Boa tarde Marcio, Obrigado pelas informações. Por favor atualiza os fontes e teste.
  18. Boa tarde Henrique, Já esta disponivel as suas alterações. Lhe pesso que faça uma cópia de segurança dos seus fontes e baixe a atualização. Uma observação, os seus fontes estão desatualizados em relação aos novos provedores.
  19. Boa tarde Marcio, Para a inclusão dessa cidade, precisamos saber as URLs tanto de homologação quando de produção dos webservices. Sem essa informação não tem como, pois o provedor GovBR utiliza URLs diferentes para cada cidade.
  20. Boa tarde Marcel, Mande para mim por e-mail o arquivo -env-lot-c.xml referente ao envio do RPS 98. e o arquivo -rec-c.xml
  21. Bom dia João, O DACTE disponivel não esta completo, ainda falta algumas coisas, uma delas é o quadro que apresenta os dados de produtos perigosos. Você tem toda a liberdade de realizar essa implementação e ficariamos gratos se depois disponibiliza-se para a comunidade.
  22. Bom dia Vinicio, Continua a mesma, a Nota Técnica não diz nada que temos que utilizar uma nova série para enviar para o SVC.
  23. Bom dia Robinho, Agora temos um documento emitido pelo ENCAT que contem as orientações de como proceder. Quanto ao componente não muda nada, como esta claro nesse documento chamado de Boletim Técnico, trata-se apenas da forma correta de passar as informações. Mas para que uma transportadora possa lançar mão dessa alternativa, necessita de uma autorização concedida pela UF de sua jurisdição (veja item 2). Só não consta nesse Boletim Técnico como proceder com as notas, mas acredito que devemos relacionar todas elas.
  24. Bom dia, Descobri o problema. Ele se encontra na function rCampoCNPJCPF que possui a seguinte lógica: result := rCampo(tcStr, 'CNPJ'); if trim(result) = '' then result := rCampo(tcStr, 'CPF'); Note que le primeiramente a tag CNPJ se o retorno for vazio le a tag CPJ. Acontece que dentro do grupo <rem> temos o grupo <enderReme> e podemos ter também um dos grupos: infNF, infNFe, infOutros. Dentro do grupo <infNF> podemos ter o grupo <locRet> ou seja o local de retirada que também poderá ter as tags CNPJ ou CPJ. No seu XML tem o grupo <locRet> com a tag <CNPJ> isso faz com que a funcion pegue o conteudo dessa tag em vez do CPF do Remetente. Se alterarmos a function para a seguinte lógica: result := rCampo(tcStr, 'CPF'); if trim(result) = '' then result := rCampo(tcStr, 'CNPJ'); O seu problema fica resolvido, pois ele vai ler o CPF do Remetente. Mas por outro lado imagina que o Remetente possui CNPJ e a pessoa referente ao local de retirada possui um CPF, a function vai pegar primeiramente o CPF do local de retirada e não o CNPJ do remetente. Sendo assim, a minha sugestão é estudar as function rExtrai e rCampo que estão na unit pcnLeitor.
×
×
  • 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.