public static void CancelarDespacho(List <int> id_carro) { foreach (int id in id_carro) { Carro.Liberar(id); } }
/// <summary> /// Si ocurre un llamado 10-2, 10-8 o 10-9 en alguna de las áreas correspondiente a compañías que cuentan con ‘B’ y ‘BX’, /// debe ser despachado el ‘BX’ en lugar del ‘B’ que indica la pauta. Si al momento del despacho de alguna de estas claves /// (10-2, 10-8 o 10-9), el ‘BX’ se encuentra fuera de servicio, debe ser despachado el ‘B’ de la misma compañía en caso que /// se encuentre disponible o el ‘B’ de la compañía que corresponda según la prioridad. /// </summary> /// <param name="exp"></param> /// <param name="id_carros"></param> private static void CBMS_CasoEspecialBXporB(e_expedientes exp, ICollection <int> id_carros) { // verificar llamado 10-2, 10-8 o 10-9 DataTable llamados = new z_llamados().Getz_llamados().Tables[0]; DataRow[] res = llamados.Select("codigo_llamado=" + exp.codigo_principal + " and (clave='10-2' or clave='10-8' or clave='10-9')"); if (res.Length != 0) { // verificar que no haya BX //bool salio_bx = false; int compania = exp.id_area / 100; bool compania_tiene_bx = false; //bool bx_en_llamado_es_de_compañia = false; //int id_bx = 0; z_carros bx = null; DataTable tipo_carro = new z_tipo_carro().Getz_tipo_carro().Tables[0]; DataTable carros = new z_carros().Getz_carros().Tables[0]; int tipo_b = (int)(tipo_carro.Select("tipo_carro_letra='B'")[0]["id_tipo_carro"]); int tipo_bx = (int)(tipo_carro.Select("tipo_carro_letra='BX'")[0]["id_tipo_carro"]); // salio un bx? foreach (int id in id_carros) { DataRow dr = carros.Select("id_carro=" + id)[0]; if ((int)dr["id_tipo_carro"] == tipo_bx) { //salio_bx = true; //id_bx = id; bx = new z_carros().getObjectz_carros(id); break; } } // compañia tiene bx? foreach (DataRow dr in carros.Select("id_tipo_carro=" + tipo_bx)) { if ((int)dr["id_compania"] == compania) { compania_tiene_bx = true; break; } } // si salio el bx que no era, o no salio bx, (liberar bx y) asignar B segun prioridad if ((bx != null && bx.id_compania != compania && compania_tiene_bx) || bx == null && compania_tiene_bx) { // liberar BX si habia if (bx != null) { Carro.Liberar(bx.id_carro); id_carros.Remove(bx.id_carro); } // obtener carro B z_carros carro_b = Despacho.ObtenerCarro(tipo_b, exp.id_area); if (carro_b.id_carro != 0) { Carro.Despachar(carro_b); //Conductor.FueraServicio(carro_b.id_conductor, carro_b.id_carro); id_carros.Add(carro_b.id_carro); } } } }