public async Task <ActionResult <string> > Put(string numero)
        {
            string[] solicitu = numero.Split(';');
            var      response = _service.ActualizarEstado(solicitu[0], solicitu[1]);

            if (response.Error)
            {
                ModelState.AddModelError("Error al modificar la solicitud", response.Mensaje);
                var detallesproblemas = new ValidationProblemDetails(ModelState);

                if (response.Estado == "No existe")
                {
                    detallesproblemas.Status = StatusCodes.Status404NotFound;
                }
                if (response.Estado == "Error Aplicacion")
                {
                    detallesproblemas.Status = StatusCodes.Status500InternalServerError;
                }
                return(BadRequest(detallesproblemas));
            }
            var solicitudview = new SolicitudViewModel(response.Solicitud);
            await _hubContext.Clients.All.SendAsync("solicitudRegistrada", solicitudview);

            return(Ok(solicitudview));
        }
        public ActionResult Despachar(SolicitudViewModel sol)
        {
            if (ModelState.IsValid)
            {
                for (int i = 0; i < sol.productosSeleccionados.Count; i++)
                {
                    int cant1 = sol.productosSeleccionados[i].cantidad;
                    int cant2 = sol.productosSeleccionados2[i].cantidad;

                    sol.productosSeleccionados2[i].cantidad = cant1 - cant2;

                    var id      = sol.productosSeleccionados2[i].idProducto;
                    var id2     = sol.solicitud.idSolicitud;
                    var pbodega = db.ProductosEnBodega.Find(id2, id);
                    var queda   = cant1 - cant2;
                    pbodega.cantidad        = queda;
                    db.Entry(pbodega).State = EntityState.Modified;

                    ViewBag.idproducto = new SelectList(db.PRODUCTO.ToList(), "idProducto", "Nombre");
                    db.SaveChanges();
                }

                return(RedirectToAction("ProductoBodega"));
            }
            return(View(sol));
        }
Пример #3
0
        public async Task <ActionResult> Rechazar(SolicitudViewModel solicitud)
        {
            try
            {
                var usuario = await userService.GetLoggedInUser();

                if (usuario == null)
                {
                    return(RedirectToAction("LogOut", "Account"));
                }

                var rowsAffected = solicitudService.Rechazar(solicitud.SolicitudId, solicitud.ComentarioJefatura, usuario, solicitud.UsuarioId);
                if (rowsAffected > 0)
                {
                    return(RedirectToAction("SolicitudesEmpleados"));
                }

                ModelState.AddModelError("", $"No se encontró ninguna solicitud con el id {solicitud.SolicitudId}");
                return(RedirectToAction("Revisar", new { id = solicitud.SolicitudId }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", $"Hubo un problema al tratar de procesar la solicitud. Favor contacte a soporte si el problem persiste");
                return(RedirectToAction("Revisar", new { id = solicitud.SolicitudId }));
            }
        }
        public JsonResult Crear(SolicitudViewModel solicitud)
        {
            var resultado = new baseRespuesta();

            resultado = validaciones(solicitud);

            if (resultado.ok == true)
            {
                EntitiesNoMasAccidentes          bd          = new EntitiesNoMasAccidentes();
                NoMasAccidentes.Models.SOLICITUD solicitudes = new SOLICITUD();

                solicitudes.TIPO_SOLICITUD_ID_TIPOSOLICI = solicitud.tipo_solicitud;
                solicitudes.DESCRIPCION_SOLICITUD        = solicitud.detalle_solicitud;
                solicitudes.ACTIVO_SOLICITUD             = "S";
                solicitudes.FECHA_SOLICITUD = DateTime.Now;
                var idCliente = bd.CLIENTE.FirstOrDefault(e => e.USUARIO.USUARIO1 == User.Identity.Name).ID_CLIENTE;
                solicitudes.CLIENTE_ID_CLIENTE = idCliente;
                solicitudes.ESTADO             = "En Revisión";


                bd.SOLICITUD.Add(solicitudes);
                bd.SaveChanges();
                resultado.mensaje = "<i class='zmdi zmdi-check zmdi-hc-fw'></i>Solicitud Registrada Correctamente</br>";;
            }
            else
            {
                resultado.mensaje = "<b>Error</b></br>" + resultado.mensaje;
            }
            return(Json(resultado));
        }
        public async Task <ActionResult <SolicitudViewModel> > Post(SolicitudInputModel solicitudInputModel)
        {
            Solicitud solicitud = MapearSolicitud(solicitudInputModel);
            var       response  = _service.GuardarSolicitud(solicitud);

            if (response.Error)
            {
                ModelState.AddModelError("Error al guardar la solicitud", response.Mensaje);
                var detallesproblemas = new ValidationProblemDetails(ModelState);

                if (response.Mensaje == "Cantidad Insuficiente")
                {
                    detallesproblemas.Status = StatusCodes.Status400BadRequest;
                }
                else
                {
                    detallesproblemas.Status = StatusCodes.Status500InternalServerError;
                }

                return(BadRequest(detallesproblemas));
            }
            var solicitudview = new SolicitudViewModel(response.Solicitud);
            await _hubContext.Clients.All.SendAsync("solicitudRegistrada", solicitudview);

            return(Ok(solicitudview));
        }
Пример #6
0
        private ICollection <DiasPorSolicitud> ObtenerDiasPorSolicitud(SolicitudViewModel solicitud, DateTime fechaSolicitud)
        {
            var      dias = solicitud.Dias.Split(',');
            DateTime diaFecha;
            var      diasPorSolicitud = new List <DiasPorSolicitud>();

            foreach (var dia in dias)
            {
                if (DateTime.TryParse(dia, out diaFecha))
                {
                    diasPorSolicitud.Add(new DiasPorSolicitud()
                    {
                        UsuarioId = solicitud.Id,
                        Fecha     = diaFecha,
                        Periodo   = $"{fechaSolicitud.Year}-{fechaSolicitud.Year + 1}"
                    });
                }
                else
                {
                    throw new Exception("Formato de fecha inválido");
                }
            }

            return(diasPorSolicitud);
        }
Пример #7
0
        //Vista de las solicitudes para el admin
        public ActionResult Solicitudes()
        {
            var soli = db.Prestamos.Where(x => x.Estado == 1).ToList();
            SolicitudViewModel cvm = new SolicitudViewModel();

            cvm.Prestamos = soli;
            cvm.Productos = db.Productos.ToList();
            return(View(cvm));
        }
Пример #8
0
        public ActionResult Solicitar(int?id)
        {
            ViewBag.mesa   = id;
            ViewBag.alerta = false;
            SolicitudViewModel svm = new SolicitudViewModel();

            svm.Productos  = db.Productos.ToList();
            svm.Categorias = db.Categoria.ToList();
            return(View(svm));
        }
Пример #9
0
        public ActionResult Solicitar(int?id)
        {
            ViewBag.mesa = id;
            SolicitudViewModel svm = new SolicitudViewModel();

            //svm.Prestamos = queryOrd;
            svm.Productos  = db.Productos.ToList();
            svm.Categorias = db.Categoria.ToList();
            return(View(svm));
        }
        public ActionResult <SolicitudViewModel> CambiarEstado(SolicitudViewModel solicitudViewModel)
        {
            Solicitud solicitud = Mapear(solicitudViewModel);
            var       Response  = _solicitudService.ActualizarSolicitud(solicitud);

            if (Response.Error)
            {
                ModelState.AddModelError("Error al modificar al docente", Response.Mensaje);
                var detalleProblemas = new ValidationProblemDetails(ModelState);
                detalleProblemas.Status = StatusCodes.Status500InternalServerError;

                return(BadRequest(detalleProblemas));
            }
            return(Ok(Response));
        }
        public JsonResult CambiarEstado(SolicitudViewModel solicitud)
        {
            EntitiesNoMasAccidentes bd = new EntitiesNoMasAccidentes();

            var solicitudId = bd.SOLICITUD.Find(solicitud.idSolicitud);

            solicitudId.ESTADO = solicitud.estado;

            bd.Entry(solicitudId).State = System.Data.EntityState.Modified;
            bd.SaveChanges();
            var mensaje = "Estado Modificado Correctamente";



            return(Json(mensaje));
        }
Пример #12
0
        /*public ActionResult ProductosSolicitud(int? id , int? id2)
         * {
         *  ViewBag.id = new SelectList(db.ProductoSolicitud.ToList(), id);
         *  ViewBag.id2 = new SelectList(db.ProductoSolicitud.ToList(), id2);
         *  if (id == null )
         *  {
         *      return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
         *  }
         *  var modelo = new SolicitudViewModel();
         *
         *  modelo.lista2 = db.ProductoSolicitud.ToList();
         *
         *  if (id != null)
         *  {
         *      modelo.lista2 = modelo.lista2.Where(r => r.despachada == 0).ToList();
         *  }
         *  return View(modelo);
         * }
         */
        public ActionResult ProductosSolicitud(int?idSolicitud, SolicitudViewModel sol)
        {
            ViewBag.idTipoDespacho = new SelectList(db.TipoDespacho.ToList(), "idTipoDespacho", "descripcion");
            ViewBag.idArea         = new SelectList(db.Area.ToList(), "idArea", "nombre");
            ViewBag.idProducto     = new SelectList(db.PRODUCTO.ToList(), "IDProducto", "Nombre");
            //ViewBag.cantidad = ViewBag.IDCategoria;
            //ViewBag.IDClienteFK = ViewBag.IDEmpresa;
            List <ProductoSolicitud> lista = db.ProductoSolicitud.ToList();

            if (User.IsInRole("administradores"))
            {
                lista = lista.Where(r => r.despachada == 0).ToList();
            }



            return(View(lista));
        }
        public baseRespuesta validaciones(SolicitudViewModel solicitud)
        {
            var resultado = new baseRespuesta();

            resultado.ok = true;
            //Validaciones
            if (solicitud.detalle_solicitud == null)
            {
                resultado.mensaje = resultado.mensaje + "<i class='zmdi zmdi-alert-circle zmdi-hc-fw'></i> Ingrese El Detalle de la Solicitud</br>";
                resultado.ok      = false;
            }
            if (solicitud.tipo_solicitud == 0)
            {
                resultado.mensaje = resultado.mensaje + "<i class='zmdi zmdi-alert-circle zmdi-hc-fw'></i> Seleccione un Tipo de Solicitud</br>";
                resultado.ok      = false;
            }
            return(resultado);
        }
Пример #14
0
        // GET: Solicitudes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var data = serv.SolicitudGet(id.Value);
            SolicitudViewModel viewModel = new SolicitudViewModel
            {
                Solicitud = data
            };

            if (data == null)
            {
                return(HttpNotFound());
            }
            return(View(viewModel));
        }
Пример #15
0
        // GET: PRODUCTOes/Edit/5
        public ActionResult Despachar(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var model = new SolicitudViewModel();

            model.solicitud = db.SolicitudPedido.Find(id);
            //model.productosSeleccionados = model.solicitud.ProductosEnBodega.ToList();
            if (model.solicitud == null)
            {
                return(HttpNotFound());
            }
            model.productosSeleccionados  = db.ProductosEnBodega.Where(x => x.idSolicitud == model.solicitud.idSolicitud).ToList();
            model.productosSeleccionados2 = db.ProductosEnBodega.Where(x => x.idSolicitud == model.solicitud.idSolicitud).ToList();
            model.ProductoSolicitud2      = db.ProductoSolicitud.Where(x => x.idSolicitud == model.solicitud.idSolicitud).ToList();
            model.ProductoSolicitud3      = db.ProductoSolicitud.Where(x => x.idSolicitud == model.solicitud.idSolicitud).ToList();
            return(View(model));
        }
Пример #16
0
        public async Task <ActionResult> Crear(SolicitudViewModel solicitudVacaciones)
        {
            var solicitante = userService.ObtenerUsuarioPorId(solicitudVacaciones.Id);

            if (!ModelState.IsValid)
            {
                return(View(solicitudVacaciones));
            }

            if (solicitudVacaciones.CantidadDiasSolicitados > solicitudVacaciones.SaldoDiasDisponibles)
            {
                ModelState.AddModelError("", "La cantidad de días solicitados no puede ser mayor al saldo de días disponibles.");
                return(View(solicitudVacaciones));
            }

            try
            {
                var guid         = Guid.NewGuid();
                var rowsAffected = await solicitudService.CrearSolicitudVacaciones(solicitudVacaciones, guid);

                if (rowsAffected <= 0)
                {
                    ModelState.AddModelError("", "Hubo un problema al tratar de agregar la solicitud. Favor intente de nuevo más tarde.");
                    return(View(solicitudVacaciones));
                }

                var role = roleService.ObtenerRolPorNombre("Director");
                if (role.Id == solicitante.Role.Id)
                {
                    solicitudVacaciones.SolicitudId = guid;
                    await EnviarCorreo(solicitudVacaciones, solicitante);
                }

                return(RedirectToAction("Index", "Solicitud"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Hubo un problema al tratar de agregar la solicitud. Favor intente de nuevo más tarde.");
                return(View(solicitudVacaciones));
            }
        }
Пример #17
0
        // Funcion que agrega los productos con imagen (ventana flotante)
        //public ActionResult CrearSolicitud(int IdProducto)
        //{
        //    var details = db.PRODUCTO;
        //    //Hard coded for demo. You may replace it with data from db.
        //    return Json(details, JsonRequestBehavior.AllowGet);
        //}
        public ActionResult CrearSolicitud2()
        {
            var model = new SolicitudViewModel();

            /*if (!User.IsInRole("administradores"))
             * {
             *  int cod = EnRol();
             *  model.PRODUCTO = db.PRODUCTO.Where(p => p.IDClienteFK == cod).OrderBy(p => p.Nombre).Select(p => new SelectListItem { Value = p.IDProducto.ToString(), Text = p.Nombre }).ToList();
             * }
             * else
             * {
             *  model.PRODUCTO = db.PRODUCTO.OrderBy(p => p.Nombre).Select(p => new SelectListItem { Value = p.IDProducto.ToString(), Text = p.Nombre }).ToList();
             * }*/
            model.PRODUCTO = db.PRODUCTO.OrderBy(p => p.Nombre).Select(p => new SelectListItem {
                Value = p.IDProducto.ToString(), Text = p.Nombre
            }).ToList();
            model.UserSoloVista = db.UserSoloVista.OrderBy(p => p.Nombre).Select(p => new SelectListItem {
                Value = p.Nombre.ToString(), Text = p.Nombre
            }).ToList();
            return(View(model));
        }
Пример #18
0
        private string GeneratePDF(SolicitudViewModel solicitud)
        {
            var date     = DateTime.Now.ToString("yyyyMMddHHmmss");
            var id       = solicitud.Id;
            var fileName = $"{id}_{date}";

            var actionPDF = new Rotativa.ViewAsPdf("PDFView", solicitud)
            {
                PageSize        = Rotativa.Options.Size.A4,
                PageOrientation = Rotativa.Options.Orientation.Portrait,
                PageMargins     = new Margins(12, 25, 12, 25)
            };

            byte[] pdf = actionPDF.BuildFile(ControllerContext);
            using (FileStream stream = new FileStream(Server.MapPath($"~/PDFs/{fileName}.pdf"), FileMode.Create, FileAccess.Write, FileShare.Read))
            {
                stream.Write(pdf, 0, pdf.Length);
            }

            return($"{fileName}.pdf");
        }
Пример #19
0
        public ActionResult Confirmar(int idProducto, int idSolicitud, SolicitudViewModel sol)
        {
            var item = db.ProductoSolicitud.Find(idSolicitud, idProducto);

            db.Entry(item).State = EntityState.Modified;
            item.despachada      = 1;

            db.SaveChanges();

            var item2 = db.SolicitudPedido.Where(x => x.ProductoSolicitud.Sum(y => y.despachada) > 0);

            if (1 == 1)
            {
                var cambio = db.SolicitudPedido.Find(idSolicitud);
                db.Entry(cambio).State = EntityState.Modified;
                cambio.cod_estado      = 2;
                db.SaveChanges();
            }

            return(RedirectToAction("ProductosSolicitud"));
        }
Пример #20
0
        //public IEnumerable<SolicitudVacaciones> ObtenerSolicitudes(UserViewModel usuario, bool misSolicitudes)
        //{
        //    switch (usuario.Role.Name)
        //    {
        //        case "Funcionario":
        //            if(misSolicitudes)
        //                return ObtenerSolicitudesParaFuncionario(usuario.Id);
        //            else
        //                return ObtenerSolicitudesPorUnidadTecnica(usuario.UnidadTecnica.UnidadTecnicaId);
        //        case "Jefatura":
        //            if(misSolicitudes)
        //                return ObtenerSolicitudesParaFuncionario(usuario.Id);
        //            else
        //                return ObtenerSolicitudesPorUnidadTecnica(usuario.UnidadTecnica.UnidadTecnicaId);
        //        case "Director":
        //            if(misSolicitudes)
        //                return ObtenerSolicitudesParaFuncionario(usuario.Id);
        //            else
        //                return ObtenerSolicitudesPorUnidadTecnica(usuario.UnidadTecnica.UnidadTecnicaId);
        //        case "Recursos Humanos":
        //            if (misSolicitudes)
        //                return ObtenerSolicitudesParaFuncionario(usuario.Id);
        //            else
        //                return ObtenerSolicitudesPorUnidadTecnica(usuario.UnidadTecnica.UnidadTecnicaId);
        //    }

        //    return new List<SolicitudVacaciones>();
        //}

        //private IEnumerable<SolicitudVacaciones> ObtenerSolicitudesPorUnidadTecnica(int unidadTecnicaId)
        //{
        //    return context.SolicitudesVacaciones
        //        .Where(x => x.Usuario.UnidadTecnicaId == unidadTecnicaId)
        //        .ToList();
        //}

        //private IEnumerable<SolicitudVacaciones> ObtenerSolicitudesParaFuncionario(string id)
        //{
        //    return context.SolicitudesVacaciones
        //        .Where(x => x.Usuario.Id == id)
        //        .ToList();
        //}

        public async Task <int> CrearSolicitudVacaciones(SolicitudViewModel solicitud, Guid guid)
        {
            var solicitante    = userService.ObtenerUsuarioPorId(solicitud.Id);
            var fechaSolicitud = DateTime.Now;

            var aprobadorId = ObtenerAprobadorId(solicitud.Id);

            var solicitudVacaciones = new SolicitudVacaciones()
            {
                SolicitudVacacionesId   = guid,
                UsuarioId               = solicitud.Id,
                CantidadDiasSolicitados = solicitud.CantidadDiasSolicitados,
                EstadoId            = 1,
                Comentario          = solicitud.Comentario,
                FechaSolicitud      = fechaSolicitud,
                UltimaActualizacion = fechaSolicitud,
                AprobadorId         = aprobadorId,
                DiasPorSolicitud    = ObtenerDiasPorSolicitud(solicitud, fechaSolicitud)
            };

            context.SolicitudesVacaciones.Add(solicitudVacaciones);
            var affectedRows = context.SaveChanges();

            if (affectedRows > 0)
            {
                // A continuacion se envia la notificacion por correo al jefe correspondiente segun el usuario
                var urlHelper   = new UrlHelper(HttpContext.Current.Request.RequestContext);
                var callbackUrl = urlHelper.Action("Revisar", "Solicitud", new { id = guid }, protocol: HttpContext.Current.Request.Url.Scheme);

                if (aprobadorId == solicitud.Id)
                {
                    return(ProcesarSolicitud(guid, solicitante));
                }

                await userManager.SendEmailAsync(ObtenerAprobadorId(solicitud.Id), "Solicitud de Vacaciones para " + solicitud.Nombre + " " + solicitud.PrimerApellido + " " + solicitud.SegundoApellido, solicitud.Comentario + " <br /> Para aprobar o rechazar la solicitud de vacaciones haga click en el siguiente link: <a href=\"" + callbackUrl + "\">Aquí</a>");
            }

            return(affectedRows);
        }
Пример #21
0
        public ActionResult ProductoBodega(int?idSolicitud, SolicitudViewModel sol)
        {
            ViewBag.idTipoDespacho = new SelectList(db.TipoDespacho.ToList(), "idTipoDespacho", "descripcion");
            ViewBag.idArea         = new SelectList(db.Area.ToList(), "idArea", "nombre");
            ViewBag.idProducto     = new SelectList(db.PRODUCTO.ToList(), "IDProducto", "Nombre");
            //ViewBag.cantidad = ViewBag.IDCategoria;
            //ViewBag.IDClienteFK = ViewBag.IDEmpresa;
            var context  = new ApplicationDbContext();
            var username = User.Identity.Name;

            var    user     = context.Users.SingleOrDefault(u => u.UserName == username);
            string fullName = string.Concat(new string[] { user.Nombre });
            List <SolicitudPedido> lista = db.SolicitudPedido.Where(x => x.ProductosEnBodega.Sum(y => y.cantidad) > 0).ToList();

            if (!User.IsInRole("administradores"))
            {
                lista = lista.Where(r => r.usuarioReceptor == fullName).ToList();
            }


            return(View(lista));
        }
Пример #22
0
        private async Task EnviarCorreo(SolicitudViewModel solicitudVacaciones, UserViewModel aprobador)
        {
            // Se genera el archivo PDF y se envia por correo
            var solicitudAprobada  = solicitudService.ObtenerSolicitudPorId(solicitudVacaciones.SolicitudId);
            var solicitudViewModel = new SolicitudViewModel()
            {
                SolicitudId             = solicitudAprobada.SolicitudVacacionesId,
                Id                      = solicitudAprobada.UsuarioId,
                CantidadDiasSolicitados = solicitudAprobada.CantidadDiasSolicitados,
                Categoria               = solicitudAprobada.Usuario.Categoria,
                Comentario              = solicitudAprobada.Comentario,
                FechaSolicitud          = solicitudAprobada.FechaSolicitud,
                Nombre                  = solicitudAprobada.Usuario.Nombre,
                PrimerApellido          = solicitudAprobada.Usuario.PrimerApellido,
                SegundoApellido         = solicitudAprobada.Usuario.SegundoApellido,
                SaldoDiasDisponibles    = solicitudAprobada.Usuario.SaldoDiasEmpleado.SaldoDiasDisponibles,
                UnidadTecnica           = solicitudAprobada.Usuario.UnidadTecnica
            };

            var pdf = GeneratePDF(solicitudViewModel);

            await EnviarCorreoAprobacion(solicitudVacaciones.UsuarioId, aprobador, solicitudViewModel, pdf);
        }
Пример #23
0
        public ActionResult Producto(int?IDEmpresa, int?IDCategoria)
        {
            //int codigo = EnRol();

            ViewBag.IDEmpresa     = new SelectList(db.CLIENTE.ToList(), "IDCliente", "Alias", IDEmpresa);
            ViewBag.IDCategoria   = new SelectList(db.CATEGORIA.ToList(), "IDCategoria", "Nombre", IDCategoria);
            ViewBag.IDCategoriaFK = ViewBag.IDCategoria;
            ViewBag.IDClienteFK   = ViewBag.IDEmpresa;

            var modelo = new SolicitudViewModel();

            modelo.lista  = db.PRODUCTO.ToList();
            modelo.lista2 = db.ProductoSolicitud.ToList();

            if (IDEmpresa != null)
            {
                modelo.lista = modelo.lista.Where(r => r.IDClienteFK == IDEmpresa).ToList();
            }
            if (IDCategoria != null)
            {
                modelo.lista = modelo.lista.Where(r => r.IDCategoriaFK == IDCategoria).ToList();
            }
            return(View(modelo));
        }
Пример #24
0
        public ActionResult Edit(SolicitudViewModel solicitudVM)
        {
            //int idSol = 0;
            //if (ModelState.IsValid)
            //{
            //    var url = Url.RequestContext.RouteData.Values["id"].ToString();

            //    solicitudVM.Solicitud.IdSolicituds = Convert.ToInt32(url);
            //    solicitudVM.Solicitud.TieneInternet = solicitudVM.TieneInternetVal == 0 ? false : true;
            //    solicitudVM.Solicitud.TieneLaptopPc = solicitudVM.TieneLaptopPcVal == 0 ? false : true;
            //    solicitudVM.Solicitud.TieneSubsidio = solicitudVM.TieneSubsidioVal == 0 ? false : true;
            //    solicitudVM.Solicitud.DireccionidMunicipio = solicitudVM.Solicitud.Idmunicipio;
            //    solicitudVM.Solicitud.IdSolicituds = Convert.ToInt32(url.DecryptString());

            //    var soli= serv.SolicitudEdit(solicitudVM.Solicitud);
            //    idSol = soli.SolicitudID;
            //    string UploadPath = Server.MapPath("~/Files");
            //    //Use Namespace called :  System.IO
            //    if (solicitudVM.PostFile != null)
            //    {
            //        string FileNameCedula = Path.GetFileName(solicitudVM.PostFile.FileName);
            //        var FilePathCedula = Path.Combine(UploadPath, Guid.NewGuid().ToString() + FileNameCedula);
            //        solicitudVM.PostFile.SaveAs(FilePathCedula);

            //        SolicitudAnexo solicitudAnexo = new SolicitudAnexo
            //        {
            //            SolicitudID = soli.SolicitudID,
            //            IsActive = true,
            //            ArchivoURL = "",
            //            GenericID_TipoDocumento = 6,
            //            LocalFile = FilePathCedula
            //        };
            //        serv.SolicitudAnexoAdd(solicitudAnexo);
            //    }

            //    if (solicitudVM.PostFileActa != null)
            //    {
            //        string FileNameActa = Path.GetFileName(solicitudVM.PostFileActa.FileName);
            //        var FilePathActa = Path.Combine(UploadPath, Guid.NewGuid().ToString() + FileNameActa);
            //        solicitudVM.PostFileActa.SaveAs(FilePathActa);

            //        SolicitudAnexo solicitudAnexo = new SolicitudAnexo
            //        {
            //            SolicitudID = soli.SolicitudID,
            //            IsActive = true,
            //            ArchivoURL = "",
            //            GenericID_TipoDocumento = 7,
            //            LocalFile = FilePathActa

            //        };

            //        serv.SolicitudAnexoAdd(solicitudAnexo);

            //        //UploadFile(soli.SolicitudID, soli.Email, solicitudVM.PostFileActa, 7);

            //    }

            //    if (solicitudVM.PostFileEstudios != null)
            //    {
            //        string FileNameEstudios = Path.GetFileName(solicitudVM.PostFileEstudios.FileName);
            //        var FilePathEstudios = Path.Combine(UploadPath, Guid.NewGuid().ToString() + FileNameEstudios);
            //        solicitudVM.PostFileEstudios.SaveAs(FilePathEstudios);

            //        SolicitudAnexo solicitudAnexo = new SolicitudAnexo
            //        {
            //            SolicitudID = soli.SolicitudID,
            //            IsActive = true,
            //            ArchivoURL = "",
            //            GenericID_TipoDocumento = 9,
            //            LocalFile = FilePathEstudios

            //        };

            //        serv.SolicitudAnexoAdd(solicitudAnexo);
            //    }



            //}

            return(RedirectToAction("Modified", new RouteValueDictionary(
                                        //idSol
                                        new { controller = "Solicitudes", action = "Modified", Id = -1 })));
        }
Пример #25
0
        public ActionResult EnviarSolicitud(SolicitudViewModel model, HttpPostedFileBase fotoupload)
        {
            model.Foto = "";
            if (ModelState.IsValid && User.Identity.GetUserId() != null)
            {
                try
                {
                    if (fotoupload != null)
                    {
                        string path = "~/Content/img/" + fotoupload.FileName;
                        model.Foto = path;
                        string fullpath = Server.MapPath("~/Content/img/") + fotoupload.FileName;
                        fotoupload.SaveAs(fullpath);
                    }
                    else
                    {
                        model.Foto = "~/Content/img/sinFoto.png";
                    }


                    var profesiones = db.Profesiones.Find(model.ProfesionId);
                    var tareas      = db.Tareas.Find(model.TareaId);
                    var zona        = db.Zonas.Where(x => x.Zona == model.Zona).FirstOrDefault();
                    var hora        = db.Horarios.Find(model.idHora);

                    var IdUsuario = User.Identity.GetUserId();
                    var usuario   = db.Users.Where(x => x.Id == IdUsuario).FirstOrDefault();

                    var solicitud = new Solicitudes
                    {
                        Profesiones    = profesiones,
                        Tareas         = tareas,
                        Zonas          = zona,
                        Desc_Solicitud = model.DescripcionServicio,
                        Estado         = "Alta",
                        Fecha          = model.FechaInicio,
                        Contador       = 0,
                        Foto           = model.Foto,
                        Usuarios       = usuario,
                        Horarios       = hora,
                    };
                    var lista = _SolicitudController._maching(solicitud);

                    var userManager = System.Web.HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();

                    foreach (var servi in lista)
                    {
                        userManager.SendEmail(servi.Id, "Solicitud de Presupuesto", "Usted tiene una solicitud para Presupuestar, ingrese a ServiEnCasas para responderla");
                    }

                    db.Solicitudes.Add(solicitud);
                    db.SaveChanges();

                    ViewBag.Message = "El archivo se ha subido correctamente";
                }
                catch (Exception ex)
                {
                    ViewBag.Message = "ERROR:" + ex.Message.ToString();
                }
            }
            else
            {
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Inicio"));
        }
Пример #26
0
        private async Task EnviarCorreoAprobacion(string solicitanteId, UserViewModel aprobador, SolicitudViewModel solicitud, string fileName)
        {
            var solicitante       = userService.ObtenerUsuarioPorId(solicitanteId);
            var nombreSolicitante = $"{solicitante.Nombre} {solicitante.PrimerApellido} {solicitante.SegundoApellido}";
            var jefe = new UserViewModel();

            if (solicitante.Role.Name.Equals("funcionario", StringComparison.OrdinalIgnoreCase))
            {
                jefe = userService.ObtenerJefePorUnidadTecnica(solicitante.UnidadTecnica.UnidadTecnicaId);
            }
            if (solicitante.Role.Name.Equals("jefatura", StringComparison.OrdinalIgnoreCase) || solicitante.Role.Name.Equals("recursos humanos", StringComparison.OrdinalIgnoreCase))
            {
                jefe = userService.ObtenerDirectorGeneral();
            }
            if (solicitante.Role.Name.Equals("director", StringComparison.OrdinalIgnoreCase))
            {
                jefe = userService.ObtenerUsuarioPorId(solicitanteId);
            }
            // var jefe = userService.ObtenerJefePorUnidadTecnica(solicitante.UnidadTecnica.UnidadTecnicaId);

            if (aprobador.Id == jefe.Id)
            {
                await emailNotification.SendEmailAsync(solicitante.Email, $"{jefe.Email},{ConfigurationManager.AppSettings["MailRH"]}", $"Vacaciones Aprobadas para {nombreSolicitante}", $"La solicitud de vacaciones: {solicitud.SolicitudId} para el colaborador {nombreSolicitante} fue <strong>aprobada</strong>. <br /> <br /> Observaciones: {solicitud.ComentarioJefatura}", Server.MapPath("~/PDFs/" + fileName));
            }
            else
            {
                await emailNotification.SendEmailAsync(solicitante.Email, $"{jefe.Email},{aprobador.Email},{ConfigurationManager.AppSettings["MailRH"]}", $"Vacaciones Aprobadas para {nombreSolicitante}", $"La solicitud de vacaciones: {solicitud.SolicitudId} para el colaborador {nombreSolicitante} fue <strong>aprobada</strong>. <br /> <br /> Observaciones: {solicitud.ComentarioJefatura}", Server.MapPath("~/PDFs/" + fileName));
            }
        }
Пример #27
0
        public ActionResult CrearSolicitud2(SolicitudViewModel objeto)
        {
            try
            {
                string destino = " ";
                if (objeto.detalleDestino != null)
                {
                    destino = objeto.DestinoSeleccionado + " " + objeto.detalleDestino;
                }
                else
                {
                    destino = objeto.DestinoSeleccionado;
                }


                var Solicitud = new SolicitudPedido
                {
                    descripcion     = objeto.numeroOC,
                    idTipoDespacho  = 1,
                    destino         = destino,
                    fechaSolicitud  = DateTime.Now,
                    usuarioMandante = objeto.Comprador,
                    usuarioReceptor = objeto.Solicitante,
                    estado          = "Solicitada",
                    correo          = User.Identity.GetUserName(),
                    cod_estado      = 1
                };

                db.SolicitudPedido.Add(Solicitud);
                db.SaveChanges();
                var idSol = Solicitud.idSolicitud;

                var lista = objeto.productosSeleccionados.ToList();


                if (lista.Count > 0)
                {
                    foreach (var item in lista)
                    {
                        var ProductoSolicitud = new ProductoSolicitud
                        {
                            idSolicitud = idSol,
                            idProducto  = item.idProducto,
                            cantidad    = item.cantidad,
                            NombreFK    = item.NombreFK
                        };
                        var ProductoEnBodega = new ProductosEnBodega
                        {
                            idSolicitud = idSol,
                            idProducto  = item.idProducto,
                            cantidad    = item.cantidad,
                            NombreFK    = item.NombreFK
                        };
                        db.ProductoSolicitud.Add(ProductoSolicitud);
                        db.ProductosEnBodega.Add(ProductoEnBodega);
                        db.SaveChanges();
                        PRODUCTO producto = db.PRODUCTO.Find(item.idProducto);
                        db.Entry(producto).State = EntityState.Modified;
                        var stock = producto.CantidadTotal;
                        producto.CantidadTotal = stock - item.cantidad;
                        db.SaveChanges();
                    }
                }
                /*-------------------------MENSAJE DE CORREO----------------------*/

                //Creamos un nuevo Objeto de mensaje
                System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();

                //Direccion de correo electronico a la que queremos enviar el mensaje
                //if (Request.IsAuthenticated)
                //{
                //mmsg.To.Add(User.Identity.GetUserName());
                //}
                mmsg.To.Add("*****@*****.**");
                //mmsg.To.Add("*****@*****.**");

                //Nota: La propiedad To es una colección que permite enviar el mensaje a más de un destinatario

                //Asunto
                mmsg.Subject         = "Solicitud recepcionada";
                mmsg.SubjectEncoding = System.Text.Encoding.UTF8;

                //Direccion de correo electronico que queremos que reciba una copia del mensaje
                mmsg.Bcc.Add("*****@*****.**");
                //mmsg.Bcc.Add("*****@*****.**");

                //if (Request.IsAuthenticated)
                //{
                //mmsg.Bcc.Add(User.Identity.GetUserName());
                //}

                mmsg.To.Add("*****@*****.**");
                mmsg.Bcc.Add("*****@*****.**");
                mmsg.Bcc.Add("*****@*****.**");
                //mmsg.To.Add("*****@*****.**");
                //if (Request.IsAuthenticated)
                //{
                //mmsg.Bcc.Add(User.Identity.GetUserName());
                //}

                //mmsg.Bcc.Add(user); //Opcional;

                //LoginViewModel model3;

                //Cuerpo del Mensaje
                DateTime fecha = DateTime.Now;
                string   fech  = fecha.ToString("dd/MM/yyyy");

                string descripción = "<div><p>Empresa: Los Heroes</p> </br><p>OC: " + Solicitud.descripcion + "</p></ br><p>Comprador: " + Solicitud.usuarioMandante + "</p></ br><p>Solicitante: " + Solicitud.usuarioReceptor + "</p><p>Destino: " + Solicitud.destino + "</p></div>";
                string tabla       = "<table align='center' border='0' width='80%'><tr bgcolor='#70bbd9'><th>Código</th><th>Descripción</th><th>Cantidad Solicitada</th></tr>";
                string list        = "";
                int    largo       = lista.Count;
                int    contador    = 0;
                if (largo > 0)
                {
                    foreach (var item in lista)
                    {
                        var productoAux = db.PRODUCTO.Find(item.idProducto);
                        contador = contador + 1;
                        list     = list + "<tr bgcolor ='#e8e8e8'><td>" + productoAux.Codigo + "</td><td>" + productoAux.Nombre + "</td><td>" + item.cantidad + "</td></tr>";
                        if (contador == largo)
                        {
                            list = list + "</table>";
                        }
                    }
                }
                string footer = "<p align='center'> para ver más detalles de la solicitud <a href='http://losheroes.micatalogo.cl/Solicitud/Detalles/" + Solicitud.idSolicitud + "'>pinche aquí­</a></p>";
                mmsg.Body         = descripción + "</br>" + tabla + list + footer;
                mmsg.BodyEncoding = System.Text.Encoding.UTF8;
                mmsg.IsBodyHtml   = true; //Si no queremos que se envíe como HTML

                //Correo electronico desde la que enviamos el mensaje
                mmsg.From = new System.Net.Mail.MailAddress("*****@*****.**");

                /*-------------------------CLIENTE DE CORREO----------------------*/

                //Creamos un objeto de cliente de correo
                System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();

                //Hay que crear las credenciales del correo emisor
                cliente.Credentials = new System.Net.NetworkCredential("*****@*****.**", "probag63");

                //Lo siguiente es obligatorio si enviamos el mensaje desde Gmail

                /*
                 * cliente.Port = 587;
                 * cliente.EnableSsl = true;
                 */
                cliente.Host = "mail.promomas.cl"; //Para Gmail "smtp.gmail.com";

                /*-------------------------ENVIO DE CORREO----------------------*/

                try
                {
                    //Enviamos el mensaje
                    cliente.Send(mmsg);
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    //Aquí gestionamos los errores al intentar enviar el correo
                }

                return(RedirectToAction("SolicitudPedido"));
            }
            catch
            {
                return(View());
            }
        }
Пример #28
0
        public ActionResult Create(SolicitudViewModel solicitudVM)
        {
            //int soliId =0;
            //if (ModelState.IsValid)
            //{
            //    bool validateDuplicate = false;
            //    string fixCedula = solicitudVM.Solicitud.IdentificacionCedula.Replace("-", "");
            //    var consultaCedulas = serv.SolicitudCheckCedula(fixCedula);
            //    validateDuplicate = consultaCedulas == null;
            //    //if (solicitudVM.Solicitud)
            //    //if (solicitudVM.Solicitud.GenericID_TipoIdentificacion == 10) {
            //    //  consulCedula = consultaCedulas == null;
            //    //}


            //    if (validateDuplicate == true) {

            //        solicitudVM.Solicitud.TieneInternet = solicitudVM.TieneInternetVal == 0 ? false : true;
            //        solicitudVM.Solicitud.TieneLaptopPc = solicitudVM.TieneLaptopPcVal == 0 ? false : true;
            //        solicitudVM.Solicitud.TieneSubsidio = solicitudVM.TieneSubsidioVal == 0 ? false : true;
            //        solicitudVM.Solicitud.DireccionidMunicipio = solicitudVM.Solicitud.Idmunicipio;
            //        var soli = serv.SolicitudAdd(solicitudVM.Solicitud);



            //        soliId = soli.SolicitudID;
            //        string UploadPath = Server.MapPath("~/Files");
            //        //Use Namespace called :  System.IO


            //        if (solicitudVM.PostFile != null)
            //        {
            //            string FileNameCedula = Path.GetFileName(solicitudVM.PostFile.FileName);
            //            var FilePathCedula = Path.Combine(UploadPath, Guid.NewGuid().ToString() + FileNameCedula);
            //            solicitudVM.PostFile.SaveAs(FilePathCedula);

            //            SolicitudAnexo solicitudAnexo = new SolicitudAnexo
            //            {
            //                SolicitudID = soliId,
            //                IsActive = true,
            //                ArchivoURL = "",
            //                GenericID_TipoDocumento = 6,
            //                LocalFile = FilePathCedula

            //            };

            //            serv.SolicitudAnexoAdd(solicitudAnexo);

            //            //UploadFile(soli.SolicitudID, soli.Email, solicitudVM.PostFile, 6);
            //        }

            //        if (solicitudVM.PostFileActa != null)
            //        {
            //            string FileNameActa = Path.GetFileName(solicitudVM.PostFileActa.FileName);
            //            var FilePathActa = Path.Combine(UploadPath, Guid.NewGuid().ToString() + FileNameActa);
            //            solicitudVM.PostFileActa.SaveAs(FilePathActa);

            //            SolicitudAnexo solicitudAnexo = new SolicitudAnexo
            //            {
            //                SolicitudID = soliId,
            //                IsActive = true,
            //                ArchivoURL = "",
            //                GenericID_TipoDocumento = 7,
            //                LocalFile = FilePathActa

            //            };

            //            serv.SolicitudAnexoAdd(solicitudAnexo);

            //            //UploadFile(soli.SolicitudID, soli.Email, solicitudVM.PostFileActa, 7);

            //        }

            //        if (solicitudVM.PostFileEstudios != null)
            //        {
            //            string FileNameEstudios = Path.GetFileName(solicitudVM.PostFileEstudios.FileName);
            //            var FilePathEstudios = Path.Combine(UploadPath, Guid.NewGuid().ToString() + FileNameEstudios);
            //            solicitudVM.PostFileEstudios.SaveAs(FilePathEstudios);

            //            SolicitudAnexo solicitudAnexo = new SolicitudAnexo
            //            {
            //                SolicitudID = soliId,
            //                IsActive = true,
            //                ArchivoURL = "",
            //                GenericID_TipoDocumento = 9,
            //                LocalFile = FilePathEstudios

            //            };

            //            serv.SolicitudAnexoAdd(solicitudAnexo);
            //        }

            //        try
            //        {


            //            string codigo = serv.CodeSolicitudById(soli);

            //            string emailBody = System.IO.File.ReadAllText(Server.MapPath(@"/Template/ITLA-Email.html")).Replace("@@email", solicitudVM.Solicitud.Nombres + " " + solicitudVM.Solicitud.Apellidos);

            //            emailBody = emailBody.Replace("@@codigo", codigo);
            //            emailBody = emailBody.Replace("@@locationUrl", @"https://www.puntostecnologicos.com/solicitudes/find/" + codigo);

            //            //UploadFile(soli.SolicitudID, soli.Email, solicitudVM.PostFileEstudios, 9);
            //            bool statusMail = serv.sendEmail(soli, emailBody);


            //            /*
            //             *


            //            string codigo = serv.CodeSolicitudById(soli);

            //            string emailBody = System.IO.File.ReadAllText(Server.MapPath(@"/Template/ITLA-Email.html")).Replace("@@email", solicitudVM.Solicitud.Nombres + " " + solicitudVM.Solicitud.Apellidos);
            //            string UrlBase = Request.Url.Scheme + "://" + Request.Url.Authority.ToString();
            //            emailBody = emailBody.Replace("@@codigo", codigo);
            //            emailBody = emailBody.Replace("@@locationUrl", UrlBase + @"/solicitudes/find/" + codigo);
            //            emailBody = emailBody.Replace("@@editURL", UrlBase + @"/solicitudes/edit/" + soliId);
            //            bool statusMail = serv.sendEmail(soli, emailBody);
            //              * */
            //        }
            //        catch
            //        {

            //        }


            //    }

            //   //devuelve true si el envio de corro fue exitoso.
            //    //return RedirectToAction("NoSolicitud");
            //    return RedirectToAction("NumeroSolicitud", new RouteValueDictionary(
            //    new { controller = "Solicitudes", action = "NumeroSolicitud", Id = soliId}));

            //}

            //ViewBag.ProyectoEspecialMateriaGrupoID = new SelectList(serv.ProyectoEspecialMateriaGrupoList(), "ProyectoEspecialMateriaGrupoID", "ProyectoEspecialMateriaGrupoID", solicitudVM.Solicitud.ProyectoEspecialMateriaGrupoID);

            return(View(solicitudVM.Solicitud));
        }