Exemplo n.º 1
0
        public IActionResult CreateEmployment(CreateEmploymentViewModel model)
        {
            if (ModelState.IsValid)
            {
                Employement Newemployment = new Employement
                {
                    CompanyId  = int.Parse(model.SelectedCompany),
                    EmployeeId = int.Parse(model.SelectedStudent),
                    StartDate  = model.StartDate,
                    EndDate    = model.EndDate
                };
                _manageEmployment.AddEmployment(Newemployment);

                Salary NewSalary = new Salary
                {
                    Amount     = model.Amount,
                    Role       = model.Role,
                    PayDay     = model.PayDay,
                    EmployeeId = int.Parse(model.SelectedStudent)
                };
                _manageEmployment.AddSalary(NewSalary);
                return(RedirectToAction("index", "home"));
            }

            return(View());
        }
        public async Task <IActionResult> PutEmployement(long id, Employement employement)
        {
            if (id != employement.OperationId)
            {
                return(BadRequest());
            }

            _context.Entry(employement).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EmployementExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
 public void Remove(Employement employment)
 {
     if (Context.Entry(employment).State == EntityState.Detached)
     {
         context.Employements.Attach(employment);
     }
     context.Employements.Remove(employment);
 }
        public double GetProfileCount(int empId, int companyId, byte version)
        {
            // NeedToReview
            List <PersonProfileVM> list       = new List <PersonProfileVM>();
            List <string>          IgnoreCols = new List <string>()
            {
                "TaxFamlyCnt", "BnftFamlyCnt"
            };

            //People
            List <string> columns      = context.FormsColumns.Where(f => f.Section.FieldSet.PageId == HrContext.GetPageId(companyId, "People", version) && f.isVisible && f.InputType != "button").Select(f => f.ColumnName).ToList();
            Person        peopleRecord = context.People.Where(e => e.Id == empId).FirstOrDefault();

            PersonProfileVM countObj = peopleRecord != null?getCounts(columns, peopleRecord) : getCounts(columns, new Person());

            list.Add(countObj);

            //HasImage
            list.Add(new PersonProfileVM {
                NofVisible = 1, NofData = peopleRecord.HasImage ? 1 : 0
            });

            //Additinal Info
            var flex = (from fc in context.FlexColumns
                        where fc.PageId == HrContext.GetPageId(companyId, "People", version) && fc.isVisible
                        join fd in context.FlexData on new { fc.PageId, fc.ColumnName } equals new { fd.PageId, fd.ColumnName } into g
                        from fd in g.Where(b => b.SourceId == empId).DefaultIfEmpty()
                        select new { fd.Value, fc.ColumnName }).ToList();

            list.Add(new PersonProfileVM {
                NofVisible = flex.Count(), NofData = flex.Count(l => !String.IsNullOrEmpty(l.Value))
            });

            //Employments
            columns = context.FormsColumns.Where(f => f.Section.FieldSet.PageId == HrContext.GetPageId(companyId, "Emp", version) && f.isVisible && f.InputType != "button" && f.ColumnName != "Profession").Select(f => f.ColumnName).ToList();
            Employement empRecord = context.Employements.Where(e => e.EmpId == empId && e.Status == 1).FirstOrDefault() ?? new Employement();

            list.Add(getCounts(columns, empRecord));

            //Assignments
            IgnoreCols = new List <string>()
            {
                "ManagerId", "EmpTasks", "IsDepManager", "PositionId", "IBranches", "IPayrollGrades", "IPositions", "ICompanyStuctures", "IEmployments", "IJobs", "IPayrolls", "IPeopleGroups"
            };

            columns = context.FormsColumns.Where(f => f.Section.FieldSet.PageId == HrContext.GetPageId(companyId, "AssignmentsForm", version) && f.isVisible && !IgnoreCols.Contains(f.ColumnName) && f.InputType != "button").Select(f => f.ColumnName).ToList();
            var        today        = DateTime.Today.Date;
            Assignment assignRecord = context.Assignments.Where(a => a.EmpId == empId && a.AssignDate <= today && a.EndDate >= today).FirstOrDefault() ?? new Assignment();

            list.Add(getCounts(columns, assignRecord));

            //--Calculations
            double value = Math.Round(list.Sum(l => l.NofData) / list.Sum(l => l.NofVisible), 2) * 100;

            return(value);
        }
        public async Task <ActionResult <Employement> > PostEmployement(Employement employement)
        {
            _context.Employements.Add(employement);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (EmployementExists(employement.OperationId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetEmployement", new { id = employement.OperationId }, employement));
        }
 public DbEntityEntry <Employement> Entry(Employement Emp)
 {
     return(Context.Entry(Emp));
 }
 public void Attach(Employement Emp)
 {
     context.Employements.Attach(Emp);
 }
 public void Add(Employement Emp)
 {
     context.Employements.Add(Emp);
 }
        //ReadEmployments
        public string CheckCode(Employement Emp, string culture)
        {
            string error     = "OK";
            byte   genCode   = 2;
            bool   codeReuse = false;

            var personnal = GetPersonSetup(Emp.CompanyId);

            if (personnal != null)
            {
                genCode   = personnal.GenEmpCode;
                codeReuse = personnal.CodeReuse;
            }

            if (string.IsNullOrEmpty(Emp.Code))
            {
                if (genCode == 3)
                {
                    return(MsgUtils.Instance.Trls(culture, "NationalIdRequired")); // National/Resident Id is required, please first enter it
                }
                else
                {
                    return(MsgUtils.Instance.Trls(culture, "CodeIsRequired")); // Code is required
                }
            }

            var isDuplicate = true;

            while (isDuplicate)
            {
                if (codeReuse)
                {
                    isDuplicate = context.Employements.Where(a => a.CompanyId == Emp.CompanyId && a.Code == Emp.Code && a.Status == 1).FirstOrDefault() != null;
                }
                else
                {
                    isDuplicate = context.Employements.Where(a => a.CompanyId == Emp.CompanyId && a.EmpId != Emp.EmpId && a.Code == Emp.Code).FirstOrDefault() != null;
                }


                if (isDuplicate == false && genCode == 1)
                {
                    return(error);
                }
                else if (genCode == 3 && Emp.Code != null)
                {
                    return(error);
                }
                else if (genCode == 2 && !isDuplicate)
                {
                    return(error);
                }
                else
                {
                    return(MsgUtils.Instance.Trls(culture, "CodeUsedBefore")); // Code is used before, please enter anothor code
                }
            }


            return(error);
        }