Example #1
0
        public void Add(Portafolio myObject)
        {
            var systemDate = DateTime.Now;
            //CREAR PROPUESTA
            var propuesta = new PropuestaBalanceo();

            propuesta.NumPropuesta = GetId(systemDate.Year, systemDate.Month);
            propuesta.PortafolioId = myObject.Id;
            propuesta.CreateDate   = systemDate;
            propuesta.EstadoId     = (int)Enums.EstadoType.Pendiente;
            propuesta.UserId       = myObject.UserId;
            propuesta.PropuestaBalanceoDetalles = new List <PropuestaBalanceoDetalle>();
            foreach (var solicitud in myObject.PropuestaBalanceoDetalleViews)
            {
                propuesta.PropuestaBalanceoDetalles.Add(new PropuestaBalanceoDetalle {
                    SolicitudRecursoDetalleId = solicitud.SolicitudRecursoId, Quantity = solicitud.Quantity
                });
            }

            var buRecurso                 = new BuRecurso();
            var buSolicitudRecurso        = new BuSolicitudRecurso();
            var buSolicitudRecursoDetalle = new BuSolicitudRecursoDetalle();
            var buAlmacenRecurso          = new BuAlmacenRecurso();

            var solicitudRecursoDetalles = new List <SolicitudRecursoDetalle>();
            var almacenRecursos          = new List <AlmacenRecurso>();

            foreach (var solicitudView in myObject.PropuestaBalanceoDetalleViews)
            {
                var solicitudRecurso = buSolicitudRecursoDetalle.GetById(solicitudView.SolicitudRecursoId);
                solicitudRecurso.Recurso = buRecurso.GetById(solicitudRecurso.RecursoId);

                //CHECK CANTIDAD ATENDIDA SOLICITUD
                if ((solicitudRecurso.QuantityAttended + solicitudView.Quantity) > solicitudRecurso.Quantity)
                {
                    throw new Exception($"La cantidad atendida ({solicitudRecurso.QuantityAttended}) mas la cantidad a asignar ({solicitudView.Quantity}) es mayor ({solicitudRecurso.QuantityAttended + solicitudView.Quantity}) a la cantidad solicitada ({solicitudRecurso.Quantity}) del recurso: {solicitudRecurso.Recurso.Id} - {solicitudRecurso.Recurso.Name}.");
                }
                solicitudRecurso.QuantityAttended += solicitudView.Quantity;
                solicitudRecursoDetalles.Add(solicitudRecurso);

                //CHECK CANTIDAD COMPROMETIDA ALMACEN RECURSO
                var almacenRecurso = buAlmacenRecurso.Get(x => x.AlmacenId.Equals(1) && x.RecursoId.Equals(solicitudRecurso.RecursoId));
                if ((almacenRecurso.StockCommitted + solicitudView.Quantity) > almacenRecurso.Stock)
                {
                    throw new Exception($"El stock comprometido ({almacenRecurso.StockCommitted}) mas la cantidad a asignar ({solicitudView.Quantity}) es mayor ({almacenRecurso.StockCommitted + solicitudView.Quantity}) a el stock ({almacenRecurso.Stock}) del recurso: {solicitudRecurso.Recurso.Id} - {solicitudRecurso.Recurso.Name}.");
                }
                almacenRecurso.StockCommitted += solicitudView.Quantity;
                almacenRecursos.Add(almacenRecurso);
            }

            Add(propuesta);
            foreach (var solicitudRecursoDetalle in solicitudRecursoDetalles)
            {
                buSolicitudRecursoDetalle.Update(solicitudRecursoDetalle);
            }
            foreach (var almacenRecurso in almacenRecursos)
            {
                buAlmacenRecurso.Update(almacenRecurso);
            }
        }
        public async Task <bool> DeletePortafolio(Portafolio value)
        {
            context.Remove(value);
            await context.SaveChangesAsync();

            return(true);
        }
        public async Task <Portafolio> AddPortafolio(Portafolio value)
        {
            await context.Portafolio.AddAsync(value);

            context.SaveChanges();
            return(value);
        }
Example #4
0
        public ActionResult Edit([Bind(Include = "Id,NumDocument,Name,Description,Presupuesto,StarDate,FinalDate,CategoriaComponenteId,PrioridadId,EstadoId,ResponsableId,TipoDuracionId,Duracion,CreateDate,EditDate,UserId,Programas,Proyectos,Documentos")] Portafolio portafolio)
        {
            try
            {
                if (portafolio.Proyectos == null && portafolio.Programas == null)
                {
                    throw new Exception("Necesita seleccionar programas y/o proyectos.");
                }

                if (string.IsNullOrEmpty(portafolio.Name))
                {
                    throw new Exception("Necesita ingresar un nombre para el portafolio.");
                }

                new BuPortafolio().Update(portafolio);

                TempData["Message"] = "Message: La operación se realizó satisfactoriamente.";
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ViewBag.ErrorMessage = $"Error Message: {e.Message}";
            }

            LoadViewBags(null);

            return(View(portafolio));
        }
Example #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            Portafolio portafolio = db.Portafolio.Find(id);

            db.Portafolio.Remove(portafolio);
            db.SaveChanges();
            return(RedirectToAction("Portafolio", "Admin", new { mensaje = "PRODUCTO ELIMINADO CON EXITO" }));
        }
 public CandidateTextInfoSource(User user,
                                Candidate candidate,
                                Portafolio portafolio)
 {
   this.User = user;
   this.Candidate = candidate;
   this.Portafolio = portafolio;
 }
Example #7
0
        public ActionResult CreateBalanceo([Bind(Include = "Id,NumDocument,Name,Description,CreateDate,EditDate,CategoriaComponenteId,PrioridadId,EstadoId,ResponsableId,Remark,PropuestaBalanceoDetalleViews")] Portafolio portafolio)
        {
            try
            {
                //VERIFICAR QUE HAY SOLICITUDES
                if (portafolio.PropuestaBalanceoDetalleViews == null)
                {
                    throw new Exception("No hay solicitudes para este portafolio.");
                }

                //VERIFICAR QUE NO SE REPITAN Y QUE TENGAN CANTIDAD ASIGNADA
                var propuestaDetalle = new List <PropuestaBalanceoDetalleView>();
                foreach (var solicitud in portafolio.PropuestaBalanceoDetalleViews)
                {
                    var propuesta = propuestaDetalle.Find(x => x.SolicitudRecursoId.Equals(solicitud.SolicitudRecursoId));
                    if (propuesta == null)
                    {
                        if (solicitud.Quantity > 0)
                        {
                            propuestaDetalle.Add(solicitud);
                        }
                    }
                }

                //VERIFICAR QUE HAY SOLICITUDES CON CANTIDAD ASIGNADA
                if (propuestaDetalle.Count().Equals(0))
                {
                    throw new Exception("No hay solicitudes para este portafolio.");
                }

                portafolio.PropuestaBalanceoDetalleViews = propuestaDetalle;
                portafolio.UserId = User.Identity.GetUserName();

                //GRABAR PROPUESTA
                var buPropuestaBalanceo = new BuPropuestaBalanceo();
                buPropuestaBalanceo.Add(portafolio);

                TempData["Message"] = "Message: La operación se realizó satisfactoriamente.";
                return(RedirectToAction("IndexBalanceo", "Portafolios"));
            }
            catch (Exception e)
            {
                ViewBag.ErrorMessage = $"Error Message: {e.Message}";
            }

            portafolio = GetPortafolio(portafolio.Id, false);

            return(View(portafolio));
        }
Example #8
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Portafolio portafolio = db.Portafolio.Find(id);

            if (portafolio == null)
            {
                return(HttpNotFound());
            }
            autoMapPortafolioModel = map.Map <Portafolio, PortafolioPartialModel>(portafolio);
            return(View(autoMapPortafolioModel));
        }
Example #9
0
        static void Main(string[] args)
        {
            //MiBiblioteca.PrimeraClase

            MiBiblioteca.PrimeraEntidad unaEntidad = new MiBiblioteca.PrimeraEntidad();

            try
            {
                int numeroUno = 0;
                int numeroDos = 10;
                //float resultado = numeroDos / numeroUno; //Excepcion

                //string dato = Console.ReadLine();
                //numeroDos = int.Parse(dato);

                //Documento.ImprimirStatic();

                Portafolio unPortafolio = new Portafolio();
                Documento  unDocumento  = new Documento();
                unPortafolio.listado.Add(unDocumento);
                //Exception nueva = new Exception(
                unPortafolio.ImprimirPortafolio();
            }
            catch (FormatException ex)
            {
                //ingrese un numero
                Console.WriteLine(ex.Message);
            }
            catch (DivideByZeroException ex)
            {
                //el segundo no puede ser cero
                Console.WriteLine(ex.Message);
            }

            catch (ImprimirException ex)
            {
                Console.WriteLine(ex.Message + ex.usuario);
            }

            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                //throw;
            }
        }
Example #10
0
        public ActionResult AddCreate([Bind(Include = "NombreProducto, Detalles, Precio")] PortafolioPartialModel autoMapPortafolioModel)
        {
            HttpPostedFileBase file = Request.Files[0];

            if (ModelState.IsValid)
            {
                autoMapPortafolioModel.Fotos64 = file;
                byte[]     foto  = autoMapPortafolioModel.GetByte64File;
                Portafolio model = new Portafolio();
                model.Foto           = foto;
                model.NombreProducto = autoMapPortafolioModel.NombreProducto;
                model.Detalles       = autoMapPortafolioModel.Detalles;
                model.Precio         = autoMapPortafolioModel.Precio;
                db.Portafolio.Add(model);
                db.SaveChanges();
            }
            return(RedirectToAction("Portafolio", "Admin", new { mensaje = "PRODUCTO REGISTRADO CON EXITO" }));
        }
Example #11
0
        public void LoadViewBags(Portafolio portafolio)
        {
            ViewBag.CategoriaComponenteId = portafolio == null
                ? new SelectList(new BuCategoriaComponente().GetAll().OrderBy(x => x.Name), "Id", "Name")
                : new SelectList(new BuCategoriaComponente().GetAll().OrderBy(x => x.Name), "Id", "Name", portafolio.CategoriaComponenteId);

            ViewBag.PrioridadId = portafolio == null
                ? new SelectList(new BuPrioridad().GetAll().OrderBy(x => x.Name), "Id", "Name")
                : new SelectList(new BuPrioridad().GetAll().OrderBy(x => x.Name), "Id", "Name", portafolio.PrioridadId);

            ViewBag.ResponsableId = portafolio == null
                ? new SelectList(new BuTrabajador().GetAll().OrderBy(x => x.Nombres), "Id", "FullName")
                : new SelectList(new BuTrabajador().GetAll().OrderBy(x => x.Nombres), "Id", "FullName", portafolio.ResponsableId);

            ViewBag.ResponsableIdDocumento = new SelectList(new BuTrabajador().GetAll().OrderBy(x => x.Nombres), "Id", "FullName");
            ViewBag.Responsables           = new SelectList(new BuTrabajador().GetAll().OrderBy(x => x.Nombres), "Id", "FullName");

            ViewBag.ProgramaId = new SelectList(new BuPrograma().GetAllAvailable().OrderBy(x => x.NumAndName), "Id", "NumAndName");
            ViewBag.ProyectoId = new SelectList(new BuProyecto().GetAllAvailable().OrderBy(x => x.NumAndName), "Id", "NumAndName");
        }
 public async Task <Portafolio> UpdatePortafolio(Portafolio value)
 {
     context.Update(value);
     context.SaveChanges();
     return(await context.Portafolio.FirstOrDefaultAsync(i => i.Id == value.Id));
 }
Example #13
0
        public void Add(Portafolio myObject)
        {
            try
            {
                var systemDate = DateTime.Now;
                myObject.NumDocument = GetId(systemDate.Year, systemDate.Month);
                myObject.CreateDate  = systemDate;
                myObject.EditDate    = systemDate;
                myObject.EstadoId    = (int)Enums.EstadoType.EnEjecucion;

                var proyectosIdList = myObject.Proyectos?.Select(x => x.Id).ToList() ?? new List <int>();
                myObject.Proyectos = null;

                var programasIdList = myObject.Programas?.Select(x => x.Id).ToList() ?? new List <int>();
                myObject.Programas = null;

                //GET PROYECTOS AND PROGRAMAS
                var proyectos = new BuProyecto().GetMany(p => proyectosIdList.Contains(p.Id));
                var programas = new BuPrograma().GetMany(p => programasIdList.Contains(p.Id));
                //GET TIPODURACIONID
                myObject.TipoDuracionId = proyectos?.First().TipoDuracionId ?? programas.First().TipoDuracionId;
                //GET FIRST DATE
                var fechas = new List <DateTime>();
                if (proyectos != null)
                {
                    fechas.AddRange(proyectos.Select(x => x.StarDate).Distinct());
                }
                if (programas != null)
                {
                    fechas.AddRange(programas.Select(x => x.StarDate).Distinct());
                }
                myObject.StarDate = fechas.OrderBy(x => x).First();
                //GET LAST DATE
                fechas = new List <DateTime>();
                if (proyectos != null)
                {
                    fechas.AddRange(proyectos.Select(x => x.FinalDate).Distinct());
                }
                if (programas != null)
                {
                    fechas.AddRange(programas.Select(x => x.FinalDate).Distinct());
                }
                myObject.FinalDate = fechas.OrderBy(x => x).Last();
                //GET DURACION
                myObject.Duracion = (myObject.FinalDate - myObject.StarDate).Days;

                _repository.Add(myObject);
                _unitOfWork.Commit();

                var id = Get(x => x.NumDocument.Equals(myObject.NumDocument)).Id;

                //UPDATE PROYECTOS
                new BuProyecto().UpdatePortafolioId(id, proyectosIdList);

                //UPDATE PROGRAMAS
                new BuPrograma().UpdatePortafolioId(id, programasIdList);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Example #14
0
        public void Update(Portafolio myObject)
        {
            try
            {
                var systemDate = DateTime.Now;
                myObject.EditDate = systemDate;

                var proyectosIdList = myObject.Proyectos?.Select(x => x.Id).ToList() ?? new List <int>();
                myObject.Proyectos = null;

                var programasIdList = myObject.Programas?.Select(x => x.Id).ToList() ?? new List <int>();
                myObject.Programas = null;

                //GET PROYECTOS AND PROGRAMAS
                var proyectos = new BuProyecto().GetMany(p => proyectosIdList.Contains(p.Id));
                var programas = new BuPrograma().GetMany(p => programasIdList.Contains(p.Id));
                //GET TIPODURACIONID
                myObject.TipoDuracionId = proyectos?.First().TipoDuracionId ?? programas.First().TipoDuracionId;
                //GET FIRST DATE
                var fechas = new List <DateTime>();
                if (proyectos != null)
                {
                    fechas.AddRange(proyectos.Select(x => x.StarDate).Distinct());
                }
                if (programas != null)
                {
                    fechas.AddRange(programas.Select(x => x.StarDate).Distinct());
                }
                myObject.StarDate = fechas.OrderBy(x => x).First();
                //GET LAST DATE
                fechas = new List <DateTime>();
                if (proyectos != null)
                {
                    fechas.AddRange(proyectos.Select(x => x.FinalDate).Distinct());
                }
                if (programas != null)
                {
                    fechas.AddRange(programas.Select(x => x.FinalDate).Distinct());
                }
                myObject.FinalDate = fechas.OrderBy(x => x).Last();
                //GET DURACION
                myObject.Duracion = (myObject.FinalDate - myObject.StarDate).Days;

                myObject.Documentos = new BuDocumento().GetMany(x => x.PortafolioId.HasValue && x.PortafolioId.Value.Equals(myObject.Id)).ToList();
                var documentosIdList = myObject.Documentos?.Select(x => x.Id).ToList();
                myObject.Documentos = null;

                _repository.Update(myObject);
                _unitOfWork.Commit();

                //PROYECTOS
                var buProyecto = new BuProyecto();
                buProyecto.ClearPortafolioId(myObject.Id);
                buProyecto.UpdatePortafolioId(myObject.Id, proyectosIdList);

                //PROGRAMAS
                var buPrograma = new BuPrograma();
                buPrograma.ClearPortafolioId(myObject.Id);
                buPrograma.UpdatePortafolioId(myObject.Id, programasIdList);

                //DOCUMENTOS
                var buDocumento = new BuDocumento();
                buDocumento.ClearPortafolioId(myObject.Id);
                buDocumento.UpdatePortafolioId(myObject.Id, documentosIdList);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }