public ET_entidad get_001() { string Mensaje_error = ""; DataTable dt = new DataTable(); using (SqlConnection cn = new SqlConnection(_cnx.conexion)) { cn.Open(); SqlTransaction sqlTran = cn.BeginTransaction(); SqlCommand cmd = new SqlCommand("pa_tm40get_001", cn, sqlTran); cmd.CommandType = CommandType.StoredProcedure; try { SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; da.Fill(dt); _lista_etm40.Clear(); int indice = 0; foreach (DataRow fila in dt.Rows) { _et_m40 = new ET_M40(); string valor = "", importe = "", porcentaje = ""; _et_m40._fila = indice; _et_m40._TM40_ID = fila["TM40_ID"].ToString(); if (_et_m40._TM40_ID.Equals("P3")) // --> asignacion familiar { _et_m40._Seleccionado = true; } _et_m40._TM40_DESCRIP = fila["TM40_DESCRIP"].ToString(); _et_m40._TM40_DESCRIP2 = fila["TM40_DESCRIP2"].ToString(); importe = fila["TM40_IMPORTE"].ToString(); porcentaje = fila["TM40_PORCENTAJE"].ToString(); _et_m40._TM40_IMPORTE = string.IsNullOrEmpty(importe) ? 0.00M : Convert.ToDecimal(importe); _et_m40._TM40_PORCENTAJE = string.IsNullOrEmpty(porcentaje) ? 0.00M : Convert.ToDecimal(porcentaje) * 100.00M; valor = string.IsNullOrEmpty(importe) ? "P": "I"; _et_m40._Work = valor; indice++; _lista_etm40.Add(_et_m40); } _Entidad._lista_et_m40 = _lista_etm40; _Entidad._hubo_error = false; } catch (SqlException exsql) { try { sqlTran.Rollback(); } catch (Exception exRollback) { } } catch (Exception ex) { Mensaje_error = string.Format("{1}{0}", Environment.NewLine, (Mensaje_error + ex.Message.ToString())); if (ex.InnerException != null) { Mensaje_error = string.Format("{1}{0}", Environment.NewLine, (Mensaje_error + "Inner exception: " + ex.InnerException.Message)); } Mensaje_error = string.Format("{1}{0}", Environment.NewLine, (Mensaje_error + "Stack trace: " + ex.StackTrace)); _Entidad._hubo_error = true; _Entidad._contenido_mensaje = Mensaje_error; _Entidad._titulo_mensaje = "Error!"; } finally { cn.Close(); } return(_Entidad); } }
//AFECTO => 1 : NO AFECTO => 0 #region Métodos public ET_entidad get_001(ET_R29 obj) { // obj._lista_et_m40; --> conceptos remunerativos disponibles var resultado = _dt_r29.get_001(obj); // analizamos los conceptos remunerativos que posee cada cargo y seleccionamos los conceptos que se visualizara como seleccionado List <ET_R29> lista_final = new List <ET_R29>(); int fila_ = 0; var _Lista_et_r29_trabajadores_8_horas = resultado._lista_et_r29.Where(o => (o._TR29_HORA_SALIDA - o._TR29_HORA_ENTRADA).Hours >= 4); var _Lista_et_r29_trabajadores_4_horas = resultado._lista_et_r29.Where(o => (o._TR29_HORA_SALIDA - o._TR29_HORA_ENTRADA).Hours < 4); #region mayor a 4 h _Lista_et_r29_trabajadores_8_horas.ToList().ForEach(row => { ET_R29 _entidad_final = new ET_R29(); List <ET_M40> _lista_child_etm40 = new List <ET_M40>(); foreach (ET_M40 row_c in obj._lista_et_m40) { ET_M40 entidad_m40 = new ET_M40(); var where_on_list_et_r30 = row._lista_et_r30.FirstOrDefault(x => x._TR30_TM40_ID == row_c._TM40_ID && x._TR30_DESCRIP == row_c._TM40_DESCRIP); entidad_m40._TM40_IMPORTE = row_c._TM40_IMPORTE; entidad_m40._TM40_PORCENTAJE = row_c._TM40_PORCENTAJE; entidad_m40._TR40_AFECTO = row_c._TR40_AFECTO; if (where_on_list_et_r30 != null) { entidad_m40._Seleccionado = true; entidad_m40._TM40_IMPORTE = where_on_list_et_r30._TR30_IMPORTE; entidad_m40._TM40_PORCENTAJE = where_on_list_et_r30._TR30_PORCENTAJE * 100; entidad_m40._TR40_AFECTO = where_on_list_et_r30._TR30_AFECTO; } else { entidad_m40._Seleccionado = false; } entidad_m40._TM40_DESCRIP = row_c._TM40_DESCRIP; entidad_m40._TM40_ID = row_c._TM40_ID; entidad_m40._Work = row_c._Work; entidad_m40._fila = fila_; _lista_child_etm40.Add(entidad_m40); } _entidad_final._Fila = fila_; _entidad_final._TR29_DESCRIP = row._TR29_DESCRIP; _entidad_final._TR29_DIAS_SEMANA = row._TR29_DIAS_SEMANA; _entidad_final._TR29_HORA_ENTRADA = row._TR29_HORA_ENTRADA; _entidad_final._TR29_HORA_SALIDA = row._TR29_HORA_SALIDA; _entidad_final._HOURS_DAY = (row._TR29_HORA_SALIDA - row._TR29_HORA_ENTRADA).Hours; _entidad_final._TR29_ID = row._TR29_ID; _entidad_final._TR29_REMUNERACION = row._TR29_REMUNERACION; _entidad_final._TR29_TM2_ID = row._TR29_TM2_ID; _entidad_final._TR29_TM38_ID = row._TR29_TM38_ID; _entidad_final._TR29_TR28_ID = row._TR29_TR28_ID; _entidad_final._lista_et_m40 = _lista_child_etm40; _entidad_final._lista_et_r30 = row._lista_et_r30; _entidad_final._TR29_FLG_ELIMINADO = row._TR29_FLG_ELIMINADO; _entidad_final._TR29_ST = 1; // manejare el estado para analizar quien se actualiza y quien no que se registra y quien no lo hace // 1 -> obtenido desde base de datos // 0 -> es un nuevo ingreso lista_final.Add(_entidad_final); fila_++; }); #endregion #region menor a 4 h _Lista_et_r29_trabajadores_4_horas.ToList().ForEach(row => { ET_R29 _entidad_final = new ET_R29(); List <ET_M40> _lista_child_etm40 = new List <ET_M40>(); foreach (ET_M40 row_c in obj._lista_et_m40) { ET_M40 entidad_m40 = new ET_M40(); var where_on_list_et_r30 = row._lista_et_r30.FirstOrDefault(x => x._TR30_TM40_ID == row_c._TM40_ID && x._TR30_DESCRIP == row_c._TM40_DESCRIP); entidad_m40._TM40_IMPORTE = row_c._TM40_IMPORTE; entidad_m40._TM40_PORCENTAJE = row_c._TM40_PORCENTAJE; entidad_m40._TR40_AFECTO = row_c._TR40_AFECTO; if (where_on_list_et_r30 != null) { entidad_m40._Seleccionado = true; entidad_m40._TM40_IMPORTE = where_on_list_et_r30._TR30_IMPORTE; entidad_m40._TM40_PORCENTAJE = where_on_list_et_r30._TR30_PORCENTAJE * 100; entidad_m40._TR40_AFECTO = where_on_list_et_r30._TR30_AFECTO; } else { entidad_m40._Seleccionado = false; } entidad_m40._TM40_DESCRIP = row_c._TM40_DESCRIP; entidad_m40._TM40_ID = row_c._TM40_ID; entidad_m40._Work = row_c._Work; entidad_m40._fila = fila_; _lista_child_etm40.Add(entidad_m40); } _entidad_final._Fila = fila_; _entidad_final._TR29_DESCRIP = row._TR29_DESCRIP; _entidad_final._TR29_DIAS_SEMANA = row._TR29_DIAS_SEMANA; _entidad_final._TR29_HORA_ENTRADA = row._TR29_HORA_ENTRADA; _entidad_final._TR29_HORA_SALIDA = row._TR29_HORA_SALIDA; _entidad_final._HOURS_DAY = (row._TR29_HORA_SALIDA - row._TR29_HORA_ENTRADA).Hours; _entidad_final._TR29_ID = row._TR29_ID; _entidad_final._TR29_REMUNERACION = row._TR29_REMUNERACION; _entidad_final._TR29_TM2_ID = row._TR29_TM2_ID; _entidad_final._TR29_TM38_ID = row._TR29_TM38_ID; _entidad_final._TR29_TR28_ID = row._TR29_TR28_ID; _entidad_final._lista_et_m40 = _lista_child_etm40; _entidad_final._lista_et_r30 = row._lista_et_r30; _entidad_final._TR29_FLG_ELIMINADO = row._TR29_FLG_ELIMINADO; _entidad_final._TR29_ST = 1; // manejare el estado para analizar quien se actualiza y quien no que se registra y quien no lo hace // 1 -> obtenido desde base de datos // 0 -> es un nuevo ingreso lista_final.Add(_entidad_final); fila_++; }); #endregion resultado._lista_et_r29 = lista_final; return(resultado); }