Пример #1
0
        public async Task <ActionResult> DoInbox(int documentId)
        {
            var result = new NewInboxViewModel();
            var tmp    = await helper.GetInMailbox(documentId);

            var tmpModel = JsonConvert.DeserializeObject <InboxDocumentModel>(tmp);

            if (tmpModel.IncomingMailboxId > 0)
            {
                result.DBModel = tmpModel;
            }
            else
            {
                result.ErrorMessage = "No se pudo obtener información.";
            }
            var statusList = new List <SelectListItem>();

            statusList.Add(new SelectListItem()
            {
                Text = "Asignar", Value = "Asignado"
            });
            statusList.Add(new SelectListItem()
            {
                Text = "Atender", Value = "Atendido"
            });
            ViewBag.StatusList = new SelectList(statusList, "Value", "Text");
            if (tmpModel.DocumentStatus == "Atendido")
            {
                result.WarningMessage = "Este documento ha sido atendido.";
            }
            else if (!tmpModel.AssignedToLogin.Contains(User.Identity.Name.ToLower()))
            {
                result.WarningMessage = "Usted no es el responsable de este documento, puede visualizar la información pero no modificarla.";
            }
            ViewBag.PreviousPage = Request.QueryString["SPHostUrl"];
            if (result.DBModel.ResponseDate == new DateTime(1900, 1, 1))
            {
                result.DBModel.ResponseDate = DateTime.Today;
            }
            return(View(result));
        }
Пример #2
0
        public async Task <ActionResult> DoInbox(NewInboxViewModel model)
        {
            var statusList = new List <SelectListItem>();

            statusList.Add(new SelectListItem()
            {
                Text = "Asignar", Value = "Asignado"
            });
            statusList.Add(new SelectListItem()
            {
                Text = "Atender", Value = "Atendido"
            });
            ViewBag.StatusList = new SelectList(statusList, "Value", "Text");
            var currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture;

            if (!string.IsNullOrEmpty(Request.QueryString["SPLanguage"]))
            {
                currentCulture = new CultureInfo(Request.QueryString["SPLanguage"]);
            }
            try
            {
                var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
                using (var clientContext = spContext.CreateUserClientContextForSPHost())
                {
                    if (clientContext != null)
                    {
                        var spUser = clientContext.Web.CurrentUser;
                        clientContext.Load(spUser, user => user.Title, user => user.LoginName);
                        clientContext.ExecuteQuery();

                        model.DBModel.AssignedByLogin = spUser.LoginName;
                        model.DBModel.AssignedByName  = spUser.Title;
                        ViewBag.UserName = spUser.Title;
                    }
                }
                var tmpAssgnTo = JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(model.DBModel.AssignedToControl);
                model.DBModel.AssignedToLogin = tmpAssgnTo[0].Login;
                model.DBModel.AssignedToName  = tmpAssgnTo[0].Name;
                var ccList        = new List <string>();
                var tmpCCLoginStr = string.Empty;
                var tmpCCNameStr  = string.Empty;
                if (!string.IsNullOrEmpty(model.DBModel.AssignedToCCControl))
                {
                    var tmpAssgnToCC = JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(model.DBModel.AssignedToCCControl);
                    for (var i = 0; i < tmpAssgnToCC.Count; i++)
                    {
                        ccList.Add(tmpAssgnToCC[i].Email);
                        tmpCCLoginStr += tmpAssgnToCC[i].Login + "/";
                        tmpCCNameStr  += tmpAssgnToCC[i].Name + ", ";
                    }
                }
                model.DBModel.AssignedToCCLogin = tmpCCLoginStr;
                model.DBModel.AssignedToCCName  = tmpCCNameStr;
                model.DBModel.AssignmentDate    = DateTime.Now;
                var difDays = model.DBModel.ResponseDate - DateTime.Today;
                if (difDays.Days > 7)
                {
                    var calcDays = Math.Ceiling(difDays.Days * 0.6);
                    model.DBModel.FirstReminderDate = DateTime.Today.AddDays(calcDays);
                    calcDays = Math.Ceiling(difDays.Days * 0.8);
                    model.DBModel.SecondReminderDate = DateTime.Today.AddDays(calcDays);
                }
                else
                {
                    model.DBModel.FirstReminderDate = DateTime.Today;
                    var calcDays = Math.Ceiling(difDays.Days * 0.1);
                    model.DBModel.SecondReminderDate = DateTime.Today.AddDays(calcDays);
                }
                var sbAttachments = new System.Text.StringBuilder();
                if (!string.IsNullOrEmpty(model.DBModel.Attachment1Url))
                {
                    var arrAttachments = model.DBModel.Attachment1Url.Split(';');
                    foreach (var att in arrAttachments)
                    {
                        if (!string.IsNullOrEmpty(att))
                        {
                            sbAttachments.AppendFormat("- <a href='{0}'>{1}</a><br/>", att, att.Substring(att.LastIndexOf("/") + 1));
                        }
                    }
                }
                var tmpSave = await helper.PostInMailbox(model.DBModel, string.Empty);

                var strBody = string.Format("<p>Estimado <b>{0}</b>,</p><p>Se le ha asignado el documento <b>{1}</b> de <b>Correspondencia Entrante</b> en la Intranet.<br/></p><p>Considerar las siguientes observaciones:<br/>{2}</p><p>Para ver el documento escaneado haga clic en los siguientes enlaces:<br/>{3} <br/>Para ingresar al portal haga <a href='https://icpower.sharepoint.com'>clic aquí</a></p><p>Atentamente,<br/></p><p><b>Intranet IC Power</b></p>", model.DBModel.AssignedToName, model.DBModel.DocumentSubject, model.DBModel.Annotations, sbAttachments.ToString());
                if (model.DBModel.DocumentStatus == "Atendido")
                {
                    strBody = string.Format("<p>Estimados,</p><p>El documento <b>{0}</b> de <b>Correspondencia Entrante</b> ha sido atendido en la Intranet.<br/></p><p>Observaciones: <br/><span style='font-style:italic'>{1}</span></p><p>Atentamente,<br/></p><p><b>Intranet IC Power</b></p>", model.DBModel.DocumentSubject, model.DBModel.Annotations);
                }
                new Utils.EmailHelper().SendEmail("*****@*****.**", tmpAssgnTo[0].Email, ccList.ToArray(), "Intranet - " + model.DBModel.DocumentCode + " - " + model.DBModel.DocumentSubject, strBody);
                model.ConfirmMessage = "Los cambios se grabaron con éxito. Para continuar haga clic en Cerrar.";
            }
            catch (Exception ex)
            {
                model.ErrorMessage = "Ocurrió un error al grabar su información. Por favor vuelva a intentar.";
            }
            return(View(model));
        }
Пример #3
0
        public async Task <ActionResult> NewInbox(NewInboxViewModel model)
        {
            var companyList = new List <SelectListItem>();

            companyList.Add(new SelectListItem()
            {
                Text = "Kallpa Generación", Value = "CE Kallpa Generación"
            });
            companyList.Add(new SelectListItem()
            {
                Text = "Cerro del Aguila", Value = "CE Cerro del Aguila"
            });
            companyList.Add(new SelectListItem()
            {
                Text = "Samay I", Value = "CE Samay"
            });
            companyList.Add(new SelectListItem()
            {
                Text = "Hidro Chilia", Value = "CE Hidro Chilia"
            });
            ViewBag.CompanyList = new SelectList(companyList, "Value", "Text");
            var departmentList = new List <SelectListItem>();

            departmentList.Add(new SelectListItem()
            {
                Text = "Todos", Value = "Todos"
            });
            departmentList.Add(new SelectListItem()
            {
                Text = "Administración", Value = "Administración"
            });
            departmentList.Add(new SelectListItem()
            {
                Text = "Contraloría", Value = "Contraloría"
            });
            departmentList.Add(new SelectListItem()
            {
                Text = "Relaciones Comunitarias", Value = "Relaciones Comunitarias"
            });
            ViewBag.DepartmentList = new SelectList(departmentList, "Value", "Text");
            var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);

            using (var clientContext = spContext.CreateUserClientContextForSPHost())
            {
                if (clientContext != null)
                {
                    var spUser = clientContext.Web.CurrentUser;
                    clientContext.Load(spUser, user => user.Title, user => user.LoginName, user => user.Email);
                    clientContext.ExecuteQuery();
                    model.DBModel.AssignedByLogin = spUser.LoginName;
                    model.DBModel.AssignedByName  = spUser.Title;
                }
            }
            try
            {
                model.DBModel.DocumentCode = await helper.GetDocumentCode(model.DBModel.CompanyName, model.DBModel.DepartmentName, DateTime.Today.Year);

                if (string.IsNullOrEmpty(model.DBModel.DocumentCode))
                {
                    model.WarningMessage = "No se encuentra registrado un correlativo. Por favor, contacte al administrador";
                    return(View(model));
                }
                var tmpAssgnTo = JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(model.DBModel.AssignedToControl);
                model.DBModel.AssignedToLogin = tmpAssgnTo[0].Login;
                model.DBModel.AssignedToName  = tmpAssgnTo[0].Name;
                var ccList        = new List <string>();
                var tmpCCLoginStr = string.Empty;
                var tmpCCNameStr  = string.Empty;
                if (!string.IsNullOrEmpty(model.DBModel.AssignedToCCControl))
                {
                    var tmpAssgnToCC = JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(model.DBModel.AssignedToCCControl);
                    for (var i = 0; i < tmpAssgnToCC.Count; i++)
                    {
                        ccList.Add(tmpAssgnToCC[i].Email);
                        tmpCCLoginStr += tmpAssgnToCC[i].Login + "/";
                        tmpCCNameStr  += tmpAssgnToCC[i].Name + ", ";
                    }
                }
                model.DBModel.AssignedToCCLogin = tmpCCLoginStr;
                model.DBModel.AssignedToCCName  = tmpCCNameStr;
                var spHelper   = new SPHelper();
                var spFolder   = spHelper.CreateSPFolder(spContext, "CorEnt", model.DBModel.DocumentCode);
                var sbAttMail  = new System.Text.StringBuilder();
                var sbAttModel = new System.Text.StringBuilder();
                var j          = 1;
                foreach (var anAttachment in model.Attachments)
                {
                    var tmpUrl = spHelper.UploadSPFile(spContext, anAttachment, spFolder, model.DBModel.SiteUrl, "ATT" + j.ToString() + "-");
                    sbAttModel.AppendFormat("{0};", tmpUrl);
                    sbAttMail.AppendFormat("- <a href='{0}'>{1}</a><br/>", tmpUrl, tmpUrl.Substring(tmpUrl.LastIndexOf("/") + 1));
                    j++;
                }
                model.DBModel.Attachment1Url     = sbAttModel.ToString();
                model.DBModel.DocumentDate       = DateTime.Now;
                model.DBModel.DocumentStatus     = "Asignado";
                model.DBModel.FirstReminderDate  = DateTime.Today;
                model.DBModel.SecondReminderDate = DateTime.Today;
                model.DBModel.ResponseDate       = DateTime.Today.AddDays(3);
                model.DBModel.AssignmentDate     = DateTime.Now;
                var tmpSave = await helper.PostInMailbox(model.DBModel, string.Empty);

                var strBody = string.Format("<p>Estimado <b>{0}</b>,</p><p>Se le ha asignado el documento <b>{1}</b> de <b>Correspondencia Entrante</b> en la Intranet.<br/></p><p>Para ver el documento escaneado haga clic en los siguientes enlaces:<br/>{2} <br/>Para ingresar al portal haga <a href='https://icpower.sharepoint.com'>clic aquí</a></p><p>Atentamente,<br/></p><p><b>Intranet IC Power</b></p>", model.DBModel.AssignedToName, model.DBModel.DocumentSubject, sbAttMail.ToString());
                new Utils.EmailHelper().SendEmail("*****@*****.**", tmpAssgnTo[0].Email, ccList.ToArray(), "Intranet - " + model.DBModel.DocumentCode + " - " + model.DBModel.DocumentSubject, strBody);
                model.ConfirmMessage = "Se ha guardado el documento " + model.DBModel.DocumentCode + ". Para continuar haga clic en Cerrar.";
            }
            catch (Exception ex)
            {
                log.Error("NewInbox - " + ex.ToString());
                model.ErrorMessage = "Ocurrió un error al guardar su información. Por favor cierre la ventana e intente de nuevo.";
            }
            return(View(model));
        }
Пример #4
0
        public ActionResult NewInbox()
        {
            var companyList = new List <SelectListItem>();

            companyList.Add(new SelectListItem()
            {
                Text = "Kallpa Generación", Value = "CE Kallpa Generación"
            });
            companyList.Add(new SelectListItem()
            {
                Text = "Cerro del Aguila", Value = "CE Cerro del Aguila"
            });
            companyList.Add(new SelectListItem()
            {
                Text = "Samay I", Value = "CE Samay"
            });
            companyList.Add(new SelectListItem()
            {
                Text = "Hidro Chilia", Value = "CE Hidro Chilia"
            });
            ViewBag.CompanyList = new SelectList(companyList, "Value", "Text");
            var departmentList = new List <SelectListItem>();

            departmentList.Add(new SelectListItem()
            {
                Text = "Todos", Value = "Todos"
            });
            departmentList.Add(new SelectListItem()
            {
                Text = "Administración", Value = "Administración"
            });
            departmentList.Add(new SelectListItem()
            {
                Text = "Contraloría", Value = "Contraloría"
            });
            departmentList.Add(new SelectListItem()
            {
                Text = "Relaciones Comunitarias", Value = "Relaciones Comunitarias"
            });
            ViewBag.DepartmentList = new SelectList(departmentList, "Value", "Text");
            var result = new NewInboxViewModel();

            if (!string.IsNullOrEmpty(Request.QueryString["SPHostUrl"]))
            {
                result.DBModel.SiteUrl = Request.QueryString["SPHostUrl"];
            }
            var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);

            using (var clientContext = spContext.CreateUserClientContextForSPHost())
            {
                if (clientContext != null)
                {
                    var spUser = clientContext.Web.CurrentUser;
                    clientContext.Load(spUser, user => user.Title, user => user.LoginName, user => user.Email);
                    clientContext.ExecuteQuery();
                    result.DBModel.AssignedByLogin = spUser.LoginName;
                    result.DBModel.AssignedByName  = spUser.Title;
                }
            }
            result.DBModel.ResponseDate = DateTime.Today;
            return(View(result));
        }