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