public NFSe CriarNFSe(Stream stream) { var xmlDoc = new XPathDocument(stream); var navigator = xmlDoc.CreateNavigator(); var manager = new XmlNamespaceManager(navigator.NameTable); manager.AddNamespace("tc", "http://www.issnetonline.com.br/webserviceabrasf/vsd/tipos_complexos.xsd"); manager.AddNamespace("ts", "http://www.issnetonline.com.br/webserviceabrasf/vsd/tipos_simples.xsd"); var nodeNumeroNFSe = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:Numero", manager); var nodeCodigoVerificacao = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:CodigoVerificacao", manager); var nodeDataEmissao = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:DataEmissao", manager); var nodeNumeroRPS = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:IdentificacaoRps/tc:Numero", manager); var nodeDiscriminacao = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:Servico/tc:Discriminacao", manager); var nodeTomadorCNPJ = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:TomadorServico/tc:IdentificacaoTomador/tc:CpfCnpj/tc:Cnpj", manager); var nodeTomadorCPF = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:TomadorServico/tc:IdentificacaoTomador/tc:CpfCnpj/tc:Cpf", manager); var nodeTomadorNome = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:TomadorServico/tc:RazaoSocial", manager); var nodeValorServico = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:Servico/tc:Valores/tc:ValorServicos", manager); var nodeValorISS = navigator.SelectSingleNode("//tc:Nfse/tc:InfNfse/tc:Servico/tc:Valores/tc:ValorIss", manager); var numeroNFSe = nodeNumeroNFSe.Value; var codigoVerificacao = nodeCodigoVerificacao.Value; var dataEmissao = nodeDataEmissao.Value; var numeroRPS = (nodeNumeroRPS != null ? nodeNumeroRPS.Value : ""); var discrimincacao = nodeDiscriminacao.Value; var pedido = discrimincacao.Substring(0, 17).Replace("Pedido:", "").Trim(); var cnpj = nodeTomadorCNPJ != null ? nodeTomadorCNPJ.Value : ""; var cpf = nodeTomadorCPF != null ? nodeTomadorCPF.Value : ""; var documentoTomador = cnpj == "" ? cpf : cnpj; var nomeTomador = nodeTomadorNome.Value; var valorServico = nodeValorServico.Value; var valorISS = nodeValorISS.Value; var nfse = new NFSe(); nfse.NumeroNFSe = numeroNFSe; nfse.CodigoVerificacao = codigoVerificacao; nfse.DataEmissao = dataEmissao.ToDateTime(); nfse.NumeroRPS = numeroRPS; nfse.Discriminacao = discrimincacao; nfse.NumeroPedido = pedido; nfse.DocumentoTomador = documentoTomador; nfse.NomeTomador = nomeTomador; nfse.ValorNFSe = double.Parse(valorServico.Replace(".", ",")); nfse.ValorISS = double.Parse(valorISS.Replace(".", ",")); return(nfse); }
public NFSe Salvar(NFSe nfse) { using (var conexao = this._connectionFactory.CreateAndOpenConnection()) { var cmd = new SqlCommand(@"INSERT INTO [dbo].[NFSE]( [numeroNFSe] ,[codigoVerificacao] ,[dataEmissao] ,[numeroRPS] ,[discriminacao] ,[numeroPedido] ,[documentoTomador] ,[nomeTomador] ,[valorNFSe] ,[valorISS]) VALUES (@numeroNFSe ,@codigoVerificacao ,@dataEmissao ,@numeroRPS ,@discriminacao ,@numeroPedido ,@documentoTomador ,@nomeTomador ,@valorNFSe ,@valorISS)", conexao); cmd.Parameters.AddWithValue("@numeroNFSe", nfse.NumeroNFSe); cmd.Parameters.AddWithValue("@codigoVerificacao", nfse.CodigoVerificacao); cmd.Parameters.AddWithValue("@dataEmissao", nfse.DataEmissao); cmd.Parameters.AddWithValue("@numeroRPS", nfse.NumeroRPS); cmd.Parameters.AddWithValue("@discriminacao", nfse.Discriminacao); cmd.Parameters.AddWithValue("@numeroPedido", nfse.NumeroPedido); cmd.Parameters.AddWithValue("@documentoTomador", nfse.DocumentoTomador); cmd.Parameters.AddWithValue("@nomeTomador", nfse.NomeTomador); cmd.Parameters.AddWithValue("@valorNFSe", nfse.ValorNFSe); cmd.Parameters.AddWithValue("@valorISS", nfse.ValorISS); cmd.ExecuteNonQuery(); } return(nfse); }