Beispiel #1
0
        public Respuesta <Dato> RealizarComentario(TipoComentario tipo, long referencia, string usuario, string contenido, long?referenciaComentario)
        {
            JObject prms = new JObject();

            prms.Add("tipo", tipo.GetStringValue());
            prms.Add("referencia", referencia);
            //prms.Add("usuario", usuario);
            prms.Add("contenido", contenido);
            prms.Add("ref_comentario", referenciaComentario);

            string rsp = base.ProcesarOperacion(TipoOperacion.Servicio.GetStringValue(),
                                                NOMBRE_REALIZAR_COMENTARIO,
                                                DOMINIO_OPERACION,
                                                prms.ToString(Formatting.None));
            var entityRsp = JsonConvert.DeserializeObject <YRespuesta <YDato> >(rsp);

            return(EntitiesMapper.GetRespuestaFromEntity <Dato, YDato>(entityRsp, EntitiesMapper.GetModelFromEntity <Dato, YDato>(entityRsp.Datos)));
        }
Beispiel #2
0
        public async Task <ActionResult> AddAnswer(TipoPQRS TipoPQRS, int DataId, int RecordId, int Order, TipoComentario TipoComentario)
        {
            //validar si ya dio respuesta en ese paso



            var data = new AddCommentViewModel();

            data.TipoPQRS        = TipoPQRS;
            data.PQRSRecordId    = RecordId;
            data.PQRSRecordOrder = Order;
            data.TipoComentario  = TipoComentario;
            data.DataId          = DataId;
            var PQRSRecord = await db.PQRSRecords.Where(pr => pr.Id == RecordId && pr.Order == Order).FirstOrDefaultAsync();

            data.FlujoPQRSDescripcion = PQRSRecord.FlujoPQRSDescripcion;
            if (TipoPQRS == TipoPQRS.Devolucion)
            {
                var devolucion = await db.Devoluciones
                                 .Where(d => d.Id == DataId).FirstOrDefaultAsync();

                if (devolucion == null)
                {
                    return(HttpNotFound());
                }


                data.Asunto = $"Step {PQRSRecord.Order}: " + PQRSRecord.FlujoPQRSNombre + " Reason: " + PQRSRecord.MotivoPQRSNombre + " Subject: " + devolucion.Asunto;
                //data.AnalistaId = devolucion.AnalistaId;
            }
            else if (TipoPQRS == TipoPQRS.Garantia)
            {
                var garantia = await db.Garantias.Where(d => d.Id == DataId).FirstOrDefaultAsync();

                if (garantia == null)
                {
                    return(HttpNotFound());
                }

                data.Asunto = $"Step {PQRSRecord.Order}:  " + PQRSRecord.FlujoPQRSNombre + " Reason: " + PQRSRecord.MotivoPQRSNombre + " Subject: " + garantia.Asunto;
                // data.AnalistaId = garantia.AnalistaId;
            }
            else if (TipoPQRS == TipoPQRS.Novedad)
            {
                var novedad = await db.Novedad.Where(d => d.Id == DataId).FirstOrDefaultAsync();

                if (novedad == null)
                {
                    return(HttpNotFound());
                }


                data.Asunto = $"Step {PQRSRecord.Order}:  " + PQRSRecord.FlujoPQRSNombre + " Reason: " + PQRSRecord.MotivoPQRSNombre + " Subject: " + novedad.Asunto;
                // data.AnalistaId = novedad.AnalistaId;
            }
            else if (TipoPQRS == TipoPQRS.Recruitment)
            {
                var recruitment = await db.Recruitments.Where(d => d.RecruitmentId == DataId).FirstOrDefaultAsync();

                if (recruitment == null)
                {
                    return(HttpNotFound());
                }


                data.Asunto = $"Step {PQRSRecord.Order}:  " + PQRSRecord.FlujoPQRSNombre + " Reason: " + PQRSRecord.MotivoPQRSNombre + " Subject: " + recruitment.Appointment;
                // data.AnalistaId = novedad.AnalistaId;
            }
            else
            {
                return(HttpNotFound());
            }


            var Tareas = await db.PQRSRecordTareas.Where(pu => pu.PQRSRecordId == RecordId && pu.PQRSRecordOrder == Order).ToListAsync();

            data.Tareas = Tareas;
            //Condiciones
            int  Idx                 = Order + 1;
            bool flagCondiciones     = true;
            var  CondicionesViewList = new List <AddCommentViewModel.CondicionesView>();

            while (flagCondiciones)
            {
                var Condiciones = await db.PQRSRecordCondiciones
                                  .Include(pc => pc.PQRSRecord)
                                  .Where(pu => pu.PQRSRecordId == RecordId && pu.PQRSRecordOrder == Idx).ToListAsync();

                if (Condiciones.Count > 0)
                {
                    var CondicionesView = new AddCommentViewModel.CondicionesView();
                    CondicionesView.Condiciones = Condiciones;
                    CondicionesView.PQRSRecord  = Condiciones.FirstOrDefault().PQRSRecord;
                    CondicionesViewList.Add(CondicionesView);

                    Idx++;
                }
                else
                {
                    flagCondiciones = false;
                }
            }

            data.Condiciones = CondicionesViewList;


            ViewBag.TipoDocSoporteId = await db.TipoDocSoporte.ToListAsync();

            return(PartialView("_AddAnswer", data));
        }
Beispiel #3
0
        public void SendNotificationEmailTask(TipoNotificacion tipoNotificacion, TipoComentario tipoComentario, TipoPQRS tipoPQRS, int RecordId, int Order, int DataId, int CommentId, string UsuarioNombre, string AppLink)
        {
            var formato = new Formato();

            try
            {
                formato = db.Recruitments.Include(d => d.UsuarioCreacion).Include(d => d.Analista).Where(d => d.RecruitmentId == DataId)
                          .Select(d => new Formato {
                    TipoPQRS       = tipoPQRS,
                    Id             = d.RecruitmentId,
                    AnalistaId     = (d.Analista == null) ? "" : d.Analista.UsuarioNombre,
                    AnalistaCorreo = (d.Analista == null) ? "" : d.Analista.UsuarioCorreo,
                    NroTracking    = (d.NroTracking == null) ? "" : d.NroTracking
                }).FirstOrDefault();

                List <Mails> mails = new List <Mails>();

                string subject = "AIS - ";
                subject += $"[{formato.NroTracking}]: {formato.Asunto}  ({tipoNotificacion.ToString()})";
                string msg    = $"The user <b>{UsuarioNombre}</b> ";
                string action = "Details";


                bool flagDestinatarios = false;
                //Primer paso ( se crear el ticket de PQRS)
                if (tipoNotificacion == TipoNotificacion.CreateFormat)
                {
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                    flagDestinatarios = true;
                }
                else if (tipoNotificacion == TipoNotificacion.Assign)
                {
                    /* msg += $"has assigned a new CS analyst ({formato.AnalistaId})";
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefault();
                     * msg += $"<b>Reason</b>: {step.MotivoPQRSNombre}<br />";
                     * var comment = db.PQRSRecordComentarios.Where(c => c.Id == CommentId).FirstOrDefault();
                     * msg += $"<b>Date Comment</b>: {comment.FechaCreacion}<br />";
                     * msg += $"<b>Comment</b>: {comment.Comentario}<br />";
                     * flagDestinatarios = step.EnviaCorreoDestinatarios ?? false;*/

                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                }
                else if (tipoNotificacion == TipoNotificacion.Comment)
                {
                    /* msg += $"has added a new comment";
                     *
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     *
                     * var comment = db.PQRSRecordComentarios.Where(c => c.Id == CommentId).FirstOrDefault();
                     * msg += $"<b>Date Comment</b>: {comment.FechaCreacion}<br />";
                     * msg += $"<b>Comment</b>: {comment.Comentario}<br />";*/

                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                }
                else if (tipoNotificacion == TipoNotificacion.CurrentStep)
                {
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";

                    /*
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefault();
                     * if (tipoComentario == TipoComentario.Approval)
                     * {
                     *  msg += $"has approved <b>Step:</b> {step.FlujoPQRSNombre} <b>Reason PQRS:</b> {step.MotivoPQRSNombre}";
                     * }
                     * else if (tipoComentario == TipoComentario.Rejection)
                     * {
                     *  msg += $"has rejected <b>Step:</b> {step.FlujoPQRSNombre} <b>Reason PQRS:</b> {step.MotivoPQRSNombre}";
                     * }
                     *
                     *
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     * msg += $"<b>Reason</b>: {step.MotivoPQRSNombre}<br />";
                     * var comment = db.PQRSRecordComentarios.Where(c => c.Id == CommentId).FirstOrDefault();
                     * msg += $"<b>Date Comment</b>: {comment.FechaCreacion}<br />";
                     * msg += $"<b>Comment</b>: {comment.Comentario}<br />";
                     * var userStep = db.PQRSRecordUsuarios
                     *                      .Include(ru => ru.Usuario)
                     *                      .Where(ru => ru.PQRSRecordId == RecordId && ru.PQRSRecordOrder == Order).ToList();
                     * foreach (var u in userStep)
                     * {
                     *  mails.Add(new Mails { to = u.Usuario.UsuarioCorreo, toName = u.Usuario.UsuarioNombre });
                     * }
                     * flagDestinatarios = step.EnviaCorreoDestinatarios ?? false;
                     */
                }
                else if (tipoNotificacion == TipoNotificacion.NextStep)
                {
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";

                    /*
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefaultAsync();
                     * msg = $"You have pending an action to do in system, please log in here to continue";
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     *
                     * var userStep = db.PQRSRecordUsuarios
                     *                      .Include(ru => ru.Usuario)
                     *                      .Where(ru => ru.PQRSRecordId == RecordId && ru.PQRSRecordOrder == Order).ToList();
                     * mails.Clear();
                     * foreach (var u in userStep)
                     * {
                     *  mails.Add(new Mails { to = u.Usuario.UsuarioCorreo, toName = u.Usuario.UsuarioNombre });
                     * }
                     * flagDestinatarios = false;
                     */
                }
                else if (tipoNotificacion == TipoNotificacion.Close)
                {
                    /*
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefault();
                     * msg = $"has closed  <b>Reason PQRS:</b> {step.MotivoPQRSNombre}";
                     * var comment = db.PQRSRecordComentarios.Where(c => c.Id == CommentId).FirstOrDefault();
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     * msg += $"<b>Date Comment</b>: {comment.FechaCreacion}<br />";
                     * msg += $"<b>Comment</b>: {comment.Comentario}<br />";
                     * flagDestinatarios = step.EnviaCorreoDestinatarios ?? false;
                     */
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                }
                else if (tipoNotificacion == TipoNotificacion.Complete)
                {
                    /*
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefault();
                     * msg += $"has completed  ";
                     *
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     *
                     * flagDestinatarios = step.EnviaCorreoDestinatarios ?? false;
                     */
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                }

                //Destinatario del formato
                if (flagDestinatarios)
                {
                    var destinatarios = formato.Destinatarios.Split(',');
                    foreach (var d in destinatarios)
                    {
                        if (d != null && d != "")
                        {
                            mails.Add(new Mails {
                                to = d, toName = d
                            });
                        }
                    }
                }

                //if (tipoNotificacion != TipoNotificacion.CreateFormat)
                msg += $"<br /><br /><a style='color:#22BCE5' href={{url}}/PQRS/{action}?TipoPQRS={tipoPQRS}&DataId={DataId}&RecordId={RecordId}>Click here to view the PQRS.</a>";

                foreach (var m in mails)
                {
                    Task.Run(() => Fn.SendHtmlEmail("*****@*****.**", "Cayo Diebe", subject, msg, AppLink));
                    //Task.Run(() => Fn.SendHtmlEmail(m.to, m.toName, subject, msg, AppLink));
                }
            }
            catch
            {
                return;
            }

            // await Task.Run(() => Fn.SendHtmlEmail(to, toName, subject, msg));
        }