public FileStreamResult GetConstanciaGeneral(int id) { int idValido = 0; Vacacion_Contrato vacacion_contrato = db.Vacacion_Contrato.SingleOrDefault(v => v.id_vacacion_contrato == id && v.activo); if (vacacion_contrato != null) { idValido = vacacion_contrato.id_vacacion_contrato; } string parametros = "&id_vacacion_contrato=" + idValido.ToString(); string reporte = "rpt_Constancia_Vacaciones"; 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 " + idValido.ToString() + ".pdf\""); Response.BinaryWrite(fileBytes); Response.Flush(); Response.End(); return(new FileStreamResult(Response.OutputStream, "application/pdf")); }
public Vacacion_Contrato NuevoVacacion_Contrato() { Vacacion_Contrato vacacion_contrato = new Vacacion_Contrato(); vacacion_contrato.fecha_creacion = DateTime.Now; vacacion_contrato.id_usuario_creacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario; vacacion_contrato.activo = true; vacacion_contrato.eliminado = false; return(vacacion_contrato); }
public ActionResult NuevoCodigoEmpleado(Contratacion contrato) { Empleado empleado = db.Empleado.SingleOrDefault(e => e.id_empleado == contrato.id_empleado && !e.eliminado); if (empleado == null) { return(HttpNotFound()); } if (empleado.Contratacion.Where(c => c.activo).Count() > 0) { ContextMessage msg = new ContextMessage(ContextMessage.Info, "No se pudo crear el empleado a partir de la información existente. El empleado seleccionado todavía esta de Alta.."); msg.ReturnUrl = null; TempData[User.Identity.Name] = msg; return(RedirectToAction("Mensaje")); } int id_usuario = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario; using (DbContextTransaction tran = db.Database.BeginTransaction()) { try { Empleado nuevoEmpleado = CopiarEmpleado(empleado); db.Empleado.Add(nuevoEmpleado); db.SaveChanges(); //Copiar Telefonos foreach (var telefono in empleado.Empleado_Telefono.Where(e => e.activo && !e.eliminado)) { Empleado_Telefono nuevoTelefono = new Empleado_Telefono(); nuevoTelefono.telefono = telefono.telefono; nuevoTelefono.extension = telefono.extension; nuevoTelefono.id_tipo_telefono = telefono.id_tipo_telefono; nuevoTelefono.comentario = telefono.comentario; nuevoTelefono.activo = true; nuevoTelefono.eliminado = false; nuevoTelefono.fecha_creacion = DateTime.Now; nuevoTelefono.id_usuario_creacion = id_usuario; nuevoTelefono.id_empleado = nuevoEmpleado.id_empleado; db.Empleado_Telefono.Add(nuevoTelefono); } //Copiar direcciones foreach (var direccion in empleado.Empleado_Direcciones.Where(d => d.activo && !d.eliminado)) { Empleado_Direcciones nuevaDireccion = CopiarDireccion(direccion); nuevaDireccion.id_empleado = nuevoEmpleado.id_empleado; db.Empleado_Direcciones.Add(nuevaDireccion); } //Copiar Archivos foreach (var archivo in empleado.Archivo_Empleado.Where(e => e.activo && !e.eliminado && e.Archivo.id_tipo_archivo == (int)Catalogos.Tipo_Archivo.Foto_Perfil)) { Archivo imagen = new Archivo(); string name = "foto_" + nuevoEmpleado.id_empleado; string extension = ".jpg"; string ruta_vieja = archivo.Archivo.ubicacion; imagen.id_tipo_archivo = (int)Catalogos.Tipo_Archivo.Foto_Perfil; imagen.id_usuario_creacion = id_usuario; imagen.fecha_creacion = DateTime.Now; imagen.activo = true; imagen.eliminado = false; imagen.nombre = name + extension; imagen.ubicacion = "~/Archivos/Foto Perfil/" + name + extension; db.Archivo.Add(imagen); db.SaveChanges(); System.IO.File.Copy(Server.MapPath(ruta_vieja), Server.MapPath(imagen.ubicacion), true); //Relacionar la imagen con el usuario Archivo_Empleado nuevo_archivo_empleado = new Archivo_Empleado(); nuevo_archivo_empleado.id_archivo = imagen.id_archivo; nuevo_archivo_empleado.id_empleado = nuevoEmpleado.id_empleado; nuevo_archivo_empleado.id_usuario_creacion = id_usuario; nuevo_archivo_empleado.fecha_creacion = DateTime.Now; nuevo_archivo_empleado.activo = true; nuevo_archivo_empleado.eliminado = false; db.Archivo_Empleado.Add(nuevo_archivo_empleado); } //Asignar Salario Salario salario = new Salario(); Puesto puesto = db.Puesto.SingleOrDefault(p => p.id_puesto == contrato.id_puesto); salario.bono_decreto = puesto.bono_decreto; salario.bono_extra = puesto.bono_extra; salario.sueldo_base = puesto.sueldo_base; salario.prestaciones = puesto.prestaciones; salario.activo = true; salario.id_empleado = contrato.id_empleado; salario.eliminado = false; salario.fecha_creacion = contrato.fecha_creacion = DateTime.Now; salario.id_usuario_creacion = id_usuario; db.Salario.Add(salario); db.SaveChanges(); //Crear nuevo contrato contrato.id_salario = salario.id_salario; contrato.id_empleado = nuevoEmpleado.id_empleado; contrato.id_ubicacion = contrato.id_ubicacion == 0 ? (int)Catalogos.Ubicacion.Central : contrato.id_ubicacion; contrato.fecha_creacion = DateTime.Now; contrato.id_usuario_creacion = id_usuario; contrato.id_estado_empleado = (int)Catalogos.Estado_Empleado.Alta; contrato.activo = true; contrato.eliminado = false; db.Contratacion.Add(contrato); db.SaveChanges(); //Crear periodo de vacaciones para el nuevo contrato Vacacion_Contrato vacacion_contrato = NuevoVacacion_Contrato(); vacacion_contrato.id_contratacion = contrato.id_contratacion; vacacion_contrato.dias_total = 15; vacacion_contrato.id_empleado = contrato.id_empleado; vacacion_contrato.id_periodo = db.Periodo.Where(p => p.activo && !p.eliminado).FirstOrDefault().id_periodo; db.Vacacion_Contrato.Add(vacacion_contrato); db.SaveChanges(); tran.Commit(); return(RedirectToAction("Details", "Empleado", new { id = nuevoEmpleado.id_empleado })); } catch (Exception ex) { tran.Rollback(); ContextMessage msg = new ContextMessage(ContextMessage.Error, "Ocurrio un error innesperado. " + ex.Message); msg.ReturnUrl = null; TempData[User.Identity.Name] = msg; return(RedirectToAction("Mensaje")); } } }
public ActionResult Create(Contratacion contrato) { ModelState.Clear(); if (db.Contratacion.Where(c => c.activo && !c.eliminado && c.id_empleado == contrato.id_empleado).Count() > 0) { ContextMessage msg = new ContextMessage(ContextMessage.Error, "El empleado ya tiene un contrato activo en una empresa."); msg.ReturnUrl = Url.Action("Details", "Empleado", new { id = contrato.id_empleado }); TempData[User.Identity.Name] = msg; return(RedirectToAction("Mensaje")); } if (ModelState.IsValid) { using (DbContextTransaction tran = db.Database.BeginTransaction()) { try { Puesto puesto = db.Puesto.SingleOrDefault(p => p.id_puesto == contrato.id_puesto); contrato.id_ubicacion = (int)Catalogos.Ubicacion.Central; Salario salario = new Salario(); salario.bono_decreto = puesto.bono_decreto; salario.bono_extra = puesto.bono_extra; salario.sueldo_base = puesto.sueldo_base; salario.prestaciones = puesto.prestaciones; salario.activo = contrato.activo = true; salario.id_empleado = contrato.id_empleado; salario.eliminado = contrato.eliminado = false; salario.fecha_creacion = contrato.fecha_creacion = DateTime.Now; salario.id_usuario_creacion = contrato.id_usuario_creacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario; contrato.id_estado_empleado = (int)Catalogos.Estado_Empleado.Alta; db.Salario.Add(salario); db.SaveChanges(); contrato.id_salario = salario.id_salario; db.Contratacion.Add(contrato); db.SaveChanges(); //Crear periodo de vacaciones para el nuevo contrato Vacacion_Contrato vacacion_contrato = NuevoVacacion_Contrato(); vacacion_contrato.id_contratacion = contrato.id_contratacion; vacacion_contrato.dias_total = 15; vacacion_contrato.id_empleado = contrato.id_empleado; vacacion_contrato.id_periodo = db.Periodo.Where(p => p.activo && !p.eliminado).FirstOrDefault().id_periodo; db.Vacacion_Contrato.Add(vacacion_contrato); db.SaveChanges(); tran.Commit(); return(RedirectToAction("Details", "Empleado", new { id = contrato.id_empleado, error = "" })); } catch { tran.Rollback(); ModelState.AddModelError("", "Fallo en la creación del contrato. Datos no guardados."); } } } Empleado empleado = db.Empleado.SingleOrDefault(e => e.id_empleado == contrato.id_empleado && e.activo); if (empleado == null) { return(HttpNotFound()); } ViewBag.empresa = new SelectList(db.Empresa.Where(p => !p.eliminado), "id_empresa", "nombre", contrato.id_empresa); ViewBag.fecha_inicio_contrato = contrato.fecha_inicio.ToString("dd/MM/yyyy"); ViewBag.nombre_empleado = empleado.primer_nombre + " " + (!String.IsNullOrEmpty(empleado.segundo_nombre) ? empleado.segundo_nombre + " " : "") + empleado.primer_apellido + " " + (!String.IsNullOrEmpty(empleado.segundo_apellido) ? empleado.segundo_apellido : ""); contrato = new Contratacion(); contrato.id_empleado = empleado.id_empleado; return(View(contrato)); }