// GET: AuditPlanningMemorandums/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AuditPlanningMemorandum auditPlanningMemorandum = db.AuditPlanningMemorandums.Find(id);
            List <string>           newFilesName            = new List <string>();
            List <string>           paths = new List <string>();
            UrlHelper             url     = Url;
            HttpServerUtilityBase server  = Server;

            bool getFiles = filesTransact.getFiles(auditPlanningMemorandum.NomerAPM.Replace("/", ""), out newFilesName, out paths, url, server);

            ViewBag.newFilesName = newFilesName;
            ViewBag.paths        = paths;
            if (auditPlanningMemorandum == null)
            {
                return(HttpNotFound());
            }

            ViewBag.SupervisorName = auditPlanningMemorandum.SupervisorID;
            ViewBag.TeamLeaderName = auditPlanningMemorandum.TeamLeaderID;
            ViewBag.PICIDName      = auditPlanningMemorandum.PICID;
            ViewBag.MemberName     = auditPlanningMemorandum.MemberID;
            ViewBag.NomerPrelim    = db.Preliminaries.Where(p => p.PreliminaryID.Equals(auditPlanningMemorandum.PreliminaryID)).Select(p => p.NomorPreliminarySurvey).FirstOrDefault();

            return(View(auditPlanningMemorandum));
        }
        // GET: AuditPlanningMemorandums/Create
        public ActionResult Create()
        {
            AnnualPlanningServices activity = new AnnualPlanningServices();
            var activities = activity.GetAnnualPlanning().Where(p => p.Approval_Status == "Approve");

            IEnumerable <SelectListItem> activityid = activities
                                                      .Select(d => new SelectListItem
            {
                Value = d.AnnualPlanningID.ToString(),
                Text  = d.Activity.Name
            });


            string apmno = String.Empty;

            AuditPlanningMemorandum apm = db.AuditPlanningMemorandums.OrderByDescending(p => p.AuditPlanningMemorandumID).FirstOrDefault();

            if (apm != null)
            {
                int nomerapm = Convert.ToInt32(apm.NomerAPM.Split('/')[1]) + 1;
                apmno = Convert.ToString("APM/" + nomerapm);
            }
            else
            {
                apmno = Convert.ToString("APM/" + 1);
            }

            ViewBag.apmnomer = apmno;
            return(View());
        }
        public async Task <ActionResult> Preview(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AuditPlanningMemorandum AuditPlanningMemorandum = await db.AuditPlanningMemorandums.FindAsync(id);

            ViewBag.WordDocumentFilename = "APM";
            return(View(AuditPlanningMemorandum));
        }
Beispiel #4
0
        public string GetMember(string noapm)
        {
            AuditPlanningMemorandum apm = db.AuditPlanningMemorandums.Where(p => p.NomerAPM.Equals(noapm)).FirstOrDefault();

            if (apm != null)
            {
                Preliminary pre = apm.Preliminary;
                //var memberId = pre.EngagementActivity.MemberID;
                //var teamleaderId = pre.EngagementActivity.TeamLeaderID;
                //var supervisorId = pre.EngagementActivity.SupervisorID;
                //var picId = pre.EngagementActivity.PICID;
                var    memberId     = apm.MemberID;
                var    teamleaderId = apm.TeamLeaderID;
                var    supervisorId = apm.SupervisorID;
                var    picId        = apm.PICID;
                string memberName   = memberId;
                string nomerapm     = apm.NomerAPM;
                //string engagement = pre.EngagementActivity.Name;
                string engagement = "";
                if (apm.ActualEngagement != "" && apm.ActualEngagement != null)
                {
                    engagement = apm.ActualEngagement;
                }
                else
                {
                    engagement = pre.EngagementActivity.Name;
                }
                string activity     = pre.Activity.Name;
                string apmStartDate = apm.Date_Start.ToShortDateString();
                string apmEndDate   = apm.Date_End.ToShortDateString();
                if (teamleaderId == "" || supervisorId == "" || picId == "")
                {
                    //string memberName = "";
                    string teamleaderName = "";
                    string supervisorName = "";
                    string picName        = "";
                    string names          = teamleaderName + "," + supervisorName + "," + picName;
                    return(names + "," + memberName + "," + nomerapm + "," + engagement + "," + activity + ',' + apmStartDate + ',' + apmEndDate);
                }
                else
                {
                    //string memberName = db.Employees.Find(memberId).Name;
                    string teamleaderName = teamleaderId;
                    string supervisorName = supervisorId;
                    string picName        = picId;
                    string names          = teamleaderName + "," + supervisorName + "," + picName;
                    return(names + "," + memberName + "," + nomerapm + "," + engagement + "," + activity + ',' + apmStartDate + ',' + apmEndDate);
                }
            }
            else
            {
                return(",,,,,,");
            }
        }
        private bool sentSingleEmailAPM(string userToSentEmail, AuditPlanningMemorandum auditPlanningMemorandum)
        {
            string   baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
            Employee emp     = db.Employees.Where(p => p.Name.Equals(userToSentEmail)).FirstOrDefault();

            if (emp != null)
            {
                string emailContent = "Dear {0}, <BR/><BR/>APM : {1} need your approval. Please click on this <a href=\"{2}\" title=\"APM\">link</a> to show the APM.<BR/><BR/><BR/> Regards,<BR/><BR/> ePatria Team";
                string urll         = baseUrl + "/AuditPlanningMemorandums/Details/" + auditPlanningMemorandum.AuditPlanningMemorandumID;
                emailTransact.SentEmailApproval(emp.Email, emp.Name, auditPlanningMemorandum.NomerAPM, emailContent, urll);
            }
            return(true);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            db.Configuration.ProxyCreationEnabled = false;
            string username = User.Identity.Name;
            AuditPlanningMemorandum auditPlanningMemorandum = db.AuditPlanningMemorandums.Find(id);

            AuditPlanningMemorandum aud = new AuditPlanningMemorandum();

            db.AuditPlanningMemorandums.Remove(auditPlanningMemorandum);
            db.SaveChanges();
            auditTransact.CreateAuditTrail("Delete", id, "AuditPlanningMemorandum", auditPlanningMemorandum, aud, username);
            TempData["message"] = "Audit Planning Memorandum successfully deleted!";
            return(RedirectToAction("Index"));
        }
        // GET: AuditPlanningMemorandums/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AuditPlanningMemorandum auditPlanningMemorandum = db.AuditPlanningMemorandums.Find(id);
            List <string>           newFilesName            = new List <string>();
            List <string>           paths = new List <string>();
            UrlHelper             url     = Url;
            HttpServerUtilityBase server  = Server;

            var getFiles = filesTransact.getFiles(auditPlanningMemorandum.NomerAPM.Replace("/", ""), out newFilesName, out paths, url, server);

            ViewBag.newFilesName = newFilesName;
            ViewBag.paths        = paths;
            if (auditPlanningMemorandum == null)
            {
                return(HttpNotFound());
            }

            PreliminaryServices no = new PreliminaryServices();
            var noap = no.GetPreliminary().Where(p => p.PreliminaryID == auditPlanningMemorandum.PreliminaryID);

            var memberId = db.AuditPlanningMemorandums.Find(auditPlanningMemorandum.AuditPlanningMemorandumID).MemberID;

            ViewBag.memberName = memberId;

            ViewBag.activid    = db.Activities.Where(p => p.ActivityID.Equals(auditPlanningMemorandum.ActivityID)).Select(p => p.Name).FirstOrDefault();
            ViewBag.supervisor = auditPlanningMemorandum.SupervisorID;
            ViewBag.leader     = auditPlanningMemorandum.TeamLeaderID;
            ViewBag.pic        = auditPlanningMemorandum.PICID;
            ViewBag.member     = auditPlanningMemorandum.MemberID;

            ViewBag.nomer = db.Preliminaries.Where(p => p.PreliminaryID.Equals(auditPlanningMemorandum.PreliminaryID)).Select(p => p.NomorPreliminarySurvey).FirstOrDefault();
            Preliminary pre = db.Preliminaries.Where(p => p.PreliminaryID.Equals(auditPlanningMemorandum.PreliminaryID)).FirstOrDefault();

            ViewBag.enggname = pre.EngagementActivity.Name;
            return(View(auditPlanningMemorandum));
        }
        private bool sentEmailAPM(AuditPlanningMemorandum auditPlanningMemorandum, string user)
        {
            string          baseUrl    = Request.Url.GetLeftPart(UriPartial.Authority);
            List <string>   CIAUserIds = Request.GetOwinContext().GetUserManager <ApplicationRoleManager>().Roles.Where(p => p.Name.Equals(user.Trim())).FirstOrDefault().Users.Select(p => p.UserId).ToList();
            List <Employee> CIAEmpList = new List <Employee>();

            if (CIAUserIds.Count() > 0)
            {
                var CIAUsers = Request.GetOwinContext().GetUserManager <ApplicationUserManager>().Users.Where(p => (CIAUserIds.Contains(p.Id))).ToList();
                foreach (var CIAUser in CIAUsers)
                {
                    Employee emp = db.Employees.Where(p => p.Email.Equals(CIAUser.Email)).FirstOrDefault();
                    if (emp != null)
                    {
                        string emailContent = "Dear {0}, <BR/><BR/>APM : {1} need your approval. Please click on this <a href=\"{2}\" title=\"APM\">link</a> to show the APM.<BR/><BR/><BR/> Regards,<BR/><BR/> ePatria Team";
                        string urll         = baseUrl + "/AuditPlanningMemorandums/Details/" + auditPlanningMemorandum.AuditPlanningMemorandumID;
                        emailTransact.SentEmailApproval(emp.Email, emp.Name, auditPlanningMemorandum.NomerAPM, emailContent, urll);
                    }
                }
            }
            return(true);
        }
        public ActionResult Update(string submit, [Bind(Include = "AuditPlanningMemorandumID,NomerAPM,PreliminaryID,Date_Start,Date_End,Status,ActivityID,TujuanAudit,RuangLingkupAudit,MetodologiAudit,DataDanDokumen,AttachmentMasterID,EntryMeetingDateStart,EntryMeetingDateEnd,WalktroughDateStart,WalktroughDateEnd,FieldWorkDateStart,FieldWorkDateEnd,ExitMeetingDateStart,ExitMeetingDateEnd,LHADateStart,LHADateEnd,PICID,SupervisorID,TeamLeaderID,MemberID,ReviewMasterID,Kesimpulan,ActualEngagement")] AuditPlanningMemorandum auditPlanningMemorandum, IEnumerable <HttpPostedFileBase> files)
        {
            if (ModelState.IsValid)
            {
                int i = 0;
                HttpServerUtilityBase server       = Server;
                List <string>         newFilesName = new List <string>();
                List <string>         paths        = new List <string>();
                UrlHelper             url          = Url;
                List <string>         keepImages   = new List <string>();
                //object imagesTemp = Session["Images"];
                var sessionImages = Session["Images"];
                if (sessionImages != null)
                {
                    Array arrKeepImages = (Array)sessionImages;
                    foreach (var arrKeepImage in arrKeepImages)
                    {
                        keepImages.Add(arrKeepImage.ToString());
                    }
                    bool          getFiles     = filesTransact.getFiles(auditPlanningMemorandum.NomerAPM.Replace("/", ""), out newFilesName, out paths, url, server);
                    List <string> deletedFiles = paths.Except(keepImages).ToList();
                    bool          deleteFiles  = filesTransact.deleteFiles(deletedFiles, server);

                    i = filesTransact.getLastNumberOfFiles(auditPlanningMemorandum.NomerAPM.Replace("/", ""), server);
                }
                foreach (var file in files)
                {
                    if (file != null)
                    {
                        i = i + 1;
                        bool addFile = filesTransact.addFile(auditPlanningMemorandum.NomerAPM.Replace("/", ""), i, file, server);
                    }
                }
                Session.Remove("Images");

                string user = submit.Contains("By") ? submit.Split('y')[1] : String.Empty;
                if (submit == "Save")
                {
                    auditPlanningMemorandum.Status = "Draft";
                }
                else if (submit == "Send Back")
                {
                    auditPlanningMemorandum.Status = HelperController.GetStatusSendback(db, "Audit Planning Memorandum", auditPlanningMemorandum.Status);
                }
                else if (submit == "Approve")
                {
                    auditPlanningMemorandum.Status = "Approve";
                }
                else if (submit == "Submit For Review By" + user)
                {
                    auditPlanningMemorandum.Status = "Pending for Review by" + user;
                }
                else if (submit == "Submit For Approve By" + user)
                {
                    auditPlanningMemorandum.Status = "Pending for Approve by" + user;
                    string userToSentEmail = String.Empty;
                    if (user.Trim() == "CIA")
                    {
                        userToSentEmail = auditPlanningMemorandum.PICID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailAPM(userToSentEmail, auditPlanningMemorandum);
                        }
                        else
                        {
                            sentEmailAPM(auditPlanningMemorandum, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Pengawas")
                    {
                        userToSentEmail = auditPlanningMemorandum.SupervisorID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailAPM(userToSentEmail, auditPlanningMemorandum);
                        }
                        else
                        {
                            sentEmailAPM(auditPlanningMemorandum, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Ketua Tim")
                    {
                        userToSentEmail = auditPlanningMemorandum.TeamLeaderID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailAPM(userToSentEmail, auditPlanningMemorandum);
                        }
                        else
                        {
                            sentEmailAPM(auditPlanningMemorandum, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Member")
                    {
                        userToSentEmail = auditPlanningMemorandum.MemberID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailAPM(userToSentEmail, auditPlanningMemorandum);
                        }
                        else
                        {
                            sentEmailAPM(auditPlanningMemorandum, user.Trim());
                        }
                    }
                }

                db.Entry(auditPlanningMemorandum).State = EntityState.Modified;
                string username = User.Identity.Name;
                db.Configuration.ProxyCreationEnabled = false;
                AuditPlanningMemorandum oldData = db.AuditPlanningMemorandums.AsNoTracking().Where(p => p.AuditPlanningMemorandumID.Equals(auditPlanningMemorandum.AuditPlanningMemorandumID)).FirstOrDefault();
                auditTransact.CreateAuditTrail("Update", auditPlanningMemorandum.AuditPlanningMemorandumID, "AuditPlanningMemorandum", oldData, auditPlanningMemorandum, username);
                db.SaveChanges();
                TempData["message"] = "Audit Planning Memorandum successfully updated!";
                return(RedirectToAction("Index"));
            }
            return(View(auditPlanningMemorandum));
        }
        public ActionResult Create(string nomerapm, string membernull, string enggname, EngagementActivity engga, AuditPlanningMemorandum audit, [Bind(Include = "AuditPlanningMemorandumID,NomerAPM,PreliminaryID,Date_Start,Date_End,Status,ActivityID,TujuanAudit,RuangLingkupAudit,MetodologiAudit,DataDanDokumen,AttachmentMasterID,EntryMeetingDateStart,EntryMeetingDateEnd,WalktroughDateStart,WalktroughDateEnd,FieldWorkDateStart,FieldWorkDateEnd,ExitMeetingDateStart,ExitMeetingDateEnd,LHADateStart,LHADateEnd,PICID,SupervisorID,TeamLeaderID,MemberID,ReviewMasterID,Kesimpulan,ActualEngagement")] AuditPlanningMemorandum auditPlanningMemorandum, IEnumerable <HttpPostedFileBase> files, string submit, string[] members, string supervisor, string pic, string leader, string nomer, string activid)
        {
            if (ModelState.IsValid)
            {
                HttpServerUtilityBase server = Server;
                string user = submit.Contains("By") ? submit.Split('y')[1] : String.Empty;
                if (submit == "Save")
                {
                    auditPlanningMemorandum.Status = "Draft";
                }
                else if (submit == "Send Back")
                {
                    HelperController.GetStatusSendback(db, "Audit Planning Memorandum", auditPlanningMemorandum.Status);
                }
                else if (submit == "Approve")
                {
                    auditPlanningMemorandum.Status = "Approve";
                }
                else if (submit == "Submit For Review By" + user)
                {
                    auditPlanningMemorandum.Status = "Pending for Review by" + user;
                }
                else if (submit == "Submit For Approve By" + user)
                {
                    auditPlanningMemorandum.Status = "Pending for Approve by" + user;
                    string userToSentEmail = String.Empty;
                    if (user.Trim() == "CIA")
                    {
                        userToSentEmail = auditPlanningMemorandum.PICID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailAPM(userToSentEmail, auditPlanningMemorandum);
                        }
                        else
                        {
                            sentEmailAPM(auditPlanningMemorandum, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Pengawas")
                    {
                        userToSentEmail = auditPlanningMemorandum.SupervisorID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailAPM(userToSentEmail, auditPlanningMemorandum);
                        }
                        else
                        {
                            sentEmailAPM(auditPlanningMemorandum, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Ketua Tim")
                    {
                        userToSentEmail = auditPlanningMemorandum.TeamLeaderID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailAPM(userToSentEmail, auditPlanningMemorandum);
                        }
                        else
                        {
                            sentEmailAPM(auditPlanningMemorandum, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Member")
                    {
                        userToSentEmail = auditPlanningMemorandum.MemberID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailAPM(userToSentEmail, auditPlanningMemorandum);
                        }
                        else
                        {
                            sentEmailAPM(auditPlanningMemorandum, user.Trim());
                        }
                    }
                }

                foreach (var mem in members)
                {
                    auditPlanningMemorandum.MemberID += mem + ";";
                }

                IQueryable <Preliminary> prel = db.Preliminaries.Where(p => p.NomorPreliminarySurvey.Equals(nomer));
                int preID = 0;
                if (prel.Count() > 0 || prel != null)
                {
                    preID = prel.Select(p => p.PreliminaryID).FirstOrDefault();
                }
                auditPlanningMemorandum.PreliminaryID = preID;
                auditPlanningMemorandum.SupervisorID  = supervisor;
                auditPlanningMemorandum.TeamLeaderID  = leader;
                auditPlanningMemorandum.PICID         = pic;

                IQueryable <Activity> act = db.Activities.Where(p => p.Name.Equals(activid));
                int actid = 0;
                if (act.Count() > 0 || act != null)
                {
                    actid = act.Select(p => p.ActivityID).FirstOrDefault();
                }
                auditPlanningMemorandum.ActivityID = actid;
                auditPlanningMemorandum.NomerAPM   = nomerapm;
                db.AuditPlanningMemorandums.Add(auditPlanningMemorandum);
                db.SaveChanges();
                int i = 0;
                foreach (var file in files)
                {
                    if (file != null)
                    {
                        i = i + 1;
                        bool addFile = filesTransact.addFile(auditPlanningMemorandum.NomerAPM.Replace("/", ""), i, file, server);
                    }
                }
                ReviewRelationMaster rrm = new ReviewRelationMaster();
                string page = "apm";
                rrm.Description = page + auditPlanningMemorandum.AuditPlanningMemorandumID;
                db.ReviewRelationMasters.Add(rrm);
                db.SaveChanges();
                string username            = User.Identity.Name;
                AuditPlanningMemorandum au = new AuditPlanningMemorandum();
                auditTransact.CreateAuditTrail("Create", auditPlanningMemorandum.AuditPlanningMemorandumID, "AuditPlanningMemorandum", au, auditPlanningMemorandum, username);

                TempData["message"] = "Audit Planning Memorandum successfully created!";
                return(RedirectToAction("Index"));
            }
            return(View(auditPlanningMemorandum));
        }