示例#1
0
        private XmlResult XmlForVentaInternal(InvoiceHeader venta)
        {
            var res = _xmlGenerator.GeneraDocumentoInvoice(venta);

            return(new XmlResult
            {
                Success = res.Success,
                Description = res.Error,
                Path = res.FileName,
                Content = res.Content,
                Code = res.Success ? null : CodeStatus.ConErrores
            });
        }
        public void GeneraDocumentoInvoiceTest()
        {
            var invoice = new InvoiceHeader
            {
                TipoDocumento            = TipoDocumentoElectronico.Factura,
                SerieDocumento           = "F001",
                CorrelativoDocumento     = "00005214",
                FechaEmision             = DateTime.Now.Subtract(TimeSpan.FromDays(2)),
                NombreRazonSocialCliente = "SUPERMERCADOS Ñro <xml> íó PERUANOS SOCIEDAD ANóNIMA 'O ' S.P.S.A.",
                NroDocCliente            = "20100070970",
                CorreoCliente            = "*****@*****.**",
                DireccionCliente         = "DIRECCION DETALLADA DEL CLIENTE",
                RucEmisor = "20600995805",
                NombreRazonSocialEmisor   = "ABLIMATEX EXPORT SAC",
                CodigoMoneda              = "PEN",
                NombreComercialEmisor     = "C-ABLIMATEX EXPORT SAC",
                DocumentoReferenciaNumero = "F001-2233",
                Compra         = "00000043",
                VendedorCodigo = "112",
                VendedorNombre = "JUAN PEREZ",
                DocumentoReferenciaTipoDocumento = TipoDocumentoElectronico.Factura,
                TipoDocumentoIdentidadCliente    = TipoDocumentoIdentidad.RegistroUnicoContribuyentes,
                TipoDocumentoIdentidadEmisor     = TipoDocumentoIdentidad.RegistroUnicoContribuyentes,
                InfoAddicional = new List <AdditionalPropertyType>()
                {
                    new AdditionalPropertyType
                    {
                        ID    = "1000",
                        Value = "MIL QUINIENTOS SETENTE Y TRES CON 60/100"//UtilsFacturacion.ConvertirenLetras(156377.60M)
                    }
                },
                GuiaRemisionReferencia = new List <GuiaRemisionType>
                {
                    new GuiaRemisionType {
                        IdTipoGuiaRemision = "09", NumeroGuiaRemision = "0001-111111"
                    }
                },
                DetallesDocumento = new List <InvoiceDetail>
                {
                    new InvoiceDetail
                    {
                        CodigoProducto      = "PROD001",
                        Cantidad            = 120,
                        DescripcionProducto = "PRODUCTO PRUEBA 001",
                        PrecioUnitario      = 1,
                        PrecioAlternativos  = new List <PrecioItemType>
                        {
                            new PrecioItemType
                            {
                                TipoDePrecio = TipoPrecioVenta.PrecioUnitario,
                                Monto        = 1.18M
                            }
                        },
                        UnidadMedida = "NIU",
                        ValorVenta   = 120,
                        Impuesto     =
                            new List <TotalImpuestosType>
                        {
                            new TotalImpuestosType {
                                TipoTributo = TipoTributo.IGV_VAT, Monto = 21.60M, TipoAfectacion = TipoAfectacionIgv.GravadoOperacionOnerosa
                            },
                        },
                    },
                    new InvoiceDetail
                    {
                        CodigoProducto      = "PROD002",
                        Cantidad            = 100,
                        DescripcionProducto = "PRODUCTO PRUEBA 002",
                        PrecioUnitario      = 2,
                        PrecioAlternativos  = new List <PrecioItemType>
                        {
                            new PrecioItemType
                            {
                                TipoDePrecio = TipoPrecioVenta.PrecioUnitario,
                                Monto        = 2.36M
                            }
                        },
                        UnidadMedida = "NIU",
                        ValorVenta   = 200,
                        Impuesto     = new List <TotalImpuestosType>
                        {
                            new TotalImpuestosType {
                                TipoTributo = TipoTributo.IGV_VAT, Monto = 36M, TipoAfectacion = TipoAfectacionIgv.GravadoOperacionOnerosa
                            },
                        },
                    },
                },
                DescuentoGlobal          = 20.0m,
                TotalVenta               = 377.60M,
                TotalTributosAdicionales = new List <TotalTributosType>
                {
                    new TotalTributosType
                    {
                        Id           = OtrosConceptosTributarios.TotalVentaOperacionesGravadas,
                        MontoPagable = 320M
                    },
                    new TotalTributosType
                    {
                        Id           = OtrosConceptosTributarios.Detracciones,
                        MontoPagable = 2208.962M,
                        Porcentaje   = 9.000M
                    }
                },
                Impuesto = new List <TotalImpuestosType>
                {
                    new TotalImpuestosType {
                        TipoTributo = TipoTributo.IGV_VAT, Monto = 57.6M
                    },
                    new TotalImpuestosType {
                        TipoTributo = TipoTributo.ISC_EXC, Monto = 0M
                    }
                },
                DireccionEmisor = new DireccionType
                {
                    CodigoUbigueo = "150111",
                    Direccion     = "AV. LOS PRECURSORES #1245",
                    Zona          = "URB. MIGUEL GRAU",
                    Departamento  = "LIMA",
                    Provincia     = "LIMA",
                    Distrito      = "EL AGUSTINO",
                    CodigoPais    = "PE"
                }
            };

            var res = _generator.GeneraDocumentoInvoice(invoice);

            if (!res.Success)
            {
                Trace.WriteLine(res.Error);
            }
            Assert.IsTrue(res.Success);

            var name = res.FileName + ".xml";

            File.WriteAllBytes(name, res.Content);

            Assert.IsNotNull(res.Content);
            Assert.IsTrue(res.Content.Length > 0);

            if (Environment.GetEnvironmentVariable("CI") == null)
            {
                Process.Start(name);
            }
        }