public static bool ConfirmarDespacho(List <int> id_carro, int id_expediente, int batallon) { // cambiar clave! // obtener codigo llamado batallon var llam = new z_llamados(); DataSet db = llam.Getz_llamados_incendio(); int codigo_llamado = (int)db.Tables[0].Rows[batallon - 1]["codigo_llamado"]; var exp = new e_expedientes(); exp = exp.getObjecte_expedientes(id_expediente); // actualizar expediente exp.codigo_principal = codigo_llamado; exp.batallon = batallon; // correlativo if (exp.correlativo_iioo == 0) { exp.correlativo_iioo = exp.GetNextCorrelativoIIOO(); } exp.Update(exp); var retValue = ConfirmarDespacho(id_carro, id_expediente, batallon, false); return(retValue); }
private static void CheckBatallon(int id_expediente, IEnumerable <int> id_carros) { var exp = new e_expedientes(); exp = exp.getObjecte_expedientes(id_expediente); List <int> s; int id_mayor = 0; var cu = new e_carros_usados(); // no hay batallones para áreas if (exp.id_area == 0) { return; } // revisar si esta combinación de carros+los actuales superan un batallón var llam = new z_llamados(); DataSet ds = llam.Getz_llamados_incendio(); foreach (DataRow dr in ds.Tables[0].Rows) { // cantidad de carros CantidadCarros cc = ObtenerCantidadCarros(exp.id_area, (int)dr["codigo_llamado"], out s); var ca = new CantidadCarros(); // sumar DataSet de = cu.Gete_carros_exp(id_expediente); foreach (DataRow dw in de.Tables[0].Rows) { var carro = new z_carros(); carro = carro.getObjectz_carros((int)dw["id_carro"]); ca.Cantidad[carro.id_tipo_carro - 1]++; } // carros actuales foreach (int i in id_carros) { var carro = new z_carros(); carro = carro.getObjectz_carros(i); ca.Cantidad[carro.id_tipo_carro - 1]++; } // comparar if (ca >= cc) { id_mayor = (int)dr["codigo_llamado"]; } } if (id_mayor != 0) { // avisar MessageBox.Show("Se han superado los carros para un batallón. Se cambiará la clave."); // cambiar clave exp.codigo_principal = id_mayor; exp.Update(exp); } }
public static List <int> DespacharBatallon(int id_expediente, int id_area, int batallon, out string sindesp) { // 6 var sinDespacho = new List <int>(); var idDespacho = new List <int>(); var companias = new List <int>(); var R = new List <int>(); var cu = new e_carros_usados(); sindesp = ""; // tipos de carro try { // obtener codigo llamado batallon var llam = new z_llamados(); DataSet db = llam.Getz_llamados_incendio(); int codigo_llamado = (int)db.Tables[0].Rows[batallon - 1]["codigo_llamado"]; CantidadCarros cantidad = ObtenerCantidadCarros(id_area, codigo_llamado, out idDespacho); // cantidad de carros var actual = new CantidadCarros(); // sumar DataSet de = cu.Gete_carros_exp(id_expediente); foreach (DataRow dw in de.Tables[0].Rows) { var carro = new z_carros(); carro = carro.getObjectz_carros((int)dw["id_carro"]); actual.Cantidad[carro.id_tipo_carro - 1]++; } // restar carros actuales cantidad = cantidad - actual; OrdenarCarros(cantidad, codigo_llamado); for (int i = 0; i < cantidad.Cantidad.GetLength(0); i++) { while (cantidad.Cantidad[i] > 0) { // obtener carro verificando 0-11 z_carros carro = batallon > 2 ? ObtenerCarro(cantidad.Id_tipo[i], id_area, true) : ObtenerCarro(cantidad.Id_tipo[i], id_area); if (carro.id_carro != 0) { // es r? if (carro.id_tipo_carro == 7) { R.Add(carro.id_carro); } else { if (!companias.Contains(carro.id_compania)) { companias.Add(carro.id_compania); } } idDespacho.Add(carro.id_carro); // disminuir cantidad.Cantidad[i]--; } else { sinDespacho.Add(cantidad.Id_tipo[i]); break; } } } for (int i = 0; i < cantidad.Id_tipo.Length; i++) { if (cantidad.Cantidad[i] != 0) { z_tipo_carro tipo = new z_tipo_carro().getObjectz_tipo_carro(cantidad.Id_tipo[i]); //sindesp += tipo.tipo_carro_letra + ": " + cantidad.Cantidad[i] + "; "; sindesp += cantidad.Cantidad[i] + " " + tipo.tipo_carro_letra + "; "; } } } catch (Exception e) { Log.Write(e); MessageBox.Show("No se pudo completar la operación debido a un error de Base de Datos.", "Mensaje de ZEUS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } // verificar r en compañia var c = new z_carros(); int sinR = 0; foreach (int id in R) { bool encompania = false; c = c.getObjectz_carros(id); foreach (int comp in companias) { if (comp == c.id_compania) { encompania = true; } } if (!encompania) { // liberar carro var l = new List <int> { id }; CancelarDespacho(l); idDespacho.Remove(id); sinR++; } } if (sinR != 0) { sindesp += sinR + " R"; } return(idDespacho); }