public IHttpActionResult ReporteGastos(int gastoId) { try { var gastosDb = db.Gasto.Where(a => a.GastoId == gastoId).ToList(); var gastos = gastosDb.Select(a => new Models.DTO.Gasto { centroCostos = a.CentroCosto.Descripcion, usuario = a.Usuario1.Nombre + " " + a.Usuario1.Paterno + " " + a.Usuario1.Materno, fechaInicio = a.FechaFin.ToString("dd/MM/yyyy", Cultura), fechaFin = a.FechaFin.ToString("dd/MM/yyyy", Cultura), efectivo = a.Efectivo, chequeTransNuevo = a.ChequeTans, fechaNuevo = a.FechasChequeTans != null ? a.FechasChequeTans?.ToString("dd/MM/yyyy", Cultura) : "SF", numeroNuevo = a.NumeroChequeTans != "" ? a.NumeroChequeTans : "SN", usuarioGenero = a.Usuario.Nombre + " " + a.Usuario.Paterno + " " + a.Usuario.Materno }).ToList(); var gastoDetalle = gastosDb.FirstOrDefault().GastoDetalle.Select(b => new Models.DTO.GastoDetalle { comprobanteTipo = b.ComprobanteTipo.Descripcion, fecha = b.Fecha.ToString("dd/MM/yyyy", Cultura), concepto = b.SubConcepto.Concepto.Descripcion, subConcepto = b.SubConcepto.Descripcion, descripcion = b.Descripcion, proveedor = b.Proveedor, subTotal = b.SubTotal, iva = b.Iva, total = b.Total, }).ToList(); reports.Gastos rptGastos = new reports.Gastos(); rptGastos.Database.Tables["Gasto"].SetDataSource(gastos); rptGastos.Database.Tables["GastoDetalle"].SetDataSource(gastoDetalle); Stream PDFContrato; PDFContrato = rptGastos.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); var MemoryStream = new MemoryStream(); PDFContrato.CopyTo(MemoryStream); byte[] result = MemoryStream.ToArray(); var res = Convert.ToBase64String(result); return(Ok(res)); } catch (Exception Ex) { return(BadRequest("Error")); } }
public IHttpActionResult ReporteEvento(int eventoId) { try { var eventoDb = db.Evento.Where(a => a.EventoId == eventoId).ToList(); var evento = eventoDb.Select(a => new Models.DTO.Evento { folio = a.CentroCosto.Nomenglatura + a.EventoId, centroCostos = a.CentroCosto.Descripcion, lugarEvento = a.LugarEvento, nombreEvento = a.NombreEvento, eventoTipo = a.EventoTipo.Descripcion, instructor = a.Usuario.Nombre + " " + a.Usuario.Paterno + " " + a.Usuario.Materno, fechaEvento = a.FechaEvento.ToString("dd/MM/yyyy", Cultura), efectivo = a.Efectivo, chequeTans = a.ChequeTans, fechachequeTans = a.FechasChequeTans != null ? a.FechasChequeTans?.ToString("dd/MM/yyyy", Cultura) : "SF", numeroChequeTans = a.NumeroChequeTans != "" ? a.NumeroChequeTans : "SN", usuarioGenero = a.Usuario1.Nombre + " " + a.Usuario1.Paterno + " " + a.Usuario1.Materno, totalGastosD = a.EventoGastoDetalle.Sum(s => s.Total) }).ToList(); var donantes = eventoDb.FirstOrDefault().EventoDonante.Select(b => new Donantes { donanteId = b.DonanteId, nombre = b.Nombre + " " + b.Apellido, efectivo = b.Efectivo, deposito = b.DepositooTransferencia, cheque = b.Cheque, tarjeta = b.TarjetaCredito, email = b.Email, celular = b.Celular }).ToList(); var gastos = eventoDb.FirstOrDefault().EventoGastoDetalle.Select(b => new Models.DTO.EventoGastoDetalle { comprobanteTipo = b.ComprobanteTipo.Descripcion, fecha = b.Fecha.ToString("dd/MM/yyyy", Cultura), concepto = b.SubConcepto.Concepto.Descripcion, subConcepto = b.SubConcepto.Descripcion, descripcion = b.Descripcion, proveedor = b.Proveedor, subTotal = b.SubTotal, iva = b.Iva, total = b.Total }).ToList(); reports.Eventos rptEvento = new reports.Eventos(); rptEvento.Database.Tables["Evento"].SetDataSource(evento); rptEvento.Database.Tables["EventoDonante"].SetDataSource(donantes); rptEvento.Database.Tables["EventoGastoDetalle"].SetDataSource(gastos); Stream PDFContrato; PDFContrato = rptEvento.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); var MemoryStream = new MemoryStream(); PDFContrato.CopyTo(MemoryStream); byte[] result = MemoryStream.ToArray(); var res = Convert.ToBase64String(result); return(Ok(res)); } catch (Exception Ex) { return(BadRequest("Error")); } }