//protected override void OnDoWork(DoWorkEventArgs e)
        //{
        //    try
        //    {
        //        if (Fletero.Clientes.Count == 0)
        //        {
        //            var clientes = ControladoraWebApi.ObtenerClientes(Fletero.Codigo).Result;
        //            foreach (var cli in clientes)
        //            {
        //                if (!Fletero.Clientes.Any(c => c.Codigo.Equals(cli.Codigo)))
        //                {
        //                    Fletero.Clientes.Add(cli);
        //                }
        //            }
        //        }
        //        Fletero.CantidadClientes = Fletero.Clientes.DistinctBy(x => x.Codigo).Count();
        //        e.Result = Fletero;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //    finally
        //    {
        //        ReportProgress(100, "Done!");
        //    }
        //}

        protected override void OnDoWork(DoWorkEventArgs e)
        {
            try
            {
                //Fletero.Clientes.Clear();
                if (Fletero.Clientes.Count == 0)
                {
                    using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
                    {
                        var parameters = new OleDbParameter[] { new OleDbParameter("@fletero", Fletero.Codigo), new OleDbParameter("@fecha", fecha.Date) };
                        var sp         = AccesoDB.CrearComando(connection, "clientesfletero", CommandType.StoredProcedure, parameters);
                        connection.Open();
                        AccesoDB.ComandosFox(connection);
                        using (var dr = sp.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                string codigo = dr.GetString(0).Trim();
                                if (!Fletero.Clientes.Any(c => c.Codigo.Equals(codigo)))
                                {
                                    var cli = new ClienteFletero();
                                    cli.Codigo = codigo;
                                    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));
                                    Fletero.Clientes.Add(cli);
                                }
                            }
                        }
                    }
                }
                Fletero.CantidadClientes = Fletero.Clientes.DistinctBy(x => x.Codigo).Count();
                e.Result = Fletero;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                ReportProgress(100, "Done!");
            }
        }
Exemple #2
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();
            }
        }