示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
        }