Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        //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);
        }