Ir para conteúdo
  • Cadastre-se

IvanGoncalves

Membros
  • Total de ítens

    96
  • Registro em

  • Última visita

Tudo que IvanGoncalves postou

  1. Estou com problemas para utilizar a função "ACBrValidadorValidarGTIN();" Veja alguns codigos de barras que nao validam... 7896645900026 7898908141016 7893946087173 7897186015095 7891060886139 7898132132019 7506195185568 Debugando, identifiquei que na procedure "TACBrValidador.ValidarGTIN;", o erro acontece na validação do digito verificador. O interessante é que na function "EAN13Valido()" funciona, e por isso tenho que utilizar os dois procedimentos para validar. Será que alguem poderia me ajudar?
  2. Conforme tópico que eu mesmo criei "http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=23&t=4046", havia um problema com o registro 0205. Além deste, o registro C396 não esta gerando. Gostaria que havaliassem e se estou certo, alterassem os fontes... Na unit "ACBrEPCBloco_0.pas", nas linhas 355, 356, 360 e 361, descomentar a declaracao dos campos DT_INI e DT_FIM... //REGISTRO 0205: ALTERAÇÃO DO ITEM TRegistro0205 = class private FDESCR_ANT_ITEM : string; //Descrição anterior do item FDT_INI : TDateTime; //Data inicial de utilização da descrição do item FDT_FIM : TDateTime; //Data final de utilização da descrição do item FCOD_ANT_ITEM : string; //Código anterior do item com relação à última informação apresentada public property DESCR_ANT_ITEM : string read FDESCR_ANT_ITEM write FDESCR_ANT_ITEM; property DT_INI : TDateTime read FDT_INI write FDT_INI; property DT_FIM : TDateTime read FDT_FIM write FDT_FIM; property COD_ANT_ITEM : string read FCOD_ANT_ITEM write FCOD_ANT_ITEM; end; Na unit "ACBrEPCBloco_0_Class.pas", na linha 670, trocar para "DT_FIM" pois esta como "DT_FIN" (pegando a instancia do registro 0000). procedure TBloco_0.WriteRegistro0205(Reg0200: TRegistro0200) ; var intFor: integer; begin if Assigned( Reg0200.Registro0205 ) then begin for intFor := 0 to Reg0200.Registro0205.Count - 1 do begin with Reg0200.Registro0205.Items[intFor] do begin Add( LFill('0205') + LFill( DESCR_ANT_ITEM ) + LFill( DT_INI ) + LFill( DT_FIM ) + LFill( COD_ANT_ITEM) ) ; end; Registro0990.QTD_LIN_0 := Registro0990.QTD_LIN_0 + 1; end; /// Variavél para armazenar a quantidade de registro do tipo. FRegistro0205Count := FRegistro0205Count + Reg0200.Registro0205.Count; end; end; Na unit "ACBrEPCBloco_C_Class", na linha 1727, esta faltando o comando "WriteRegistroC396( RegC010.RegistroC395.Items[intFor] );" para gravar o registro C396... procedure TBloco_C.WriteRegistroC395(RegC010: TRegistroC010); var intFor: integer; begin if Assigned(RegC010.RegistroC395) then begin for intFor := 0 to RegC010.RegistroC395.Count - 1 do begin with RegC010.RegistroC395.Items[intFor] do begin Add( LFill('C395') + LFill(COD_MOD) + LFill(COD_PART) + LFill(SER) + LFill(SUB_SER) + LFill(NUM_DOC) + LFill(DT_DOC, 'ddmmyyyy') + LFill(VL_DOC,0,2) ); // Registros FILHOS WriteRegistroC396( RegC010.RegistroC395.Items[intFor] ); // RegistroC990.QTD_LIN_C := RegistroC990.QTD_LIN_C + 1; end; end; // Variavél para armazenar a quantidade de registro do tipo. FRegistroC395Count := FRegistroC395Count + RegC010.RegistroC395.Count; end; end; Desde já agradeço...
  3. Para resolver o problema, teria que descomentar a declaracao das variaveis e property da classe "TRegistro0205", porém, a declaraçao para a data final esta "DT_FIM" e no metodo "WriteRegistro0205", esta adicionando "DT_FIN".
  4. Entendi... a forma que eu estou implementando é a mesma que na implementacao do SPED Fiscal (ICMS/IPI) with ACBrSpedPisCofins.Bloco_0 do begin with Registro0000New do begin with Registro0001New do begin with Registro0140New do begin with Registro0200New do begin with Registro0205New do begin DESCR_ANT_ITEM := objSpedFiscalDados.QrySpedPC_0205.FindField('DESCRICAO_ANTERIOR').AsString; DT_INI := objSpedFiscalDados.QrySpedPC_0205.FindField('DATA_INICIAL_USO').AsDateTime; DT_FIN := objSpedFiscalDados.QrySpedPC_0205.FindField('DATA_FINAL_USO').AsDateTime; COD_ANT_ITEM := objSpedFiscalDados.QrySpedPC_0205.FindField('CODIGO_ANTERIOR_ITEM').AsString; end; end; end; end; end; end; essa é a hierarquia dos meus fontes, claro, depois do with de cada classe eu defino primeiro os campos do determinado registro... como nao tenho os campos da data nesta classe, o delphi entende que é as propriedades do "with" do registro 0000. Como devo proceder então para preencher os campos do registro 0205?
  5. Veja o arquivo... As datas preenchidas nos registros 0205 são todas '01.10.2011' e '31.10.2011', e a data inicial e final do registro 0000, preencheu com '08.12.2010' e '25.10.2011', que é a data inicial e final do ultimo registro 0205 do arquivo... Tambem nao entendi como isso acontece, pois debugando, no metodo "WriteRegistro0000", o valor esta correto paras os campos DT_INI e DT_FIN do registro 0000, mas no arquivo nao salva os mesmos valores. Ja conferi varias vezes, os valores que defino para as propriedades de ambas as classes, estão corretos, porém, os valores salvos no arquivo, não. arquivo.txt
  6. No registro 0205, nao esta gravando no arquivo os valores definidos para os campos DT_INI e DT_FIN que realmente deveria... ao invés disso, grava em todos os registros 0205 do arquivo, a data inicial e final da apuracao, DT_INI e DT_FIN do registro 0000 (conforme exemplo acima, ta gravando '01.10.2011' e '31.10.2011' para todos os registros 0205 do arquivo). Nos campos DT_INI e DT_FIN do registro 0000, ao inves de gravar '01.10.2011' e '31.10.2011', que é os valores definidos, o valor gravado nos campos é a data inicial e final do ultimo registro 0205 do arquivo. Isso apenas contece se no arquivo existir algum registro 0205, senao nao acontece o problema...
  7. Os registro 0000 e 0205 tem dois campos em comum: DT_INI e DT_FIN. Vamos supor que eu estou gerando o SPED PIS/COFINS do mes de outubro/2010, então eu preencho esses dois campos com '01/10/2011' e '31/10/2011' respectivamente. Caso meu arquivo nao tenha nenhum registro 0205 que compreenda o campo DT_FIN neste periodo, ou seja, nao tenho nenhum registro 0205 para informar, esses campos, no registro 0000, serao preenchidos corretamente, com '01/10/2011' e '31/10/2011'. Mas se eu definir um ou mais registro 0205, o problema acontece... Para qualquer registro 0205, o componente define para os campos DT_INI e DT_FIN, '01/10/2011' e '31/10/2011', e as datas do ultimo registro 0205, o componente define para os campos do registro 0000. Agradeço se puderem me ajudar...
  8. Olá pessoal... Acredito que a maioria tem o conhecimento de que o XML de distribuição da NF-e obrigatoriamente tem que constar os campos de autorização de uso no final do arquivo. Mas alguns clientes meus, para os quais minha empresa fornece o software de emissão da NF-e, estão recebendo de seus fornecedores o arquivo apenas com a assinatura digital, que é o arquivo utilizado para transmitir a NF-e. Minhas duvida é a seguinte... 1) Este arquivo tambem pode ser igualmente distribuido, ou existe alguma lei ou algum embasamento que especifique que o arquivo que o emitente deve disponibilizar ao destinatario da NF-e é o aquivo de distribuição, aquele que consta todas as informações de autorização de uso? E se por uma eventualidade meu cliente tiver que apresentar este arquivo a algum fiscal, este arquivo é valido? ou apenas o de distribuição é o aquivo que o emitente e o destinatario devem guardar pelo prazo previsto em lei? Grato e fiquem a vontate para expressar suas opiniões...
  9. <?xml version="1.0" encoding="UTF-8"?>4267164611VENDA DE PROD. DO ESTABELECIMENTO15528222010-12-10142024041101101.0.4008796968000188BRANCA TINTAS E TEXTURAS LTDA MEBLU TINTASRUA PROF. JACOB INEICHEN219SALA BITOUPAVA CENTRA4202404BLUMENAUSC860666001058BRASIL4733340950255419244178980794000194ROCHA IND. E COM. MAT CONSTRUCAOR.CURT HERING,680CENTRO4214003PRESIDENTE GETULIOSC891500001058BRASIL473521459251223949branca.nfe@gmail.com743ZWINCAL 5 L382440005401GL40.00009.5000000000380.00GL40.00009.5000000000102014513.000.0022.613.0011.4001380.001.656.2701380.007.6028.88VALOR SUBST.TRIB: R$ 22,61742ZWINCAL 1 L382440005401UN36.00002.450000000088.20UN36.00002.4500000000102014119.070.005.253.002.650188.201.651.460188.207.606.70VALOR SUBST.TRIB: R$ 5,250.000.00632.0727.86468.200.000.000.000.000.000.000.000.00496.0617636.00002/000822/012011-01-09261.9602/000822/022011-02-08234.10CLIENTE: 02022-ROCHA;EMPRESA OPTANTE PELO SIMPLES NACIONAL9ypYCLeUxbiEnIMOKb0EttnEzkc=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-12-10T09:57:113421000682713729ypYCLeUxbiEnIMOKb0EttnEzkc=100Autorizado o uso da NF-e
  10. Não consigo postar o arquivo, dá a seguinte mensagem: "Desculpe, o limite de quota de anexos foi alcançado." Vou postar o conteudo do arquivo...
  11. Olá pessoal... Estou importando um arquivo XML utilizando o comando "LoadFromFile", e depois vou acessando as propriedades para pegar os valores. O arquivo que estou querendo importar não possui as Tags de IPI, mas o componente coloca como padrao o CST 00 da tabela de CST´s de IPI, onde ao meu ver deveria estar vazio. Alguém já percebeu este detalhe? Já procurei tópicos sobre esta situação e não encontrei nada. Será que é para ser assim mesmo? Grato a todos!
  12. Olá pessoal, estou com o mesmo problema aqui em SC. Ao consultar, retorna o erro 217 - Nf-e não consta na base de dados do SEFAZ. Alguem ai sabe alguma forma de fazer isso? Quando lançarem a NF-e 3.0 nao vai dar pra consultar notas de outras versoes se a estrutura que utilizo pra enviar notas é diferente da versao da nota recebida de terceiros e que quero consultar a validade...
  13. Olá pessoal, tbm estou em busca da solucao ideal... Tbm fiz consulta em uma consultoria fiscal e eles me responderam o seguinte... Para o emitente optante pelo simples nacional, os códigos vão de acordo com o perfil do destinatario... Ex.: Destinatario é pessoa fisica ou tbm optante pelo simples nacional e caso o produto seja tributado, devo informar o CSOSN que não dá direito a credito (102 ou 202). Quando destinatario for optante pelo regime normal (Lucro real ou presumido), e caso o produto seja tributado, devo disponibilizar o credito com o CSOSN (101 ou 201), desde que o destinatario utilize o produto p/ revenda ou materia-prima, senao nao disponibilizaria o credito. No caso do produto ser utilizado p/ revenda ou materia-prima, decidimos aqui na minha empresa, de nao fazer esta verificacao, apenas sobre o regime tributario em que se enquadra o destinatario da mercadoria. Sobre as alteracoes do sistema, foram criados os seguintes campos: -> Tabela de empresa: CRT e Aliquota de credito do ICMS do Simples Nacional (Essa aliquota pode mudar mes a mes, de acordo com o faturamento do contribuinte. Quem deve passar essa aliquota é a própria contabilidade). -> Tabela de Clientes/Fornecedores: CRT, para que se possa identificar se o destinatario da mercadoria pode ou não se beneficiar do credito, lembrando que decidimos não verificar p/ que esse vai utilizar a mercadoria. -> Tabela da Nota Fiscal: nas informacoes adicionais vai a seguinte mensagem "PERMITE O APROVEITAMENTO DO CRÉDITO DE ICMS NO VALOR DE R$_______; CORRESPONDENTE A ALÍQUOTA DE ____% NOS TERMOS DO ART. 23 DA LC 123." -> Tabela dos Itens da Nota Fiscal: CSOSN, BC do credito, Aliquota do Credito e Valor do Credito. Trocando mais algumas ideis com uma contabilidade muito fera que temos aqui, montamos o seguinte algoritimo: se emitente = simples_nacional entao se cst_icms = 60 entao csosn = 500 // ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação. senao se cst_icms = 40 ou 50 entao csosn = 300 // Imune. senao se cst_icms = 41 entao csosn = 400 // Não tributada pelo Simples Nacional. senao se (destinatario = pessoa_fisica) or (destinatario = simples_nacional) entao se cst_icms = 10 ou 30 ou 70 then 202 // Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por Substituição Tributária. senao 102; // Tributada pelo Simples Nacional sem permissão de crédito. senao se cst_icms = 10 ou 70 entao 900 // Outros. senao se cst_icms = 30 entao 201 // Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por Substituição Tributária. senao 101; // Tributada pelo Simples Nacional com permissão de crédito. Espero ter ajudado... Aguardo alguma correcao ou melhoria...
  14. Sobre o protocolo, descobri o problema. Ao pegar o retorno, eu estava utilizando da seguinte forma... objACBrNFe.WebServices.Consulta.protNFe.nProt -> "protNFe" o correto é assim... objACBrNFe.WebServices.Consulta.retCancNFe.nProt - > "retCancNFe" mas fica a duvida ainda da justificativa... se estou reenviando o cancelamento da NF-e, existe uma forma de eu buscar qual foi a justificativa digitada pelo usuario que realmente esta na base de dados do SEFAZ?
  15. O envio do cancelamento esta funcionando 100%. Mas estou com problemas quando por algum motivo tenho que reenviar o pedido de cancelamento. É muito dificil acontecer, mas pode. Estou fazendo o tratamento dessa situacao, reenviando uma NF-e que na base do SEFAZ ja esta como cancelada, mas no sistema ainda não. Quando o meu sistema envia o cancelamento, eu verifico se o cStat é igual a 218 (Nota Fiscal já cancelada na base do Sefaz). Entao faço uma consulta pela chave de acesso, para pegar o protocolo de cancelamento (diferente do protocolo de autorizacao): // define a chave de acesso a ser consultada objACBrNFe.WebServices.Consulta.NFeChave := strChave; // consulta a situacao da NFe no WS do SEFAZ objACBrNFe.WebServices.Consulta.Executar; Pois bem, só que o componente retorna p/ mim é o cStat = 100, e o protocolo de autorizacao, e nao de cancelamento... Existe alguma outra forma de buscar essas informacoes? Existe uma forma de pegar a justificativa original do pedido de cancelamento? Pois o usuario pode ter digitado diferente no primeiro envio... Grato a quem puder ajudar...
  16. eu utilizo da seguinte forma... ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.cStat onde "i" é o indice da nota adicionada no componente, p/ quando é enviado varias notas ao mesmo tempo...
  17. Até onde sei, caso não ocorra nenhum erro no envio, o componente faz esse trabalho sozinho, mas isso acredito que vc ja sabe. Aconselho debugar direitinho pra tentar localizar algum erro. Quanto ao erro de duplicidade, eu faço aqui no meu programa o seguinte: - No momento em que vou pegar as informacoes de envio (cStat, xMotivo, nProt, etc), eu verifico se o cStat é de Duplicidade (204) ou de NFe já cancelada na base da SEFAZ (218); if objACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.cStat in [204,218] then - executo os seguintes comandos dentro do if: // define a chave de acesso a ser consultada objACBrNFe.WebServices.Consulta.NFeChave := objACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.chNFe; // consulta a situacao da NFe no WS do SEFAZ objACBrNFe.WebServices.Consulta.Executar; - pego as informacoes da nova consulta para atualizar meu banco de dados: objACBrNFe.WebServices.Consulta.protNFe.nProt; objACBrNFe.WebServices.Consulta.protNFe.cStat; objACBrNFe.WebServices.Consulta.protNFe.xMotivo; objACBrNFe.WebServices.Consulta.protNFe.dhRecbto; TpAmbToStr(objACBrNFe.WebServices.Consulta.protNFe.tpAmb); objACBrNFe.WebServices.Consulta.protNFe.verAplic; objACBrNFe.WebServices.Consulta.protNFe.digVal; Espero ter ajudado...
  18. Olá pessoal... Já que o forum web esta fora do ar, vou aproveitar este forum p/ tirar minhas duvidas... Vamo lá... Algum poderia me ajudar, ou passar algum exemplo, caso seja possivel com o ACBr, de como consultar a validade de uma NFe do fornecedor, ou seja, quando recebo uma NFe, atraves da chave de acesso... pegando status e numero do protocolo de autorização. Vlw pessoal...
×
×
  • 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.