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); }
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); }
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); }
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); }