Пример #1
0
        public SavingResult ReInstate(int EmployeeID, string Reason, EmployeeServiceDetailViewModel ServiceDetail)
        {
            SavingResult res = new SavingResult();

            using (dbVisionEntities db = new dbVisionEntities())
            {
                var SaveModel = db.tblEmployees.Find(EmployeeID);
                if (SaveModel == null)
                {
                    res.ValidationError = "Selected employee not found.";
                    res.ExecutionResult = eExecutionResult.ValidationError;
                    return(res);
                }

                tblEmployeeServiceDetail EmployeeServiceDetail = new tblEmployeeServiceDetail()
                {
                    tblEmployee             = SaveModel,
                    EmploymentEffectiveDate = ServiceDetail.EmploymentEffectiveDate,
                    ContractExpiryDate      = ServiceDetail.ContractExpiryDate,
                    EmploymentType          = ServiceDetail.EmploymentType,

                    EmployeeDesignationID = ServiceDetail.EmployeeDesignationID,
                    EmployeeDepartmentID  = ServiceDetail.EmployeeDepartmentID,
                    EmployeeWIBAClassID   = ServiceDetail.EmployeeWIBAClassID,
                    LocationID            = ServiceDetail.LocationID,
                    MinimumWageCategoryID = ServiceDetail.MinimumWageCategoryID,

                    DailyRate        = ServiceDetail.DailyRate,
                    BasicSalary      = ServiceDetail.BasicSalary,
                    HousingAllowance = ServiceDetail.HousingAllowance,
                    WeekendAllowance = ServiceDetail.WeekendAllowance,

                    EmployeeShiftType = ServiceDetail.EmployeeShiftTypeID,
                    EmployeeShiftID   = ServiceDetail.EmployeeShiftID,

                    ReinstatementReason = Reason,
                };

                db.tblEmployeeServiceDetails.Add(EmployeeServiceDetail);

                SaveModel.tblEmployeeServiceDetail = EmployeeServiceDetail;
                try
                {
                    db.SaveChanges();
                    res.ExecutionResult = eExecutionResult.CommitedSucessfuly;
                }
                catch (Exception ex)
                {
                    CommonFunctions.GetFinalError(res, ex);
                }
            }
            return(res);
        }
Пример #2
0
        public SavingResult SaveNewRecord(tblEmployee SaveModel,
                                          EmployeeServiceDetailViewModel ServiceDetail,
                                          List <EmployeePersonalDocumentViewModel> DoucmentsList,
                                          List <EmployeeFamilyDetailsViewModel> FamilyDetailsList)
        {
            SavingResult res = new SavingResult();

            //-- Perform Validation
            //res.ExecutionResult = eExecutionResult.ValidationError;
            //res.ValidationError = "Validation error message";
            //return res;
            //--
            using (dbVisionEntities db = new dbVisionEntities())
            {
                //tblEmployee SaveModel;
                if (SaveModel.EmployeeFirstName == "")
                {
                    res.ValidationError = "Can not accept blank value. Please enter Employee Name.";
                    res.ExecutionResult = eExecutionResult.ValidationError;
                    return(res);
                }
                else if (IsDuplicateRecord(SaveModel.EmployeeFirstName, SaveModel.EmployeeLastName, SaveModel.EmployeeID, db))
                {
                    res.ValidationError = "Can not accept duplicate value. The Employee Name is already exists.";
                    res.ExecutionResult = eExecutionResult.ValidationError;
                    return(res);
                }

                if (SaveModel.EmployeeID == 0) // New Entry
                {
                    //SaveModel = new tblEmployee();
                    SaveModel.rcuid     = Model.CommonProperties.LoginInfo.LoggedinUser.UserID;
                    SaveModel.rcdt      = DateTime.Now;
                    SaveModel.CompanyID = Model.CommonProperties.LoginInfo.LoggedInCompany.CompanyID;
                    db.tblEmployees.Add(SaveModel);
                }
                else
                {
                    SaveModel.reuid = Model.CommonProperties.LoginInfo.LoggedinUser.UserID;
                    SaveModel.redt  = DateTime.Now;
                    db.tblEmployees.Attach(SaveModel);
                    db.Entry(SaveModel).State = System.Data.Entity.EntityState.Modified;
                    db.tblEmployeeDocuments.RemoveRange(SaveModel.tblEmployeeDocuments);
                    db.tblEmployeeFamilies.RemoveRange(SaveModel.tblEmployeeFamilies);

                    if (ServiceDetail != null)
                    {
                        db.tblEmployeeLeaveOpeningBalances.RemoveRange(SaveModel.tblEmployeeServiceDetail.tblEmployeeLeaveOpeningBalances);

                        SaveModel.EmployeeLastServiceDetailID = null;
                        db.tblEmployeeServiceDetails.RemoveRange(db.tblEmployeeServiceDetails.Where(r => r.EmployeeID == SaveModel.EmployeeID && r.EmploymentEffectiveDate >= ServiceDetail.EmploymentEffectiveDate));
                    }
                }

                //--
                tblEmployeeServiceDetail EmployeeServiceDetail = null;
                if (ServiceDetail != null)
                {
                    if (SaveModel.EmployeeLastServiceDetailID == null) // first employment record
                    {
                        EmployeeServiceDetail = new tblEmployeeServiceDetail()
                        {
                            tblEmployee             = SaveModel,
                            EmploymentEffectiveDate = ServiceDetail.EmploymentEffectiveDate,
                            ContractExpiryDate      = ServiceDetail.ContractExpiryDate,
                            EmploymentType          = ServiceDetail.EmploymentType,

                            EmployeeDesignationID = ServiceDetail.EmployeeDesignationID,
                            EmployeeDepartmentID  = ServiceDetail.EmployeeDepartmentID,
                            EmployeeWIBAClassID   = ServiceDetail.EmployeeWIBAClassID,
                            LocationID            = ServiceDetail.LocationID,
                            MinimumWageCategoryID = ServiceDetail.MinimumWageCategoryID,

                            DailyRate        = ServiceDetail.DailyRate,
                            BasicSalary      = ServiceDetail.BasicSalary,
                            HousingAllowance = ServiceDetail.HousingAllowance,
                            WeekendAllowance = ServiceDetail.WeekendAllowance,

                            EmployeeShiftType = ServiceDetail.EmployeeShiftTypeID,
                            EmployeeShiftID   = ServiceDetail.EmployeeShiftID,
                        };

                        db.tblEmployeeServiceDetails.Add(EmployeeServiceDetail);

                        db.tblEmployeeLeaveOpeningBalances.AddRange(ServiceDetail.EmployeeLeaveOpeningBalance.Select(lopb =>
                                                                                                                     new tblEmployeeLeaveOpeningBalance()
                        {
                            tblEmployee = SaveModel,
                            tblEmployeeServiceDetail = EmployeeServiceDetail,
                            LeaveTypeID         = lopb.LeaveTypeID,
                            LeaveOpeningBalance = lopb.OpeningBalance,
                            CompanyID           = CommonProperties.LoginInfo.LoggedInCompany.CompanyID,
                            FinPeriodID         = CommonProperties.LoginInfo.LoggedInFinPeriod.FinPeriodID,
                        }));
                    }
                }
                //--

                db.tblEmployeeDocuments.AddRange(DoucmentsList.Select(r => new tblEmployeeDocument()
                {
                    tblEmployee  = SaveModel,
                    DocumentName = r.DocumentName,
                    FileName     = r.FileName
                }));

                if (FamilyDetailsList != null)
                {
                    db.tblEmployeeFamilies.AddRange(FamilyDetailsList.Select(r => new tblEmployeeFamily()
                    {
                        tblEmployee  = SaveModel,
                        Address      = r.Address,
                        Beneficiary  = r.Beneficiary,
                        City         = r.City,
                        Email        = r.Email,
                        MobileNo     = r.MobileNo,
                        Name         = r.Name,
                        POBoxNo      = r.POBoxNo,
                        Relationship = r.Relationship
                    }));
                }
                try
                {
                    db.SaveChanges();
                    res.PrimeKeyValue   = SaveModel.EmployeeID;
                    res.ExecutionResult = eExecutionResult.CommitedSucessfuly;
                }
                catch (Exception ex)
                {
                    CommonFunctions.GetFinalError(res, ex);
                    return(res);
                }

                if (EmployeeServiceDetail != null)
                {
                    SaveModel.EmployeeLastServiceDetailID = EmployeeServiceDetail.EmployeeServiceDetailID;
                    try
                    {
                        db.SaveChanges();
                        res.PrimeKeyValue   = SaveModel.EmployeeID;
                        res.ExecutionResult = eExecutionResult.CommitedSucessfuly;
                    }
                    catch (Exception ex)
                    {
                        CommonFunctions.GetFinalError(res, ex);
                        return(res);
                    }
                }

                //                // Assign Employee ID in past Attendance data
                //                if (res.ExecutionResult == eExecutionResult.CommitedSucessfuly)
                //                {
                //                    db.Database.ExecuteSqlCommand($@"
                //Update att SET EmployeeID = e.EmployeeID, CompanyID = e.CompanyID
                //from tblEmployeeAttendance att
                //Inner Join tblEmployee e on e.TACode = att.EmployeeTACode
                //where att.EmployeeID is NULL AND att.EmployeeTACode IS NOT NULL AND e.EmployeeID = {SaveModel.EmployeeID}

                //Update ad Set ad.EmployeeID = a.EmployeeID, ad.CompanyID = a.CompanyID
                //from tblEmployeeAttendanceDetail ad
                //inner join tblEmployeeAttendance a on a.EmployeeAttendanceID = ad.EmployeeAttendanceID
                //where ad.EmployeeID IS NULL AND a.EmployeeID = {SaveModel.EmployeeID}");

                //                }
            }
            return(res);
        }