private string GetFormatOutputPath(ReporteCotizacion reportData) { string outputName = $"FormatoCotizacion_{reportData.CotizacionId}.docx"; string outputDocumentPath = Path.Combine(FormatOutputPath, outputName); return(outputDocumentPath); }
private IEnumerable <KeyValuePair <string, string> > GetParametrosFormato(ReporteCotizacion reportData, int cotizacionId) { IEnumerable <KeyValuePair <string, string> > listaKeys = GetGeneralData(reportData); IEnumerable <KeyValuePair <string, string> > parametrosFormato = FormatoCotizacionDataAccess.GetParametrosFormato(cotizacionId).Select(param => new KeyValuePair <string, string>(param.Parameter, param.Value)); IEnumerable <KeyValuePair <string, string> > precios = GetPrecios(reportData); return(listaKeys.Concat(parametrosFormato).Concat(precios)); }
private IEnumerable <KeyValuePair <string, string> > GetPrecios(ReporteCotizacion reportData) { string format = "C"; List <KeyValuePair <string, string> > precios = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("[@PrecioSistema]", reportData.Precios.Sistema.ToString(format, CultureInfo)), new KeyValuePair <string, string>("[@PrecioServicio1]", reportData.Precios.Instalacion.ToString(format, CultureInfo)), new KeyValuePair <string, string>("[@PrecioServicio2]", reportData.Precios.Traslado.ToString(format, CultureInfo)), new KeyValuePair <string, string>("[@PrecioTotal]", reportData.Precios.Total.ToString(format, CultureInfo)) }; return(precios); }
private void BuildPrecios(ReporteCotizacion reportData) { reportData.Precios = new Precios(); foreach (var detalle in reportData.Detalles) { if (string.Equals("ins", detalle.Referencia, StringComparison.InvariantCultureIgnoreCase)) { reportData.Precios.Instalacion += detalle.PrecioTotal; } else if (string.Equals("fle", detalle.Referencia, StringComparison.InvariantCultureIgnoreCase) || string.Equals("via", detalle.Referencia, StringComparison.InvariantCultureIgnoreCase)) { reportData.Precios.Traslado += detalle.PrecioTotal; } else { reportData.Precios.Sistema += detalle.PrecioTotal; } } }
public string BuildFormatoCotizacion(int cotizacionId) { try { ReporteCotizacion reportData = FormatoCotizacionDataAccess.GetReporteCotizacion(cotizacionId); BuildPrecios(reportData); string wordTemplatePath = GetTemplatePath(reportData.Sistema.TipoSistema); string outputCotizacionPath = GetFormatOutputPath(reportData); ReportGenerator ReportGenerator = new ReportGenerator(reportData); reportData.GeneralData = GetParametrosFormato(reportData, cotizacionId); ReportGenerator.BuildReport(wordTemplatePath, outputCotizacionPath); return(outputCotizacionPath); } catch (Exception exception) { EventLogManager.LogErrorEntry(exception); throw; } }
private IEnumerable <KeyValuePair <string, string> > GetGeneralData(ReporteCotizacion ReporteCotizacionData) { return(new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("[@Fecha]", ReporteCotizacionData.FechaCotizacion.ToString("D", CultureInfo)), new KeyValuePair <string, string>("[@FolioCot]", ReporteCotizacionData.CotizacionId), new KeyValuePair <string, string>("[@NombreEmpresaCliente]", ReporteCotizacionData.Cliente.Empresa.vchNombre), new KeyValuePair <string, string>("[@DomicilioCliente]", ReporteCotizacionData.Cliente.Empresa.Direccion), new KeyValuePair <string, string>("[@TituloContactoCliente]", ReporteCotizacionData.Cliente.Contacto.Titulo), new KeyValuePair <string, string>("[@NombreContactoCliente]", ReporteCotizacionData.Cliente.Contacto.GetFullName()), new KeyValuePair <string, string>("[@TituloContactoCliente]", ReporteCotizacionData.Cliente.Contacto.Titulo), new KeyValuePair <string, string>("[@NombreAsesor]", ReporteCotizacionData.AsesorComercial.GetFullName()), new KeyValuePair <string, string>("[@PuestoAsesor]", ReporteCotizacionData.AsesorComercial.Titulo), //Sistema new KeyValuePair <string, string>("[@TipoSistema]", ReporteCotizacionData.Sistema.TipoSistema?.ToUpper()), new KeyValuePair <string, string>("[@DimensionFrente]", Convert.ToString(ReporteCotizacionData.Sistema.Dimensiones.Frente, CultureInfo)), new KeyValuePair <string, string>("[@DimensionFondo]", Convert.ToString(ReporteCotizacionData.Sistema.Dimensiones.Fondo, CultureInfo)), new KeyValuePair <string, string>("[@DimensionAltura]", Convert.ToString(ReporteCotizacionData.Sistema.Dimensiones.Altura, CultureInfo)), new KeyValuePair <string, string>("[@DimensionPeso]", Convert.ToString(ReporteCotizacionData.Sistema.Dimensiones.Peso, CultureInfo)), new KeyValuePair <string, string>("[@DimensionCargaMaxima]", Convert.ToString(ReporteCotizacionData.Sistema.Dimensiones.CargaMaxima, CultureInfo)), }); }
/// <summary> /// /// </summary> /// <param name="cotizacionId"></param> /// <returns></returns> public ReporteCotizacion GetReporteCotizacion(int cotizacionId) { try { using (FormatoCotizacionDataContext cotizacionDataContext = new FormatoCotizacionDataContext(Helper.ConnectionString())) { var query = cotizacionDataContext.stp_ListarReporteCotizacion(cotizacionId).Select(reporteCotizacion => new ReporteCotizacion { CotizacionId = reporteCotizacion.vchFolio, Sistema = new Sistema { TipoSistema = reporteCotizacion.vchSistema, Dimensiones = new Dimensiones { Frente = 3.14, Fondo = 3.10, Altura = 2.00, Peso = 1000, CargaMaxima = 2500 } }, Cliente = new Cliente { Empresa = new Empresa { vchNombre = reporteCotizacion.vchEmpresa, Direccion = "Centeno No. 486,\nCol. Granjas\nDel. Iztacalco" }, Contacto = new Usuario { Nombre = "Francisco", ApellidoPaterno = "González", ApellidoMaterno = "Boca Negra", Titulo = "Ingeniero" } }, AsesorComercial = new Usuario { Nombre = "Fernando", ApellidoPaterno = "Ricardo", ApellidoMaterno = "Morán", Titulo = "Asesor Comercial" }, }); ReporteCotizacion reporte = query.FirstOrDefault(); var materiales = cotizacionDataContext.Cotizacion_ListarMateriales(cotizacionId); IEnumerable <ArticulosSistema> detalles = cotizacionDataContext.stp_ListarReporteDetalleCotizacion(cotizacionId).Select(detalle => new ArticulosSistema { Referencia = detalle.REF, Descripcion = detalle.vchDescripcion, PrecioTotal = Convert.ToDouble(detalle.PrecioTotal ?? default) }).ToList(); reporte.Detalles = detalles; //reporte.Elementos = detalles.Select(item => new ArticulosSistema //{ // Referencia = item.REF, // Cantidad = item.intCantidad ?? default, // SKU = $"{item.SKU}", // Descripcion = item.vchDescripcion //}); reporte.Elementos = materiales.Select(material => new ArticulosSistema { Referencia = material.Ref, Cantidad = material.Cantidad ?? 0, Descripcion = material.Descripcion }).ToList(); return(reporte); }
public ReportGenerator(ReporteCotizacion reporteCotizacionData) { ReporteCotizacionData = reporteCotizacionData; OrdenArticulos = GetOrdenes(); }