public void AddToHistorialPPRolPrivadoVacacionesProporcionales(HistorialPPRolPrivadoVacacionesProporcionalesItem historialPPRolPrivadoVacacionesProporcionalesItem)
 {
     base.AddObject("HistorialPPRolPrivadoVacacionesProporcionales", historialPPRolPrivadoVacacionesProporcionalesItem);
 }
 public static HistorialPPRolPrivadoVacacionesProporcionalesItem CreateHistorialPPRolPrivadoVacacionesProporcionalesItem(int ID)
 {
     HistorialPPRolPrivadoVacacionesProporcionalesItem historialPPRolPrivadoVacacionesProporcionalesItem = new HistorialPPRolPrivadoVacacionesProporcionalesItem();
     historialPPRolPrivadoVacacionesProporcionalesItem.id = ID;
     return historialPPRolPrivadoVacacionesProporcionalesItem;
 }
        partial void GenerarVacacionesProporcionales_Execute()
        {
            System.Windows.MessageBoxResult result = this.ShowMessageBox("El saldo de vacaciones de todos los empleados que son rol privado aumentará en '1,25'. Si es el primer mes del empleado en la empresa, entonces aumentará en proporción a la cantidad de días. ¿Desea continuar?", "ADVERTENCIA", MessageBoxOption.YesNo);

            if (result == System.Windows.MessageBoxResult.Yes)
            {
                DateTime[] FERIADOS = new DateTime[100];//DateTime[] FERIADOS = new DateTime[] { };
                int dia; int mes; int año; int i = 0;

                foreach (FeriadosItem feriado in this.Feriados)
                {
                    dia = feriado.Feriado.Day;
                    mes = feriado.Feriado.Month;
                    año = feriado.Feriado.Year;
                    DateTime DiaAux = new DateTime(año, mes, dia);
                    FERIADOS[i] = DiaAux;
                    i++;
                }

                foreach (PersonaItem empleado in this.Persona)
                {
                    if (empleado.EsRolPrivado == true)
                    {
                        if (empleado.VacacionesPrimerMesDevengado == true)
                        {
                            empleado.SaldoVacaciones2 = empleado.SaldoVacaciones2 + 1.25;
                            //empleado.SaldoVacaciones2 = Math.Round(empleado.SaldoVacaciones2.Value, 2);
                        }
                        else if (empleado.VacacionesPrimerMesDevengado != true)
                        {
                            empleado.SaldoVacaciones2 = empleado.SaldoVacaciones2 + ((1.25 / 30) * DíasLaborales(empleado.FechaVigencia.Value, DateTime.Today, FERIADOS));
                            //empleado.SaldoVacaciones2 = Math.Round(empleado.SaldoVacaciones2.Value, 2);
                            empleado.VacacionesPrimerMesDevengado = true;
                        }
                    }
                }

                HistorialPPRolPrivadoVacacionesProporcionalesItem historial = new HistorialPPRolPrivadoVacacionesProporcionalesItem();

                historial.EjecutadoPor = this.Application.User.FullName;
                historial.FechaEjecución = DateTime.Now;

                this.Save();

                this.ShowMessageBox("Saldos actualizados con éxito");
            }
        }