async void OnEliminarClicked(object sender, EventArgs args)
        {
            var answer = await DisplayAlert("Eliminar Turno", "Esta seguro de eliminar este turno?", "Si", "No");

            if (answer)
            {
                var           btn   = sender as Button;
                Enturnamiento turno = btn.BindingContext as Enturnamiento;
                if (turno != null)
                {
                    EnturnamientoBLL         enturnamientoBLL = new EnturnamientoBLL();
                    List <RespuestaServicio> respuestas       = await enturnamientoBLL.EliminarTurno(turno.IdTurno);

                    if (respuestas != null && respuestas.Count > 0)
                    {
                        if (respuestas[0].Exito)
                        {
                            Navigation.PopAsync();
                        }
                        else
                        {
                            await DisplayAlert("Atención", respuestas[0].Mensaje, "Aceptar");

                            return;
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        protected async override void OnAppearing()
        {
            base.OnAppearing();
            IsBusy = true;

            StackLayout layout = new StackLayout();

            layout.Padding = new Thickness(10);

            Label lblPlaca = new Label();

            lblPlaca.Text = "Placa: ";
            layout.Children.Add(lblPlaca);

            Util util = new Util();

            if (util.UsuarioTienePermiso("logistica_buscar_placa"))
            {
                Entry txtPlaca = new Entry();
                layout.Children.Add(txtPlaca);
            }
            else
            {
                EnturnamientoBLL enturnamientoBLL = new EnturnamientoBLL();
                List <Vehiculo>  vehiculos        = new List <Vehiculo>();
                vehiculos = await enturnamientoBLL.ObtenerCabezotesTurnosPorUsuarioActual();

                Picker pickerPlaca = new Picker();
                if (vehiculos != null && vehiculos.Count > 0)
                {
                    foreach (Vehiculo v in vehiculos)
                    {
                        pickerPlaca.Items.Add(v.Placa);
                    }
                }
                layout.Children.Add(pickerPlaca);
            }

            StackLayout layoutBotones = new StackLayout();

            layoutBotones.Orientation = StackOrientation.Horizontal;
            Button btn = new Button();

            btn.Text = "Aceptar";
            //btn.Clicked += Btn_Clicked;
            layoutBotones.Children.Add(btn);

            layout.Children.Add(layoutBotones);

            Content = layout;

            IsBusy = false;
        }
        private async Task <List <Enturnamiento> > buscarTurnos()
        {
            Util                 util             = new Util();
            EnturnamientoBLL     enturnamientoBLL = new EnturnamientoBLL();
            List <Enturnamiento> turnos           = new List <Enturnamiento>();


            if (!util.UsuarioTienePermiso("enturnarplacasilimitadas"))
            {
                turnos = await enturnamientoBLL.ObtenerTurnosPorUsuario();
            }
            else
            {
                if (!string.IsNullOrEmpty(txtPlaca.Text))
                {
                    turnos = await enturnamientoBLL.ObtenerTurnosPorPlaca(txtPlaca.Text);
                }
            }
            if (turnos != null && turnos.Count > 0)
            {
                AgenciaBLL agenciaBLL = new AgenciaBLL();
                var        agencias   = agenciaBLL.SeleccionarAgencias();
                foreach (Enturnamiento turno in turnos)
                {
                    switch (turno.Estado)
                    {
                    case "TR":
                        turno.DescripcionEstado = "Tránsito";
                        break;

                    case "DP":
                        turno.DescripcionEstado = "Disponible";
                        break;

                    default:
                        break;
                    }
                    var agencia = agencias.FirstOrDefault(a => a.CodigoAgencia == turno.PuestoExpedicion);
                    if (agencia != null)
                    {
                        turno.DescripcionPuestoExpedicion = agencia.NombreAgencia;
                    }
                }
            }
            return(turnos);
        }
Esempio n. 4
0
        protected async override void OnAppearing()
        {
            base.OnAppearing();

            IsBusy = true;
            EnturnamientoBLL enturnamientoBLL = new EnturnamientoBLL();
            AgenciaBLL       agenciaBLL       = new AgenciaBLL();

            agencias = await enturnamientoBLL.ObtenerAgenciasEnturnamiento();

            var pickerPuestos = new ExtendedPicker()
            {
                DisplayProperty = "NombreAgencia"
            };

            pickerPuestos.ItemsSource = agencias.Where(d => d.EsAgencia).ToList();
            puestoExpedicion.Children.Add(pickerPuestos);

            //List<string> destinos = new List<string> { "NACIONAL", "BARRANQUILLA", "BOGOTÁ", "BUENAVENTURA", "CALI", "CARTAGENA", "MEDELLÍN" };
            var pickerDestinos = new ExtendedPicker()
            {
                DisplayProperty = "NombreAgencia"
            };

            pickerDestinos.ItemsSource = agencias.Where(d => d.EsDestino).ToList();
            destino.Children.Add(pickerDestinos);

            List <string> tipoTRailer = new List <string>()
            {
                "Carroceria", "Plancha", "Ambos"
            };

            rbTipoTRailer.ItemsSource = tipoTRailer;
            Util util = new Util();

            if (!util.UsuarioTienePermiso("enturnarplacasilimitadas"))
            {
                txtCedulaConductor.IsVisible = false;

                var pickerConductores = new ExtendedPicker()
                {
                    DisplayProperty = "Nombre"
                };
                List <Proveedor> listaConductores = await enturnamientoBLL.ObtenerConductoresTurnosPorUsuario();

                pickerConductores.ItemsSource           = listaConductores;
                pickerConductores.SelectedIndexChanged += (sender, args) =>
                {
                    string    conductor             = pickerConductores.Items[pickerConductores.SelectedIndex].ToString();
                    Proveedor conductorSeleccionado = (from p in listaConductores
                                                       where p.Nombre == conductor
                                                       select p).FirstOrDefault();
                    if (conductorSeleccionado != null)
                    {
                        _turnoSeleccionado.NombreConductor    = conductorSeleccionado.Nombre;
                        _turnoSeleccionado.NumeroDocConductor = conductorSeleccionado.NumIdentificacionFiscal;
                    }
                };
                if (_turnoSeleccionado != null)
                {
                    //Se está modificando un turno

                    if (!String.IsNullOrEmpty(_turnoSeleccionado.NumeroDocConductor))
                    {
                        var conductorActual = listaConductores.FirstOrDefault(c => c.NumIdentificacionFiscal.TrimStart('0') == _turnoSeleccionado.NumeroDocConductor.TrimStart('0'));
                        if (conductorActual != null)
                        {
                            pickerConductores.SelectedIndex = pickerConductores.Items.IndexOf(conductorActual.Nombre);
                        }
                    }
                }
                layoutConductor.Children.Add(pickerConductores);
            }
            else
            {
                txtCedulaConductor.IsVisible = false;


                List <Proveedor> proveedores             = new List <Proveedor>();
                List <string>    nombreConductores       = new List <string>();
                AutoCompleteView autocompleteConductores = new AutoCompleteView();
                autocompleteConductores.ShowSearchButton = false;

                autocompleteConductores.TextChanged += async(sender, args) =>
                {
                    if (String.IsNullOrEmpty(autocompleteConductores.Text))
                    {
                        autocompleteConductores.Suggestions = new List <string>();
                    }
                    else if (autocompleteConductores.Text.Length >= 4)
                    {
                        IsBusy      = true;
                        proveedores = await enturnamientoBLL.ObtenerConductoresPorNombre(autocompleteConductores.Text);

                        IsBusy            = false;
                        nombreConductores = (from p in proveedores
                                             select p.Nombre).DefaultIfEmpty().ToList();
                        autocompleteConductores.Suggestions = nombreConductores;
                    }
                };

                autocompleteConductores.SelectedItemChanged += (sender, args) =>
                {
                    Proveedor conductorSeleccionado = (from p in proveedores
                                                       where p.Nombre == autocompleteConductores.Text
                                                       select p).FirstOrDefault();
                    if (conductorSeleccionado != null)
                    {
                        txtCedulaConductor.Text               = conductorSeleccionado.NumIdentificacionFiscal;
                        _turnoSeleccionado.NombreConductor    = conductorSeleccionado.Nombre;
                        _turnoSeleccionado.NumeroDocConductor = conductorSeleccionado.NumIdentificacionFiscal;
                    }
                };
                layoutConductor.Children.Add(autocompleteConductores);
            }
            if (_turnoSeleccionado != null)
            {
                //Si están modificando un turno
                var codigoPuestoExpedicion = _turnoSeleccionado.PuestoExpedicion;
                var PuestoExpedicion       = (from a in agencias
                                              where a.CodigoAgencia == _turnoSeleccionado.PuestoExpedicion
                                              select a).FirstOrDefault();

                if (PuestoExpedicion != null)
                {
                    pickerPuestos.SelectedIndex = pickerPuestos.Items.IndexOf(PuestoExpedicion.NombreAgencia);
                    pickerPuestos.IsEnabled     = false;
                }

                txtPlacaCabezote.Text   = _turnoSeleccionado.PlacaCabezote;
                txtPlacaTrailer.Text    = _turnoSeleccionado.PlacaTrailer;
                lblTipoTrailer.Text     = _turnoSeleccionado.TipoTrailer;
                txtCedulaConductor.Text = _turnoSeleccionado.NumeroDocConductor;

                if (_turnoSeleccionado.PlacaCabezote.Length > 0)
                {
                    txtPlacaCabezote.IsEnabled = false;
                }

                if (String.IsNullOrEmpty(_turnoSeleccionado.Destino))
                {
                    pickerDestinos.SelectedIndex = pickerDestinos.Items.IndexOf("Nacional");
                }
                else
                {
                    pickerDestinos.SelectedIndex = pickerDestinos.Items.IndexOf(_turnoSeleccionado.Destino);
                }

                if (_turnoSeleccionado.CodigoTipoTrailer == "13")
                {
                    rbTipoTRailer.IsVisible = true;
                }
            }
            else
            {
                //Si se está creando un turno
                _turnoSeleccionado = new Enturnamiento();


                cbDisponible.IsVisible = false;

                if (!util.UsuarioTienePermiso("enturnarplacasilimitadas"))
                {
                    txtPlacaCabezote.IsVisible = false;



                    List <Vehiculo> vehiculos = new List <Vehiculo>();
                    vehiculos = await enturnamientoBLL.ObtenerCabezotesTurnosPorUsuarioActual();

                    var pickerPlaca = new ExtendedPicker()
                    {
                        DisplayProperty = "Placa"
                    };
                    pickerPlaca.ItemsSource = vehiculos;
                    placaCabezote.Children.Add(pickerPlaca);
                    pickerPlaca.SelectedIndexChanged += (sender, args) =>
                    {
                        string placa = pickerPlaca.Items[pickerPlaca.SelectedIndex].ToString();
                        if (!string.IsNullOrEmpty(placa))
                        {
                            _turnoSeleccionado.PlacaCabezote = placa;
                        }
                    };
                }
            }

            //Se agregan los botones de guardar y cancelar
            Button btnGuardar = new Button();

            btnGuardar.Text     = "Guardar";
            btnGuardar.Clicked += Btn_Clicked;
            layoutBotones.Children.Add(btnGuardar);

            Button btn = new Button();

            btn.Text     = "Cancelar";
            btn.Clicked += Btn_Clicked;
            layoutBotones.Children.Add(btn);

            pickerPuestos.SelectedIndexChanged += (sender, args) =>
            {
                string  puesto             = pickerPuestos.Items[pickerPuestos.SelectedIndex].ToString();
                Agencia puestoSeleccionado = (from a in agencias
                                              where a.NombreAgencia == puesto
                                              select a).FirstOrDefault();
                if (puestoSeleccionado != null)
                {
                    _turnoSeleccionado.PuestoExpedicion = puestoSeleccionado.CodigoAgencia;
                }
            };
            pickerDestinos.SelectedIndexChanged += (sender, args) =>
            {
                string destino = pickerDestinos.Items[pickerDestinos.SelectedIndex].ToString();
                if (destino != "NACIONAL")
                {
                    destino = util.RemoveAccentsWithRegEx(destino);
                    _turnoSeleccionado.Destino = destino.ToUpper();
                }
                else
                {
                    _turnoSeleccionado.Destino = "";
                }
            };
            IsBusy = false;
        }
Esempio n. 5
0
        private async void Btn_Clicked(object sender, EventArgs e)
        {
            string comando = ((Button)sender).Text.ToLower();

            if (comando == "cancelar")
            {
                var answer = await DisplayAlert("Atención", "Seguro desea cancelar la modificación del truno. Se pederán todos los datos.", "Si", "No");

                if (answer)
                {
                    Navigation.PopAsync();
                }
            }
            else if (comando == "guardar")
            {
                IsBusy = true;
                ((Button)sender).IsEnabled = false;

                if (string.IsNullOrEmpty(_turnoSeleccionado.PlacaCabezote))
                {
                    _turnoSeleccionado.PlacaCabezote = txtPlacaCabezote.Text;
                }

                if (!String.IsNullOrEmpty(txtPlacaTrailer.Text))
                {
                    _turnoSeleccionado.PlacaTrailer = txtPlacaTrailer.Text.ToUpper();
                }

                _turnoSeleccionado.Usuario = ParametrosSistema.UsuarioActual;

                EnturnamientoBLL enturnamientoBLL = new EnturnamientoBLL();

                bool trailerValidado = false;
                if (String.IsNullOrEmpty(_turnoSeleccionado.PuestoExpedicion))
                {
                    await DisplayAlert("Atención", "Debe seleccionar un origen.", "Aceptar");

                    return;
                }
                if (String.IsNullOrEmpty(_turnoSeleccionado.PlacaCabezote))
                {
                    await DisplayAlert("Atención", "Debe seleccionar una placa de cabezote.", "Aceptar");

                    return;
                }
                if (string.IsNullOrEmpty(_turnoSeleccionado.NumeroDocConductor))
                {
                    await DisplayAlert("Atención", "Debe seleccionar un conductor.", "Aceptar");

                    return;
                }
                if (!string.IsNullOrEmpty(_turnoSeleccionado.PlacaTrailer))
                {
                    if (!trailerValidado)
                    {
                        Vehiculo veh = await enturnamientoBLL.ObtenerVehiculo(_turnoSeleccionado.PlacaTrailer);

                        if (veh == null)
                        {
                            await DisplayAlert("Atención", "No existe la placa " + _turnoSeleccionado.PlacaTrailer, "Aceptar");

                            return;
                        }
                        else
                        {
                            foreach (CaracteristicaVehiculo caracteristica in veh.Caracteristicas)
                            {
                                if (caracteristica.Nombre == "GRUPO_TRAILER")
                                {
                                    _turnoSeleccionado.CodigoTipoTrailer = caracteristica.Valor;
                                }
                                if (_turnoSeleccionado.CodigoTipoTrailer == "13")
                                {
                                    _turnoSeleccionado.TipoTrailer = "Carrocería";
                                }
                                else
                                {
                                    _turnoSeleccionado.TipoTrailer = "--";
                                }
                            }
                        }
                        trailerValidado = true;
                    }
                }
                _turnoSeleccionado.PlacaCabezote = _turnoSeleccionado.PlacaCabezote.ToUpper();
                if (_turnoSeleccionado.IdTurno > 0)
                {
                    //Se esta modificando un turno existente
                    if (_turnoSeleccionado.Estado != "DP" && cbDisponible.Checked)
                    {
                        var answer = await DisplayAlert("Atención", "Si se pone disponible, no podrá modificar ninguno de los datos registrados. Desea continuar?", "Si", "No");

                        if (!answer)
                        {
                            Navigation.PopAsync();
                        }
                        _turnoSeleccionado.Estado = "DP";
                    }

                    if (_turnoSeleccionado.CodigoTipoTrailer == "13")
                    {
                        var tipotrailer = rbTipoTRailer.Items[rbTipoTRailer.SelectedIndex].Text;
                        if (tipotrailer == "Carroceria")
                        {
                            _turnoSeleccionado.TipoTrailer1 = "13";
                            _turnoSeleccionado.ClaseTrailer = "C";
                            _turnoSeleccionado.TipoTrailer2 = "";
                        }
                        else if (tipotrailer == "Plancha")
                        {
                            _turnoSeleccionado.TipoTrailer1 = "12";
                            _turnoSeleccionado.ClaseTrailer = "P";
                            _turnoSeleccionado.TipoTrailer2 = "";
                        }
                        else if (tipotrailer == "Ambos")
                        {
                            _turnoSeleccionado.TipoTrailer1 = "12";
                            _turnoSeleccionado.ClaseTrailer = "13";
                            _turnoSeleccionado.TipoTrailer2 = "A";
                        }
                        else
                        {
                            _turnoSeleccionado.TipoTrailer1 = "";
                            _turnoSeleccionado.ClaseTrailer = "";
                            _turnoSeleccionado.TipoTrailer2 = "";
                        }
                    }
                    List <RespuestaServicio> respuestas = await enturnamientoBLL.GuardarTurnos(new List <Enturnamiento>() { _turnoSeleccionado });

                    if (respuestas != null && respuestas.Count > 0)
                    {
                        if (respuestas[0].Exito)
                        {
                            Navigation.PopAsync();
                        }
                        else
                        {
                            await DisplayAlert("Atención", respuestas[0].Mensaje, "Aceptar");

                            return;
                        }
                    }
                }
                else
                {
                    //se esta creando un turno
                    List <Enturnamiento> turnos = await enturnamientoBLL.ObtenerTurnosPorPlaca(_turnoSeleccionado.PlacaCabezote);

                    if (turnos != null && turnos.Count > 0)
                    {
                        await DisplayAlert("Atención", "La placa " + _turnoSeleccionado.PlacaCabezote + " se encuentra registrada en " + turnos[0].PuestoExpedicion + ". Debe eliminar el registro de la placa en la pantalla principal para poder crear un nuevo registro.", "Aceptar");
                    }
                    else
                    {
                        _turnoSeleccionado.Estado = "TR";
                        List <RespuestaServicio> respuestas = await enturnamientoBLL.GuardarTurnos(new List <Enturnamiento>() { _turnoSeleccionado });

                        if (respuestas != null && respuestas.Count > 0)
                        {
                            if (respuestas[0].Exito)
                            {
                                Navigation.PopAsync();
                            }
                            else
                            {
                                await DisplayAlert("Atención", respuestas[0].Mensaje, "Aceptar");

                                return;
                            }
                        }
                    }
                }
                IsBusy = false;
                ((Button)sender).IsEnabled = true;
            }
        }