Пример #1
0
        //public static List<Fletero> ObtenerUltimaPosicionFleteros(DateTime fecha)
        //{
        //    List<Fletero> fleteros = new List<Fletero>();
        //    try
        //    {
        //        FoxDB.Instancia.Conectar();
        //        var consulta = FoxDB.Instancia.CrearComando("SELECT usuario, latitud, longitud, MAX(fecha)FROM trackingfletero WHERE fecha >= ? GROUP BY usuario ORDER BY fecha desc");
        //        consulta.Parameters.Add(new System.Data.OleDb.OleDbParameter("@fecha", fecha));
        //        var dr = consulta.ExecuteReader();
        //        while (dr.Read())
        //        {
        //            var flet = new Fletero();
        //            flet.Codigo = dr.GetString(0).ToString();
        //            var latitud = Convert.ToDouble(dr.GetValue(1), CultureInfo.CurrentCulture);
        //            var longitud = Convert.ToDouble(dr.GetValue(2), CultureInfo.CurrentCulture);
        //            flet.CoordenadaActual = new GMap.NET.PointLatLng(latitud, longitud);
        //            flet.Fecha = dr.GetDateTime(3).ToString();
        //            fleteros.Add(flet);
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //    return fleteros;
        //}

        public static List <Fletero> ObtenerUltimaPosicionFleteros(DateTime fecha)
        {
            List <Fletero> fleteros = new List <Fletero>();

            try
            {
                var consulta = MobileNinetySix.Instancia.CrearComando("SELECT usuario, latitud, longitud, MAX(fecha) FROM trackingfletero WHERE fecha >= ? GROUP BY usuario ORDER BY fecha desc");
                consulta.Parameters.Add(new System.Data.SqlClient.SqlParameter("@fecha", fecha));
                MobileNinetySix.Instancia.Conectar();
                using (var dr = consulta.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        var flet = new Fletero();
                        flet.Codigo = dr.GetString(0).ToString();
                        var latitud  = Convert.ToDouble(dr.GetValue(1), CultureInfo.CurrentCulture);
                        var longitud = Convert.ToDouble(dr.GetValue(2), CultureInfo.CurrentCulture);
                        flet.CoordenadaActual = new GMap.NET.PointLatLng(latitud, longitud);
                        flet.Fecha            = dr.GetDateTime(3).ToString();
                        fleteros.Add(flet);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                MobileNinetySix.Instancia.Desconectar();
            }
            return(fleteros);
        }
Пример #2
0
 private void SeleccionarMarcador(Fletero item)
 {
     item.VerClientes           = true;
     item.VerTodasLasPosiciones = true;
     MostrarMarcador(item, true);
     mapa.Position = item.CoordenadaActual;
 }
        private List <Fletero> obtenerFleteros()
        {
            var fleteros = new List <Fletero>();

            try
            {
                using (var con = new SqlConnection(AccesoDB.SqlLogistica))
                {
                    var query    = "SELECT distinct a.usuario, a.latitud, a.longitud, a.fecha FROM trackingfletero a inner join(select usuario, max(fecha) as fecha from trackingfletero where fecha>=@pFecha group by usuario) b on a.usuario = b.usuario where a.fecha = b.fecha";
                    var consulta = con.CreateCommand();
                    consulta.CommandType = CommandType.Text;
                    consulta.CommandText = query;
                    consulta.Parameters.Add(new SqlParameter("@pFecha", fecha));
                    con.Open();
                    using (var dr = consulta.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var flet = new Fletero();
                            flet.Codigo = dr.GetString(0).ToString();
                            var latitud  = Convert.ToDouble(dr.GetValue(1), CultureInfo.CurrentCulture);
                            var longitud = Convert.ToDouble(dr.GetValue(2), CultureInfo.CurrentCulture);
                            flet.CoordenadaActual = new PointLatLng(latitud, longitud);
                            flet.Fecha            = dr.GetDateTime(3).ToString();
                            fleteros.Add(flet);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(fleteros);
        }
Пример #4
0
        private void MostrarMarcador(Fletero fletero, bool clear = false)
        {
            if (clear)
            {
                mapa.Markers.Clear();
            }

            var marcador = new GMapMarker(fletero.CoordenadaActual);
            Pin pin      = new PinAzul();

            pin.Tag      = fletero;
            pin.Etiqueta = fletero.Codigo;

            var menuItem = new MenuItem();

            menuItem.Header = fletero.Nombre;
            pin.Menu.Items.Add(menuItem);

            pin.Menu.UpdateLayout();

            //pin.MouseDoubleClick += pin_MouseDoubleClick;

            marcador.Shape  = pin;
            marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
            marcador.ZIndex = 4;
            this.mapa.Markers.Add(marcador);

            this.VerDomicilioVendedor(fletero);

            ControladorMapa.RefrescarVista(this.mapa);
        }
Пример #5
0
        private void SeleccionarMarcador(Fletero fletero)
        {
            var worker = new CargarPosicionesFleteroWorker(this.mapa, fletero, diaSeleccionado.Value, diaSeleccionado.Value.AddDays(1));

            worker.RunWorkerCompleted += cargaPosicionesFleteroWorker_Complete;
            worker.RunWorkerAsync();
            this.MostrarMarcador(fletero, true);
        }
Пример #6
0
        //private object VerClientesDelVendedor(object fleteroMapa)
        //{
        //    if (fleteroMapa == null)
        //        return false;
        //    try
        //    {
        //        fleteroSeleccionado = fleteroMapa as Fletero;
        //        fleteroSeleccionado.VerClientes = true;
        //        if (fleteroSeleccionado.Clientes.Count == 0)
        //        {
        //            this.cargarClientesWorker?.CancelAsync();
        //            this.cargarClientesWorker = new CargarClientesFleteroWorker(this.mapa, fleteroSeleccionado, FechaDesde);
        //            cargarClientesWorker.RunWorkerCompleted += CargarClientesWorker_RunWorkerCompleted;
        //            cargarClientesWorker.RunWorkerAsync();
        //        }
        //        else
        //        {
        //            MostrarMarcador(fleteroSeleccionado, true);
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        MessageBox.Show(ex.Message);
        //    }
        //    return true;
        //}

        private void CargarClientesWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Result != null)
            {
                fleteroSeleccionado = (Fletero)e.Result;
                ControladorMapa.ImprimirClientesFletero(this.mapa, fleteroSeleccionado.Posiciones, fleteroSeleccionado.Clientes);
            }
        }
Пример #7
0
 private void btnMostrarTodos_Click(object sender, RoutedEventArgs e)
 {
     this.modo = ModoVerMarcadores.Todo;
     this.listaDeElementos.SelectedItem  = null;
     this.listaDeElementos.SelectedIndex = -1;
     fleteroSeleccionado = null;
     this.MostrarTodo();
 }
Пример #8
0
        private void MostrarMarcador(Fletero fleteroMapa, bool clear = false)
        {
            if (clear)
            {
                mapa.Markers.Clear();
            }

            var marcador = new GMapMarker(fleteroMapa.CoordenadaActual);
            Pin pin      = new PinAzul();

            pin.Tag      = fleteroMapa;
            pin.Etiqueta = fleteroMapa.Codigo;

            var menuItem = new MenuItem();

            menuItem.Header           = "Ver Clientes de la Ruta";
            menuItem.Command          = this.CmdVerClientesPorRuta;
            menuItem.CommandParameter = fleteroMapa;
            pin.Menu.Items.Add(menuItem);

            var menuMostrarCamino = new MenuItem();

            menuMostrarCamino.Header           = "Mostrar todos los reportes";
            menuMostrarCamino.Command          = this.CmdVerCaminoPreventista;
            menuMostrarCamino.CommandParameter = fleteroMapa;
            pin.Menu.Items.Add(menuMostrarCamino);

            var menuMostrarDomicilio = new MenuItem();

            menuMostrarDomicilio.Header           = "Mostrar domicilio del fletero";
            menuMostrarDomicilio.Command          = this.CmdVerDomicilioFletero;
            menuMostrarDomicilio.CommandParameter = fleteroMapa;
            pin.Menu.Items.Add(menuMostrarDomicilio);

            pin.Menu.UpdateLayout();

            //pin.MouseDoubleClick += pin_MouseDoubleClick;

            marcador.Shape  = pin;
            marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
            marcador.ZIndex = 4;
            this.mapa.Markers.Add(marcador);

            if (fleteroMapa.VerClientes)
            {
                this.VerClientesDelVendedor(fleteroMapa);
            }
            if (fleteroMapa.VerTodasLasPosiciones)
            {
                this.VerCaminoDelVendedor(fleteroMapa);
            }
            if (fleteroMapa.VerDomicilioDelFletero)
            {
                this.VerDomicilioFletero(fleteroMapa);
            }

            ControladorMapa.RefrescarVista(this.mapa);
        }
        private void CalculaTiempoReporte(ref Fletero fletero)
        {
            var fecha    = DateTime.Parse(fletero.Fecha);
            var timeSpan = DateTime.Now - fecha;

            if (timeSpan.Minutes > 30 || timeSpan.Hours > 1)
            {
                fletero.Estado = Estado.NO_REPORTA;
            }
        }
Пример #10
0
        //public static List<ItemReporte> CrearReporte(Fletero fletero)
        //{
        //    var reportes = new List<ItemReporte>();
        //    foreach (var posicion in fletero.Posiciones)
        //    {
        //        if (posicion.Cliente == string.Empty || posicion.Cliente == "VIAJE")
        //        {
        //            CrearItemViaje(reportes, posicion, fletero.Codigo);
        //        }
        //        else
        //        {
        //            if (posicion.MotivoVisita == MotivoVisita.Pendiente)
        //            {
        //                CrearItemCheckin(reportes, posicion, fletero.Codigo);
        //            }
        //            else
        //            {
        //                //PODRIA PONER QUE TIPO DE MOTIVO ESTOY FILTRANDO...
        //                if (posicion.MotivoVisita != MotivoVisita.Pendiente && posicion.MotivoVisita != MotivoVisita.VolverLuego)
        //                {
        //                    CrearItemCheckout(reportes, posicion, fletero.Codigo);
        //                }
        //            }
        //        }
        //    }
        //    return reportes;
        //}

        public static List <ItemReporte> CrearReporte(Fletero fletero)
        {
            var reportes = new List <ItemReporte>();

            for (int i = 0; i < fletero.Posiciones.Count; i++)
            {
                var posicion = fletero.Posiciones[i];
                if (posicion.Cliente == string.Empty || posicion.Cliente == "VIAJE")
                {
                    CrearItemViaje(reportes, posicion, fletero.Codigo);
                }
                else
                {
                    //if(posicion.Cliente=="18874")
                    //{
                    //    var x = 1;
                    //    x++;
                    //}
                    if (posicion.TipoVisita == TipoVisita.Pendiente)
                    {
                        var posicionesSiguientes = fletero.Posiciones.GetRange(i + 1, fletero.Posiciones.Count - i - 1);
                        foreach (var ps in posicionesSiguientes)
                        {
                            if (ps.Cliente != string.Empty && ps.Cliente != "VIAJE")
                            {
                                if (ps.Cliente != posicion.Cliente)
                                {
                                    break;
                                }
                                else
                                {
                                    if (ps.TipoVisita == TipoVisita.Pendiente)
                                    {
                                        break;
                                    }
                                    else
                                    {
                                        CrearItemCheckin(reportes, posicion, fletero.Codigo);
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        //PODRIA PONER QUE TIPO DE MOTIVO ESTOY FILTRANDO...
                        if (posicion.TipoVisita != TipoVisita.Pendiente && posicion.TipoVisita != TipoVisita.VolverLuego)
                        {
                            CrearItemCheckout(reportes, posicion, fletero.Codigo);
                        }
                    }
                }
            }
            return(reportes);
        }
Пример #11
0
        //private object VerCaminoDelVendedor(object fleteroMapa)
        //{
        //    if (fleteroMapa == null)
        //        return false;
        //    try
        //    {
        //        fleteroSeleccionado = fleteroMapa as Fletero;
        //        fleteroSeleccionado.VerTodasLasPosiciones = true;
        //        if (fleteroSeleccionado.Posiciones.Count == 0)
        //        //    ControladorFleteros.CargarPosiciones(fleteroSeleccionado, FechaDesde, FechaHasta);
        //        //this.mapa.Markers.Add(ControladorMapa.CrearRuta(fleteroSeleccionado.Posiciones.Where(p => p.Latitud != 0 && p.Longitud != 0).Select(x => new PointLatLng(x.Latitud, x.Longitud)).ToList(), Brushes.Red));
        //        //foreach (var pos in fleteroSeleccionado.Posiciones)
        //        //{
        //        //    if (pos.Latitud != 0 && pos.Longitud != 0)
        //        //        this.mapa.Markers.Add(ControladorMapa.CrearPuntoPosicion(pos));
        //        //}
        //        //ControladorMapa.RefrescarVista(this.mapa);
        //        {
        //            this.cargaPosicionesWorker?.CancelAsync();
        //            this.cargaPosicionesWorker = new CargarPosicionesFleteroWorker(this.mapa, fleteroSeleccionado, FechaDesde, FechaHasta);
        //            cargaPosicionesWorker.RunWorkerCompleted += CargaPosicionesWorker_RunWorkerCompleted;
        //            cargaPosicionesWorker.RunWorkerAsync();
        //        }
        //        else
        //        {
        //            MostrarMarcador(fleteroSeleccionado, true);
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        MessageBox.Show(ex.Message);
        //    }
        //    return true;
        //}

        private object OcultarCamino(object fleteroMapa)
        {
            if (fleteroMapa == null)
            {
                return(false);
            }
            fleteroSeleccionado = fleteroMapa as Fletero;
            fleteroSeleccionado.VerTodasLasPosiciones = false;
            this.MostrarMarcador(fleteroSeleccionado, true);
            return(true);
        }
Пример #12
0
 private object OcultarClientesDeLaRuta(object fleteroMapa)
 {
     if (fleteroMapa == null)
     {
         return(false);
     }
     fleteroSeleccionado             = fleteroMapa as Fletero;
     fleteroSeleccionado.VerClientes = false;
     this.MostrarMarcador(fleteroSeleccionado, true);
     return(true);
 }
Пример #13
0
        private void AgregarActualizarFletero(Fletero fleteroMapa)
        {
            try
            {
                var f = Fleteros.FirstOrDefault(e => e.Codigo == fleteroMapa.Codigo);
                if (f == null)
                {
                    var flet = ControladorFleteros.ObtenerFletero(fleteroMapa.Codigo);
                    if (flet != null)
                    {
                        fleteroMapa.Foto                = flet.Foto;
                        fleteroMapa.Nombre              = flet.Nombre;
                        fleteroMapa.Domicilio           = flet.Domicilio;
                        fleteroMapa.CoordenadaDomicilio = new PointLatLng(flet.CoordenadaDomicilio.Lat, flet.CoordenadaDomicilio.Lng);
                    }

                    this.CalculaTiempoReporte(fleteroMapa);

                    if (fleteroMapa.CoordenadaActual.Lat == 0 && fleteroMapa.CoordenadaActual.Lng == 0) //si lat y lng vienen 0, 0 es porque tiene gps apagado
                    {
                        fleteroMapa.CoordenadaActual = new PointLatLng(-38.002452, -57.601936);
                        fleteroMapa.Estado           = Estado.GPS_APAGADO;
                    }

                    this.Fleteros.Add(fleteroMapa);
                }
                else
                {
                    if (f.Clientes.Count == 0)
                    {
                        ControladorFleteros.CargarClientesDelFletero(f, DateTime.Today);
                    }

                    f.Estado = fleteroMapa.Estado;
                    f.Fecha  = fleteroMapa.Fecha;

                    this.CalculaTiempoReporte(f);

                    if (fleteroMapa.CoordenadaActual.Lat == 0 && fleteroMapa.CoordenadaActual.Lng == 0)
                    {
                        fleteroMapa.Estado = Estado.GPS_APAGADO;
                    }
                    else
                    {
                        f.CoordenadaActual = fleteroMapa.CoordenadaActual;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #14
0
 public CargarPosicionesFleteroWorker(Mapa mapa, Fletero flet, DateTime fechaDesde, DateTime fechaHasta) : this()
 {
     this.mapa = mapa;
     this.fletero = flet;
     //if (this.fletero.CoordenadaActual != null && this.fletero.CoordenadaActual.IsEmpty)
     //{
     //    this.fechaDesde = fechaDesde;
     //}
     //else
     //{
     //    this.fechaDesde = DateTime.Parse(this.fletero.Fecha);
     //}
     this.fechaDesde = fechaDesde;
     this.fechaHasta = fechaHasta;
 }
Пример #15
0
 private void listaDeElementos_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (this.listaDeElementos.SelectedItem != null)
     {
         var flet = this.listaDeElementos.SelectedItem as Fletero;
         if (fleteroSeleccionado == null || (!flet.Codigo.Equals(fleteroSeleccionado.Codigo)))
         {
             //this.cargarClientesWorker?.CancelAsync();
             //this.cargaPosicionesWorker?.CancelAsync();
             fleteroSeleccionado = flet;
             //fleteroSeleccionado.VerClientes = false;
             //item.VerZona = false;
             //fleteroSeleccionado.VerTodasLasPosiciones = false;
             //item.VerDomicilioDelVendedor = false;
             SeleccionarMarcador(fleteroSeleccionado);
             this.modo = ModoVerMarcadores.Seleccionado;
         }
     }
 }
Пример #16
0
        private void CargarDatosFletero(ref Fletero flet)
        {
            //var flet = new Fletero();

            using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
            {
                var query    = string.Format("SELECT nombre,domicilio FROM proveedo WHERE fletero=1 AND habilitado=1 and codigo='{0}'", flet.Codigo);
                var consulta = AccesoDB.CrearComando(connection, query, CommandType.Text);
                connection.Open();
                AccesoDB.ComandosFox(connection);
                var dr = consulta.ExecuteReader();
                if (dr.Read())
                {
                    flet.Nombre    = dr.GetString(0).Trim();
                    flet.Domicilio = dr.GetString(1).Trim();
                }
            }
            //return flet;
        }
Пример #17
0
        //SELECT distinc comision.cliente,clientes.nombre,clientes.domicilio, SUM(IIF(comision.condvta='01',final,cast(0 as n(10,2)))) as contado,SUM(IIF(comision.condvta='01',cast(0 as n(10,2)),final)) as ctacte  FROM comision INNER JOIN (SELECT reparto FROM reparmad WHERE fletero='{0}') as crsMov ON crsmov.reparto=comision.reparto INNER JOIN clientes ON clientes.codigo=comision.cliente GROUP BY cliente

        public static void CargarClientesDelFletero(Fletero flet, DateTime today)
        {
            try
            {
                flet.Clientes.Clear();
                FoxDB.Instancia.Conectar();
                var consulta = FoxDB.Instancia.CrearStoredProcedure("clientesfletero");
                consulta.Parameters.Add(new System.Data.OleDb.OleDbParameter("@fletero", flet.Codigo));
                consulta.Parameters.Add(new System.Data.OleDb.OleDbParameter("@fecha", today));

                var dr = consulta.ExecuteReader();

                while (dr.Read())
                {
                    var cli = new ClienteFletero();
                    cli.Codigo = dr.GetString(0);
                    cli.Nombre = dr.GetString(1).Trim();
                    cli.Calle  = dr.GetString(2).Trim();
                    cli.Numero = dr.GetValue(3).ToString();
                    var Latitud  = Convert.ToDouble(dr.GetValue(4), CultureInfo.CurrentCulture);
                    var Longitud = Convert.ToDouble(dr.GetValue(5), CultureInfo.CurrentCulture);
                    cli.Coordenada     = new PointLatLng(Latitud, Longitud);
                    cli.Observacion    = dr.GetString(6).Trim();
                    cli.OrdenRecorrido = 0;
                    cli.Actividad      = dr.GetString(7).Trim();
                    cli.Roja           = dr.GetBoolean(8);
                    cli.Contado        = Convert.ToDecimal(dr.GetValue(9));
                    cli.CtaCte         = Convert.ToDecimal(dr.GetValue(10));
                    flet.Clientes.Add(cli);
                }
                FoxDB.Instancia.Desconectar();
                flet.CantidadClientes = flet.Clientes.Count;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                FoxDB.Instancia.Desconectar();
            }
        }
Пример #18
0
        //private void AgregarFletero(Fletero fletero)
        //{
        //    var f = this.FleterosDelDia.FirstOrDefault(e => e.Codigo == fletero.Codigo);
        //    if (f == null)
        //    {
        //        var flet = CargarDatosFletero(fletero.Codigo);
        //        if (flet != null)
        //        {
        //            fletero.Foto = flet.Foto;
        //            fletero.Nombre = flet.Nombre;
        //            fletero.CoordenadaDomicilio = new PointLatLng(flet.CoordenadaDomicilio.Lat, flet.CoordenadaDomicilio.Lng);
        //        }

        //        if (fletero.CoordenadaActual.Lat == 0 && fletero.CoordenadaActual.Lng == 0) //si lat y lng vienen 0, 0 es porque tiene gps apagado
        //        {
        //            fletero.CoordenadaActual = new PointLatLng(-38.002452, -57.601936);
        //            fletero.Estado = Estado.GPS_APAGADO;
        //        }
        //        CalculaTiempoReporte(fletero);

        //        this.FleterosDelDia.Add(fletero);
        //    }
        //}

        private void AgregarFletero(Fletero fletero)
        {
            if (this.FleterosDelDia.Any(e => e.Codigo == fletero.Codigo))
            {
                var flet = this.FleterosDelDia.FirstOrDefault(x => x.Codigo == fletero.Codigo);
                //.Estado = fletero.Estado;
                //this.FleterosDelDia.FirstOrDefault(x => x.Codigo == fletero.Codigo).Fecha = fletero.Fecha;
                //this.FleterosDelDia.FirstOrDefault(x => x.Codigo == fletero.Codigo));
                flet.Estado = fletero.Estado;
                flet.Fecha  = fletero.Fecha;
                CalculaTiempoReporte(ref flet);
                if (fletero.CoordenadaActual.Lat == 0)
                {
                    flet.Estado = Estado.GPS_APAGADO;
                }
                else
                {
                    flet.CoordenadaActual = fletero.CoordenadaActual;
                }
                //            f.Estado = fleteroMapa.Estado;
                //            f.Fecha = fleteroMapa.Fecha;

                //            this.CalculaTiempoReporte(f);

                //            if (fleteroMapa.CoordenadaActual.Lat == 0 && fleteroMapa.CoordenadaActual.Lng == 0)
                //                fleteroMapa.Estado = Estado.GPS_APAGADO;
                //            else
                //                f.CoordenadaActual = fleteroMapa.CoordenadaActual;
            }
            else
            {
                CargarDatosFletero(ref fletero);
                CalculaTiempoReporte(ref fletero);
                if (fletero.CoordenadaActual.Lat == 0 && fletero.CoordenadaActual.Lng == 0) //si lat y lng vienen 0, 0 es porque tiene gps apagado
                {
                    fletero.CoordenadaActual = new PointLatLng(-38.002452, -57.601936);
                    fletero.Estado           = Estado.GPS_APAGADO;
                }
                this.FleterosDelDia.Add(fletero);
            }
        }
Пример #19
0
        private void VerDomicilioVendedor(Fletero fletero)
        {
            if (fletero.CoordenadaDomicilio.Lat != 0)
            {
                var marcador = new GMapMarker(fletero.CoordenadaDomicilio);
                var pin      = new PinCasa();
                pin.Tag        = fletero;
                pin.Etiqueta   = string.Empty;
                marcador.Shape = pin;
                marcador.Shape.IsHitTestVisible = true;
                marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                pin.ToolTip     = "Casa de " + fletero.Nombre;

                var menuItem = new MenuItem();
                menuItem.Header = fletero.Domicilio;
                pin.Menu.Items.Add(menuItem);

                pin.Menu.UpdateLayout();

                marcador.ZIndex = 3;
                this.mapa.Markers.Add(marcador);
            }
        }
Пример #20
0
        public static Fletero ObtenerFletero(string codigo)
        {
            var flet = new Fletero();

            try
            {
                FoxDB.Instancia.Conectar();
                var consulta = FoxDB.Instancia.CrearComando(string.Format("SELECT codigo,nombre,domicilio FROM proveedo WHERE fletero=1 AND habilitado=1 and codigo='{0}'", codigo));
                var dr       = consulta.ExecuteReader();
                if (dr.Read())
                {
                    flet.Codigo    = codigo;
                    flet.Nombre    = dr.GetString(0).Trim();
                    flet.Domicilio = dr.GetString(1).Trim();
                }
                FoxDB.Instancia.Desconectar();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(flet);
        }
Пример #21
0
        //public static void CargarClientes(Fletero fletero, DateTime today)
        //{
        //    CargarClientesDelFletero(fletero, today);
        //}

        //public static void CargarPosiciones(Fletero flet, DateTime fechaDesde, DateTime fechaHasta)
        //{
        //    flet.Posiciones.Clear();
        //    Func<object, dynamic, object> nonull = (p, def) => p == null ? def : p;
        //    try
        //    {
        //        FoxDB.Instancia.Conectar();
        //        var consulta = FoxDB.Instancia.CrearComando("SELECT cliente,estado,latitud,longitud,fecha FROM trackingfletero WHERE usuario=? AND BETWEEN(fecha,?,?) group by latitud,longitud,cliente ORDER BY fecha");
        //        consulta.Parameters.Add(new System.Data.OleDb.OleDbParameter("@fletero", flet.Codigo));
        //        consulta.Parameters.Add(new System.Data.OleDb.OleDbParameter("@fdesde", fechaDesde));
        //        consulta.Parameters.Add(new System.Data.OleDb.OleDbParameter("@fhasta", fechaHasta));
        //        var dr = consulta.ExecuteReader();
        //        while (dr.Read())
        //        {
        //            var pos = new Posicion();
        //            pos.Cliente = dr.GetString(0);
        //            pos.MotivoVisita = (MotivoVisita)Convert.ToInt32(dr.GetValue(1));
        //            pos.Latitud = Convert.ToDouble(dr.GetValue(2), CultureInfo.CurrentCulture);
        //            pos.Longitud = Convert.ToDouble(dr.GetValue(3), CultureInfo.CurrentCulture);
        //            pos.Fecha = dr.GetDateTime(4);
        //            flet.Posiciones.Add(pos);
        //        }
        //        //if (dr.Read())
        //        //{
        //        //    var pos = new Posicion();
        //        //    pos.Cliente = dr.GetString(0);
        //        //    pos.MotivoVisita = (MotivoVisita)dr.GetInt32(1);
        //        //    pos.Latitud = Convert.ToDouble(dr.GetValue(2), CultureInfo.CurrentCulture);
        //        //    pos.Longitud= Convert.ToDouble(dr.GetValue(3), CultureInfo.CurrentCulture);
        //        //    pos.Fecha = new DateTime()
        //        //    vendedor.CodigoDivision = dr.GetString(2).Trim();
        //        //    vendedor.Calle = dr.GetString(3).Trim();
        //        //    vendedor.Numero = dr.GetString(4).Trim();
        //        //    var Latitud = Convert.ToDouble(dr.GetValue(5), CultureInfo.CurrentCulture);
        //        //    var Longitud = Convert.ToDouble(dr.GetValue(6), CultureInfo.CurrentCulture);
        //        //    vendedor.CoordenadaDomicilio = new PointLatLng(Latitud, Longitud);
        //        //    vendedor.Foto = dr.GetString(7);
        //        //vendedor.ZonasAsignadas = ControladorZonas.ObtenerZonasDelVendedor(vendedor.Codigo, DatetimeToDiaSemana.Convertir(DateTime.Today));
        //        //}

        //        var clientesVisitados = flet.Posiciones.Where(p => (p.Cliente != "" && p.Cliente != "VIAJE") && p.MotivoVisita != MotivoVisita.Pendiente).DistinctBy(x => x.Cliente);
        //        flet.Visitados = clientesVisitados.Count();

        //        FoxDB.Instancia.Desconectar();
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        public static void CargarPosiciones(Fletero flet, DateTime fechaDesde, DateTime fechaHasta)
        {
            flet.Posiciones.Clear();
            Func <object, dynamic, object> nonull = (p, def) => p == null ? def : p;

            try
            {
                var consulta = MobileNinetySix.Instancia.CrearComando("SELECT cliente,estado,latitud,longitud,fecha FROM trackingfletero WHERE usuario=? AND BETWEEN(fecha,?,?) group by latitud,longitud,cliente ORDER BY fecha");
                consulta.Parameters.Add(new System.Data.SqlClient.SqlParameter("@fletero", flet.Codigo));
                consulta.Parameters.Add(new System.Data.SqlClient.SqlParameter("@fdesde", fechaDesde));
                consulta.Parameters.Add(new System.Data.SqlClient.SqlParameter("@fhasta", fechaHasta));
                MobileNinetySix.Instancia.Conectar();
                using (var dr = consulta.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        var pos = new Posicion();
                        pos.Cliente      = dr.GetString(0);
                        pos.MotivoVisita = (MotivoVisita)Convert.ToInt32(dr.GetValue(1));
                        pos.Latitud      = Convert.ToDouble(dr.GetValue(2), CultureInfo.CurrentCulture);
                        pos.Longitud     = Convert.ToDouble(dr.GetValue(3), CultureInfo.CurrentCulture);
                        pos.Fecha        = dr.GetDateTime(4);
                        flet.Posiciones.Add(pos);
                    }
                }
                var clientesVisitados = flet.Posiciones.Where(p => (p.Cliente != "" && p.Cliente != "VIAJE") && p.MotivoVisita != MotivoVisita.Pendiente).DistinctBy(x => x.Cliente);
                flet.Visitados = clientesVisitados.Count();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                MobileNinetySix.Instancia.Desconectar();
            }
        }
Пример #22
0
 private void SeleccionarMarcador(Fletero item)
 {
     MostrarMarcador(item, true);
     mapa.Position = item.CoordenadaActual;
 }
Пример #23
0
        private void MostrarMarcador(Fletero fleteroMapa, bool clear = false)
        {
            if (clear)
            {
                mapa.Markers.Clear();
            }
            //if (listaDeElementos.Items.Contains(fleteroMapa) && this.modo == ModoVerMarcadores.Seleccionado)
            //    listaDeElementos.SelectedItem = fleteroMapa;
            var marcador = new GMapMarker(fleteroMapa.CoordenadaActual);
            Pin pin      = new PinAzul();

            pin.Tag      = fleteroMapa;
            pin.Etiqueta = fleteroMapa.Codigo;
            //if (fleteroMapa.VerClientes)
            //{
            //    var menuItem = new MenuItem();
            //    menuItem.Header = "Ocultar Clientes de la Ruta";
            //    menuItem.Command = this.CmdOcultarClientesDeLaRuta;
            //    menuItem.CommandParameter = fleteroMapa;
            //    pin.Menu.Items.Add(menuItem);
            //}
            //else
            //{
            //    var menuItem = new MenuItem();
            //    menuItem.Header = "Ver Clientes de la Ruta";
            //    menuItem.Command = this.CmdVerClientesPorRuta;
            //    menuItem.CommandParameter = fleteroMapa;
            //    pin.Menu.Items.Add(menuItem);
            //}
            //if (fleteroMapa.VerTodasLasPosiciones)
            //{
            //    var menuMostrarCamino = new MenuItem();
            //    menuMostrarCamino.Header = "Ocultar reportes";
            //    menuMostrarCamino.Command = this.CmdOcultarCamino;
            //    menuMostrarCamino.CommandParameter = fleteroMapa;
            //    pin.Menu.Items.Add(menuMostrarCamino);
            //}
            //else
            //{
            //    var menuMostrarCamino = new MenuItem();
            //    menuMostrarCamino.Header = "Mostrar todos los reportes";
            //    menuMostrarCamino.Command = this.CmdVerCaminoPreventista;
            //    menuMostrarCamino.CommandParameter = fleteroMapa;
            //    pin.Menu.Items.Add(menuMostrarCamino);
            //}
            var menuMostrarDomicilio = new MenuItem();

            menuMostrarDomicilio.Header           = "Mostrar domicilio del fletero";
            menuMostrarDomicilio.Command          = this.CmdVerDomicilioFletero;
            menuMostrarDomicilio.CommandParameter = fleteroMapa;
            pin.Menu.Items.Add(menuMostrarDomicilio);

            pin.Menu.UpdateLayout();

            //pin.MouseDoubleClick += pin_MouseDoubleClick;

            marcador.Shape  = pin;
            marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
            marcador.ZIndex = 4;
            this.mapa.Markers.Add(marcador);

            if (fleteroMapa.VerClientes)
            {
                if (fleteroMapa.Clientes.Count > 0)
                {
                    ControladorMapa.ImprimirClientesFletero(this.mapa, fleteroMapa.Posiciones, fleteroMapa.Clientes);
                }
            }
            //else
            //    this.VerClientesDelVendedor(fleteroMapa);
            if (fleteroMapa.VerTodasLasPosiciones)
            {
                if (fleteroMapa.Posiciones.Count > 0)
                {
                    ControladorMapa.ImprimirCamino(this.mapa, fleteroMapa.Posiciones);
                }
            }
            //else
            //    this.VerCaminoDelVendedor(fleteroMapa);
            if (fleteroMapa.VerDomicilioDelFletero)
            {
                this.VerDomicilioFletero(fleteroMapa);
            }

            ControladorMapa.RefrescarVista(this.mapa);
        }
 public CargarClientesFleteroWorker(Mapa mapa, Fletero flet, DateTime fecha) : this()
 {
     this.mapa    = mapa;
     this.Fletero = flet;
     this.fecha   = fecha;
 }
Пример #25
0
 public static void ActualizarCoordenadaDomicilio(Fletero f)
 {
     throw new NotImplementedException();
 }