public void NotaFiscalParaXml(NotaFiscal notaFiscal)
 {
     if (notaFiscal != null)
     {
         NotaFiscalModeloXml.infNFe               = InfNfeMap.GeraValoresParaInfNFeXml(notaFiscal.ChaveAcesso);
         NotaFiscalModeloXml.infNFe.ide           = IdeMap.GeraValoresParaIdeNFeXml(notaFiscal);
         NotaFiscalModeloXml.infNFe.det           = ProdutoMap.ProdutoParaXml(notaFiscal.Produtos);
         NotaFiscalModeloXml.infNFe.dest          = DestinatarioMap.DestinatarioParaXml(notaFiscal.Destinatario);
         NotaFiscalModeloXml.infNFe.emit          = EmitenteMap.EmitenteParaXml(notaFiscal.Emitente);
         NotaFiscalModeloXml.infNFe.total.ICMSTot = IcmsTotMap.GeraValoresParaIcmsTotalXml(notaFiscal);
         NotaFiscalModeloXml.infNFe.transp        = TransportadorMap.TransportadorParaXml(notaFiscal.Transportador);
     }
     else
     {
         throw new NotaFiscalXmlNulaException();
     }
 }
        public static void Exportar(string caminho, NotaFiscal nota)
        {
            string    caminhoModeloNFE = AppDomain.CurrentDomain.BaseDirectory + "\\..\\..\\..\\NFe.Infra.PDF\\Modelos\\Modelo NFE.pdf";
            PdfReader reader           = new PdfReader(caminhoModeloNFE);

            using (PdfStamper stamper = new PdfStamper(reader, new FileStream(caminho, FileMode.Create)))
            {
                AcroFields fields = stamper.AcroFields;

                EmitenteMap.SetarCamposEmitente(nota.Emitente, fields);
                DestinatarioMap.SetarCamposDestinatario(nota.Destinatario, Convert.ToDateTime(nota.DataEmissao), nota.DataEntrada, fields);
                ValorNotaMap.SetarCamposValorNota(nota.Valor, nota.ChaveAcesso, nota.NaturezaOperacao, fields);
                TransportadorMap.SetarCamposTransportador(nota.Transportador, fields, nota.Produtos.Sum(prod => prod.Quantidade));
                ProdutoMap.SetarCamposProduto(nota.Produtos, fields);

                stamper.FormFlattening = true;
                stamper.Close();
            }
        }
        public NotaFiscal XmlParaNotaFiscal(NotaFiscal notaFiscal)
        {
            if (!(notaFiscal == null))
            {
                NotaFiscalModeloXml = SerializeHelper.Deserialize <NotaFiscalModeloXml>(notaFiscal.NotaFiscalXml);

                notaFiscal.Emitente         = EmitenteMap.XmlParaEmitente(NotaFiscalModeloXml);
                notaFiscal.Emitente.Id      = notaFiscal.Emitente.Id;
                notaFiscal.Transportador    = TransportadorMap.XmlParaTransportador(NotaFiscalModeloXml);
                notaFiscal.Transportador.Id = notaFiscal.Transportador.Id;
                notaFiscal.Destinatario     = DestinatarioMap.XmlParaDestinatario(NotaFiscalModeloXml);
                notaFiscal.Destinatario.Id  = notaFiscal.Destinatario.Id;
                notaFiscal.Produtos         = ProdutoMap.XmlParaProduto(NotaFiscalModeloXml);

                return(notaFiscal);
            }
            else
            {
                throw new NotaFiscalXmlNulaException();
            }
        }