public IActionResult Add(EscalationModelForm model)
        {
            if (ModelState.IsValid)
            {
                var srf  = Service.GetById(model.SrfId);
                var Dept = _department.GetById(srf.DepartmentId);

                if (srf != null)
                {
                    var item      = Mapper.Map <SrfEscalationRequest>(model);
                    int ProfileId = 0;
                    if (Dept.OperateOrNon == 1)
                    {
                        ProfileId = model.Srf.ApproveTwoId;
                    }
                    else
                    {
                        ProfileId = model.Srf.ApproveFourId;
                    }
                    item.OtLevel          = model.OtLevel;
                    item.IsWorkstation    = model.IsWorkstation;
                    item.IsCommnunication = model.IsCommnunication;
                    item.SparateValue     = model.SparateValue;
                    item.Note             = model.Note;
                    item.ServicePackId    = model.ServicePackId;

                    //nitip
                    item.CustomField1 = model.PackageTypeId?.ToString();
                    item.CustomField2 = model.ServicePackCategoryId?.ToString();

                    if (!string.IsNullOrWhiteSpace(model.Files))
                    {
                        string fileDestination    = "uploads/escalation";
                        var    AttachmentUpload   = model.Files.Split('|');
                        var    listSaveAttachment = new List <string>();
                        if (AttachmentUpload != null)
                        {
                            foreach (var file in AttachmentUpload)
                            {
                                if (!string.IsNullOrWhiteSpace(file))
                                {
                                    string FileName   = Path.GetFileNameWithoutExtension(file).ToSlug();
                                    string MovedFiles = _fileHelper.FileMove(file, fileDestination, FileName, true);
                                    if (!string.IsNullOrEmpty(MovedFiles))
                                    {
                                        listSaveAttachment.Add(MovedFiles);
                                    }
                                }
                            }
                            if (listSaveAttachment != null)
                            {
                                item.Files = JsonConvert.SerializeObject(listSaveAttachment);
                            }
                        }
                    }


                    _escalation.Add(item);


                    // Update Srf General
                    srf.SrfBegin        = model.Srf.SrfBegin;
                    srf.SrfEnd          = model.Srf.SrfEnd;
                    srf.AnnualLeave     = Extension.MonthDistance(model.Srf.SrfBegin, model.Srf.SrfEnd);
                    srf.DepartmentId    = model.Srf.DepartmentId;
                    srf.DepartmentSubId = model.Srf.DepartmentSubId;
                    srf.CostCenterId    = model.Srf.CostCenterId;
                    srf.AccountId       = model.Srf.AccountId;
                    srf.NetworkId       = model.Srf.NetworkId;
                    srf.ApproveFiveId   = model.Srf.ApproveFiveId;
                    srf.ApproveSixId    = model.Srf.ApproveSixId;
                    srf.SpectValue      = model.SparateValue;
                    if (model.SparateValue > 0)
                    {
                        srf.RateType = RateType.SpecialRate;
                    }
                    else
                    {
                        srf.RateType = RateType.Normal;
                    }
                    //srf.RateType = RateType.SpecialRate;
                    Service.Update(srf);

                    // Update Vacancy
                    var Candidate = _candidate.GetById(srf.CandidateId);
                    if (Candidate != null)
                    {
                        var Vacancy = _vacancy.GetById(Candidate.VacancyId);
                        if (Vacancy != null)
                        {
                            Vacancy.AccountNameId   = srf.AccountId.Value;
                            Vacancy.CostCodeId      = srf.CostCenterId;
                            Vacancy.DepartmentId    = srf.DepartmentId;
                            Vacancy.DepartmentSubId = srf.DepartmentSubId;
                            Vacancy.NetworkId       = srf.NetworkId;
                            Vacancy.ApproverOneId   = srf.ApproveOneId;
                            Vacancy.ServicePackId   = srf.ServicePackId;
                            Vacancy.isLaptop        = srf.isWorkstation;
                            Vacancy.isUsim          = srf.isCommunication;
                            Vacancy.isHrms          = srf.IsHrms;
                            Vacancy.OtLevel         = model.OtLevel;
                            _vacancy.Update(Vacancy);
                        }
                    }
                }
            }
            TempData["Saved"] = "OK";
            return(RedirectToAction("Edit", "ContractorDataEscalation", new { id = model.SrfId }));
        }
Beispiel #2
0
        protected override void UpdateData(SrfRequest item, SrfRequestModelForm model)
        {
            var Dept = _department.GetById(model.DepartmentId);
            var Network = _network.GetById(model.NetworkId);
            int total_day = Extension.MonthDistance(model.SrfBegin, model.SrfEnd);
            item.SrfBegin = model.SrfBegin;
            item.SrfEnd = model.SrfEnd;
            item.DepartmentId = model.DepartmentId;
            item.DepartmentSubId = model.DepartmentSubId;
            item.CostCenterId = model.CostCenterId;
            item.AccountId = model.AccountId;
            item.NetworkId = model.NetworkId;
            item.Description = model.Description;
            item.ApproveSixId = model.ApproveSixId;
            item.ServicePackId = model.FormVacancy.ServicePackId;
            item.ServiceLevel = model.FormVacancy.OtLevel;
            item.IsHrms = model.FormVacancy.isHrms;
            item.IsManager = model.FormVacancy.isManager;
            item.Number = model.Number;
            item.Type = model.Type;
            item.ActivityId = model.ActivityId;
            item.ApproveStatusOne = model.ApproveStatusOne;
            item.ApproveStatusTwo = model.ApproveStatusTwo;
            item.ApproveStatusThree = model.ApproveStatusThree;
            item.ApproveStatusFour = model.ApproveStatusFour;
            item.ApproveStatusFive = model.ApproveStatusFive;
            item.ApproveStatusSix = model.ApproveStatusSix;
            item.isWorkstation = model.FormVacancy.isLaptop == 1 ? true : false;
            item.isCommunication = model.FormVacancy.isUsim;
            item.ProjectManagerId = Network.ProjectManagerId;
            item.ApproveOneId = model.ApproveOneId;
            item.Status = model.Status;

            if(model.ApproveTwoId!=0)
            {
                item.ApproveTwoId = model.ApproveTwoId;
            }

            if (model.ApproveThreeId!=0)
            {
                item.ApproveThreeId = model.ApproveThreeId;
            }

            if (model.ApproveFourId !=0)
            {
                item.ApproveFourId = model.ApproveFourId;
            }

            if (model.ApproveFiveId !=0)
            {
                item.ApproveFiveId = model.ApproveFiveId;
            }

            if (model.ApproveSixId!=0)
            {
                item.ApproveSixId = model.ApproveSixId;
            }


            var Esc = _escalation.GetAll().Where(x => x.SrfId.Equals(x.Id)).FirstOrDefault();
            if(Esc!=null)
            {
                Esc.ApproveStatusOne = model.ApproveStatusTwo;
                if(Dept.OperateOrNon == 1)
                {
                    Esc.ApproveStatusTwo = model.ApproveStatusTwo;
                }
                else
                {
                    Esc.ApproveStatusTwo = model.ApproveStatusThree;
                }
                Esc.ApproveStatusThree = model.ApproveStatusFive;
                Esc.ApproveStatusFour = model.ApproveStatusSix;
                _escalation.Update(Esc);
             
            }

            if (model.ExtendFrom!=null)
            {
                item.ExtendFrom = model.ExtendFrom;
                item.IsExtended = true;
            }
            else
            {
                item.ExtendFrom = null;
                item.IsExtended = false;
            }

            if (item.Type == SrfType.Extension)
            {
                item.AnnualLeave = item.AnnualLeave + (int)total_day;
            }
            else
            {
                item.AnnualLeave = (int)total_day;
            }

            if (Dept.OperateOrNon == 1)
            {
                // Send To Head Of Service Line
                item.ApproveFourId = null;
                item.ApproveTwoId = model.ApproveTwoId;
                item.ApproveThreeId = model.ApproveThreeId;
            }
            else
            {
                // Send To Non Head Operation
                item.ApproveTwoId = null;
                item.ApproveThreeId = null;
                item.ApproveFourId = model.ApproveFourId;
            }

           
                // Update Vacancy
            var Candidate = _candidate.GetById(item.CandidateId);
            if (Candidate != null)
            {
                var Vacancy = _vacancy.GetById(Candidate.VacancyId);
                var UppdateVacancy = Mapper.Map(model.FormVacancy, Vacancy);
                UppdateVacancy.AccountNameId = item.AccountId.Value;
                UppdateVacancy.CostCodeId = item.CostCenterId;
                UppdateVacancy.DepartmentId = item.DepartmentId;
                UppdateVacancy.DepartmentSubId = item.DepartmentSubId;
                UppdateVacancy.NetworkId = item.NetworkId;
                UppdateVacancy.ApproverOneId = item.ApproveOneId;
                UppdateVacancy.ServicePackId = model.FormVacancy.ServicePackId;
                UppdateVacancy.isLaptop = model.FormVacancy.isLaptop == 1 ? true : false;
                UppdateVacancy.isUsim = model.FormVacancy.isUsim;
                UppdateVacancy.isHrms = model.FormVacancy.isHrms;
                UppdateVacancy.isManager = model.FormVacancy.isManager;
                UppdateVacancy.OtLevel = model.FormVacancy.OtLevel;
                _vacancy.Update(UppdateVacancy);

               
               

                // Set SRF Status

                var UserProfile = _profileService.GetById(Candidate.AccountId);
                if (item.Status == SrfStatus.Done)
                {
                    UserProfile.IsBlacklist = false;
                    UserProfile.IsTerminate = false;
                    UserProfile.IsActive = true;
                    _profileService.Update(UserProfile);
                }

                if (item.Status == SrfStatus.Terminate)
                {
                    UserProfile.IsBlacklist = false;
                    UserProfile.IsTerminate = true;
                    UserProfile.IsActive = false;
                    _profileService.Update(UserProfile);
                }

                if (item.Status == SrfStatus.Blacklist)
                {
                    UserProfile.IsBlacklist = true;
                    UserProfile.IsTerminate = false;
                    UserProfile.IsActive = false;
                    _profileService.Update(UserProfile);
                }

                Candidate.AgencyId = model.AgencyId;
                _candidate.Update(Candidate);


                TempData["Success"] = "OK";
            }
        }
Beispiel #3
0
        private void Upload()
        {
            var AllUser       = _userProfile.GetAll().ToList();
            var AllVacancy    = _vacancy.GetAll().ToList();
            var AllCandidate  = _candidate.GetAll().ToList();
            var AllEscalation = _escalation.GetAll().ToList();

            foreach (var row in AllUser)
            {
                String IdNumber = null;
                if (!string.IsNullOrEmpty(row.IdNumber))
                {
                    if (row.IdNumber.Length > 16)
                    {
                        IdNumber = row.IdNumber.Substring(0, 16);
                    }
                    else
                    {
                        IdNumber = row.IdNumber;
                    }
                }
                else
                {
                    Random random = new Random();
                    IdNumber = random.Next(0, 16).ToString();
                }

                var Pro = _userProfile.GetById(row.Id);

                // Upload User Profile
                if (!String.IsNullOrEmpty(row.Photo))
                {
                    var File = System.IO.File.Exists(Source + "/" + row.Photo);
                    if (File == true)
                    {
                        String   src    = Upload("temp", row.Photo);
                        FileInfo info   = new FileInfo(Source + "/" + row.Photo);
                        var      result = new Attachment()
                        {
                            Name     = info.Name,
                            FileType = info.Extension,
                            Type     = Attachment.FILE_TYPE_UPLOAD,
                            Path     = src,
                            Size     = info.Length / 1024
                        };
                        string output = JsonConvert.SerializeObject(result);
                        Pro.Photo = output;
                    }
                }


                Pro.IdNumber = IdNumber;
                _userProfile.Update(Pro);
            }



            // Vacancy

            foreach (var row in AllVacancy)
            {
                List <string> files = new List <string>();
                var           vac   = _vacancy.GetById(row.Id);

                if (!String.IsNullOrEmpty(row.Files))
                {
                    var attach = row.Files.Split(',');
                    if (attach != null)
                    {
                        foreach (var a in attach)
                        {
                            var File = System.IO.File.Exists(Source + "/" + a);
                            if (File == true)
                            {
                                String src = Upload("vacancy", a);
                                files.Add(src);
                            }
                        }
                    }
                }

                if (files != null)
                {
                    vac.Files = JsonConvert.SerializeObject(files);
                    _vacancy.Update(vac);
                }
            }


            // Candidate
            foreach (var row in AllCandidate)
            {
                List <string> files = new List <string>();
                var           can   = _candidate.GetById(row.Id);

                if (!String.IsNullOrEmpty(row.Attachments))
                {
                    var attach = row.Attachments.Split(',');
                    if (attach != null)
                    {
                        foreach (var a in attach)
                        {
                            var File = System.IO.File.Exists(Source + "/" + a);
                            if (File == true)
                            {
                                String src = Upload("candidate", a);
                                files.Add(src);
                            }
                        }
                    }
                }

                if (files != null)
                {
                    can.Attachments = JsonConvert.SerializeObject(files);
                    _candidate.Update(can);
                }
            }


            //Srf Escalation
            foreach (var row in AllEscalation)
            {
                List <string> files = new List <string>();
                var           esc   = _escalation.GetById(row.Id);

                if (!String.IsNullOrEmpty(row.Files))
                {
                    var attach = row.Files.Split(',');
                    if (attach != null)
                    {
                        foreach (var a in attach)
                        {
                            var File = System.IO.File.Exists(Source + "/" + a);
                            if (File == true)
                            {
                                String src = Upload("escalation", a);
                                files.Add(src);
                            }
                        }
                    }
                }

                if (files != null)
                {
                    esc.Files = JsonConvert.SerializeObject(files);
                    _escalation.Update(esc);
                }
            }
        }
Beispiel #4
0
        public async Task <IActionResult> Update(Guid id, CandidateInfoModelForm model)
        {
            if (ModelState.IsValid)
            {
                bool CheckEmail    = false;
                bool CheckIdNumber = false;

                // Check Email
                if (!string.IsNullOrEmpty(model.Email))
                {
                    var CheckEmailInSystem = await _userManager.FindByEmailAsync(model.Email);

                    if (CheckEmailInSystem == null)
                    {
                        var CheckEmailCandidate = _service.GetAll().Where(x => x.Email.Equals(model.Email) && x.Id != id).FirstOrDefault();
                        if (CheckEmailCandidate == null)
                        {
                            CheckEmail = true;
                        }
                    }
                    else
                    {
                        var AppUser     = _userManager.FindByEmailAsync(model.Email).Result;
                        var UserProfile = _profile.GetByUserId(AppUser.Id);
                        if (UserProfile.IsBlacklist == true && UserProfile.IsTerminate == false)
                        {
                            TempData["Error"] = "Email " + model.Email + " is blacklist !!";
                            return(RedirectToAction("Edit", "Candidate", new { id = id }));
                        }
                        if (UserProfile.IsBlacklist == false && UserProfile.IsTerminate == true)
                        {
                            CheckEmail = true;
                        }
                    }
                }

                // Check Id Number
                if (!string.IsNullOrEmpty(model.IdNumber))
                {
                    var Candidate = Service.GetAll().Where(x => !string.IsNullOrWhiteSpace(x.IdNumber) && x.IdNumber.Equals(model.IdNumber) && x.IsUser == true && x.Id != model.VacancyId).FirstOrDefault();
                    if (Candidate != null)
                    {
                        // Candidate is User
                        var UserProfile = _profile.GetById(Candidate.AccountId);
                        if (UserProfile.IsBlacklist == true && UserProfile.IsTerminate == false)
                        {
                            TempData["Error"] = "Id Number " + model.IdNumber + " is blacklist !!";
                            return(RedirectToAction("Submit", "Candidate", new { id = model.VacancyId }));
                        }
                        if (UserProfile.IsBlacklist == false && UserProfile.IsTerminate == true)
                        {
                            CheckIdNumber = true;
                        }
                    }
                    else
                    {
                        Candidate = Service.GetAll().Where(x => !string.IsNullOrWhiteSpace(x.IdNumber) && x.IdNumber.Equals(model.IdNumber) && x.VacancyId.Equals(model.VacancyId) && x.Id != id).FirstOrDefault();
                        if (Candidate != null)
                        {
                            TempData["Error"] = "Id Number " + model.IdNumber + " is already exist !!";
                            return(RedirectToAction("Submit", "Candidate", new { id = model.VacancyId }));
                        }
                        else
                        {
                            CheckIdNumber = true;
                        }
                    }
                }

                if (CheckEmail == true && CheckIdNumber == true)
                {
                    var item = Service.GetById(id);
                    item.Name              = model.Name;
                    item.Email             = model.Email;
                    item.IdNumber          = model.IdNumber;
                    item.Nationality       = model.Nationality;
                    item.DateOfBirth       = model.DateOfBirth;
                    item.PlaceOfBirth      = model.PlaceOfBirth;
                    item.Martial           = model.Martial;
                    item.Address           = model.Address;
                    item.Gender            = model.Gender;
                    item.Description       = model.Description;
                    item.NickName          = model.NickName;
                    item.MobilePhoneNumber = model.MobilePhoneNumber;
                    item.HomePhoneNumber   = model.HomePhoneNumber;
                    item.IsFormerEricsson  = model.IsFormerEricsson;
                    item.LastEditedBy      = _userHelper.GetUserId(User);
                    item.LastUpdateTime    = DateTime.Now;

                    if (User.IsInRole("HR Agency"))
                    {
                        var GetVacancy = _vacancy.GetById(model.VacancyId);
                        if (item.ApproveOneStatus == ApproverStatus.Shortlist || item.ApproveTwoStatus == ApproverStatus.Shortlist)
                        {
                            var GetLM   = _profile.GetById(GetVacancy.ApproverOneId);
                            var AppUser = _userService.GetById(GetLM.ApplicationUserId);

                            item.ApproveOneStatus = ApproverStatus.Shortlist;
                            item.ApproveTwoStatus = ApproverStatus.Shortlist;

                            // Send To LM Again
                            var callbackUrl = Url.Action("Details",
                                                         "Vacancy",
                                                         new { area = "Admin", id = model.VacancyId },
                                                         _hostConfiguration.Protocol,
                                                         _hostConfiguration.Name);

                            _notif.Send(
                                User,                            // User From
                                "CV Correction",                 // Subject
                                GetLM.Name,                      // User target name
                                AppUser.Email,                   // User target email
                                callbackUrl,                     // Link CallBack
                                "CV Correction",                 // Email content or descriptions
                                item.Description,                // Description
                                NotificationInboxStatus.Request, // Notif Status
                                Activities.Vacant                // Activity Status
                                );

                            GetVacancy.VacancyStatus = ApproverStatus.Shortlist;
                            _vacancy.Update(GetVacancy);
                        }
                    }
                    Service.Update(item);
                    TempData["Success"] = "Candidate with name " + model.Name + " have been updated !!";
                    return(RedirectToAction("Details", "Vacancy", new { id = model.VacancyId }));
                }
            }

            TempData["Error"] = string.Join(",", ModelState.Values.Where(E => E.Errors.Count > 0).SelectMany(E => E.Errors).Select(E => E.ErrorMessage).ToArray());
            return(RedirectToAction("Details", "Vacancy", new { id = model.VacancyId }));
        }
Beispiel #5
0
        public IActionResult Update(ContractorModelForm model)
        {
            var Srf = Service.GetById(model.SrfId);

            if (ModelState.IsValid && Srf != null)
            {
                var Candidate   = _contractor.GetById(Srf.CandidateId);
                var UserProfile = _userProfile.GetById(Candidate.AccountId.Value);

                if (model.IdNumber.Length != 16)
                {
                    TempData["Error"] = "Invalid ID Number / (KTP) " + model.IdNumber + " must be 16 digits and numeric";
                    return(RedirectToAction("Edit", new { id = Srf.Id }));
                }
                //else
                //{
                //    if(UserProfile!=null && User.IsInRole("Administrator"))
                //    {
                //        var CheckNumber = _userProfile.GetAll().Where(x => !string.IsNullOrWhiteSpace(x.IdNumber) && x.IdNumber == model.IdNumber && x.Id != Candidate.AccountId.Value).FirstOrDefault();
                //        if (CheckNumber != null)
                //        {
                //            TempData["Error"] = "Invalid ID Number / (KTP) " + model.IdNumber + " has exists with other resource !!";
                //            return RedirectToAction("Edit", new { id = Srf.Id });
                //        }

                //    }
                //}

                UserProfile.AhId = model.AhID;
                UserProfile.Name = model.ContrctorName;
                UserProfile.MobilePhoneNumber = model.MobilePhoneNumber;
                UserProfile.HomePhoneNumber   = model.HomePhoneNumber;
                UserProfile.IdNumber          = model.IdNumber;
                UserProfile.Email             = model.Email;
                UserProfile.Birthplace        = model.PlaceOfBirth;
                UserProfile.Birthdate         = model.DateOfBirth;
                UserProfile.Address           = model.Address;
                UserProfile.UserName          = model.Username;
                UserProfile.Description       = model.Notes;
                _userProfile.Update(UserProfile);

                Candidate.Name              = model.ContrctorName;
                Candidate.HomeBaseId        = model.HomeBaseId;
                Candidate.HomePhoneNumber   = model.HomePhoneNumber;
                Candidate.MobilePhoneNumber = model.MobilePhoneNumber;
                Candidate.IdNumber          = model.IdNumber;
                Candidate.Email             = model.Email;
                Candidate.Nationality       = model.Nationality;
                Candidate.PlaceOfBirth      = model.PlaceOfBirth;
                Candidate.DateOfBirth       = model.DateOfBirth;
                Candidate.Address           = model.Address;
                Candidate.Gender            = model.Gender;
                Candidate.Martial           = model.Martial;
                Candidate.Email             = model.Email;
                Candidate.Description       = model.Notes;
                _contractor.Update(Candidate);

                // Update Vacancy Status
                var Vacancy = _vacancy.GetById(Candidate.VacancyId);
                Vacancy.ServicePackId = model.ServicePackId;
                Vacancy.ApproverOneId = model.LineManagerId;
                if (model.PricelistType == PackageTypes.A)
                {
                    Vacancy.PackageType = _packageType.GetAll().Where(x => x.Name.Trim().ToLower().Equals("A".Trim().ToLower())).FirstOrDefault();
                }
                else if (model.PricelistType == PackageTypes.B)
                {
                    Vacancy.PackageType = _packageType.GetAll().Where(x => x.Name.Trim().ToLower().Equals("B".Trim().ToLower())).FirstOrDefault();
                }
                else
                {
                    Vacancy.PackageType = _packageType.GetAll().Where(x => x.Name.Trim().ToLower().Equals("FSO".Trim().ToLower())).FirstOrDefault();
                }
                _vacancy.Update(Vacancy);

                // Update SRF
                Srf.Number           = model.SrfNumber;
                Srf.ServicePackId    = model.ServicePackId;
                Srf.SrfBegin         = model.SrfBegin;
                Srf.SrfEnd           = model.SrfEnd;
                Srf.LineManagerId    = model.LineManagerId;
                Srf.ProjectManagerId = model.ProjectManagerId;

                var NewAnnual = (Srf.SrfEnd.Value.Month - Srf.SrfBegin.Value.Month) <= 0 ? 0 : (Srf.SrfEnd.Value.Month - Srf.SrfBegin.Value.Month);
                if (Srf.Type == SrfType.Extension)
                {
                    Srf.AnnualLeave = Srf.AnnualLeave + NewAnnual;
                }
                else
                {
                    Srf.AnnualLeave = NewAnnual;
                }

                Service.Update(Srf);

                // Update ASP NET USERS
                var CurrentUser = _userManager.FindByIdAsync(model.ApplicationUserId).Result;
                CurrentUser.Email    = model.Email;
                CurrentUser.UserName = model.Username;
                var Result = _userManager.UpdateAsync(CurrentUser).Result;

                if (!Result.Succeeded)
                {
                    TempData["Error"] = JsonConvert.SerializeObject(Result.Errors);
                    return(RedirectToAction("Edit", new { id = Srf.Id }));
                }

                if (!string.IsNullOrWhiteSpace(model.Password))
                {
                    var Code          = _userManager.GeneratePasswordResetTokenAsync(CurrentUser).Result;
                    var resetPassword = _userManager.ResetPasswordAsync(CurrentUser, Code, model.Password).Result;

                    if (!resetPassword.Succeeded)
                    {
                        TempData["Error"] = JsonConvert.SerializeObject(resetPassword.Errors);
                        return(RedirectToAction("Edit", new { id = Srf.Id }));
                    }
                }

                TempData["Success"] = "OK";
                return(RedirectToAction("Details", new { id = Srf.Id }));
            }

            return(RedirectToAction("Edit", new { id = Srf.Id }));
        }