Ejemplo n.º 1
0
        public async Task <JsonResult> Create(Otra_solicitud model, string id_tipo, string fecha_novedad, int id_cliente, int usuarios_)
        {
            try
            {
                var          tipo_nov = Convert.ToInt32(id_tipo);
                Novedad      novedad  = new Novedad();
                Tipo_novedad tipo     = _db.Tipo_novedad.FirstOrDefault(x => x.id_tipo == tipo_nov);
                novedad.Tipo_novedad  = tipo;
                novedad.tipo_nov      = tipo_nov;
                novedad.id_cliente    = id_cliente;
                novedad.fecha_mod     = DateTime.Now;
                novedad.estado        = "P";
                novedad.usuario_mod   = SesionLogin().id;
                novedad.fecha_novedad = DateTime.Parse(fecha_novedad);

                model.Novedad = novedad;
                model.Usuario = _db.Usuario.FirstOrDefault(x => x.id == usuarios_);//id_usuario
                if (model.cant_horas == null)
                {
                    model.cant_horas = "0";
                }
                _db.Otra_solicitud.Add(model);
                _db.SaveChanges();

                int id_nov = model.id_novedad;

                var casillas = (from nov in _db.Novedad
                                join uc in _db.Usuario_Cliente on nov.id_cliente equals uc.id_cliente
                                join u in _db.Usuario on uc.id_usu equals u.id
                                where u.id_tipo_usu == 2 &&
                                nov.id_novedad == id_nov
                                select u).ToList();


                List <Task> sendTask = new List <Task>();
                foreach (var item in casillas)
                {
                    string mensaje = "Estimado(a) " + item.Nom_usu + ",</br>";
                    string detalle = "Te comentamos que hoy " + DateTime.Now.ToShortDateString() + " se ha realizado una solicitud de Tipo \"Otras Solicitudes\" de la empresa : </br> " + _db.Cliente.FirstOrDefault(p => p.id_cliente == id_cliente).nom_emp;
                    sendTask.Add(App_Start.Helper.SendEmail("*****@*****.**", item.email, "Se ha realizado una solicitud de Tipo \"Otras Solicitudes\"", mensaje, detalle));
                    helper.registraEmail(item.id, "*****@*****.**", item.email, "Se ha realizado una solicitud de Tipo \"Otras Solicitudes\"", mensaje + " " + detalle);
                }
                await Task.WhenAll(sendTask);

                return(JsonExito());
                //if (!helper.ValidaIngresoNovedad(id_cliente))
                //{

                //    return JsonExitoMsg("Este registro se proceso pero conlleva un SNR ", "SNR");
                //}
                //else
                //{
                //    return JsonExito();
                //}
            }
            catch (Exception e)
            {
                return(JsonError("ocurrió un problema con su solicitud", e));
            }
        }
Ejemplo n.º 2
0
        public ActionResult Edit(Otra_solicitud model, string id_tipo, string fecha_novedad)
        {
            try
            {
                var tipo_nov = Convert.ToInt32(id_tipo);
                var id_reg   = model.id_otro;
                var id_nov   = _db.Otra_solicitud.FirstOrDefault(x => x.id_otro == id_reg).id_novedad;

                Novedad novedad = _db.Novedad.FirstOrDefault(x => x.id_novedad == id_nov);
                novedad.fecha_mod     = DateTime.Now;
                novedad.estado        = "P";
                novedad.usuario_mod   = SesionLogin().id;
                novedad.fecha_novedad = DateTime.Parse(fecha_novedad);
                model.Novedad         = novedad;
                model.Usuario         = _db.Usuario.FirstOrDefault(x => x.id == model.id_usu);
                if (model.cant_horas == null)
                {
                    model.cant_horas = "0";
                }


                Tipo_novedad tipo = _db.Tipo_novedad.FirstOrDefault(x => x.id_tipo == tipo_nov);

                string tipo_sol = tipo.nombre;

                Avisos aviso = _db.Avisos.FirstOrDefault(x => x.id_novedad == model.id_novedad);
                aviso.titulo_aviso = tipo_sol;
                aviso.desc_aviso   = model.descripcion;
                aviso.fecha_aviso  = novedad.fecha_novedad;
                aviso.id_cliente   = SesionCliente().id_cliente;

                model.id_novedad = novedad.id_novedad;
                _db.Avisos.Attach(aviso);
                _db.Entry(aviso).State = System.Data.Entity.EntityState.Modified;
                _db.Set <Otra_solicitud>().AddOrUpdate(model);
                //_db.Otra_solicitud.Attach(model);
                //_db.Entry(model).State = System.Data.Entity.EntityState.Modified;

                _db.SaveChanges();
                return(JsonExito());
            }
            catch (Exception e)
            {
                return(JsonError("Ocurrió un problema con su solicitud", e));
            }
        }
Ejemplo n.º 3
0
        public async System.Threading.Tasks.Task <ActionResult> Create(Otra_solicitud model, HttpPostedFileBase[] files /*, string[] documento*/, int id_cliente)
        {
            try
            {
                Novedad novedad = new Novedad();
                novedad.usuario_mod   = SesionLogin().id;
                novedad.id_cliente    = id_cliente;
                novedad.fecha_mod     = DateTime.Now;
                novedad.tipo_nov      = 1016;
                novedad.fecha_novedad = DateTime.Now;
                novedad.estado        = "P";
                model.Novedad         = novedad;
                model.id_usu          = SesionLogin().id;
                model.id_novedad      = novedad.id_novedad;
                model.descripcion     = "";
                model.cant_horas      = "";
                _db.Otra_solicitud.Add(model);
                var cliente   = _db.Cliente.FirstOrDefault(x => x.id_cliente == id_cliente);
                var documento = _db.parametros.FirstOrDefault(x => x.valor == "documotrasoli").valor;

                int i = 0;
                foreach (var item in files)// TODO
                {
                    if (item == null)
                    {
                        break;
                    }
                    else
                    {
                        Documento documento_ = new Documento();
                        documento_.Novedad              = novedad;
                        documento_.Cliente              = _db.Cliente.FirstOrDefault(x => x.id_cliente == novedad.id_cliente);
                        documento_.id_novedad           = model.id_novedad;
                        documento_.id_usu               = SesionLogin().id;
                        documento_.categoria            = documento;
                        documento_.Novedad.Tipo_novedad = _db.Tipo_novedad.FirstOrDefault(x => x.id_tipo == novedad.tipo_nov);
                        try { helper.createFile(item, documento_); } catch (Exception e) { App_Start.ErrorService.LogError(e); }
                        i++;
                    }
                }

                var usuarios_payroll = (from u in _db.Usuario
                                        join uc in _db.Usuario_Cliente on u.id equals uc.id_usu
                                        where uc.id_cliente == id_cliente && u.id_tipo_usu == 2 && u.estado == 1
                                        select u).ToList();
                if (!usuarios_payroll.Any())
                {
                    throw new Exception(App_GlobalResources.Pay_Lenguaje.no_hay_contraparte);
                }
                List <Task> sendTask = new List <Task>();
                foreach (var item in usuarios_payroll)
                {
                    //Email ok
                    string mensaje_payroll = "Estimado(a) " + item.Nom_usu + ",</br></br> Te informamos que con fecha " + novedad.fecha_novedad.ToLongDateString() + "," + SesionLogin().Nom_usu + " ha enviado información para considerar dentro del proceso de remuneraciones para " + cliente.nom_emp + "</br></br>Saludos y gracias, </br></br>Este correo es informativo, favor no responder a esta dirección de correo, ya que no se encuentra habilitada para recibir mensajes. </br></br>";
                    string detalle_payroll = "";
                    //string detalle_payroll = "</br></br>Dear Mr./ Ms. " + item.Nom_usu + " </br></br>There has been a uploaded to the module, about the news of the month, from the client " + cliente.nom_emp + ". </br> With date of: " + novedad.fecha_novedad + " </br></br>We appreciate that you can review. </br></br></br></br>Greetings and thank you, </br></br>This email is informative, please do not reply to this email address, as it´s not able to receive messages. </br></br>";
                    await Helper.SendEmail("*****@*****.**", item.email, cliente.Nom_cor_emp + " | Envío de Información", mensaje_payroll, detalle_payroll);

                    helper.registraEmail(item.id, "*****@*****.**", item.email, cliente.Nom_cor_emp + " | Envío de Información", mensaje_payroll + " " + detalle_payroll);
                }
                _db.SaveChanges();
                return(JsonExito());
            }
            catch (Exception err)
            {
                return(JsonError(err.Message, err));
            }
        }