Search the Community
Showing results for tags 'c#'.
-
Olá, pessoal! Gostaria de informar que foi disponibilizada uma nova classe InfNFeSupl no pacote ACBrLib.NFe para a linguagem C#, na Rev-35220. Esta classe é responsável pela seção InfNFeSupl do XML da NF-e. Aqui está um trecho da classe com suas propriedades: namespace ACBrLib.NFe { public sealed class InfNFeSupl { public string qrCode { get; set; } public string urlChave { get; set; } } } Requisitos: A partir da versão 1.4.7.304 da DLL.
-
Bom dia pessoal, tudo bem? Segue algumas contribuições feitas de acordo com o MOC e com as NT's, conforme estávamos desenvolvendo, verificamos que algumas TAG's não existiam nos componentes em C#. Classe ProdutoNFe.cs em NFe\Imports\Dinamico\Shared\NotaFiscal ProdutoNFe.cs NT 2020.005 V1.21 Inserido as seguintes propriedades: cBarra, cBarraTrib Classe ICMSProdutoNFe.cs em NFe\Imports\Dinamico\Shared\NotaFiscal ICMSProdutoNFe.cs NT 2020.005 V1.21 Inserido as seguintes propriedades: pFCPDif, vFCPDif, vFCPEfet NT 2023.001 V1.10 Inserido as seguintes propriedades: qBCMono, qBCMonoReten, qBCMonoRet NT 2023.001 V1.20 Inserido as seguintes propriedades: vICMSMonoOp NT 2023.002 V1.00 Inserido as seguintes propriedades: vICMSMono, vICMSMonoReten, adRemICMS, adRemICMSReten, adRemICMSRet Classe TotalNFe.cs em NFe\Imports\Dinamico\Shared\NotaFiscal TotalNFe.cs NT 2023.001 V1.10 Inserido as seguintes propriedades: vICMSMono, vICMSMonoReten, vICMSMonoRet, qBCMono, qBCMonoReten, qBCMonoRet Classe CSTIcms.cs em Shared\ACBrLib.Core\DFe CSTIcms.cs NT 2023.002 V1.00 Inseridos os seguintes CST's: 02, 15, 53, 61;
-
Linguagem C#. Bom dia, estou tentando emitir um CT-e e está retornando a seguinte rejeição: Rejeição: Não informado os dados do remetente indicado como tomador do serviço Conferindo no meu código onde alimento o Identificacao.Toma, está da seguinte forma(para esse CT-e em específico): newCTE.Identificacao.toma = (int)TomadorCTe.Expedidor Até o momento antes do .Assinar() e do .Validar(), o toma está alimentado corretamente, com o valor 1 (Expedidor), e os dados do meu expedidor estão sendo alimentados da forma correta, conforme imagens abaixo. Utilizando o parâmetro ObterIni(0) do meu CT-e carregado, após LimparLista() e utilizar o CarregarINI(CTe.ToString()) para carregar o mesmo, o toma ao invés de ser preenchido com 1 conforme eu alimentei, está sendo retornado como 0, o mesmo para o XML gerado após assinar e validar. Arquivo INI do meu CT-e em anexo. CTe.txt
-
Boa tarde, tag dup em desacordo com o MOC. Não aceita mais de um registro. Alterações na classe CobrCTe.cs. dup alterado para lista public List<DupCTe> dup { get; set; } = new List<DupCTe>(); Alterações na classe CT-e.cs: Método WriteToIni for (var i = 0; i < GrupoInformacoesNormalSubstituto.cobr.dup.Count; i++) { var dup = GrupoInformacoesNormalSubstituto.cobr.dup[i]; iniData.WriteToIni(dup, $"dup{i + 1:000}"); } Método ReadFromIni var r = 0; DupCTe dup; do { r++; dup = iniData.ReadFromIni<DupCTe>($"dup{r:000}"); if (dup != null) GrupoInformacoesNormalSubstituto.cobr.dup.Add(dup); } while (dup != null); CobrCTe.cs
-
Agora consegui fazer emitir, tive que fazer algumas adequações aqui no meu código também, mas emitiu certinho, outra coisa que reparei também, é que mesmo eu preenchendo o TAF, no Validar() está retornando que não foi preenchido o NroRegEstadual, porém ambos são Choice Elements entre um e outro. E verificando aqui também, a UF também não é um elemento obrigatório, se eu não alimentasse a mesma deveria permitir na validação. Falha na validação do Modal do Conhecimento: 48 TAG:<CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infModal versaoModal="4.00"><CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infModal versaoModal="4.00"><CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infCTeNorm><infModal versaoModal="4.00"><rodoOS><veic><prop> ID:#11/NroRegEstadual(N�mero do Registro Estadual) - Nenhum valor informado. TAG:<CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infModal versaoModal="4.00"><CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infModal versaoModal="4.00"><CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infCTeNorm><infModal versaoModal="4.00"><rodoOS><veic><prop> ID:#14/UF(C�digo do UF (Unidade da Federa��o)) - Nenhum valor informado. TAG:<CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infModal versaoModal="4.00"><CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infModal versaoModal="4.00"><CTeOS xmlns="http://www.portalfiscal.inf.br/cte" versao="4.00"><infCTeNorm><infModal versaoModal="4.00"><rodoOS><veic><prop> ID:#14/UF(Sigla da UF) - Conte�do inv�lido. --> 1840 - Element '{http://www.portalfiscal.inf.br/cte}UF': [facet 'enumeration'] The value '' is not an element of the set {'AC', 'AL', 'AM', 'AP', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MG', 'MS', 'MT', 'PA', 'PB', 'PE', 'PI', 'PR', 'RJ', 'RN', 'RO', 'RR', 'RS', 'SC', 'SE', 'SP', 'TO', 'EX'}. Apenas para informação, meu tipo do CTe é normal e o tipo de serviço é excesso de bagagem.
-
Contribuição ACBrCTe - C#
Lindomar S. Menezes posted a topic in DFe - Documentos Fiscais Eletrônicos
Boa tarde, pequena contribuição no ACBrCTe do C#, a classe InfDoc está em desacordo com o MOC, onde diz que o infOutros pode ter mais de uma ocorrência. Na classe InfDocCTe.cs, apenas alterei o infOutros para lista: public List<InfOutrosCTe> infOutros { get; set; } = new List<InfOutrosCTe>(); Na classe CTe.cs, inseri o código para ler e escrever o INI da infOutros: Método ReadFromIni(ACBrIniFile iniData) da classe CTe.cs: var q = 0; InfOutrosCTe infOutros; do { q++; infOutros = iniData.ReadFromIni<InfOutrosCTe>($"infOutros{q:000}"); if (infOutros != null) GrupoInformacoesNormalSubstituto.infDoc.infOutros.Add(infOutros); } while (infOutros != null); Método ACBrIniFile WriteToIni() da classe CTe.cs: for (var i = 0; i < GrupoInformacoesNormalSubstituto.infDoc.infOutros.Count; i++) { var infOutros = GrupoInformacoesNormalSubstituto.infDoc.infOutros[i]; iniData.WriteToIni(infOutros, $"infOutros{i + 1:000}"); } CT-e gerado: InfDocCTe.cs -
Bom dia, no componente ACBr para C# a TAG infCTeMultimodal está divergente de como está na NT, atualmente a classe não está como lista, aceitando somente 1 registro. Fiz a alteração da mesma, segue em anexo arquivo atualizado. alterado de: public InfCTeMultimodalCTe infCTeMultimodal { get; set; } = new InfCTeMultimodalCTe(); para: public List<InfCTeMultimodalCTe> infCTeMultimodal { get; set; } = new List<InfCTeMultimodalCTe>(); Além disso, ela é uma das classes onde não está sendo gerada no XML. Debugando para verificar o processo que é feito, dentro da CTe.cs, no método ReadFromIni(ACBrIniFile iniData), o iniData não contém a ocorrência dessa tag, o mesmo se repete utilizando o comando CarregarXML(), de um XML já emitido que contenha a TAG alimentada, quando eu utilizo o ObterIni(), ou carrego a classe CTe em minha var, com base no INI, a classe não é alimentada. InfServVincCTe.cs
-
Boa tarde, a tag infNF não estava sendo alimentada ao emitir o CT-e, fiz a implementação para leitura e gravação na classe CTe.cs como as demais e emitiu normalmente, segue contribuição: Alterações na classe CTe.cs Alterações no método WriteToIni() for (var i = 0; i < GrupoInformacoesNormalSubstituto.infDoc.infNF.Count; i++) { var infNF = GrupoInformacoesNormalSubstituto.infDoc.infNF[i]; iniData.WriteToIni(infNF, $"infNF{i + 1:000}"); } Alterações no método ReadFromIni() a = 0; InfNFCTe infNF; do { a++; infNF = iniData.ReadFromIni<InfNFCTe>($"infNF{a:000}"); if (infNF != null) GrupoInformacoesNormalSubstituto.infDoc.infNF.Add(infNF); } while (infNF != null); XML alimentado após a emissão.
-
Bom dia, estou com a seguinte rejeição na emissão do CT-e 4.0 em C#: Rejeição: Elemento cteCabecMsg inexistente no SOAP Header UF emissão SC. Havia conversado com o Diego Folieni no canal acbr-pro no Discord, porém como estou sem acesso ao Discord vinculado com a conta pro, vou postar por aqui. Em conversa no Discord foi comentado que era pra entrar em contato com a SEFAZ verificando qual o motivo deles estarem exigindo a tag na versão 4.0, pois ela não é necessária, porém comparando as rotinas com a linguagem Delphi, a emissão ocorre normalmente, já em C# retorna esse erro do cteCabecMsg. A configuração do componente está correta, para ser emitida em 4.0. Outra coisa estranha que notei, é no retorno do envio, está voltando como se fosse versão 3.0; Em Delphi e em C#, as classes são alimentadas da mesma forma, seguem a mesma rotina, alimentação das classes, assinatura, validação e envio, no Delphi a mesma nota é emitida normalmente enquanto no C# a nota é rejeitada.
-
Bom dia, o componente não atendia as informações do infGTVe do MOC 4.0. Classe InfGTVe: InfGTVe.cs A classe possui o campo chCTe de acordo com o MOC, e possui o grupo Comp para preenchimento das informações do Componente GTVe. Classe ComponentesValGTVe.cs: ComponentesValGTVe.cs A classe possui os dados para preenchimento do grupo Comp da tag infGTVe. Classe TipoComponenteGTVe: TipoComponenteGTVe.cs Classe enumerada para preenchimento do TipoComponente na classe ComponentesValGTVe. Essa classe foi criada em ACBr\Shared\ACBrLib.Core\CTe, segui o padrão dos demais arquivos, por isso criei neste local. Alterações na classe GrupoInformacoesNormalSubstituto.cs Criado propriedade infGTVe para preenchimento da mesma de acordo com o MOC 4.0 public List<InfGTVe> infGTVe { get; set; } = new List<InfGTVe>(); Alterações na classe CTe.cs: Alterações no método WriteToIni: for (var i = 0; i < GrupoInformacoesNormalSubstituto.infGTVe.Count; i++) { var infGTVe = GrupoInformacoesNormalSubstituto.infGTVe[i]; iniData.WriteToIni(infGTVe, $"infGTVe{i + 1:000}"); for (var j = 0; j < GrupoInformacoesNormalSubstituto.infGTVe[i].Comp.Count; j++) { var Comp = GrupoInformacoesNormalSubstituto.infGTVe[i].Comp[j]; iniData.WriteToIni(Comp, $"infGTVeComp{i + 1:000}{j + 1:000}"); } } Alterações no método ReadFromIni var t = 0; InfGTVe infGTVe; do { t++; infGTVe = iniData.ReadFromIni<InfGTVe>($"infGTVe{t:000}"); if (infGTVe != null) { var u = 0; ComponentesValGTVe compValGTVe; do { u++; compValGTVe = iniData.ReadFromIni<ComponentesValGTVe>($"infGTVeComp{t:000}{u:000}"); if (compValGTVe != null) infGTVe.Comp.Add(compValGTVe); } while (compValGTVe != null); GrupoInformacoesNormalSubstituto.infGTVe.Add(infGTVe); } } while (infGTVe != null); Obs: no ObterIni, a infGTVe é retornada como se fosse uma TAG de varias ocorrências(infGTVe001), porém ela é uma TAG de apenas uma ocorrência, não deveria ser apenas infGTVe?
-
Bom dia, a tag docAnt não está sendo carregada pelo método ACBrCTe.ObterIni(); Arquivo XML: 42230817089484000190570020000008441307585741-cte.xml Arquivo INI: CTe - Ini gerado.txt
-
Boa tarde, estou com outra situação referente a classe CTe.cs. using (DFeCTe dfe = new DFeCTe()) { dfe.ConfigurarComponente(GlobalVariables.ConfigEstacao.CodConfig); \\ Carrego meu XML no componente dfe.ACBrCTe.CarregarXML("C:\\SGBR\\Master\\Arquivos CTe\\XML\\17089484000190\\202307\\CTe\\42230717089484000190570020000007411944582580-cte.xml"); \\ Carrego o INI do CT-e na minha var string strINI = dfe.ACBrCTe.ObterIni(0); \\ Carrego a classe com base no INI ACBrLib.CTe.CTe CTe = ACBrLib.CTe.CTe.Load(strINI); *Faço algumas alterações no CTe* \\ Carrego a minha classe com algumas alterações como um novo índice dfe.ACBrCTe.CarregarINI(CTe.ToString()); \\ Somente para conferir o retorno da classe string strCTe = CTe.ToString(); \\ Carrega o INI do CTe com as alterações strINI = dfe.ACBrCTe.ObterIni(1); \\ Grava o meu XML com as alterações dfe.ACBrCTe.GravarXml(1, "testelindomar-cte.xml", "C:\\SGBR\\Master\\Arquivos CTe\\XML\\17089484000190\\202307\\CTe\\"); } string strINI - Em um primeiro momento, quando eu obtenho o arquivo INI do meu CTe (Index 0), a tag protCTe está presente no INI(Arquivo em anexo). ACBrLib.CTe.CTe CTe CT-e - Carregando a classe, a classe ProtCTe também está presente (https://prnt.sc/GOR5B7WdibsS). strCTe - Convertendo a classe para string(apenas para verificar se está gerando tudo certo), a classe ProtCTe também está presente. (Arquivo em anexo). strINI(Último).txt - strINI - Obtendo o INI do índice 1, que é o meu CT-e com as alterações carregadas, a tag procCTe não está mais preenchida da forma devida por algum motivo, consequentemente gerando sem a tag no XML, ao utilizar o .GravarXML(). (Arquivo em anexo). Algumas observações a serem feitas: * Todos os arquivos em anexo. * A classe protCTe foi feita por mim, se observarem até no strCTe tem algumas outras classes que fiz para atender nosso desenvolvimento, que vou disponibiliza-las também. * Classe protCTe em anexo. Alterações minhas na classe CTe.cs. Construtor da classe CTe, apenas cria a propriedade ProtCTe: Propriedade declarada: Método WriteToIni() Método ReadFromIni() strCTe.txt strINI(Último).txt strINI.txt 42230717089484000190570020000007411944582580-cte.xml ProtCTe.cs
-
Classe infCteComp - chCTe
Lindomar S. Menezes posted a topic in DFe - Documentos Fiscais Eletrônicos
Boa tarde, estou alimentando a classe corretamente, porém ao carregar o INI não está alimentando a classe infCteComp, causando rejeição na hora de enviar(Caso precisem do INI, posso fazer envio por e-mail). Favor, desconsiderar as sections a mais que tem no ini, são aquelas classes que irei repassar para rev para possível implementação, assim que todos os testes com a emissão ocorrerem de forma correta aqui em nosso aplicativo. Libs e fontes do ACBr todas atualizadas. Rejeição no .Validar() Falha na validação dos dados do Conhecimento: 781 TAG:<infCteComp> ID:#411/chCTe(Chave do CTe) - Conte�do inv�lido. TAG:<infCteComp> ID:#411/chCTe(Chave do CTe) - Nenhum valor informado. --> 1839 - Element '{http://www.portalfiscal.inf.br/cte}chCTe': [facet 'pattern'] The value '' is not accepted by the pattern '[0-9]{44}'.- 10 replies
-
Linguagem - C# CTe - OS | Rejeição: IE deve ser informada para tomador Contribuinte IE está sendo alimentada na classe, está retornando certo no arquivo INI, porém está retornando rejeição de que a mesma deve ser preenchida ao enviar o mesmo. No Delphi a mesma nota, com as mesmas informações é emitida normalmente, por isso acredito que não seja nada na SEFAZ. Está sendo emitido em ambiente 3.0. Observando o XML gerado após os comandos Assinar() e Validar(), a classe toma4 não está sendo alimentada. 42230717089484000190670020000000141448349226-cte.xml CT-eOS - ObterIni().txt CT-eOS - Classe CTe.txt
-
Bom dia. Tenho um XML com a tag comHora e comData alimentadas no XML, porém ao usar o comando ObterIni() do componente ACBrCTe, as tags comData e semData não aparecem no retorno da função. ArquivoXML: 42230717089484000190570020000008341626927194-cte.xml ArquivoINI: Ini - ObterIni().txt 42230717089484000190570020000008341626927194-cte.xml
-
Boa tarde, estamos fazendo a emissão de um CT-e, e alimentando a TAG ICMS00 da forma correta, inclusive a classe está sendo alimentada da forma correta, porém, após a emissão, o XML que é salvo está com as informações relativas o imposto todas zeradas. XML em anexo. <ICMS> <ICMS00> <CST>00</CST> <vBC>0.00</vBC> <pICMS>0.00</pICMS> <vICMS>0.00</vICMS> </ICMS00> </ICMS> 42230717089484000190570020000007591118368062-cte.xml
-
Bom dia. Estou tentando utilizar as tags tpPer e tpHor no C#, porém as mesmas não estão sendo alimentadas. Minha var do CTe, ambos alimentados (noPeriodo, semData e semHora): Valores alimentados na classe Entrega: Estou alimentando da seguinte forma: DateTime dataProgramada = DateTime.Parse(CTESelecionado.DataProgramada.ToString()); switch (CTESelecionado.TipoPeriodo) { case "1 - NA DATA": newCTE.Complemento.semData = TipoPeriodoCTe.naData; newCTE.Entrega.dProg = dataProgramada; break; } switch (CTESelecionado.TipoHora) { case "1 - NO HORÁRIO": newCTE.Complemento.semHora = TipoHorarioCTe.noHorario; newCTE.Complemento.noPeriodo = TipoHorarioCTe.noHorario; newCTE.Entrega.hProg = CTESelecionado.HoraProgramada.ToString(); break; } Forma como estou carregando o componente com o CTe: Dfe.ACBrCTe.LimparLista(); Dfe.ACBrCTe.CarregarINI(newCTE.ToString()); var iniCTe = Dfe.ACBrCTe.ObterIni(0); ArquivoINI(newCTe) em anexo. newCTe.ini
-
Boa tarde, estou carregando um XML na minha classe pelo ACBrCTe.CarregarXML(); e utilizando o ACBrCTe.GravarXml() para gravá-lo novamente em outro local. Seguindo uma rotina aqui, nos enviamos o cancelamento do CT-e, e após isso carregarmos, alteramos o protCTe com as informações de cancelamento para ficar atualizado na impressão do CT-e, porém não está salvando essas informações e algumas outras ao gravar o XML, assim quando realizamos a impressão do mesmo através do ACBrCTe.Imprimir(), a impressão é visualizada como se o CT-e não tivesse sido emitido. Nós já possuíamos uma rotina parecida através do componente em Delphi, e precisaríamos que a rotina se mante-se em C#. Está correto dessa forma? Se sim, há alguma outra forma de salvar o XML com o protCTe de cancelamento atualizado?
-
Boa tarde, Sou novo aqui no fórum e gostaria de pedir aos senhores algumas orientações. Gostaria de implementar na minha aplicação a emissão de NFSe através das funcionalidades da ACBR preferencialmente utilizando o C#, já procurei pelo forum mas não achei nada conclusivo. Agradeço pela atenção. Att. Caleb C. Nunes
- 1 reply
-
- integracao
- c#
-
(and 1 more)
Tagged with:
-
Boa tarde, estou com dúvidas de como implementar a geração dos registros J1 e J2 utilizando o framework já que esses registros não são listados no componente do ACBrPAF que estou utilizando.
- 3 replies
-
- paf
- registro j
-
(and 2 more)
Tagged with:
-
Sou desenvolvedor .Net, mas não tenho experiencia em automação comercial, programava mais voltado para o mercado de serviços financeiros e softwares de gestão, no entanto estou a fazer parte de um projeto novo que visa justamente o setor de varejo, gostaria de pedir indicações de conteudo para estudo, integraçao, geração de nota e tudo que possa da um norte no desenvolvimento da aplicação em C#. P.S: Caso já haja um topico nesse sentido, peço desculpas. Desde já agradeço a atenção de todos! Forte Abraço!
-
Olá amigos, Gostaria de saber se algum colega aqui já migrou as rotinas ou também esta precisando igual eu das rotinas de NFSe para C# ???
-
Bom dia Pessoal, A algumas semanas estou tentando fazer a integração para emitir NFS-e em Ponta Grossa, eles alteraram o sistema para o Elotech. Encontrei alguns tópicos de algumas pessoas também tendo problemas nessa integração, mas não encontrei nenhuma solução ainda. Desenvolvo em .Net C#. Alguém já conseguiu uma solução? Eles assinam o header do soap, com o Oasis. Arquivos para integração: http://www.pontagrossa.pr.gov.br/iss Obrigado.
-
Ola, Estou começando a trabalhar com SAT agora. Existe algum exemplo de como ativar o SAT em C#? Instalei o ACBRPLUS mas não sei o que preciso para minha aplicação se comunicar com ele. No manual fala para utilizar SAT.Ativar(cnpj,uf) mas de onde vem esse SAT?