public async Task <IActionResult> Create(short id, [Bind("ActivityID,ProcurementPlanID,StepReferenceNo,Name,LotTotal,SchoolTotal,ProcurementFor,Description,EstimatedCost,ActualCost,MethodID,ReviewType,Status,IsCenceled,Remarks,CreatedDate,CreatedBy,UpdatedBy,UpdatedDate,ProjectNo")] Activity activity) { if (ModelState.IsValid) { var val = _context.Activity.Count(a => a.StepReferenceNo == activity.StepReferenceNo && a.ProcurementPlanID == id); if (val == 0) { activity.ActualCost = 0; activity.CreatedDate = DateTime.Now; activity.Status = 1; activity.ProcurementPlanID = id; if (id == 2) { activity.LotTotal = 1; } _context.Add(activity); await _context.SaveChangesAsync(); if (activity.ProcurementPlanID == 2)// where 2 is Works { ActivityDetailWork Obj = new ActivityDetailWork(); Obj.ActivityID = _context.Activity.Max(a => a.ActivityID); Obj.TotalSchool = activity.SchoolTotal; _context.Add(Obj); await _context.SaveChangesAsync(); } string msg = "Procurement: Added New Activity(" + _context.ProcurementPlan.Find(activity.ProcurementPlanID).Name + ")\nSTEP Reference# " + activity.StepReferenceNo + "\nName: " + activity.Name + "\nmore detail: http://eu.bep.org.pk"; ZongSMS ObjSMS = new ZongSMS(); var contacts = _context.Contact.Where(a => a.IsActive == true).ToList(); foreach (var contact in contacts) { ObjSMS.SendSingleSMS(msg, contact.ContactNumber); } return(RedirectToAction(nameof(Index), new { PPID = id })); } else { ViewBag.Error = "Activity No." + activity.StepReferenceNo.ToString() + " already exist!"; } } ViewBag.ReviewType = new SelectList(new[] { new { Id = "Prior Review", Name = "Prior Review" }, new { Id = "Post Review", Name = "Post Review" }, }, "Id", "Name"); ViewBag.ProcurementFor = new SelectList(new[] { new { Id = "1", Name = "Schools" }, new { Id = "2", Name = "Office" }, }, "Id", "Name", activity.ProcurementFor); ViewBag.MethodID = new SelectList(_context.Method, "MethodID", "Name", activity.MethodID); ViewBag.ProjectNo = new SelectList(_context.Project, "ProjectNo", "ProjectName", 2); ViewBag.ProcurementPlanID = new SelectList(_context.ProcurementPlan.Where(a => a.ProcurementPlanID == id), "ProcurementPlanID", "Name", activity.ProcurementPlanID); return(View(activity)); }
public async Task <IActionResult> Create([Bind("LeaveRequestID,DateFrom,DateTo,TotalDays,EmployeeID,LeaveTypeID,Remarks,ApprovedBySection,ApprovedBySectionDate,SupervisorRemarks,ApprovedByPD,ApprovedByPDDate,PDRemarks,Nomination,NominatedID,OnBehalfOf,IsMedicalCertificateRequired,MedicalCertificatePath,AppliedDate")] LeaveRequest leaveRequest, short Days, IFormFile Attachment) { if (ModelState.IsValid) { //------------- var empSummaryObj = _context.EmpLeaveSummary.Where(a => a.EmployeeID == EmployeeID && a.LeaveTypeID == leaveRequest.LeaveTypeID).FirstOrDefault(); empSummaryObj.Pending = empSummaryObj.Availed + Days; empSummaryObj.Pending = empSummaryObj.Pending + Days; _context.Update(empSummaryObj); //------------- leaveRequest.AppliedDate = DateTime.Now.Date; leaveRequest.TotalDays = Days; leaveRequest.EmployeeID = EmployeeID; if (IsSpervisor) { leaveRequest.ApprovedBySection = 1; leaveRequest.ApprovedBySectionDate = DateTime.Now.Date; } //-----------------------Attachment------------------------ if (Attachment != null) { var rootPath = Path.Combine( Directory.GetCurrentDirectory(), "wwwroot\\Documents\\HR\\"); string fileName = Path.GetFileName(Attachment.FileName); fileName = fileName.Replace("&", "n"); string Code = _context.Employee.Include(a => a.Section).Where(a => a.EmployeeID == leaveRequest.EmployeeID).Select(a => a.Section.Name).FirstOrDefault() + "_EID_" + leaveRequest.EmployeeID + leaveRequest.AppliedDate.ToString("ddMMyyyy"); leaveRequest.MedicalCertificatePath = Path.Combine("/Documents/HR/", Code);//Server Path string sPath = Path.Combine(rootPath + Code); if (!System.IO.Directory.Exists(sPath)) { System.IO.Directory.CreateDirectory(sPath); } string FullPathWithFileName = Path.Combine(sPath, fileName); using (var stream = new FileStream(FullPathWithFileName, FileMode.Create)) { await Attachment.CopyToAsync(stream); } } //-----------------------END------------------------------- _context.Add(leaveRequest); await _context.SaveChangesAsync(); //-------------SMS-------------------------------- string msg = "HR-LMS\n Days(" + Days.ToString() + ") " + _context.LeaveType.Where(a => a.LeaveTypeID == leaveRequest.LeaveTypeID).Select(a => a.Name).FirstOrDefault() + "leave required for approval in your MIS inbox.\nVisit http://eu.bep.org.pk"; ZongSMS ObjSMS = new ZongSMS(); //var contacts = _context.Contact.Where(a => a.IsActive == true).ToList(); //foreach (var contact in contacts) //{ // ObjSMS.SendSingleSMS(msg, contact.ContactNumber); //} ObjSMS.SendSingleSMS(msg, "923337905929"); ObjSMS.SendSingleSMS(msg, "923327822567"); //-------------END SMS---------------------------- return(RedirectToAction(nameof(LeaveSummary))); } ViewBag.Inbox = Inbox; ViewBag.Accepted = AcceptedRequests; ViewBag.Rejected = RejectedRequests; ViewBag.IsSupervisor = IsSpervisor ? 1 : 0; var loginName = User.Identity.Name; var employee = _context.Employee.Where(a => a.Name == loginName).FirstOrDefault(); ViewBag.SectionHead = _context.Employee.Where(a => a.EmployeeID == employee.SupervisorID).Select(a => a.Name).FirstOrDefault(); ViewBag.Name = employee.Name; var empSummary = _context.EmpLeaveSummary.Where(a => a.EmployeeID == employee.EmployeeID).ToList(); ViewBag.ABalance = empSummary.Where(a => a.LeaveTypeID == 1).Max(a => a.Total) - empSummary.Where(a => a.LeaveTypeID == 1).Max(a => a.Availed); ViewBag.SBalance = empSummary.Where(a => a.LeaveTypeID == 2).Max(a => a.Total) - empSummary.Where(a => a.LeaveTypeID == 2).Max(a => a.Availed); ViewBag.Designation = employee.Designation; ViewData["LeaveTypeID"] = new SelectList(_context.LeaveType.Where(a => a.LeaveTypeID > 0 && a.LeaveTypeID < 3), "LeaveTypeID", "Name", leaveRequest.LeaveTypeID); ViewData["OnBehalfOfName"] = new SelectList(_context.Employee.Where(a => a.SectionID == SectionID && a.EmployeeID != EmployeeID), "EmployeeID", "Name"); return(View(leaveRequest)); }