Ejemplo n.º 1
0
        public int add(TareaDTO TareaDTO)
        {
            using (var context = getContext())
            {
                try
                {
                    Tarea Tarea = new Tarea();
                    Tarea.Nombre = TareaDTO.NombreTarea;
                    Tarea.Descripcion = TareaDTO.Descripcion;
                    Tarea.Observaciones = TareaDTO.Observaciones;
                    Tarea.FechaInicio = (TareaDTO.FechaInicio != null ? Convert.ToDateTime(TareaDTO.FechaInicio.Value.ToString("dd/MM/yyyy") + " " + TareaDTO.HoraInicio + ":" + TareaDTO.MinutoInicio) : TareaDTO.FechaInicio);
                    Tarea.FechaFin = (TareaDTO.FechaFin != null ? Convert.ToDateTime(TareaDTO.FechaFin.Value.ToString("dd/MM/yyyy") + " " + TareaDTO.HoraFin + ":" + TareaDTO.MinutoFin) : TareaDTO.FechaFin);
                    Tarea.IdCliente = TareaDTO.IdCliente;
                    Tarea.IdInmueble = TareaDTO.IdInmueble;
                    Tarea.IdServicio = TareaDTO.IdServicio;
                    if (TareaDTO.IdServicio == 4 || TareaDTO.IdServicio == 5)
                        Tarea.IdPlantilla = (TareaDTO.IdPlantilla.GetValueOrDefault() != 0) ? TareaDTO.IdPlantilla : null;
                    else
                        Tarea.IdPlantilla = null;

                    Tarea.IdEstado = TareaDTO.Responsables == null ? 1 : 2;//1 : Por Asignar, 2 : Asignado
                    Tarea.Active = true;
                    context.Tarea.Add(Tarea);

                    foreach (var resp in TareaDTO.Responsables)
                    {
                        var responsable = context.Usuario.Where(x => x.IdUsuario == resp.IdUsuario).SingleOrDefault();
                        Tarea.Usuario.Add(responsable);
                    }
                    context.SaveChanges();

                    TareaDTO.FechaInicio = Tarea.FechaInicio;
                    TareaDTO.FechaFin = Tarea.FechaFin;
                    TareaDTO.Cliente = context.Cliente.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new ClienteDTO { NombreEmpresa = y.Nombre }).FirstOrDefault();
                    TareaDTO.Cliente.Contactos = context.ContactoCliente.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new ContactoDTO { Nombre = y.Nombre }).ToList();
                    TareaDTO.Inmueble = context.Inmueble.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new InmuebleDTO { NombreInmueble = y.Nombre }).FirstOrDefault();
                    TareaDTO.Responsables = context.Tarea.Where(x => x.IdTarea == Tarea.IdTarea).SingleOrDefault().Usuario.Select(x => new UsuarioDTO { IdUsuario = x.IdUsuario, Nombre = x.Nombre, Email = x.Email }).ToList();
                    TareaDTO.Servicio = context.Servicio.Where(x => x.IdServicio == Tarea.IdServicio).Select(y => new ServicioDTO { NombreServicio = y.Nombre, NombreCorto = y.NombreCorto }).FirstOrDefault();
                    TareaDTO.Estado = context.Estado.Where(x => x.IdEstado == Tarea.IdEstado).Select(y => new EstadoDTO { NombreEstado = y.NombreEstado }).FirstOrDefault();
                    TareaDTO.Plantilla = context.Plantilla.Where(x => x.IdPlantilla == Tarea.IdPlantilla).Select(y => new PlantillaDTO { IdPlantilla = y.IdPlantilla, Nombre = y.Nombre, Nombre2 = y.Nombre2 }).FirstOrDefault();

                    if (TareaDTO.Responsables.Count > 0)
                        SendMailResponsable(TareaDTO, new List<int>(), TareaDTO.Responsables.Select(x => x.IdUsuario).ToList()); //SendMailResponsable(1, TareaDTO, null, null);
                    return Tarea.IdTarea;
                }
                catch (Exception e)
                {
                    throw e;
                    //return false;
                }
            }
        }
Ejemplo n.º 2
0
        public bool deleteTareaCalendario(int id)
        {
            using (var context = getContext())
            {
                try
                {
                    var Tarea = context.Tarea.Where(x => x.IdTarea == id).SingleOrDefault();
                    Tarea.FechaInicio = null;
                    Tarea.FechaFin = null;

                    var oldResponsables = Tarea.Usuario.Select(x => new UsuarioDTO { IdUsuario = x.IdUsuario, Nombre = x.Nombre, Email = x.Email }).ToList();
                    var responsablesToRemove = Tarea.Usuario.Select(x => x.IdUsuario).ToList();

                    foreach (var resp in responsablesToRemove)
                    {
                        var responsable = context.Usuario.Where(x => x.IdUsuario == resp).SingleOrDefault();
                        Tarea.Usuario.Remove(responsable);
                    }
                    context.SaveChanges();

                    if (responsablesToRemove.Count > 0)
                    {
                        TareaDTO oTareaDTO = new TareaDTO
                        {
                            NombreTarea = Tarea.Nombre,
                            Descripcion = Tarea.Descripcion,
                            FechaInicio = Tarea.FechaInicio,
                            FechaFin = Tarea.FechaFin,
                            Cliente = context.Cliente.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new ClienteDTO { NombreEmpresa = y.Nombre }).FirstOrDefault(),
                            Contactos = context.ContactoCliente.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new ContactoDTO { Nombre = y.Nombre }).ToList(),
                            Inmueble = context.Inmueble.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new InmuebleDTO { NombreInmueble = y.Nombre }).FirstOrDefault(),
                            Responsables = oldResponsables,//context.Usuario.AsEnumerable().Where(y => responsablesToRemove.IndexOf(y.IdUsuario) > -1).Select(x => new UsuarioDTO { IdUsuario = x.IdUsuario, Nombre = x.Nombre, Email = x.Email }).ToList(),
                            Servicio = context.Servicio.Where(x => x.IdServicio == Tarea.IdServicio).Select(y => new ServicioDTO { NombreServicio = y.Nombre, NombreCorto = y.NombreCorto }).FirstOrDefault(),
                            Estado = context.Estado.Where(x => x.IdEstado == Tarea.IdEstado).Select(y => new EstadoDTO { NombreEstado = y.NombreEstado }).FirstOrDefault()
                        };
                        SendMailResponsable(oTareaDTO, responsablesToRemove, new List<int>());
                    }

                    return true;
                }
                catch (Exception e)
                {
                    //throw e;
                    return false;
                }
            }
        }
Ejemplo n.º 3
0
        private void SendMailResponsable(TareaDTO oTareaDTO, List<int> responsablesRemoved, List<int> responsablesAdded)
        {
            /*
             * Evento
             * 1 : Asignado
             * 2 : Modificado -> Debe ser Re-agendado
             * 3 : Reasignado (Desasignacion + Asignacion)
             * 4 : Desagendado
            */

            //Modificado: Aplica a la modificacion de todos los campos todos los campos de Tarea menos Responsables.
            if (responsablesRemoved.Count == 0 && responsablesAdded.Count == 0)
            {
                enviarCorreo("Se ha actualizado la tarea asignada: ", oTareaDTO, new List<int>());
            }
            //Nuevo Responsable (Asignacion)
            if (responsablesAdded.Count > 0)
            {
                enviarCorreo("Se te ha asignado una nueva tarea: ", oTareaDTO, responsablesAdded);
            }
            //Removido Responsable (Desasignacion)
            if (responsablesRemoved.Count > 0)
            {
                enviarCorreo("Se ha eliminado la tarea asignada: ", oTareaDTO, responsablesRemoved);
            }

            //UsuariosBL oBL = new UsuariosBL();
            //string to1 = "";
            //int cont = 0;
            //string accion1 = (evento == 2 ? "modificado " : "asignado ");
            //string subject1 = "Se ha " + accion1 + "una tarea: " + oTareaDTO.NombreTarea;
            //string body = "<div>Nombre Tarea : " + oTareaDTO.NombreTarea + " </div>" +
            //    "<div>Descripción : " + oTareaDTO.Descripcion + " </div>" +
            //    "<div>Fecha Inicio : " + oTareaDTO.FechaInicio + " </div>" +
            //    "<div>Fecha Fin : " + oTareaDTO.FechaFin + " </div>" +
            //    "<div>Cliente : " + oTareaDTO.Cliente.NombreEmpresa + " </div>" +
            //    "<div>Inmueble : " + oTareaDTO.Inmueble.NombreInmueble + " </div>" +
            //    "<div>Responsable(s) : ";
            //foreach (var resp in oTareaDTO.Responsables)
            //{
            //    body += "<br/> - " + resp.Nombre;
            //    if (cont == 0) to1 = resp.Email; else to1 += "," + resp.Email;
            //    cont++;
            //}
            //body += " </div>" + "<div>Servicio : " + oTareaDTO.Servicio.NombreServicio + " </div>" + "<div>Estado : " + oTareaDTO.Estado.NombreEstado + " </div>";

            //MailHandler.Send(to1, subject1, body);
            //if (evento == 3)
            //{
            //    string to2 = "";
            //    cont = 0;
            //    foreach (var resp in responsablesRemoved)
            //    {
            //        //UsuarioDTO oOldUser = oBL.getUsuario(resp);
            //        if (cont == 0)
            //        {
            //            to2 += resp.Email;
            //        }
            //        else { to2 += ", " + resp.Email; }
            //        cont++;
            //    }

            //    string subject2 = "Se ha desasignado una tarea: " + oTareaDTO.NombreTarea;
            //    MailHandler.Send(to2, subject2, body);
            //}
        }
Ejemplo n.º 4
0
        private void enviarCorreo(string accion, TareaDTO oTareaDTO, List<int> toResponsables)
        {
            string to = string.Empty, copy = string.Empty, subject = string.Empty, body = string.Empty;
            //subject = "Se ha " + accion + " una tarea: " + oTareaDTO.NombreTarea;
            subject = accion + oTareaDTO.NombreTarea;
            body = "<div>Nombre Tarea : " + oTareaDTO.NombreTarea + " </div>" +
                "<div>Descripción : " + oTareaDTO.Descripcion + " </div>" +
                "<div>Fecha Inicio : " + oTareaDTO.FechaInicio + " </div>" +
                "<div>Fecha Fin : " + oTareaDTO.FechaFin + " </div>" +
                "<div>Cliente : " + oTareaDTO.Cliente.NombreEmpresa + " </div>" +
                "<div>Contactos : ";

            foreach (var contacto in oTareaDTO.Cliente.Contactos)
            {
                body += "<br/> - " + contacto.Nombre;
            }

            body += "<div>Inmueble : " + oTareaDTO.Inmueble.NombreInmueble + " </div>" +
            "<div>Responsable(s) : ";

            //if (toResponsables != null)
            UsuariosBL oBL = new UsuariosBL();
            foreach (var resp in toResponsables)
            {
                to += oBL.getUsuario(resp).Email + ",";
            }
            foreach (var resp in oTareaDTO.Responsables)
            {
                body += "<br/> - " + resp.Nombre;
                if (toResponsables.Count > 0)//(toResponsables != null)
                {
                    /*if (toResponsables.IndexOf(resp.IdUsuario) == -1)
                        copy += resp.Email + ",";*/
                }
                else
                    to += resp.Email + ",";
            }
            to = to.Substring(0, to.Length - 1);
            copy = copy.Substring(0, copy.Length - (copy.Length == 0 ? 0 : 1));
            body += " </div>" + "<div>Servicio : " + oTareaDTO.Servicio.NombreServicio + " </div>" + "<div>Estado : " + oTareaDTO.Estado.NombreEstado + " </div>";
            if(oTareaDTO.Plantilla != null)
            {
                if(oTareaDTO.Plantilla.IdPlantilla != 0)
                    body += "<div>Protocolo : " + oTareaDTO.Plantilla.Nombre + " - " + oTareaDTO.Plantilla.Nombre2 + " </div>";
            }

            MailHandler.Send(to, copy, subject, body);
            //MailHandler.sendEmail(body);
        }
Ejemplo n.º 5
0
        public int updateTareaResponsable(int tipoCorreo, TareaDTO oTareaDTO)
        {
            using (var context = getContext())
            {
                try
                {
                    var Tarea = context.Tarea.Where(x => x.IdTarea == oTareaDTO.IdTarea).SingleOrDefault();

                    var horaInicio = Tarea.FechaInicio != null ? Tarea.FechaInicio.Value.Hour : 0;
                    var horaFin = Tarea.FechaFin != null ? Tarea.FechaFin.Value.Hour : 0;
                    var minutoInicio = Tarea.FechaInicio != null ? Tarea.FechaInicio.Value.Minute : 0;
                    var minutoFin = Tarea.FechaFin != null ? Tarea.FechaFin.Value.Minute : 0;

                    Tarea.FechaInicio = (oTareaDTO.FechaInicio != null ? Convert.ToDateTime(oTareaDTO.FechaInicio.Value.ToString("dd/MM/yyyy") + " " + horaInicio + ":" + minutoInicio) : oTareaDTO.FechaInicio);
                    Tarea.FechaFin = (oTareaDTO.FechaFin != null ? Convert.ToDateTime(oTareaDTO.FechaFin.Value.ToString("dd/MM/yyyy") + " " + horaFin + ":" + minutoFin) : oTareaDTO.FechaFin);
                    Tarea.IdEstado = oTareaDTO.Responsables == null ? 1 : 2;//1 : Por Asignar, 2 : Asignado

                    var oldResponsables = Tarea.Usuario.Select(x => x.IdUsuario).ToList();
                    var newResponsables = oTareaDTO.Responsables.Select(x => x.IdUsuario).ToList();
                    var responsablesToRemove = oldResponsables.Except(newResponsables).ToList();
                    var responsablesToAdd = newResponsables.Except(oldResponsables).ToList();

                    foreach (var resp in responsablesToRemove)
                    {
                        var responsable = context.Usuario.Where(x => x.IdUsuario == resp).SingleOrDefault();
                        Tarea.Usuario.Remove(responsable);
                    }
                    foreach (var resp in responsablesToAdd)
                    {
                        var responsable = context.Usuario.Where(x => x.IdUsuario == resp).SingleOrDefault();
                        Tarea.Usuario.Add(responsable);
                    }
                    context.SaveChanges();

                    oTareaDTO.NombreTarea = Tarea.Nombre;
                    oTareaDTO.Descripcion = Tarea.Descripcion;
                    oTareaDTO.FechaInicio = Tarea.FechaInicio;
                    oTareaDTO.FechaFin = Tarea.FechaFin;
                    oTareaDTO.Cliente = context.Cliente.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new ClienteDTO { NombreEmpresa = y.Nombre }).FirstOrDefault();
                    oTareaDTO.Cliente.Contactos = context.ContactoCliente.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new ContactoDTO { Nombre = y.Nombre }).ToList();
                    oTareaDTO.Inmueble = context.Inmueble.Where(x => x.IdCliente == Tarea.IdCliente).Select(y => new InmuebleDTO { NombreInmueble = y.Nombre }).FirstOrDefault();
                    oTareaDTO.Responsables = context.Tarea.Where(x => x.IdTarea == Tarea.IdTarea).SingleOrDefault().Usuario.Select(x => new UsuarioDTO { IdUsuario = x.IdUsuario, Nombre = x.Nombre, Email = x.Email }).ToList();
                    oTareaDTO.Servicio = context.Servicio.Where(x => x.IdServicio == Tarea.IdServicio).Select(y => new ServicioDTO { NombreServicio = y.Nombre, NombreCorto = y.NombreCorto }).FirstOrDefault();
                    oTareaDTO.Estado = context.Estado.Where(x => x.IdEstado == Tarea.IdEstado).Select(y => new EstadoDTO { NombreEstado = y.NombreEstado }).FirstOrDefault();

                    SendMailResponsable(oTareaDTO, responsablesToRemove, responsablesToAdd);
                    return Tarea.IdTarea;
                }
                catch (Exception e)
                {
                    //throw e;
                    return 0;
                }
            }
        }
Ejemplo n.º 6
0
 public IList GetContadorEstados(TareaDTO oTareaDTO)
 {
     using (var context = getContext())
     {
         var result = context.SP_CountEstados(oTareaDTO.FechaInicio, oTareaDTO.FechaFin, oTareaDTO.IdResponsable).Select(x => new { x.NombreEstado, x.CuentaEstado }).ToList();
         return result;
     }
 }