/// <summary> /// Actualiza los registros en la tabla de EmpleadoComplemento con base en la configuración de los empleados /// </summary> /// <param name="IdPeriodoPago"></param> public void UpdateEmpleadoComplementoRegistros(int IdPeriodoPago) { PeriodosPago p = new PeriodosPago(); var empleados = p.GetIdEmpleados(IdPeriodoPago); var records = (from ec in _ctx.NOM_Empleado_Conceptos where empleados.Contains(ec.IdEmpleado) && ec.Complemento == true select ec).ToList(); //obtiene los empleados activos en el periodo de pago // obtiene los empleados que ya existian en la tabla de empleado complemento con ese periodo de pago var listaComplemento = _ctx.NOM_Empleado_Complemento.Where(x => x.IdPeriodo == IdPeriodoPago).ToList(); foreach (var record in records) { var complemento = listaComplemento.FirstOrDefault(x => x.IdEmpleado == record.IdEmpleado && x.IdConcepto == record.IdConcepto); if (complemento == null) //si no existe en la lista, lo crea { complemento = new NOM_Empleado_Complemento(); complemento.IdEmpleado = record.IdEmpleado; complemento.IdConcepto = record.IdConcepto; complemento.IdPeriodo = IdPeriodoPago; _ctx.NOM_Empleado_Complemento.Add(complemento); _ctx.SaveChanges(); } listaComplemento.Remove(complemento); } _ctx.NOM_Empleado_Complemento.RemoveRange(listaComplemento); //elimina el resto de los registros _ctx.SaveChanges(); }
public void guardarComplemento(int idEmpleado, int idPeriodo, int idConcepto, decimal cantidad) { var dato = _ctx.NOM_Empleado_Complemento.Where(x => x.IdEmpleado == idEmpleado && x.IdPeriodo == idPeriodo && x.IdConcepto == idConcepto).FirstOrDefault(); if (dato != null) { const string sqlQuery = "DELETE NOM_Empleado_Complemento WHERE IdEmpleadoComplemento = @p0"; _ctx.Database.ExecuteSqlCommand(sqlQuery, dato.IdEmpleadoComplemento); if (cantidad != 0) { var item = new NOM_Empleado_Complemento { IdEmpleado = idEmpleado, IdConcepto = idConcepto, IdPeriodo = idPeriodo, Cantidad = cantidad }; _ctx.NOM_Empleado_Complemento.Add(item); _ctx.SaveChanges(); } } else { if (cantidad != 0) { var item = new NOM_Empleado_Complemento { IdEmpleado = idEmpleado, IdConcepto = idConcepto, IdPeriodo = idPeriodo, Cantidad = cantidad }; _ctx.NOM_Empleado_Complemento.Add(item); _ctx.SaveChanges(); } } }
public void ImportarDatosComplemento(DataTable dataT, int idPeriodo) { if (dataT == null || idPeriodo <= 0) { return; } //Lista de item de complemento List <NOM_Empleado_Complemento> listaComplemento = new List <NOM_Empleado_Complemento>(); int cont = 0; int idEmpleado = 0; string descripcion = ""; decimal cantidad = 0; int idConcepto = 0; var idEmpArray = GetIdEmpleadosByIdPeriodo(idPeriodo); //int[] s = { 1, 2, 3, 3, 4 }; //int[] q = s.Distinct().ToArray(); foreach (DataRow row in dataT.Rows) { cantidad = -1; descripcion = ""; if (row[0].ToString().Trim() == "") { continue; } idEmpleado = int.Parse(row[0].ToString()); if (row[3].ToString().Trim() == "") { continue; } cantidad = decimal.Parse(row[3].ToString()); // if (cantidad < 0) continue; descripcion = row[2].ToString().Trim(); if (descripcion == "") { descripcion = "Complemento"; } //Buscamos que el idEmpleado este en el array if (!BuscarInArray(idEmpArray, idEmpleado)) { continue; } NOM_Empleado_Complemento itemComplemento = new NOM_Empleado_Complemento() { IdEmpleadoComplemento = 0, IdPeriodo = idPeriodo, IdEmpleado = idEmpleado, Cantidad = cantidad, IdConcepto = idConcepto, Descripcion = descripcion }; listaComplemento.Add(itemComplemento); cont++; } //Borrar anterior var arrayIDEmpleados = listaComplemento.Select(x => x.IdEmpleado).ToArray(); BorrarDatoAnterior(arrayIDEmpleados, idPeriodo); //Agregar el dato nuevo InsertarRegistros(listaComplemento); }