Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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));
        }
Beispiel #3
0
        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);
        }