public void GenerateDetails(ChileSystems.DTE.Engine.Documento.DTE dte, List <ItemBoleta> detalles) { //DOCUMENTO - DETALLES dte.Documento.Detalles = new List <ChileSystems.DTE.Engine.Documento.Detalle>(); int contador = 1; foreach (var det in detalles) { var detalle = new ChileSystems.DTE.Engine.Documento.Detalle(); detalle.NumeroLinea = contador; /*IndicadorExento = Sólo aplica si el producto es exento de IVA*/ detalle.IndicadorExento = det.Afecto ? ChileSystems.DTE.Engine.Enum.IndicadorFacturacionExencion.IndicadorFacturacionExencionEnum.NotSet : ChileSystems.DTE.Engine.Enum.IndicadorFacturacionExencion.IndicadorFacturacionExencionEnum.NoAfectoOExento; detalle.Nombre = det.Nombre; detalle.Cantidad = (double)det.Cantidad; detalle.Precio = det.Precio; if (!string.IsNullOrEmpty(det.UnidadMedida)) { detalle.UnidadMedida = det.UnidadMedida; } /*Monto del item*/ /*Recordar que debe restarse el descuento del detalle y sumarse el recargo*/ detalle.MontoItem = det.Total; dte.Documento.Detalles.Add(detalle); contador++; } GenerateTotals(dte); }
public void GenerateDetails(ChileSystems.DTE.Engine.Documento.DTE dte) { //DOCUMENTO - DETALLES dte.Documento.Detalles = new List <ChileSystems.DTE.Engine.Documento.Detalle>(); var detalle = new ChileSystems.DTE.Engine.Documento.Detalle(); detalle.NumeroLinea = 1; /*IndicadorExento = Sólo aplica si el producto es exento de IVA*/ //detalle.IndicadorExento = ChileSystems.DTE.Engine.Enum.IndicadorFacturacionExencion.IndicadorFacturacionExencionEnum.NoAfectoOExento; detalle.Nombre = "SERVICIO DE FACTURACION ELECT"; detalle.Cantidad = 12; detalle.Precio = 170; /*Monto del item*/ /*Recordar que debe restarse el descuento del detalle y sumarse el recargo*/ detalle.MontoItem = 2040; dte.Documento.Detalles.Add(detalle); detalle = new ChileSystems.DTE.Engine.Documento.Detalle(); detalle.NumeroLinea = 2; //detalle.IndicadorExento = ChileSystems.DTE.Engine.Enum.IndicadorFacturacionExencion.IndicadorFacturacionExencionEnum.NoAfectoOExento; detalle.Nombre = "DESARROLLO DE ETL"; detalle.Cantidad = 20; detalle.Precio = 1050; detalle.MontoItem = 21000; dte.Documento.Detalles.Add(detalle); //DOCUMENTO - ENCABEZADO - TOTALES - CAMPOS OBLIGATORIOS GenerateTotals(dte); }
public ChileSystems.DTE.Engine.Documento.DTE GenerateRandomDTE(int folio, ChileSystems.DTE.Engine.Enum.TipoDTE.DTEType tipo) { // DOCUMENTO Random r = new Random(); var dte = new ChileSystems.DTE.Engine.Documento.DTE(); dte.Documento.Id = "TEST" + folio.ToString(); dte.Documento.Encabezado.IdentificacionDTE.TipoDTE = tipo; dte.Documento.Encabezado.IdentificacionDTE.FechaEmision = DateTime.Now; dte.Documento.Encabezado.IdentificacionDTE.Folio = folio; dte.Documento.Encabezado.IdentificacionDTE.TipoDespacho = ChileSystems.DTE.Engine.Enum.TipoDespacho.TipoDespachoEnum.EmisorACliente; dte.Documento.Encabezado.IdentificacionDTE.TipoTraslado = ChileSystems.DTE.Engine.Enum.TipoTraslado.TipoTrasladoEnum.OperacionConstituyeVenta; //DOCUMENTO - ENCABEZADO - EMISOR - CAMPOS OBLIGATORIOS dte.Documento.Encabezado.Emisor.Rut = handler.rutEmpresa; dte.Documento.Encabezado.Emisor.RazonSocial = "TRANSPORTE DISTRIBUCION Y COMERCIALIZACION DE PRODUCTOS D&V LIMITADA"; dte.Documento.Encabezado.Emisor.Giro = "VENTA AL POR MAYOR DE CONFITES"; dte.Documento.Encabezado.Emisor.ActividadEconomica.Add(512250); dte.Documento.Encabezado.Emisor.ActividadEconomica.Add(519000); //DOCUMENTO - ENCABEZADO - EMISOR - SUCURSAL ORIGEN dte.Documento.Encabezado.Emisor.CodigoSucursal = 0; dte.Documento.Encabezado.Emisor.DireccionOrigen = "TOESCA 2023"; dte.Documento.Encabezado.Emisor.ComunaOrigen = "SANTIAGO"; dte.Documento.Encabezado.Emisor.CiudadOrigen = "SANTIAGO"; //DOCUMENTO - ENCABEZADO - RECEPTOR - CAMPOS OBLIGATORIOS dte.Documento.Encabezado.Receptor.Rut = "66666666-6"; dte.Documento.Encabezado.Receptor.RazonSocial = "Razon Social de Cliente"; dte.Documento.Encabezado.Receptor.Giro = "Giro de cliente"; dte.Documento.Encabezado.Receptor.Direccion = "Direccion de cliente"; dte.Documento.Encabezado.Receptor.Comuna = "Comuna de cliente"; dte.Documento.Encabezado.Receptor.Ciudad = "Ciudad"; //DOCUMENTO - DETALLES dte.Documento.Detalles = new List <ChileSystems.DTE.Engine.Documento.Detalle>(); int max_detalles = r.Next(1, 5); List <string> detallesRandom = new List <string>(); detallesRandom.Add("SERVICIO DE FACTURACION ELECT"); detallesRandom.Add("ASESORIA COMPUTACIONAL"); detallesRandom.Add("CAPACITACION AL PERSONAL"); detallesRandom.Add("IMPLEMENTACION DE ERP"); detallesRandom.Add("SERVICIO DE LIMPIEZA"); detallesRandom.Add("SERVICIO DE ASESORIA INFORMATICA"); detallesRandom.Add("DESARROLLO DE SITIOS WEB"); detallesRandom.Add("QA DE DESARROLLOS EXTERNOS"); detallesRandom.Add("LIMPIEZA DE COMPUTADORES"); detallesRandom.Add("AUTOMATIZACION DE DATOS"); detallesRandom.Add("DESARROLLO DE ETL"); for (int i = 1; i <= max_detalles; i++) { var detalle = new ChileSystems.DTE.Engine.Documento.Detalle(); detalle.NumeroLinea = i; detalle.IndicadorExento = ChileSystems.DTE.Engine.Enum.IndicadorFacturacionExencion.IndicadorFacturacionExencionEnum.NoAfectoOExento; detalle.Nombre = detallesRandom[r.Next(0, detallesRandom.Count - 1)]; detalle.Cantidad = r.Next(1, 5); detalle.Precio = r.Next(1, 150000); detalle.MontoItem = (int)detalle.Cantidad * (int)detalle.Precio; dte.Documento.Detalles.Add(detalle); } //DOCUMENTO - ENCABEZADO - TOTALES - CAMPOS OBLIGATORIOS //dte.Documento.Encabezado.Totales.MontoNeto = 0; dte.Documento.Encabezado.Totales.MontoExento = dte.Documento.Detalles.Sum(x => x.MontoItem); //dte.Documento.Encabezado.Totales.TasaIVA = Convert.ToDouble(19); //dte.Documento.Encabezado.Totales.IVA = 0; dte.Documento.Encabezado.Totales.MontoTotal = dte.Documento.Detalles.Sum(x => x.MontoItem); return(dte); }