Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }