public FileStreamResult GetConstanciaDetalle(int id) { int idValido = 0; Vacacion_Detalle vacacion_detalle = db.Vacacion_Detalle.SingleOrDefault(v => v.id_vacacion_detalle == id && v.activo); if (vacacion_detalle != null) { idValido = vacacion_detalle.id_vacacion_detalle; } string parametros = "&id_vacacion_detalle=" + idValido.ToString(); string reporte = "rpt_Constancia_Vacaciones_Parcial"; PDF_Protal archivo_reporte = new PDF_Protal(reporte, parametros); byte[] fileBytes = archivo_reporte.obtener_reporte(); Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader( "content-disposition", "attachment; filename=\"Constancia de Vacaciones Parcial " + vacacion_detalle.id_vacacion_detalle + ".pdf\""); Response.BinaryWrite(fileBytes); Response.Flush(); Response.End(); return(new FileStreamResult(Response.OutputStream, "application/pdf")); }
public ActionResult Crear(DateTime fecha_inicio, DateTime fecha_fin, int cantidad_dias, bool tipo_vacacion, int id_vacacion_contrato, string costo) { var vacacion_contrato = db.Vacacion_Contrato.Find(id_vacacion_contrato); int dias_usados = 0; string error = ""; if (vacacion_contrato.dias_tomados.HasValue) { dias_usados = vacacion_contrato.dias_tomados.Value; } if (vacacion_contrato.dias_total >= (dias_usados + cantidad_dias)) { Vacacion_Detalle vacacion_detalle = new Vacacion_Detalle(); vacacion_detalle.activo = true; vacacion_detalle.eliminado = false; vacacion_detalle.id_empleado = vacacion_contrato.id_empleado; vacacion_detalle.fecha_creacion = DateTime.Now; vacacion_detalle.id_usuario_creacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario; vacacion_detalle.fecha_inicio = fecha_inicio; vacacion_detalle.fecha_fin = fecha_fin; vacacion_detalle.cantidad_dias = cantidad_dias; vacacion_detalle.tipo_vacacion = tipo_vacacion; vacacion_detalle.id_vacacion_contrato = id_vacacion_contrato; if (tipo_vacacion) //true implica que se pagaron las vacaciones al empleado { vacacion_detalle.costo = Convert.ToDecimal(costo, CultureInfo.InvariantCulture); } if (vacacion_contrato.dias_tomados.HasValue) { vacacion_contrato.dias_tomados += cantidad_dias; } else { vacacion_contrato.dias_tomados = cantidad_dias; } try { db.Vacacion_Detalle.Add(vacacion_detalle); db.Entry(vacacion_contrato).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Details", new { id = id_vacacion_contrato })); } catch { error = "Error en la conexión con el servidor. Operación no efectuada."; } } else { error = "La cantidad de días ingresadas supera el límite disponible del empleado."; } ContextMessage msg = new ContextMessage(ContextMessage.Warning, error); msg.ReturnUrl = Url.Action("Details", new { id = id_vacacion_contrato }); TempData[User.Identity.Name] = msg; return(RedirectToAction("Mensaje")); }