private void PanelVehiculos_OnBsPositionChanged(object sender, EventArgs e) { if (positionChanged != this.panelVehiculos.bs.Position) { DataTable dtVehiculos = (DataTable)sender; List <UserControl> controls = new List <UserControl>(); foreach (DataRow row in dtVehiculos.Rows) { EVehiculos eVehiculo = new EVehiculos(row); ECronogramas eCronograma = new ECronogramas { EVehiculo = eVehiculo, Fecha_cronograma = DateTime.Now, Estado_cronograma = "ACTIVO", }; VehiculoCronogramaSmall vehiculoCronogramaSmall = new VehiculoCronogramaSmall { ECronograma = eCronograma, }; vehiculoCronogramaSmall.OnBtnOkClick += VehiculoCronogramaSmall_OnBtnOkClick; controls.Add(vehiculoCronogramaSmall); } this.panelVehiculos.AddArrayControl(controls); } }
private void VehiculoCronogramaSmall_OnBtnOkClick(object sender, EventArgs e) { VehiculoCronogramaSmall cronogramaSmall = (VehiculoCronogramaSmall)sender; if (this.Comprobaciones(cronogramaSmall, out ECronogramas eCronograma)) { this.AgregarCronograma(eCronograma); } }
private bool Comprobaciones(VehiculoCronogramaSmall cronogramaSmall, out ECronogramas eCronograma) { eCronograma = new ECronogramas(); EVehiculos eVehiculo = cronogramaSmall.ECronograma.EVehiculo; //Buscar en la lista de vehículos seleccionados el id del vehículo del control List <ECronogramas> eCronogramas = this.CronogramasSeleccionados.Where(x => x.EVehiculo.Id_vehiculo == eVehiculo.Id_vehiculo).ToList(); //Comprobar cantidad de resultados if (eCronogramas.Count > 0) { //Si el véhículo ya está en la lista devolvemos falso Mensajes.MensajeInformacion("El vehículo ya está en la lista", "Entendido"); return(false); } //Comprobar si no está en otro cronograma con la misma fecha DataTable dtCronogramas = ECronogramas.BuscarCronogramas("FECHA ID VEHICULO", cronogramaSmall.dateEstado.Value.ToString("yyyy-MM-dd"), eVehiculo.Id_vehiculo.ToString(), out string rpta); if (dtCronogramas != null) { //Si hay resultados significa que si hay un vehículo con una fecha en específico Mensajes.MensajeInformacion("El vehículo ya está programado para esta fecha", "Entendido"); return(false); } //Comprobar si se seleccionó un estado if (cronogramaSmall.btnEstado.Tag == null) { Mensajes.MensajeInformacion("Seleccione un estado", "Entendido"); return(false); } EEstados_vehiculos eEstado = (EEstados_vehiculos)cronogramaSmall.Tag; eCronograma.EEstado = eEstado; eCronograma.EVehiculo = eVehiculo; eCronograma.Fecha_cronograma = cronogramaSmall.dateEstado.Value; eCronograma.Estado_cronograma = "ACTIVO"; return(true); }