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)); }
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)); }
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); }
//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)); }
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)); }
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)); }
/*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); }
// 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)); }
// 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)); }
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)); } }
// 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)); }
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"); }
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")); }
//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); }
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)); }
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); }
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)); }
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 }))); }
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")); }
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)); } }
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()); } }
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)); }