public static List <Distribucion.RutaCorta> Buscar2(Distribucion.RutaCorta ca) { var cn = new SqlConnection(Conexion2.Cadena); cn.Open(); string sql = @"select top 1 * from[DistribucionApp].[dbo].[DisCliente] " + " where disDiscli = ( SELECT MIN(disDiscli) FROM [DistribucionApp].[dbo].[DisCliente] " + " WHERE codoriDiscli =" + ca.codoridiscli + " and coddesDiscli in (" + ca.coddesdiscli + ") " + "and coddesDiscli not in (" + ca.disdiscli + ")) and codoriDiscli=" + ca.codoridiscli + ""; SqlCommand cmd = new SqlCommand(sql, cn); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Distribucion.RutaCorta Ruta = new Distribucion.RutaCorta() { codoridiscli = dr["codoriDiscli"].ToString(), coddesdiscli = dr["coddesDiscli"].ToString(), disdiscli = dr["disDiscli"].ToString(), tiemdiscli = dr["tiemDiscli"].ToString() }; lista.Add(Ruta); } cn.Close(); return(lista); }
private List <Despachos.Elementos> CalcularDistanciaCorta() { string clientes = ""; string NoClientes = ""; string prueba = ""; string Codinicio = ""; Distribucion.RutaCorta RutaCorta = new Distribucion.RutaCorta(); var ru = new Distribucion.RutaCorta(); for (int l = 0; l < Despachos.Count; l++) { if (l == 0) { for (int k = 0; k < Despachos.Count; k++) { Codinicio = "13249"; if (!(Codinicio.Equals(Despachos[l].CustNum))) { clientes = clientes + "," + Despachos[k].CustNum; } } clientes = clientes.ToString().Substring(1, clientes.Length - 1); var aux = new Distribucion.RutaCorta() { codoridiscli = Codinicio, coddesdiscli = clientes }; Buscar(aux); } else { Codinicio = ""; clientes = ""; NoClientes = ""; int contador = l; Codinicio = lista[l - 1].coddesdiscli.ToString(); for (int n = 0; n < lista.Count; n++) { NoClientes = NoClientes + "," + lista[n].codoridiscli; } NoClientes = NoClientes.ToString().Substring(1, NoClientes.Length - 1); for (int m = 0; m < Despachos.Count; m++) { clientes = clientes + "," + Despachos[m].CustNum; } clientes = clientes.ToString().Substring(1, clientes.Length - 1); var aux2 = new Distribucion.RutaCorta() { codoridiscli = Codinicio, coddesdiscli = clientes, disdiscli = NoClientes }; Buscar2(aux2); } } int cuenta_cliente = 0; string cliente = ""; for (int xxx = 0; xxx < lista.Count; xxx++) { int contador = 0; for (int yyy = 0; yyy < Despachos.Count; yyy++) { if (lista[xxx].codoridiscli == Despachos[yyy].CustNum) { contador = 1; cliente = lista[xxx].codoridiscli.ToString(); } } if (contador == 1) { cuenta_cliente = 0; for (int aaa = 0; aaa < Despacho_ordenado.Count; aaa++) { if (cliente == Despacho_ordenado[aaa].CustNum) { cuenta_cliente = 1; } } if (cuenta_cliente == 0) { var despacho = new Despachos.Elementos() { CustNum = cliente } ; Despacho_ordenado.Add(despacho); } } contador = 0; for (int zzz = 0; zzz < Despachos.Count; zzz++) { if (lista[xxx].codoridiscli == Despachos[zzz].CustNum) { contador = 1; } } if (contador == 1) { cuenta_cliente = 0; for (int bbb = 0; bbb < Despacho_ordenado.Count; bbb++) { if (cliente == Despacho_ordenado[bbb].CustNum) { cuenta_cliente = 1; } } if (cuenta_cliente == 0) { var despacho = new Despachos.Elementos() { CustNum = cliente } ; Despacho_ordenado.Add(despacho); } } } for (int xyz = 0; xyz < Despacho_ordenado.Count; xyz++) { for (int zyx = 0; zyx < Despachos.Count; zyx++) { if (Despacho_ordenado[xyz].CustNum == Despachos[zyx].CustNum) { Despacho_ordenado[xyz].ShiptoNum = Despachos[zyx].ShiptoNum.ToString(); Despacho_ordenado[xyz].Latitude_c = Despachos[zyx].Latitude_c.ToString(); Despacho_ordenado[xyz].Longitude_c = Despachos[zyx].Longitude_c.ToString(); Despacho_ordenado[xyz].CustId = Despachos[zyx].CustId.ToString(); Despacho_ordenado[xyz].Name = Despachos[zyx].Name.ToString(); Despacho_ordenado[xyz].Address_c = Despachos[zyx].Address_c.ToString(); Despacho_ordenado[xyz].Ubigeo = Despachos[zyx].Ubigeo.ToString(); Despacho_ordenado[xyz].LegalNumber = Despachos[zyx].LegalNumber.ToString(); Despacho_ordenado[xyz].PackNum = Despachos[zyx].PackNum.ToString(); Despacho_ordenado[xyz].CustNum = Despachos[zyx].CustNum.ToString(); Despacho_ordenado[xyz].Company = Despachos[zyx].Company.ToString(); Despacho_ordenado[xyz].State = Despachos[zyx].State.ToString(); Despacho_ordenado[xyz].SalesRepCode = Despachos[zyx].SalesRepCode.ToString(); Despacho_ordenado[xyz].SalesRepName = Despachos[zyx].SalesRepName.ToString(); Despacho_ordenado[xyz].Date = Despachos[zyx].Date.ToString(); Despacho_ordenado[xyz].SalesRepName = Despachos[zyx].SalesRepName.ToString(); Despacho_ordenado[xyz].OrderDispatch = (xyz + 1).ToString(); Despacho_ordenado[xyz].PhoneNum = Despachos[zyx].PhoneNum.ToString(); Despacho_ordenado[xyz].FechaDespacho = Despachos[zyx].FechaDespacho.ToString(); Despacho_ordenado[xyz].chkEntregado_c = Despachos[zyx].chkEntregado_c.ToString(); Despacho_ordenado[xyz].chkAnulado_c = Despachos[zyx].chkAnulado_c.ToString(); Despacho_ordenado[xyz].chkPendiente_c = Despachos[zyx].chkPendiente_c.ToString(); Despacho_ordenado[xyz].chkReprogramado_c = Despachos[zyx].chkReprogramado_c.ToString(); Despacho_ordenado[xyz].State = Despachos[zyx].State.ToString(); } } } return(Despacho_ordenado); DataTable table = ConvertListToDataTable(lista); //dgvprueba.DataSource = table; }