コード例 #1
0
        public ActionResult Approve(RequestInProgram model)
        {
            try
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    vwUserProfile userprofile = db.vwUserProfiles.Where(a => a.Username == User.Identity.Name).FirstOrDefault();
                    vwRequest vwrequest = db.vwRequests.Where(a => a.RequestID == model.RequestID).FirstOrDefault();
                    var ApprovalPositionID = db.Users.Where(a => a.Username == User.Identity.Name).Select(a => a.PositionID).Single();
                    //var AssignID = db.Positions.Where(a => a.PositionID == userprofi).Select(a => a.PositionID).Single();
                    DateTime DateTimeNow = DateTime.Now;

                    //UPDATE REQUEST
                    Request request = db.Requests.Include("RequestInTransports").Where(a => a.RequestID == model.RequestID).First();
                    RequestInProgram requestinprogram = new RequestInProgram();
                    string hostUrl = Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped);
                    //APPROVED
                    request.FlagID = 2;
                    request.FlagCreatedDate = DateTimeNow;
                    db.Entry(request).State = EntityState.Modified;
                    db.SaveChanges();

                    if (ServiceSkpd.SendEmailResultToRequesterCcApprover(request, db, MessengerService))
                    {
                        //REQUEST RELEASE TO DIVISI SDM
                        request.FlagID = 7;
                        request.ApprovalPositionID = 194;
                        request.FlagCreatedDate = DateTimeNow;
                        db.Entry(request).State = EntityState.Modified;
                        db.SaveChanges();

                        //APPROVE REQUESTINPROGRAM
                        requestinprogram.RequestID = model.RequestID;
                        requestinprogram.ProgramID = model.ProgramID;

                        db.RequestInPrograms.Add(requestinprogram);
                        db.SaveChanges();

                        transaction.Complete();
                        this.HttpContext.Session["RequestID"] = requestinprogram.RequestID;
                        return RedirectToAction("SuccessAddBudget");
                    }
                    else
                    {
                        ModelState.AddModelError("", "Gagal proses pengajuan");
                        ModelState.AddModelError("", "Gagal mengirim email");
                        ModelState.AddModelError("", "Pastikan anda sedang terhubung koneksi internet");
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
            }
            return View(model);
        }
コード例 #2
0
 public ActionResult Approve(int id)
 {
     //var UserDivisionID = db.vwUserProfiles.Where(a => a.Username == User.Identity.Name).Select(a => a.DivisionID).SingleOrDefault();
     var UnitID = db.vwPositionInPrograms.Where(a => a.fullname == User.Identity.Name).Select(a => a.UnitID).FirstOrDefault();
     RequestInProgram requestinprogram = new RequestInProgram();
     requestinprogram.RequestID = id;
     var programs = db.vwPositionInPrograms.Where(a => a.UnitID == UnitID).ToList();
     IEnumerable<SelectListItem> IEprograms = from s in programs
                                        select new SelectListItem
                                         {
                                             Value = s.ProgramID.ToString(),
                                             Text = s.ProgramName.ToUpper()
                                         };
     ViewBag.ProgramID = new SelectList(IEprograms, "Value", "Text");
     return View(requestinprogram);
 }
コード例 #3
0
ファイル: PersetujuanController.cs プロジェクト: kacrut/skpd
        public ActionResult RequestInProgram(RequestInProgramDTO model)
        {
            try
            {
                using (TransactionScope transaction = new TransactionScope())
                {

                    var ApprovalPositionID = db.Users.Where(a => a.Username == User.Identity.Name).Select(a => a.PositionID).Single();
                    //var ApprovalPositionInProgram = db.vwPositionInPrograms
                    //                .Where(a => a.DivisionID == model.DivisionID && a.KdProg==model.BudgetID)
                    //                .Select(a => a.PositionID).SingleOrDefault();
                    DateTime DateTimeNow = DateTime.Now;

                    //UPDATE REQUEST
                    Request request = db.Requests.Include("RequestInTransports").Where(a => a.RequestID == model.RequestID).First();
                    RequestInProgram requestinprogram = new RequestInProgram();
                    string hostUrl = Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped);

                    //MY BUDGET
                    if (model.sendirilain != 2)
                    {
                        //APPROVED
                        request.FlagID = 2;
                        request.FlagCreatedDate = DateTimeNow;
                        db.Entry(request).State = EntityState.Modified;
                        db.SaveChanges();

                        if (ServiceSkpd.SendEmailResultToRequesterCcApprover(request, db, MessengerService))
                        {
                            //APPROVE REQUESTINPROGRAM
                            requestinprogram.RequestID = model.RequestID;
                            requestinprogram.ProgramID = model.ProgramID;

                            db.RequestInPrograms.Add(requestinprogram);
                            db.SaveChanges();

                            request.FlagID = 7;
                            request.ApprovalPositionID = 194;
                            request.FlagCreatedDate = DateTimeNow;
                            db.Entry(request).State = EntityState.Modified;
                            db.SaveChanges();

                            //if (request.ApprovalPositionID == ApprovalPositionID)
                            //{
                            //    request.FlagID = 8;
                            //    request.FlagCreatedDate = DateTime.Now;
                            //    db.Entry(request).State = EntityState.Modified;
                            //    db.SaveChanges();
                            //}

                            transaction.Complete();
                            this.HttpContext.Session["RequestID"] = requestinprogram.RequestID;
                            return RedirectToAction("SuccessAddBudget");
                        }
                        else
                        {
                            ModelState.AddModelError("", "Gagal proses pengajuan");
                            ModelState.AddModelError("", "Gagal mengirim email");
                            ModelState.AddModelError("", "Pastikan anda sedang terhubung koneksi internet");
                        }
                    }
                    //BUDGET ANOTHER DIVISION
                    else
                    {
                        //APPROVED
                        request.FlagID = 2;
                        request.FlagCreatedDate = DateTimeNow;
                        db.Entry(request).State = EntityState.Modified;
                        db.SaveChanges();

                        if (ServiceSkpd.SendEmailResultToRequesterCcApprover(request, db, MessengerService))
                        {
                            var AssignIDForBudget = db.vwPositionInPrograms.Where(a => a.UnitID == model.UnitID).Select(a => a.PositionID).FirstOrDefault();
                            request.FlagID = 9;
                            request.FlagCreatedDate = DateTimeNow;
                            request.ApprovalPositionID = AssignIDForBudget;
                            db.Entry(request).State = EntityState.Modified;
                            db.SaveChanges();

                            if (ServiceSkpd.SendEmailRequestBudgetToDivisionFromRequester(hostUrl, request, db, MessengerService))
                            {
                                transaction.Complete();
                                return RedirectToAction("SuccessSendRequestBudget");
                            }
                            else
                            {
                                ModelState.AddModelError("", "Gagal proses pengajuan");
                                ModelState.AddModelError("", "Gagal mengirim email");
                                ModelState.AddModelError("", "Pastikan anda sedang terhubung koneksi internet");
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("", "Gagal proses pengajuan");
                            ModelState.AddModelError("", "Gagal mengirim email");
                            ModelState.AddModelError("", "Pastikan anda sedang terhubung koneksi internet");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.InnerException);
            }
            return View(model);
        }
コード例 #4
0
ファイル: PengajuanController.cs プロジェクト: kacrut/skpd
        public ActionResult Index(string[] trans,Request request, RequestKadivDTO requestkadiv)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var vwrequest = db.vwRequests
                                    .Where(a=>a.Username == User.Identity.Name);
                    int? check = vwrequest.Where(a => a.StartDate >= request.StartDate || a.EndDate >= request.EndDate).Select(a=>a.RequestID).FirstOrDefault();
                    if (check != 0)
                    {
                        //TempData["ModelName"] = vwrequest;
                        return RedirectToAction("NotAvailable", new { id = check });
                    }
                    //Transaction
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        vwUserProfile vwUserProfile =  db.vwUserProfiles.Where(a => a.Username == User.Identity.Name).FirstOrDefault();
                        // Declaration Variabel//
                        var StartDate = Convert.ToDateTime(request.StartDate).Date;
                        var EndDate = Convert.ToDateTime(request.EndDate).Date;
                        var PositionID = vwUserProfile.PositionID;
                        var UserID = vwUserProfile.ID;
                        var CreatedBy = User.Identity.Name;
                        var ApprovalPositionID = vwUserProfile.AssignID;
                        DateTime DateNow = DateTime.Now;
                        string hostUrl = Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped);

                        // Maping To Request Model For New Request And Save  //
                        request.FlagID = 1;//NEW REQUEST
                        request.StartDate = StartDate;
                        request.EndDate = EndDate;
                        request.PositionID = PositionID;
                        request.UserID = UserID;
                        request.CreatedBy = CreatedBy;
                        request.CreatedDate = DateNow;
                        request.FlagCreatedDate = DateNow;
                        if (requestkadiv.sendirilain == 2)
                        {
                            request.ApprovalPositionID = vwUserProfile.PositionID;
                        }
                        if (requestkadiv.sendirilain == 0 || requestkadiv.sendirilain != 2)
                        {
                            request.ApprovalPositionID = ApprovalPositionID;
                        }

                        db.Requests.Add(request);
                        db.SaveChanges();

                        // Mapping To Request Model For New Request And Save  //
                        request.FlagID = 5;//REQUEST APPROVAL
                        db.Entry(request).State = EntityState.Modified;
                        db.SaveChanges();

                        // Mapping To RequestInTransport Model For List Transportaions And Save  //
                        foreach (var transID in trans)
                        {
                            var AdCategory = new RequestInTransport()
                            {
                                RequestID = request.RequestID,
                                TransportID = Convert.ToInt16(transID)
                            };
                            db.RequestInTransports.Add(AdCategory);
                        }
                        db.SaveChanges();

                        if (requestkadiv.ProgramID ==0)
                        {
                            //PAKE INTERNET
                            //Sending Email To Approver From Requester
                            if (ServiceSkpd.SendEmailToApproverFromRequester(hostUrl, request, db, MessengerService))
                            {
                                //Comitt If This Transaction is Success
                                transaction.Complete();
                                return RedirectToAction("Thanks", "Pengajuan");
                            }
                            else
                            {
                                ModelState.AddModelError("", "Gagal proses pengajuan");
                                ModelState.AddModelError("", "Gagal mengirim email");
                                ModelState.AddModelError("", "Pastikan anda sedang terhubung koneksi internet");
                            }
                        }

                        //MY BUDGET
                        if (requestkadiv.sendirilain != 2)
                        {
                            //request.FlagID = 2;
                            //request.FlagCreatedDate = DateNow;
                            //db.Entry(request).State = EntityState.Modified;
                            //db.SaveChanges();

                            //request.FlagID = 5;
                            //request.ApprovalPositionID = ApprovalPositionID;
                            //request.FlagCreatedDate = DateNow;
                            //db.Entry(request).State = EntityState.Modified;
                            //db.SaveChanges();

                            RequestInProgram requestinprogram = new RequestInProgram();
                            requestinprogram.RequestID = request.RequestID;
                            requestinprogram.ProgramID = requestkadiv.ProgramID;
                            db.RequestInPrograms.Add(requestinprogram);
                            db.SaveChanges();

                            //PAKE INTERNET
                            //Sending Email To Approver From Requester
                            if (ServiceSkpd.SendEmailToApproverFromRequester(hostUrl, request, db, MessengerService))
                            {
                                //Comitt If This Transaction is Success
                                transaction.Complete();
                                return RedirectToAction("Thanks", "Pengajuan");
                            }
                            else
                            {
                                ModelState.AddModelError("", "Gagal proses pengajuan");
                                ModelState.AddModelError("", "Gagal mengirim email");
                                ModelState.AddModelError("", "Pastikan anda sedang terhubung koneksi internet");
                            }
                            //Comitt If This Transaction is Success
                            //transaction.Complete();
                            //return RedirectToAction("Thanks", "Pengajuan");
                        }
                        else
                        {
                            request.FlagID = 2;
                            request.FlagCreatedDate = DateNow;
                            db.Entry(request).State = EntityState.Modified;
                            db.SaveChanges();

                            var AssignIDForBudget = db.vwPositionInPrograms.Where(a => a.UnitID == requestkadiv.UnitID).Select(a => a.PositionID).FirstOrDefault();
                            request.FlagID = 9;
                            request.FlagCreatedDate = DateNow;
                            request.ApprovalPositionID = AssignIDForBudget;
                            db.Entry(request).State = EntityState.Modified;
                            db.SaveChanges();

                            if (ServiceSkpd.SendEmailRequestBudgetToDivisionFromRequester(hostUrl, request, db, MessengerService))
                            {
                                transaction.Complete();
                                return RedirectToAction("SuccessSendRequestBudget");
                            }
                            else
                            {
                                ModelState.AddModelError("", "Gagal proses pengajuan");
                                ModelState.AddModelError("", "Gagal mengirim email");
                                ModelState.AddModelError("", "Pastikan anda sedang terhubung koneksi internet");
                            }
                        }
                        #region
                        ////string resetUrl = hostUrl + VirtualPathUtility.ToAbsolute("~/Account/PasswordReset?resetToken=" + HttpUtility.UrlEncode(resetToken));

                        //var fromFirstName = db.Users.Where(a => a.Username == request.CreatedBy).Select(a => a.FirstName).Single();
                        //var fromLastName = db.Users.Where(a => a.Username == request.CreatedBy).Select(a => a.LastName).Single();
                        //var fromfullName = string.Format("{0}.{1}", fromFirstName.ToUpper(), fromLastName.ToUpper());
                        //var fromAddress = ConfigurationManager.AppSettings["Sender"];
                        //var fromPositionName = db.Positions.Where(a => a.PositionID == request.PositionID).Select(a => a.PositionName).Single();
                        //var skpdDestination = request.Destination;
                        //var skpdStarDate = request.StartDate.Date.ToShortDateString();
                        //var skpdEventName= request.EventName;
                        //var skpdEndDate = request.EndDate.Date.ToShortDateString();
                        //var toAddress = db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.Email).Single();
                        //var toName = db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.Username).Single();
                        //var skpdRequestID = lastReuestID.ToString();
                        //var QueryParam = string.Format("UserName={0}&RequestID={1}", toName, skpdRequestID);
                        //var QueryParamEncrypt = ServiceSkpd.QueryStringEncrypt(QueryParam);
                        //var approveUrl = hostUrl + VirtualPathUtility.ToAbsolute(string.Format("~/Persetujuan/ApproveFromEmail{0}", QueryParamEncrypt));
                        //var rejectUrl = hostUrl + VirtualPathUtility.ToAbsolute(string.Format("~/Persetujuan/RejectFromEmail{0}", QueryParamEncrypt));
                        ////var approveUrl = hostUrl + VirtualPathUtility.ToAbsolute(string.Format("~/Persetujuan/ApproveFromEmail?UserName={0}&id={1}", HttpUtility.UrlEncode(toName), HttpUtility.UrlEncode(skpdRequestID)));
                        ////var rejectUrl = hostUrl + VirtualPathUtility.ToAbsolute(string.Format("~/Persetujuan/RejectFromEmail?UserName={0}&id={1}", HttpUtility.UrlEncode(toName), HttpUtility.UrlEncode(skpdRequestID)));
                        //var subject = string.Format("Request from {0}, for approval of official travel", fromfullName);
                        //var body = string.Format("Dear, Mr./Mrs. {0} <br /><br/>" +
                        //                        "Request for approval of official travel : " +
                        //                        "<br/><br/>RequestID: {1} " +
                        //                        "<br/>Name: {2} " +
                        //                        "<br/>Position: {3} " +
                        //                        "<br/>Destination : {4} " +
                        //                        "<br/>EventName : {5} " +
                        //                        "<br/>Star Date : {6} " +
                        //                        "<br/>End Date : {7} " +
                        //                        "<br/><br /> whether you would approve or reject this request ? " +
                        //                        "<br/><br/><p><strong><a href=\"{8}\">APPROVE</a></strong></p> " +
                        //                        "<br/><br/><p><strong><a href=\"{9}\">REJECT</a></strong></p>", toName, lastReuestID, fromfullName, fromPositionName, skpdDestination, skpdEventName, skpdStarDate, skpdEndDate, approveUrl, rejectUrl);

                        //if (MessengerService.Send(fromAddress, toAddress, subject, body, true))
                        //{
                        //    transaction.Complete();
                        //    return RedirectToAction("Thanks", "Pengajuan");
                        //}
                        //else
                        //{
                        //    ModelState.AddModelError("", "Gagal mengirim Email, kontak IT Service di wilayah anda");
                        //    return View(request);
                        //}
                    }
                }
                //catch (DbEntityValidationException dbEx)
                //{
                //    foreach (var validationErrors in dbEx.EntityValidationErrors)
                //    {
                //        foreach (var validationError in validationErrors.ValidationErrors)
                //        {
                //            Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                //            ModelState.AddModelError("", string.Format("{0} >> {1}", validationError.PropertyName, validationError.ErrorMessage));
                //        }
                //    }
                //}
                        #endregion
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
            }
            return View(request);
        }