public IHttpActionResult Put(int id, ContractDetail contract) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } ContractDetail contractInDB = _context.ContractDetails.FirstOrDefault(d => d.Id == id); if (contractInDB == null) { return(NotFound()); } // log changes ChangesLogs log = new ChangesLogs(); log.AddChangesLog(contractInDB, contract, new List <string>() { "EnDate", "StartDate", "Dedication", "DependencyId", "PositionsId", "PositionDescription", "Linkage", "AI" }); // todo view rol and permisions to update or not contractInDB.StartDate = contract.StartDate; contractInDB.EndDate = contract.EndDate; contractInDB.Dedication = contract.Dedication; contractInDB.BranchesId = _context.Dependencies.FirstOrDefault(x => x.Id == contract.DependencyId).BranchesId; contractInDB.DependencyId = contract.DependencyId; contractInDB.PositionsId = contract.PositionsId; contractInDB.PositionDescription = contract.PositionDescription == null ? null : contract.PositionDescription.ToUpper(); contractInDB.Linkage = contract.Linkage; contractInDB.AI = contract.AI; contractInDB.NumGestion = contract.NumGestion; contractInDB.Seguimiento = contract.Seguimiento; contractInDB.Respaldo = contract.Respaldo; contractInDB.Comunicado = contract.Comunicado; contractInDB.UpdatedAt = DateTime.Now; contractInDB.EndDateNombramiento = contract.EndDateNombramiento; var person = _context.Person.FirstOrDefault(x => x.CUNI == contractInDB.CUNI); var user = auth.getUser(Request); //se obtiene el nombre de la posición del contrato que se está registrando en el controlador string contractPosition = _context.Position.FirstOrDefault(x => x.Id == contract.PositionsId).NameAbr; // create user in SAP B1.AddOrUpdatePerson(user.Id, person, contractPosition); _context.SaveChanges(); return(Ok(contractInDB)); }
public IHttpActionResult Baja(int id, ContractDetail contract) { ContractDetail contractInDB = _context.ContractDetails.FirstOrDefault(d => d.Id == id); // contractInDB.EndDate=DateTime.Now; ChangesLogs log = new ChangesLogs(); log.AddChangesLog(contractInDB, contract, new List <string>() { "EndDate", "Cause" }); contractInDB.EndDate = contract.EndDate; contractInDB.Cause = contract.Cause; contractInDB.Active = false; contractInDB.UpdatedAt = DateTime.Now; _context.SaveChanges(); return(Ok(contractInDB)); }
public IHttpActionResult Put(int id, [FromBody] People person) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } People personInDB = _context.Person.FirstOrDefault(d => d.Id == id); if (personInDB == null) { return(NotFound()); } person = validator.CleanName(person); // log changes ChangesLogs log = new ChangesLogs(); log.AddChangesLog(personInDB, person, new List <string>() { "TypeDocument", "Document", "Ext", "Names", "FirstSurName", "SecondSurName", "BirthDate", "Gender", "Nationality", "UseMariedSurName", "UseSecondSurName", "MariedSurName", "PhoneNumber", "PersonalEmail", "OfficePhoneNumber", "OfficePhoneNumberExt", "HomeAddress", "UcbEmail", "AFP", "NUA", "Insurance", "InsuranceNumber" }); //--------------------------REQUIRED COLS-------------------------- personInDB.TypeDocument = cleanText(person.TypeDocument); personInDB.Document = person.Document; personInDB.Ext = cleanText(person.Ext); personInDB.Names = cleanText(person.Names); personInDB.FirstSurName = cleanText(person.FirstSurName); personInDB.SecondSurName = cleanText(person.SecondSurName); personInDB.BirthDate = person.BirthDate; personInDB.Gender = cleanText(person.Gender); personInDB.Nationality = cleanText(person.Nationality); personInDB.UseMariedSurName = (int)person.UseMariedSurName; personInDB.UseSecondSurName = person.UseSecondSurName; //------------------------NON REQUIRED COLS-------------------------- personInDB.MariedSurName = cleanText(person.MariedSurName); personInDB.PhoneNumber = person.PhoneNumber; personInDB.PersonalEmail = person.PersonalEmail; personInDB.OfficePhoneNumber = person.OfficePhoneNumber; personInDB.OfficePhoneNumberExt = person.OfficePhoneNumberExt; personInDB.HomeAddress = person.HomeAddress; personInDB.UcbEmail = person.UcbEmail; personInDB.AFP = cleanText(person.AFP); personInDB.NUA = person.NUA; personInDB.Insurance = person.Insurance; personInDB.InsuranceNumber = person.InsuranceNumber; //register updated time personInDB.UpdatedAt = DateTime.Now; var ADauth = new ADClass(); var usr = auth.getUser(Request); var rols = ADauth.getUserRols(usr); var canUpdatePending = false; foreach (var rol in rols) { if (rol.Name == "GPS Admin" || rol.Name == "Admin") { canUpdatePending = true; break; } } if (canUpdatePending) { personInDB.Pending = person.Pending; } _context.SaveChanges(); return(Ok(personInDB)); }