public void Guardar()
 {
     using (nominaEntities bd = new nominaEntities())
     {
         try
         {
             bd.campos.Add(CampoActual);
             bd.SaveChanges();
             var Trabajadores = Datos.Micontexto.trabajador.ToList();
             foreach (var tra in Trabajadores)
             {
                 var nuevoCampoTra = new campotra
                 {
                     nombrecampo  = CampoActual.nombre,
                     idtrabajador = tra.idtrabajador,
                     valor        = (decimal)CampoActual.valorinicial
                 };
                 bd.campotra.Add(nuevoCampoTra);
             }
             bd.SaveChanges();
             Datos.Guardado();
             Nuevo();
         }
         catch (Exception ex)
         {
             Datos.Msg("Error al guardar verifique y/o complete los datos", "Error Al Guardar", "E");
         }
     }
 }
        public static List <DiasAsistA> ProcDias(DateTime desde, DateTime hasta, nominatype nomina)
        {
            var procDays  = new List <DiasAsistB>();
            var TrabsDays = new List <DiasAsistA>();

            for (DateTime i = desde; i.Date <= hasta.Date; i = i.AddDays(1))
            {
                procDays.Add(new DiasAsistB()
                {
                    Dia   = i,
                    asist = false
                });
            }

            nominaEntities fortrabs = new nominaEntities();
            var            trabs    = Datos.Micontexto.trabajador.Where(x => x.nominatype.idnomina == nomina.idnomina && x.estatus.idestatus == 1);

            foreach (var trab in trabs)
            {
                int idtrab = trab.idtrabajador;
                var trabx  = new DiasAsistA();
                trabx.Trab = trab;
                trabx.Dias = new List <DiasAsistB>();
                foreach (var day in procDays)
                {
                    var qry = fortrabs.controlasist.Where(x => x.idtrabajador == idtrab && x.date == day.Dia).ToList();
                    int asi;
                    if (day.Dia.DayOfWeek == DayOfWeek.Saturday || day.Dia.DayOfWeek == DayOfWeek.Sunday)
                    {
                        asi = 1;
                    }
                    else
                    {
                        asi = qry.Count();
                    }

                    trabx.Dias.Add(new DiasAsistB()
                    {
                        Dia   = day.Dia,
                        asist = Convert.ToBoolean(asi)
                    });
                }
                trabx.DiasAsis   = string.Join(",", trabx.Dias.Where(x => x.asist == true).Select(x => x.Dia.Date.ToShortDateString()));
                trabx.DiasInasis = string.Join(",", trabx.Dias.Where(x => x.asist == false).Select(x => x.Dia.Date.ToShortDateString()));
                trabx.TotalAsis  = trabx.Dias.Where(x => x.asist == true).Count();
                trabx.TotalIna   = trabx.Dias.Where(x => x.asist == false).Count();
                TrabsDays.Add(trabx);
            }



            return(TrabsDays);
        }
 public void Guardar()
 {
     using (nominaEntities bd = new nominaEntities())
     {
         try
         {
             bd.conceptos.Add(ConceptoActual);
             bd.SaveChanges();
             Datos.Guardado();
             Nuevo();
         }
         catch (Exception ex)
         {
             Datos.Msg("Error al guardar verifique y/o complete los datos", "Error Al Guardar", "E");
         }
     }
 }
Esempio n. 4
0
 public void Guardar()
 {
     using (nominaEntities bd = new nominaEntities())
     {
         try
         {
             bd.cargo.Add(CargoActual);
             bd.SaveChanges();
             MessageBox.Show("Datos Guardados Exitosamente");
             Nuevo();
         }
         catch (Exception)
         {
             Datos.Msg("Error al guardar verifique y/o complete los datos", "Error Al Guardar", "E");
         }
     }
 }
        public static string LeerCampo(string campo, int idx)
        {
            if (campo == null || campo == string.Empty)
            {
                return("0");
            }
            else
            {
                nominaEntities paraconcepto = new nominaEntities();
                var            itemn        = campo.Remove(0, 1);

                var r = paraconcepto.campotra.Where(x => x.idtrabajador == idx)
                        .Where(x => x.nombrecampo == itemn)
                        .Select(x => x.valor).SingleOrDefault().ToString();

                return(r);
            }
        }
        public static decimal LeerConcepto(string conceptvalue, int idx)
        {
            if (conceptvalue == string.Empty || conceptvalue == null)
            {
                return(0);
            }
            var            conceptvaluex   = conceptvalue.Replace(" ", "");
            var            divconcept      = conceptvaluex.Split('*', '+', '-', '/', '(', ')');
            string         valorconvertido = conceptvaluex;
            nominaEntities paraconcepto    = new nominaEntities();

            foreach (var item in divconcept)
            {
                if (item.Contains('$'))
                {
                    var y = LeerCampo(item, idx);
                    valorconvertido = valorconvertido.Replace(item, y);
                }
                if (item.Contains('@'))
                {
                    var itemn = item.Remove(0, 1);

                    var j = EjecutarProc(itemn, idx.ToString());
                    valorconvertido = valorconvertido.Replace(item, j);
                }
            }
            valorconvertido = valorconvertido.Replace(',', '.');
            NCalc.Expression e          = new NCalc.Expression(valorconvertido);
            decimal          evaluation = 0;

            try
            {
                evaluation = decimal.Parse(e.Evaluate().ToString());
            }
            catch (System.ArgumentException x)
            {
                Datos.Msg("Error en Concepto Numero " + idx.ToString() + ". El parametro " + x.ParamName + " no existe o esta mal escrito.");
            }

            return(Decimal.Round(evaluation, 2));;
        }
Esempio n. 7
0
        private void TrabajadorFinder(object obj)
        {
            nominaEntities db     = new nominaEntities();
            TextBox        identi = obj as TextBox;

            Nomtrabajador = null;
            Saludo        = null;
            trabajador    = db.trabajador.FirstOrDefault(x => x.cedula == Identificator);
            if (trabajador != null)
            {
                ErrorMsg      = "";
                Nomtrabajador = trabajador.nombres.Trim() + " " + trabajador.apellidos.Trim();

                DateTime Today     = DateTime.Today;
                DateTime TodayTime = DateTime.Now;
                Tempo = TodayTime.ToString("hh:mm:ss tt");
                //BUSCAR REgistro si existe en el dia
                Checkcontrol = db.controlasist.Where(x => x.date == Today).Where(x => x.idtrabajador == trabajador.idtrabajador).FirstOrDefault();
                //
                if (Checkcontrol == null)
                {
                    trabajador.idestatusasis = 2;
                    controlasist nuevocontrol = new controlasist();
                    nuevocontrol.Dia    = 0;
                    nuevocontrol.HorasD = 0;

                    nuevocontrol.trabajador = trabajador;
                    nuevocontrol.date       = Today;
                    Checkcontrol            = nuevocontrol;

                    db.controlasist.Add(Checkcontrol);
                }
                //Configurando para cambiar los campos lineles por coma a listas
                List <string> Lsalidas  = new List <string>();
                List <string> Lentradas = new List <string>();

                if (Checkcontrol.Salidas != null)
                {
                    Lsalidas = Checkcontrol.Salidas.Split(',').ToList();
                }
                if (Checkcontrol.Entradas != null)
                {
                    Lentradas = Checkcontrol.Entradas.Split(',').ToList();
                }

                ///Control Entradas
                if (trabajador.idestatusasis == 2)
                {
                    //Check Max entradas
                    if (Lentradas.Count() == Configuracion.MaxEntradas)
                    {
                        trabajador = null;
                        ErrorMsg   = "El Tabajador ya cumplió el maximo";
                        return;
                    }



                    Saludo = "Bienvenido(a)!";
                    trabajador.idestatusasis = 1;
                    Lentradas.Add(TodayTime.ToString("H:mm:ss"));
                    var      nuevaEntrada  = string.Join(",", Lentradas.ToArray());
                    DateTime retrasoTiempo = DateTime.Today + ((DateTime)Configuracion.HoraEntrada).TimeOfDay;
                    TimeSpan retraso       = TodayTime - retrasoTiempo;
                    Checkcontrol.Entradas = nuevaEntrada;
                    var minRetraso = (decimal?)retraso.TotalMinutes;
                    if (minRetraso > Configuracion.MinRetrasos)
                    {
                        Checkcontrol.Retraso = (decimal?)retraso.TotalMinutes;
                    }
                    Color = Colors.LightGreen.ToString();
                }
                else //Control Salidas
                {
                    if (Lsalidas.Count() == Configuracion.MaxEntradas)
                    {
                        trabajador = null;
                        ErrorMsg   = "El Tabajador ya cumplió el maximo";
                        return;
                    }

                    Saludo = "Hasta Luego...";
                    trabajador.idestatusasis = 2;
                    Lsalidas.Add(TodayTime.ToString("H:mm:ss"));
                    var nuevaSalida = string.Join(",", Lsalidas.ToArray());
                    Checkcontrol.Salidas = nuevaSalida;
                    //Calcular Variables de config
                    //Calcular Horas;


                    var result = Lentradas.Zip(Lsalidas, (primero, segundo) => new  { entrada = primero, salida = segundo });
                    var union  = result.Select(x => new { x.entrada, x.salida, horas = decimal.Parse((DateTime.Parse(x.salida).Subtract(DateTime.Parse(x.entrada))).TotalHours.ToString()) });
                    Checkcontrol.HorasD = union.Sum(x => x.horas);
                    if (Checkcontrol.HorasD >= Configuracion.MinHorasDia)
                    {
                        Checkcontrol.Dia = 1;
                    }
                    else
                    {
                        ErrorMsg = "El Tabajador no puede salir todavia";
                        Saludo   = "";

                        return;
                    }
                    Color = Colors.DarkRed.ToString();
                    PasarDatos();
                }

                db.SaveChanges();

                Console.Beep();
            }
            else
            {
                ErrorMsg = "No existe el Trabajador";
            }
            identi.Text = null;
            identi.Focus();
        }
        public void GenerarNomina()
        {
            nominauni GenNom = new nominauni();

            GenNom.nominatype        = NominaActual.FirstOrDefault().nominatype;
            GenNom.desde             = this.Fdesde;
            GenNom.hasta             = this.FHasta;
            GenNom.totalasignaciones = TotalAsig;
            GenNom.totaldeducciones  = TotalDeduc;
            GenNom.totalnomina       = TotalNomina;
            GenNom.estatus           = 1;
            GenNom.fecha             = DateTime.Now;
            GenNom.user      = LogingViewModel.UsuarioActivo.idusuario;
            GenNom.cantidadt = TotalTra;

            try
            {
                Datos.Micontexto.nominauni.Add(GenNom);

                Datos.Micontexto.SaveChanges();
                NominagenID = GenNom.idnominauni;
            }
            catch (Exception EX)
            {
                Datos.Msg("Error Al Generar la nomina, Detalle: " + EX.ToString(), "Error", "E");
                return;
            }
            nominaEntities newentiry = new nominaEntities();

            foreach (var item in NominaActual)
            {
                prenominagen itennom = new prenominagen
                {
                    Idnominagen   = GenNom.idnominauni,
                    nominatype    = item.nominatype,
                    trabajador    = item.trabajador,
                    conceptos     = item.conceptos,
                    nombrecon     = item.nombrecon,
                    valorconcepto = item.valorconcepto,
                    valorvar      = item.valorvar,
                    tipoconcepto  = item.tipoconcepto
                };
                Datos.Micontexto.prenominagen.Add(itennom);
            }
            try
            {
                var CamposAReiniciar = Datos.Micontexto.campos.Where(x => x.esReiniciado == 1);
                var CamposTra        = Datos.Micontexto.campotra.ToList();



                foreach (var campo in CamposAReiniciar)
                {
                    CamposTra.Where(x => x.nombrecampo.Contains(campo.nombre)).ToList().ForEach(x => x.valor = campo.valorinicial.Value);
                }

                Datos.Micontexto.SaveChanges();
            }
            catch (Exception EX)
            {
                Datos.Msg("Error Al Generar la nomina, Detalle: " + EX.ToString(), "Error", "E");
                return;
            }
            Datos.Micontexto.Database.ExecuteSqlCommand("DELETE  FROM prenomina WHERE idnominatype=@p0", GenNom.nominatype.idnomina);
            Datos.Msg("Nomina " + GenNom.idnominauni.ToString().Trim() + " Generada", "Nomina Generada");
        }
        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);
            // }
        }