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); }
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); }