public bool CambiaEstadoOrden(int OrdenId, EstadoOrden estado) { bool result = true; var orden = db.Orden.Where(o => o.OrdenId == OrdenId).FirstOrDefault(); if (orden != null) { //Realiza una acción dependiendo el estado switch (estado) { case EstadoOrden.Por_despachar: //Cambia estado de la orden orden.OrdenEstado = estado; db.Entry(orden).State = EntityState.Modified; db.SaveChanges(); break; case EstadoOrden.Despachado: if (!string.IsNullOrEmpty(orden.OrdenNroGuia)) { orden.OrdenEstado = estado; orden.OrdenFechaDespacho = DateTime.Today; db.Entry(orden).State = EntityState.Modified; db.SaveChanges(); //Actualiza Estado del Gasto var GastoList = db.Gasto.Where(g => g.ActividadId == orden.ActividadId).ToList(); foreach (var gasto in GastoList) { gasto.GastoEstado = EstadoGasto.Ejecutado; db.Entry(gasto).State = EntityState.Modified; db.SaveChanges(); } //Actualiza estado de la actividad ActividadesController actCtrl = new ActividadesController(); actCtrl.CambiaEstadoActividad(orden.ActividadId, (int)EstadosActividades.Despachado); //var actividad = db.Actividad.Where(a => a.ActividadId == orden.ActividadId).FirstOrDefault(); //actividad.ActividadEstado = EstadosActividades.Despachado; //db.Entry(actividad).State = EntityState.Modified; //db.SaveChanges(); //regresa Movimiento List <Movimiento> movimientoList = db.Movimiento.Where(m => m.OrdenId == OrdenId).ToList(); MovimientosController movCtrl = new MovimientosController(); if (movimientoList.Count > 0) { movCtrl.RegresaMovimiento(movimientoList); } //Actualiza estado del movimiento foreach (var mov in movimientoList) { mov.MovimientoEstado = EstadoMovimiento.Ejecutado; db.Entry(mov).State = EntityState.Modified; db.SaveChanges(); } //Afecta Movimiento if (movimientoList.Count > 0) { movCtrl.AfectaMovimiento(movimientoList.FirstOrDefault().MovimientoId, movimientoList, trnMode.Update); } } else { result = false; } break; default: result = false; break; } //switch (estado) } //if (orden != null) return(result); }
/// <summary> /// The Home Page. /// </summary> /// <returns>The Home Index, also known as the web portal home page.</returns> public ActionResult Index() { ActividadesController controller = new ActividadesController(); User currentUser = null; if (User.Identity.IsAuthenticated) { int currentUserID = Int32.Parse(User.Identity.Name.Split(',')[0]); currentUser = db.Users.Find(currentUserID); } else { currentUser = null; } HomeViewModel homeViewModel = new HomeViewModel { Information = new List <UserInfoViewModel>() }; DateTime start = DateTime.Now; DateTime end = DateTime.Now.AddDays(7); var activities = (from activity in db.Activities.Include(a => a.ActivityType) where ((activity.ActivityDate >= start) && (activity.ActivityDate <= end)) && activity.DeletionDate == null orderby activity.ActivityDate ascending select activity).Take(6).ToList(); foreach (var activity in activities) { var activityDynamic = new ActivityDynamic { ActivityDynamic1 = "" }; if (activity.ActivityDynamicID != null) { activityDynamic = db.ActivityDynamics.Find(activity.ActivityDynamicID); } if (activity.ActivityDate == null) { activity.ActivityDate = new DateTime(); } if (activity.ActivityTime == null) { activity.ActivityTime = ""; } DateTime endDate = new DateTime(); if (activity.ActivityDate != new DateTime() && activity.ActivityTime != "" && activity.Duration != null) { endDate = controller.calculateDuration((DateTime)activity.ActivityDate, activity.ActivityTime, activity.Duration); } List <OPDB.Models.Interest> interest = new List <OPDB.Models.Interest>(); if (currentUser != null) { interest = (from i in db.Interests where i.UserID == currentUser.UserID && i.ActivityID == activity.ActivityID select i).ToList(); } bool interested = false; if (interest.Count == 1) { interested = true; } homeViewModel.Information.Add(new UserInfoViewModel { Activity = activity, Interested = interested, ActivityDynamic = activityDynamic, EndDate = endDate }); } return(View(homeViewModel)); }
public dynamic CreaOrdenXActividad(int actividadId = 0, Seguridadcll seguridadcll = null) { int NroOrden = 0; var actividad = db.Actividad.Where(a => a.ActividadId == actividadId).FirstOrDefault(); //valida que exista la actividad if (actividad != null) { //valida que el estado sea autorizado if (actividad.ActividadEstado == EstadosActividades.Autorizado) { //Valida que no exista orden para esta actividad var ordenTemp = db.Orden.Where(o => o.ActividadId == actividadId && o.OrdenEstado != EstadoOrden.Eliminado) .FirstOrDefault(); if (ordenTemp == null) { var actividadItems = db.ActividadItem .Include(a => a.producto) .Where(ai => ai.ActividadId == actividadId && ai.producto.TipoProductoID == "1").ToList(); if (actividadItems.Count > 0) { //Obtiene numero de Orden(ultimo de la tabla + 1) Seguridad.Seguridad seguridad = new Seguridad.Seguridad(); NroOrden = seguridad.generaConsecutivo("Ordenes"); //Crear cabecera de la Orden Orden orden = new Orden(); orden.OrdenId = NroOrden; orden.ActividadId = actividad.ActividadId; orden.OrdenFecha = DateTime.Today; orden.OrdenFechaDespacho = DateTime.Today; orden.OrdenFechaModificacion = DateTime.Today; orden.OrdenNroGuia = ""; orden.OrdenComentario = actividad.ActividadTitulo; orden.UsuarioIdModifica = actividad.UsuarioIdElabora; orden.OrdenEstado = EstadoOrden.Abierta; db.Orden.Add(orden); db.SaveChanges(); //Crea Detalle de la orden int Linea = 1; foreach (var item in actividadItems) { var producto = db.Producto.Where(p => p.ProductoId == item.ProductoId).FirstOrDefault(); if (producto.TipoProductoID == "1") { OrdenItems ordenItems = new OrdenItems(); ordenItems.OrdenId = NroOrden; ordenItems.OrdenItemsLinea = Linea; ordenItems.ProductoId = item.ProductoId; ordenItems.OrdenItemsCant = item.ActividadItemCantidad; ordenItems.OrdenItemsCantConfirmada = 0; ordenItems.OrdenItemsVlr = item.ActividadItemPrecio ?? 0; ordenItems.CentroCostoID = item.CentroCostoID; db.OrdenItems.Add(ordenItems); Linea++; } }//foreach (var item in actividadItems) db.SaveChanges(); //MovimientosController movCtrl = new MovimientosController(); //int NroMovimiento = movCtrl.CreaMovimientoXOrden(NroOrden); #region auditoria Auditoria auditoria = new Auditoria(); //Seguridadcll seguridadcll = (Seguridadcll)Session["seguridad"]; auditoria.AuditoriaFecha = System.DateTime.Now; auditoria.AuditoriaHora = System.DateTime.Now.TimeOfDay; auditoria.usuarioId = seguridadcll.Usuario.UsuarioId; auditoria.AuditoriaEvento = "Create"; auditoria.AuditoriaDesc = "Se Creo la Orden: " + NroOrden; auditoria.ObjetoId = "Ordenes/CreaOrdenXActividad"; seguridad.insertAuditoria(auditoria); #endregion auditoria //Afecta cantidad de Productos Inventariables en el Gasto MovimientosController movCtrl = new MovimientosController(); movCtrl.CreaMovimientoXOrden(orden.OrdenId, trnMode.Insert, seguridadcll); //return RedirectToAction("CreaMovimientoXOrden", "Movimientos", new { OrdenId = orden.OrdenId, mode = trnMode.Insert }); } else { //Cambia estado de la actividad a despachada y el gasto tambien //Actualiza Estado del Gasto var GastoList = db.Gasto.Where(g => g.ActividadId == actividad.ActividadId).ToList(); foreach (var gasto in GastoList) { gasto.GastoEstado = EstadoGasto.Ejecutado; db.Entry(gasto).State = EntityState.Modified; db.SaveChanges(); }//foreach (var gasto in GastoList) //Actualiza estado de la actividad ActividadesController actCtrl = new ActividadesController(); actCtrl.CambiaEstadoActividad(actividad.ActividadId, (int)EstadosActividades.Despachado); //return RedirectToAction("Index", "Actividades"); }//if (actividadItems.Count > 0) } else { NroOrden = 0; }//if (ordenTemp == null) { } else { NroOrden = 0; }//if(actividad.ActividadEstado == EstadosActividades.Autorizado) } else { NroOrden = 0; }//if (actividad != null) return(NroOrden); }