private void Carganomina(int prenominagen)
        {
            var z      = Datos.Micontexto.prenominagen.Where(x => x.Idnominagen == prenominagen).ToList();
            var newpre = new List <prenomina>();

            foreach (var x in z)
            {
                var newp = new prenomina
                {
                    nominatype    = x.nominatype,
                    trabajador    = x.trabajador,
                    conceptos     = x.conceptos,
                    nombrecon     = x.nombrecon,
                    valorconcepto = x.valorconcepto,
                    valorvar      = x.valorvar,
                    tipoconcepto  = x.tipoconcepto,
                    idnominagen   = x.Idnominagen
                };
                newpre.Add(newp);
            }
            NominaActual   = new ObservableCollection <prenomina>(newpre);
            SelectedNomina = newpre.First().nominatype;
            NominagenID    = newpre.First().idnominagen;
        }
        public void GenerarPrenomina(object nomina)
        {
            // try {
            if (nomina == null)
            {
                Datos.Msg("Selecione una Nomina");
                return;
            }
            nominaEntities paraconcepto = new nominaEntities();
            var            nominax      = nomina as nominatype;
            var            idx          = ((nominatype)nomina).idnomina;
            var            topox        = ((nominatype)nomina).idnomina;

            if (ValidateDates())
            {
                return;
            }
            IEnumerable <trabajador> TrabInNomina;

            if (nominax.tipo == 2)
            {
                TrabInNomina = Datos.Micontexto.trabajador.Where(x => x.nominatype1.idnomina == idx).Where(x => x.estatus.idestatus < 3);
            }
            else
            {
                TrabInNomina = Datos.Micontexto.trabajador.Where(x => x.nominatype.idnomina == idx).Where(x => x.estatus.idestatus < 3);
            }
            var prenominaActual = Datos.Micontexto.prenomina.Where(x => x.nominatype.idnomina == idx);

            Datos.Micontexto.Database.ExecuteSqlCommand("DELETE  FROM prenomina WHERE idnominatype=@p0", ((nominatype)nomina).idnomina);
            string[] concepts;
            foreach (var trab in TrabInNomina)
            {
                if (nominax.tipo == 1)
                {
                    concepts = trab.conceptos.Split(',');
                }
                else
                {
                    concepts = trab.conceptosbonos.Split(',');
                }
                foreach (var con in concepts)
                {
                    prenomina PreNom = new prenomina();
                    if (nominax.tipo == 1)
                    {
                        PreNom.nominatype = trab.nominatype;
                    }
                    else
                    {
                        PreNom.nominatype = trab.nominatype1;
                    }
                    PreNom.trabajador = trab;
                    var idcon = 0;

                    try
                    {
                        idcon = Int32.Parse(con);
                        var xa = paraconcepto.conceptos.First(x => x.idconcepto == idcon);

                        PreNom.nombrecon = xa.nombre;

                        PreNom.idconcepto    = xa.idconcepto;
                        PreNom.valorconcepto = LeerConcepto(xa.Valor, trab.idtrabajador);

                        PreNom.valorvar     = LeerConcepto(xa.variante, trab.idtrabajador);
                        PreNom.tipoconcepto = xa.tipo;
                        if (xa.noimprimir != 1)
                        {
                            if (xa.desactivar != 1)
                            {
                                Datos.Micontexto.prenomina.Add(PreNom);
                            }
                        }
                        else
                        {
                            if (PreNom.valorconcepto != 0)
                            {
                                if (xa.desactivar != 1)
                                {
                                    Datos.Micontexto.prenomina.Add(PreNom);
                                }
                            }
                        }
                    }
                    catch
                    {
                        System.Windows.MessageBox.Show("Error en Trabajador " + trab.cedula + " " + trab.nombres.Trim() + " " + trab.apellidos.Trim() + " en el Concepto " + idcon, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }
                }
            }
            Datos.Micontexto.SaveChanges();
            Datos.WindowActual.Close();
            NominaActual = new ObservableCollection <prenomina>(Datos.Micontexto.prenomina.Where(x => x.nominatype.idnomina == idx));
            WinPrenomina nuevaprenomina = new WinPrenomina(this);

            nuevaprenomina.Owner                 = Datos._PrincipalWindow;
            nuevaprenomina.WindowState           = WindowState.Normal;
            nuevaprenomina.ShowInTaskbar         = false;
            nuevaprenomina.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            nuevaprenomina.ShowDialog();
            //}
            // catch(Exception ex)
            // {
            //  MessageBox.Show(ex.ToString(), "Error",MessageBoxButton.OK, MessageBoxImage.Error);
            // }
        }