public ActionResult Modificar_Baja(int id, string razon_baja, DateTime fecha_baja, int motivo_baja) { Contratacion contrato = db.Contratacion.SingleOrDefault(c => c.id_contratacion == id); if (contrato == null) { return(HttpNotFound()); } try { contrato.fecha_fin = fecha_baja; contrato.id_motivo_baja = motivo_baja; contrato.razon_baja = razon_baja; contrato.fecha_modificacion = DateTime.Now; contrato.id_usuario_modificacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario; db.Entry(contrato).State = EntityState.Modified; db.SaveChanges(); } catch { ContextMessage msg = new ContextMessage(ContextMessage.Error, "No se pudo modificar el contrato seleccionado."); msg.ReturnUrl = Url.Action("Historico", new { id_empleado = contrato.id_empleado }); TempData[User.Identity.Name] = msg; return(RedirectToAction("Mensaje")); } return(RedirectToAction("Historico", new { id_empleado = contrato.id_empleado })); }
public ActionResult NuevoCodigo() { ViewBag.empresa = new SelectList(db.Empresa.Where(e => !e.eliminado), "id_empresa", "nombre"); Contratacion contrato = new Contratacion(); return(View(contrato)); }
public int CrearContratacion(Contratacion Contratacion) { int idGenerado = 0; if (Contratacion.IdUsuarioAlta == 0) { Contratacion.IdUsuarioAlta = 1; } string connectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString(); Engine engine = new Engine(connectionString); StringBuilder comando = new StringBuilder(); comando.Append("insert into Contrataciones "); comando.Append(" (titulo, descripcion, locacion, maximohijos, preciototal, fechaContratacion, idusuarioalta, fechaAlta) "); comando.Append(" values "); comando.Append(" ('" + Contratacion.Titulo + "','" + Contratacion.Descripcion + "', '" + Contratacion.Locacion + "', " + Contratacion.MaximoHijos + ", '" + Contratacion.PrecioTotal + "', '" + Contratacion.FechaContratacion.ToString("yyyy-MM-dd HH:mm:ss") + "', " + Contratacion.IdUsuarioAlta + ", NOW()) "); int resultado = engine.Execute(comando.ToString()); if (resultado > 0) { idGenerado = CommonService.GetLastIdFromTable("Contrataciones"); } return(idGenerado); }
public ActionResult Terminar_Contrato(int id, DateTime fecha_contrato, int motivo_baja, string razon_baja) { Contratacion contratacion = db.Contratacion.SingleOrDefault(c => c.id_contratacion == id && c.activo); if (contratacion == null) { return(HttpNotFound()); } using (DbContextTransaction tran = db.Database.BeginTransaction()) { try { contratacion.Salario.fecha_modificacion = DateTime.Now; contratacion.fecha_fin = fecha_contrato; contratacion.fecha_modificacion = DateTime.Now; contratacion.id_motivo_baja = motivo_baja; contratacion.razon_baja = razon_baja; contratacion.id_estado_empleado = (int)Catalogos.Estado_Empleado.Baja; contratacion.id_usuario_modificacion = contratacion.Salario.id_usuario_modificacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario; contratacion.activo = false; contratacion.Salario.activo = false; db.Entry(contratacion.Salario).State = EntityState.Modified; db.Entry(contratacion).State = EntityState.Modified; db.SaveChanges(); tran.Commit(); return(RedirectToAction("Details", "Empleado", new { id = contratacion.id_empleado, error = "" })); } catch { tran.Rollback(); return(View("Details", "Empleado", new { id = contratacion.id_empleado, error = "Error. No se guardaron los cambios efectuados." })); } } }
public void LiberarDisponibilidad(Contratacion contratacion) { foreach (FechaContratacion fecha in contratacion.FechaContratacion) { fecha.Reservada = false; } }
public ActionResult PagarContratacion(int contratacionId) { if (Session["UserId"] == null) { return(RedirectToAction("Login", "Account")); } if (Session["isAdmin"] != null) { return(View("NotAuthorized")); } int usuarioId = Int32.Parse(Session["UserId"].ToString()); using (var db = new SQLServerContext()) { Contratacion contratacion = db.Contrataciones .Include("Publicacion") .Include("FechaContratacion") .FirstOrDefault(c => c.Id == contratacionId); Usuario usuario = db.Usuarios.Find(usuarioId); MP mp = new MP(); String url = mp.PagarContratacion(usuario, contratacion); return(Redirect(url)); } }
public ActionResult ActivarContrato(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Contratacion contrato = db.Contratacion.SingleOrDefault(c => c.id_contratacion == id); if (contrato == null) { return(HttpNotFound()); } var contratos = db.Contratacion.Where(c => c.activo && c.id_empleado == contrato.id_empleado); if (contratos.Count() > 0) { ContextMessage msg = new ContextMessage(ContextMessage.Error, "El empleado ya tiene un contrato activo."); msg.ReturnUrl = Url.Action("Details", "Empleado", new { id = contrato.id_empleado }); TempData[User.Identity.Name] = msg; return(RedirectToAction("Mensaje")); } contrato.fecha_fin = null; contrato.activo = true; contrato.eliminado = false; contrato.id_estado_empleado = 1; contrato.id_motivo_baja = null; contrato.razon_baja = ""; contrato.fecha_modificacion = DateTime.Now; contrato.id_usuario_modificacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario; db.Entry(contrato).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Details", "Empleado", new { id = contrato.id_empleado })); }
internal void calificarUsuario(int idContratacion, int idTipoEvaluacion, int idTipoCalificacion, string comentario) { Contratacion contratacion = cor.traerDatosPorId(idContratacion); TipoEvaluacion tipoEvaluacion = tir.traerDatosPorId(idTipoEvaluacion); TipoCalificacion tipoCalificacion = tcr.traerDatosPorId(idTipoCalificacion); cr.calificarUsuario(comentario, contratacion, tipoEvaluacion, tipoCalificacion, idTipoCalificacion); }
public ActionResult Editar(Contratacion contrato) { ModelState.Clear(); Contratacion editContrato = db.Contratacion.SingleOrDefault(c => c.activo && !c.eliminado && c.id_contratacion == contrato.id_contratacion); if (editContrato == null) { return(RedirectToAction("Details", "Empleado", new { id = editContrato.id_empleado, error = "El contrato no se encuentra activo." })); } if (ModelState.IsValid) { using (DbContextTransaction tran = db.Database.BeginTransaction()) { try { if (editContrato.id_estado_empleado != contrato.id_estado_empleado) { if (contrato.id_estado_empleado == (int)Catalogos.Estado_Empleado.Baja) { contrato.fecha_fin = DateTime.Now; } else { contrato.fecha_fin = null; contrato.id_motivo_baja = null; contrato.razon_baja = ""; } } editContrato.fecha_inicio = contrato.fecha_inicio; editContrato.referido_por = contrato.referido_por; editContrato.fecha_modificacion = DateTime.Now; editContrato.id_usuario_modificacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario; db.Entry(editContrato).State = EntityState.Modified; db.SaveChanges(); tran.Commit(); return(RedirectToAction("Details", "Empleado", new { id = editContrato.id_empleado, error = "" })); } catch { tran.Rollback(); ModelState.AddModelError("", "Error durante la operación. Datos no guardados."); } } } ViewBag.fecha_inicio_contrato = editContrato.fecha_inicio.ToString("dd/MM/yyyy"); ViewBag.empresa = new SelectList(db.Empresa.Where(e => !e.eliminado).OrderBy(e => e.nombre), "id_empresa", "nombre", editContrato.id_empresa); ViewBag.puesto = new SelectList(db.Puesto.Where(p => !p.eliminado).OrderBy(p => p.nombre), "id_puesto", "nombre", editContrato.id_puesto); ViewBag.estado_empleado = new SelectList(db.Estado_Empleado.OrderBy(e => e.nombre), "id_estado_empleado", "nombre", editContrato.id_estado_empleado); ViewBag.nombre_empleado = editContrato.Empleado.primer_nombre + " " + (!String.IsNullOrEmpty(editContrato.Empleado.segundo_nombre) ? editContrato.Empleado.segundo_nombre + " " : "") + editContrato.Empleado.primer_apellido + " " + (!String.IsNullOrEmpty(editContrato.Empleado.segundo_apellido) ? editContrato.Empleado.segundo_apellido : ""); return(View("Edit", editContrato)); }
public Contratacion GetContratacion(int id) { Contratacion ContratacionResultado = new Contratacion(); Contratacioneservice Contratacioneservice = new Contratacioneservice(); ContratacionResultado = Contratacioneservice.GetContratacion(id); return(ContratacionResultado); }
public String PagarContratacion(Usuario usuario, Contratacion contratacion) { Environment.SetEnvironmentVariable("MP_ACCESS_TOKEN", "TEST-7861638524601067-100603-29811dd016706b7463468ecffe4a41ac-158446926"); MercadoPago.SDK.CleanConfiguration(); MercadoPago.SDK.AccessToken = Environment.GetEnvironmentVariable("MP_ACCESS_TOKEN"); String siteURL; if (ambiente == "Desarrollo") { siteURL = "http://localhost:55115"; } else { siteURL = "http://ec2-3-82-109-216.compute-1.amazonaws.com/"; } double precioPublicacion = contratacion.Publicacion.Precio; int cantidadDeDias = contratacion.FechaContratacion.Count(); double precioContratacion = precioPublicacion * cantidadDeDias; // CREA UN OBJETO DE PREFERENCIA Preference preference = new Preference(); // CREA UN ÍTEM EN LA PREFERENCIA preference.Items.Add(new Item() { Title = contratacion.Publicacion.Titulo, Id = contratacion.Id.ToString(), Quantity = 1, CurrencyId = CurrencyId.ARS, UnitPrice = (decimal)precioContratacion }); preference.Payer = new Payer() { Email = usuario.Email, }; preference.ExternalReference = contratacion.Id.ToString(); preference.BackUrls = new BackUrls() { Success = siteURL + "/MercadoPago/PagoExitosoContratacion", Failure = siteURL + "/MercadoPago/PagoError", Pending = siteURL + "/MercadoPago/PagoPendiente" }; preference.AutoReturn = AutoReturnType.approved; // GUARDA Y PUBLICA EL OBJETO DE PREFERENCIA preference.Save(); return(preference.InitPoint); }
// GET: rrhh/Contratacions/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Contratacion contratacion = db.Contratacion.Find(id); if (contratacion == null) { return(HttpNotFound()); } return(View(contratacion)); }
internal Contratacion nuevaContratacion(Publicacion publicacion, Usuario usuario) { Contratacion contratacionNueva = new Contratacion(); contratacionNueva.IdPublicacion = publicacion.Id; contratacionNueva.IdUsuario = usuario.Id; contratacionNueva.FlagCalificoProveedor = 0; contratacionNueva.FlagCalificoCliente = 0; context.Contratacion.AddObject(contratacionNueva); context.SaveChanges(); return(contratacionNueva); }
public int Guardar(Contratacion value) { Contratacion ContratacionGuardado = new Contratacion(); int resultado = 0; // usuarioGuardado.Id = int.Parse(DateTime.Now.Ticks.ToString().Substring(0, 5)); ContratacionGuardado.Titulo = value.Titulo; ContratacionGuardado.Descripcion = value.Descripcion; ContratacionGuardado.IdUsuarioAlta = value.IdUsuarioAlta; ContratacionGuardado.IdUsuarioModificacion = value.IdUsuarioModificacion; ContratacionGuardado.Locacion = value.Locacion; ContratacionGuardado.MaximoHijos = value.MaximoHijos; ContratacionGuardado.PrecioTotal = value.PrecioTotal; int anioContratacion = value.FechaContratacion.Year; int mesContratacion = value.FechaContratacion.Month; int diaContratacion = value.FechaContratacion.Day; int horaContratacion = value.HoraContratacion; int minutoContratacion = value.MinutoContratacion; ContratacionGuardado.FechaContratacion = new DateTime(anioContratacion, mesContratacion, diaContratacion, horaContratacion, minutoContratacion, 0); Contratacioneservice foroService = new Contratacioneservice(); if (value.Id == 0) { resultado = foroService.CrearContratacion(ContratacionGuardado); value.Id = resultado; if (value.Fotografias != null) { foreach (Fotografia fotografia in value.Fotografias) { fotografia.IdContratacion = value.Id; } } } else { ContratacionGuardado.Id = value.Id; resultado = foroService.EditarContratacion(ContratacionGuardado); } FotografiaService fotografiaService = new FotografiaService(); fotografiaService.AdjuntarFotografiasContrataciones(value.Fotografias); return(ContratacionGuardado.Id); }
// GET: rrhh/Contratacions/Create public ActionResult Create(int id_empleado) { Empleado empleado = db.Empleado.SingleOrDefault(e => e.id_empleado == id_empleado && e.activo); if (empleado == null) { return(HttpNotFound()); } ViewBag.empresa = new SelectList(db.Empresa.Where(e => !e.eliminado), "id_empresa", "nombre"); 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 : ""); Contratacion contrato = new Contratacion(); contrato.id_empleado = empleado.id_empleado; return(View(contrato)); }
public ActionResult CrearContratacion(String[] diasSeleccionados, int usuarioId, int publicacionId) { using (var db = new SQLServerContext()) { var usuario = db.Usuarios.SingleOrDefault(u => u.Id == usuarioId); var publicacion = db.Publicaciones.SingleOrDefault(p => p.Id == publicacionId); if (publicacion.Usuario.Id == usuarioId) { return(Json("NOTOK", JsonRequestBehavior.AllowGet)); } Contratacion contratacion = new Contratacion { Estado = "Pendiente", Publicacion = publicacion, Usuario = usuario }; db.Contrataciones.Add(contratacion); DateTime fecha; foreach (var diaSeleccionado in diasSeleccionados) { fecha = TransformarFecha(diaSeleccionado); if (EstaDisponibleLaFecha(fecha, publicacion)) { FechaContratacion fechaContratacion = new FechaContratacion { Contratacion = contratacion, Fecha = fecha, Reservada = true }; db.FechasXContratacion.Add(fechaContratacion); } } db.SaveChanges(); return(Json(contratacion.Id, JsonRequestBehavior.AllowGet)); } }
public List <Contratacion> GetContrataciones(string param) { List <Contratacion> resultado = new List <Contratacion>(); string connectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString(); Engine engine = new Engine(connectionString); StringBuilder query = new StringBuilder(); query.Append("select Contrataciones.Id, Contrataciones.Titulo, Contrataciones.Descripcion, Contrataciones.MaximoHijos, Contrataciones.Locacion, Contrataciones.PrecioTotal, Contrataciones.IdUsuarioAlta, Contrataciones.FechaAlta "); query.Append(" , autor.Id as IdAutor, autor.Nombres, autor.Apellido1, autor.Apellido2 "); query.Append(" from Contrataciones"); query.Append(" inner join usuarios autor on Contrataciones.IdUsuarioAlta = autor.Id "); query.Append(" where Contrataciones.fechabaja is null "); if (!string.IsNullOrEmpty(param)) { query.Append(" and (Contrataciones.titulo like '%" + param + "%' OR Contrataciones.resumen like '%" + param + "%' OR Contrataciones.descripcion like '%" + param + "%' "); } DataTable table = engine.Query(query.ToString()); foreach (DataRow dr in table.Rows) { Contratacion ContratacionFila = new Contratacion(); ContratacionFila.Id = int.Parse(dr["Id"].ToString()); ContratacionFila.Titulo = dr["Titulo"].ToString(); ContratacionFila.Descripcion = dr["Descripcion"].ToString(); ContratacionFila.MaximoHijos = int.Parse(dr["MaximoHijos"].ToString()); ContratacionFila.Locacion = dr["Locacion"].ToString(); ContratacionFila.PrecioTotal = dr["PrecioTotal"].ToString(); ContratacionFila.Autor = dr["Nombres"].ToString() + " " + dr["Apellido1"].ToString() + " " + dr["Apellido2"].ToString(); ContratacionFila.IdUsuarioAlta = int.Parse(dr["IdUsuarioAlta"].ToString()); ContratacionFila.FechaAlta = DateTime.Parse(dr["FechaAlta"].ToString()); ContratacionFila.RutaFotoAutor = new FotografiaService().ObtenerFotoPrincipal(ContratacionFila.IdUsuarioAlta).RutaFoto; ContratacionFila.RutaFotoPrincipal = new FotografiaService().ObtenerFotoPrincipalContratacion(ContratacionFila.Id).RutaFoto; ContratacionFila.Fotografias = new FotografiaService().ObtenerFotosContrataciones(ContratacionFila.Id); ContratacionFila.Apuntados = GetApuntadosContratacion(ContratacionFila.Id); resultado.Add(ContratacionFila); } return(resultado); }
public ActionResult PagoExitosoContratacion() { if (Session["UserId"] == null) { return(RedirectToAction("Login", "Account")); } String externalReference = Request.QueryString["external_reference"]; if (String.IsNullOrEmpty(externalReference) == false && Session["UserId"] != null && Session["isAdmin"] == null) { int contratacionId = Int32.Parse(externalReference); int usuarioId = Int32.Parse(Session["UserId"].ToString()); using (var db = new SQLServerContext()) { Contratacion contratacion = db.Contrataciones.Include("Publicacion").FirstOrDefault(c => c.Id == contratacionId); contratacion.Estado = "Contratada"; Usuario usuario = db.Usuarios.Find(usuarioId); Pago pago = new Pago { Aprobado = true, Concepto = "Contratación", FechaDePago = Convert.ToDateTime(DateTime.Now), Publicacion = contratacion.Publicacion, Usuario = usuario }; contratacion.Pago = pago; db.Pagos.Add(pago); db.SaveChanges(); return(View(contratacion.Publicacion.Usuario)); } } else { return(View("NotAuthorized")); } }
// GET: rrhh/Contratacions/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Contratacion contrato = db.Contratacion.SingleOrDefault(c => c.id_contratacion == id && c.activo); if (contrato == null) { return(HttpNotFound()); } ViewBag.estado_empleado = new SelectList(db.Estado_Empleado.Where(t => !t.eliminado).OrderBy(t => t.nombre), "id_estado_empleado", "nombre", contrato.id_estado_empleado); ViewBag.nombre_empleado = contrato.Empleado.primer_nombre + " " + (!String.IsNullOrEmpty(contrato.Empleado.segundo_nombre) ? contrato.Empleado.segundo_nombre + " " : "") + contrato.Empleado.primer_apellido + " " + (!String.IsNullOrEmpty(contrato.Empleado.segundo_apellido) ? contrato.Empleado.segundo_apellido : ""); ViewBag.fecha_inicio_contrato = contrato.fecha_inicio.ToString("dd/MM/yyyy"); return(View(contrato)); }
public int EditarContratacion(Contratacion Contratacion) { string connectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString(); Engine engine = new Engine(connectionString); StringBuilder comando = new StringBuilder(); comando.Append("update Contrataciones set "); comando.Append("titulo = '" + Contratacion.Titulo + "'"); comando.Append(", descripcion = '" + Contratacion.Descripcion + "'"); comando.Append(", maximohijos = " + Contratacion.MaximoHijos); comando.Append(", preciototal = '" + Contratacion.PrecioTotal + "'"); comando.Append(", locacion = '" + Contratacion.Locacion + "'"); comando.Append(", fechaContratacion = '" + Contratacion.FechaContratacion.ToString("yyyy-MM-dd HH:mm:ss") + "'"); comando.Append(", fechamodificacion = NOW()"); comando.Append(", idusuariomodificacion = " + Contratacion.IdUsuarioModificacion); comando.Append(" where id=" + Contratacion.Id); int resultado = engine.Execute(comando.ToString()); return(Contratacion.Id); }
public Contratacion GetContratacion(int idContratacion) { Contratacion resultado = new Contratacion(); string connectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString(); Engine engine = new Engine(connectionString); StringBuilder query = new StringBuilder(); query.Append("select Contrataciones.Id, Contrataciones.Titulo, Contrataciones.Descripcion, Contrataciones.Locacion, Contrataciones.PrecioTotal, Contrataciones.MaximoHijos, Contrataciones.FechaContratacion, Contrataciones.FechaAlta "); query.Append(" , autor.Id as IdAutor, autor.Nombres, autor.Apellido1, autor.Apellido2 "); query.Append(" from Contrataciones"); query.Append(" inner join usuarios autor on Contrataciones.IdUsuarioAlta = autor.Id "); query.Append("where Contrataciones.Id = " + idContratacion); DataTable table = engine.Query(query.ToString()); foreach (DataRow dr in table.Rows) { resultado.Id = int.Parse(dr["Id"].ToString()); resultado.Titulo = dr["Titulo"].ToString(); resultado.Descripcion = dr["Descripcion"].ToString(); resultado.Locacion = dr["Locacion"].ToString(); resultado.MaximoHijos = int.Parse(dr["MaximoHijos"].ToString()); resultado.PrecioTotal = dr["PrecioTotal"].ToString(); resultado.Autor = dr["Nombres"].ToString() + " " + dr["Apellido1"].ToString() + " " + dr["Apellido2"].ToString(); resultado.IdUsuarioAlta = int.Parse(dr["IdAutor"].ToString()); resultado.FechaAlta = DateTime.Parse(dr["FechaAlta"].ToString()); resultado.FechaContratacion = DateTime.Parse(dr["FechaContratacion"].ToString()); resultado.Apuntados = GetApuntadosContratacion(resultado.Id); FotografiaService fotografiaService = new FotografiaService(); resultado.Fotografias = fotografiaService.ObtenerFotosContrataciones(resultado.Id); } return(resultado); }
internal void calificarUsuario(string comentario, Contratacion contratacion, TipoEvaluacion tipoEvaluacion, TipoCalificacion tipoCalificacion, int idTipoCalificacion) { Calificacion calificacion = new Calificacion(); if (idTipoCalificacion == 1) // Si cliente puntua al prestador. { calificacion.IdCalificador = contratacion.IdUsuario; calificacion.IdCalificado = contratacion.Publicacion.IdUsuario; Contratacion cambioEstado = context.Contratacion.Where(e => e.Id == contratacion.Id).FirstOrDefault(); cambioEstado.FlagCalificoCliente = 1; // En este caso se marca que el cliente califico al prestador. Puntaje puntaje = context.Puntaje.Where(e => e.IdPublicacion == contratacion.IdPublicacion).FirstOrDefault(); // Cuando califica el cliente hace el cambio en el puntaje de la publicación. // Este bloque de código es para llenar la TABLA PUNTAJE perteneciente al prestador por ser dueño de la publicación. if (puntaje == null) // Al no existir el puntaje lo crea. { Puntaje puntajeNuevo = new Puntaje(); puntajeNuevo.IdPublicacion = contratacion.IdPublicacion; if (tipoEvaluacion.Id == 1) { puntajeNuevo.Positivo = 1; } else { if (tipoEvaluacion.Id == 2) { puntajeNuevo.Neutro = 1; } else { puntajeNuevo.Negativo = 1; } } var total = puntajeNuevo.Positivo - puntajeNuevo.Negativo; puntajeNuevo.Total = Convert.ToInt16(total); context.Puntaje.AddObject(puntajeNuevo); } else // Al existir el puntaje lo modifica. { if (tipoEvaluacion.Id == 1) { puntaje.Positivo = Convert.ToInt16(puntaje.Positivo + 1); puntaje.Total = Convert.ToInt16(puntaje.Total + 1); } else { if (tipoEvaluacion.Id == 2) { puntaje.Neutro = Convert.ToInt16(puntaje.Neutro + 1); // Puntaje Total no tiene cambios. } else { puntaje.Negativo = Convert.ToInt16(puntaje.Negativo + 1); puntaje.Total = Convert.ToInt16(puntaje.Total - 1); } } } } else // Si prestador puntua al cliente. { calificacion.IdCalificador = contratacion.Publicacion.IdUsuario; calificacion.IdCalificado = contratacion.IdUsuario; Contratacion cambioEstado = context.Contratacion.Where(e => e.Id == contratacion.Id).FirstOrDefault(); cambioEstado.FlagCalificoProveedor = 1; // En este caso se marca que el prestador califico al cliente. PuntajeCliente puntajeCliente = context.PuntajeCliente.Where(e => e.IdUsuario == contratacion.IdUsuario).FirstOrDefault(); // Cuando califica el prestador hace el cambio en el puntaje del cliente. // Este bloque de código es para llenar la TABLA PUNTAJE CLIENTE. if (puntajeCliente == null) // Al no existir el puntaje lo crea. { PuntajeCliente puntajeClienteNuevo = new PuntajeCliente(); puntajeClienteNuevo.IdUsuario = contratacion.IdUsuario; if (tipoEvaluacion.Id == 1) { puntajeClienteNuevo.Positivo = 1; } else { if (tipoEvaluacion.Id == 2) { puntajeClienteNuevo.Neutro = 1; } else { puntajeClienteNuevo.Negativo = 1; } } var total = puntajeClienteNuevo.Positivo - puntajeClienteNuevo.Negativo; puntajeClienteNuevo.Total = Convert.ToInt16(total); context.PuntajeCliente.AddObject(puntajeClienteNuevo); } else // Al existir el puntaje lo modifica. { if (tipoEvaluacion.Id == 1) { puntajeCliente.Positivo = Convert.ToInt16(puntajeCliente.Positivo + 1); puntajeCliente.Total = Convert.ToInt16(puntajeCliente.Total + 1); } else { if (tipoEvaluacion.Id == 2) { puntajeCliente.Neutro = Convert.ToInt16(puntajeCliente.Neutro + 1); // Puntaje Total no tiene cambios. } else { puntajeCliente.Negativo = Convert.ToInt16(puntajeCliente.Negativo + 1); puntajeCliente.Total = Convert.ToInt16(puntajeCliente.Total - 1); } } } } // Termino de armar la calificación calificacion.Descripcion = comentario; calificacion.IdContratacion = contratacion.Id; calificacion.IdTipoCalificacion = tipoCalificacion.Id; calificacion.IdTipoEvaluacion = tipoEvaluacion.Id; calificacion.FechaCalificacion = DateTime.Now; calificacion.FlagDenunciado = 0; //no fue denunciada esa calificacion todavia calificacion.FlagReplicado = 0; //no fue replicado esa calificacion todavia context.Calificacion.AddObject(calificacion); /* if (idTipoCalificacion == 1) * { * * * } * else * { * * * } */ context.SaveChanges(); }
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)); }