//### Agrega un Carropor 2-6 si esta Disponible
        public static int DespachoPorDosSeis(int intIdExp)
        {
            DatosLogin.InvokeTwitter = "FT2";

            int RetornoCarro = 0;

            if (intIdExp > 0)
            {
                var carro = new z_carros();
                carro = carro.getObjectz_carros(intIdExp);
                if (!Carro.EstaDisponible(carro))
                {
                    MessageBox.Show("En Despacho por Distancia, el carro más próximo no esta disponible... ", "Sistema ZEUS");
                }
                else
                {
                    // marcar y asignar
                    //carro.estado = 4;
                    //carro.modifyz_carros(carro);

                    //string strExp = DatosLogin.LoginExp.ToString();
                    //MessageBox.Show("El Expediente..." + strExp, "Mensaje de ZEUS");

                    int id_carro_seleccionado = carro.id_carro;

                    //### Agregar Carro en tabla z_carros_llamado
                    if (carro.existenciaZcarrosLlamado(id_carro_seleccionado, DatosLogin.LoginExp) == 0)
                    {
                        carro.insertZcarrosLlamado(id_carro_seleccionado, DatosLogin.LoginGrp != 0 ? DatosLogin.LoginGrp : Convert.ToInt32(DatosLogin.LoginGrp), DatosLogin.LoginExp);
                        StaticClass.ArrGrupoCarros.Add(id_carro_seleccionado + "/" + DatosLogin.LoginGrp);
                    }


                    //### Asignar el Carro Seleccionado
                    Carro.Despachar(carro);

                    //idCarros.Add(id_carro_seleccionado);
                    RetornoCarro = id_carro_seleccionado;
                }
            }
            return(RetornoCarro);
        }
예제 #2
0
        public static z_carros BuscarCubrirCuartel(int id_area, out int id_compania)
        {
            var     carro = new z_carros();
            DataSet ds    = new z_prioridad().Getz_prioridad(id_area);
            // buscar en prioridades 10 y 9
            int primera_prioridad = (int)ds.Tables[0].Rows[0]["despacho_b"];

            for (int i = 9; i > 7; i--)
            {
                // obtener bombas
                DataSet carros = carro.GetCarrosCompania(1, (int)ds.Tables[0].Rows[i]["despacho_b"]);
                foreach (DataRow dr in carros.Tables[0].Rows)
                {
                    carro = carro.getObjectz_carros((int)dr["id_carro"]);
                    if (carro.id_carro != 0 && Carro.EstaDisponible(carro))
                    {
                        id_compania = primera_prioridad;
                        return(carro);
                    }
                }
            }
            id_compania = 0;
            return(new z_carros());
        }
예제 #3
0
        private static CantidadCarros ObtenerCantidadCarros(int id_area, int codigo_llamado, out List <int> dos_6)
        {
            var dos6 = new List <int>();
            // 4
            var cantidad = new CantidadCarros();
            // obtener cantidad de carros necesaria
            DataTable di         = null;
            DataTable dh         = new z_despacho_habil().Getz_despacho_habil(id_area, codigo_llamado).Tables[0];
            DataTable tipo_carro = new z_tipo_carro().Getz_tipo_carro_despacho().Tables[0];

            // 4.a
            if ((bool)dh.Rows[0]["inhabil"])
            {
                if (EnBloqueHorario((string)dh.Rows[0]["bloques"]))
                {
                    di = new z_despacho_inhabil().Getz_despacho_inhabil(id_area, codigo_llamado).Tables[0];
                }
            }

            if (di == null)
            {
                for (int i = 0; i < tipo_carro.Rows.Count; i++)
                {
                    var columna = (string)tipo_carro.Rows[i]["columna_despacho"];
                    cantidad.Cantidad[i] = (int)dh.Rows[0][columna];
                }

                //dos6?
                if ((bool)dh.Rows[0]["dos_6"])
                {
                    var     dos = new z_dos_6();
                    DataSet ds  = dos.GetDos6Despacho((int)dh.Rows[0]["id_despacho"]);
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        var carro = new z_carros();
                        carro = carro.getObjectz_carros((int)dr["id_carro"]);
                        if (Carro.EstaDisponible(carro))
                        {
                            Carro.Despachar(carro);
                            //Conductor.FueraServicio(carro.id_conductor, carro.id_carro);
                            dos6.Add(carro.id_carro);
                        }
                    }
                }
            }
            else
            {
                // despacho inhábil
                for (int i = 0; i < tipo_carro.Rows.Count; i++)
                {
                    string columna = (string)tipo_carro.Rows[i]["columna_despacho"];
                    cantidad.Cantidad[i] = (int)di.Rows[0][columna];
                }

                //dos6?
                if ((bool)di.Rows[0]["dos_6"])
                {
                    var     dos = new z_dos_6();
                    DataSet ds  = dos.GetDos6Despacho((int)di.Rows[0]["id_despacho"]);
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        var carro = new z_carros();
                        carro = carro.getObjectz_carros((int)dr["id_carro"]);
                        if (Carro.EstaDisponible(carro))
                        {
                            Carro.Despachar(carro);
                            //Conductor.FueraServicio(carro.id_conductor, carro.id_carro);
                            dos6.Add(carro.id_carro);
                        }
                    }
                }
            }
            dos_6 = dos6;
            return(cantidad);
        }
예제 #4
0
        public static string ordenArreglo(ArrayList puntero_final, ArrayList list_id_carros, ArrayList list_carro_x, ArrayList list_carro_y, ArrayList list_compania, ArrayList list_ranking, string idcarros, string idgrupos, string recu, int cod_llamado, ArrayList list_comp)
        {
            List <int> despGrupo = new List <int>();
            var        ccarros   = new z_carros();
            var        cczorden  = new z_orden();

            string[] arr       = new string[puntero_final.Count];
            string[] arr_split = new string[puntero_final.Count];
            string[] arr_uso   = new string[puntero_final.Count];
            int      r         = Convert.ToInt32(recu);
            string   valores_finales_retorno = "";

            for (int a = 0; a < puntero_final.Count; a++)
            {
                arr[a] = puntero_final[a].ToString();
            }
            while (r != 0)
            {
                for (int b = 0; b < arr.Length; b++)
                {
                    string valor_envio = arr[b].ToString();
                    if (carrosPorRanking(valor_envio, list_id_carros) == 1)
                    {
                        ccarros = ccarros.getObjectz_carros(id_carro_puntero);
                        if (Carro.EstaDisponible(ccarros) && r != 0)
                        {
                            //despGrupo.Add(ccarros.id_carro);
                            if (companias_a_despachar.Count != 0)
                            {
                                if (verificarCandidatosDespacho(ccarros.id_compania, companias_a_despachar))
                                {
                                    companias_a_despachar.Add(ccarros.id_compania);
                                    valores_finales_retorno += ccarros.id_carro + ",";
                                    r--;
                                }
                            }
                            else
                            {
                                companias_a_despachar.Add(ccarros.id_compania);
                                valores_finales_retorno += ccarros.id_carro + ",";
                                r--;
                            }
                        }
                    }
                    else
                    {
                        int[]  t_carro     = new int[carros_compuesto.Length];
                        string tc_string   = "";
                        string tc_string_2 = "";
                        string tc_usar     = "";
                        string tc_usar_2   = "";
                        for (int c = 0; c < carros_compuesto.Length; c++)
                        {
                            tc_string_2 += carros_compuesto[c].ToString() + ",";
                            tc_string   += ccarros.recuperarValorTipoCarro(Convert.ToInt32(carros_compuesto[c])) + ",";
                        }
                        tc_string   += "#";
                        tc_string_2 += "#";

                        tc_usar   = tc_string.Replace(",#", "");
                        tc_usar_2 = tc_string_2.Replace(",#", "");

                        int[] tc_recuperado = cczorden.recuperarTipoCarroOrdenTipo(cod_llamado, tc_usar);
                        for (int d = 0; d < tc_recuperado.Length; d++)
                        {
                            int id_carro_final = cczorden.despachoPorTipo(Convert.ToInt32(tc_recuperado[d].ToString()), tc_usar_2);
                            ccarros = ccarros.getObjectz_carros(id_carro_final);
                            if (Carro.EstaDisponible(ccarros) && r != 0)
                            {
                                //despGrupo.Add(ccarros.id_carro);
                                if (companias_a_despachar.Count != 0)
                                {
                                    if (verificarCandidatosDespacho(ccarros.id_compania, companias_a_despachar))
                                    {
                                        companias_a_despachar.Add(ccarros.id_compania);
                                        valores_finales_retorno += ccarros.id_carro + ",";
                                        r--;
                                    }
                                }
                                else
                                {
                                    companias_a_despachar.Add(ccarros.id_compania);
                                    valores_finales_retorno += ccarros.id_carro + ",";
                                    r--;
                                }
                            }
                        }
                    }
                }
                r = 0;
            }
            valores_finales_retorno += "#";
            return(valores_finales_retorno);
        }
예제 #5
0
        public static z_carros ObtenerCarro(int id_tipo_carro, int id_area, bool verificar_cubriendo,
                                            List <int> compañias_usadas)
        {
            DataTable tipo_carros = new z_tipo_carro().Getz_tipo_carro().Tables[0];

            // Obtener compañía que debe despachar el tipo de carro especificado
            // (desde z_prioridad, parámetros: tipo_carro, cantidad)
            var     prioridad = new z_prioridad();
            DataSet ds        = prioridad.Getz_prioridad(id_area);

            // Verificar, desde tabla z_carros, si la compañía seleccionada tiene el tipo de carro requerido,
            // y que su estado sea=1 (en servicio)
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                DataRow dr      = ds.Tables[0].Rows[i];
                var     carro   = new z_carros();
                string  columna =
                    (string)(tipo_carros.Select("id_tipo_carro=" + id_tipo_carro)[0]["columna_despacho"]);
                int compañia = (int)dr[columna];

                //// CBQN: sólo un carro por compañía
                if (compañias_usadas != null && compañias_usadas.Contains(compañia))
                {
                    continue;
                }
                DataSet carros = carro.GetCarrosCompania(id_tipo_carro, compañia);
                foreach (DataRow Row in carros.Tables[0].Rows)
                {
                    carro = carro.getObjectz_carros((int)Row["id_carro"]);

                    // verificar cubrir cuarteles
                    if (verificar_cubriendo && carro.id_carro != 0)
                    {
                        // carro cubre área si 1) id_compania!=id_compania_orig y 2) id_compania_cubre==1° prioridad área
                        int primera_prioridad = (int)ds.Tables[0].Rows[0][columna];
                        if (carro.id_compania_orig != carro.id_compania && carro.id_compania == primera_prioridad)
                        {
                            // carro cubre área, ignorar
                            carro.id_carro = 0;
                        }
                    }

                    // seleccionar carro
                    if (carro.id_carro != 0)
                    {
                        if (Carro.EstaDisponible(carro))
                        {
                            Carro.Despachar(carro);
                            //Conductor.FueraServicio(carro.id_conductor, carro.id_carro);
                            return(carro);
                        }
                        // carro alternativo???
                        if (carro.id_tipo_alternativo != 0)
                        {
                            carro = carro.getObjectz_carros(carro.id_tipo_alternativo);
                            if (carro.id_carro != 0 && Carro.EstaDisponible(carro))
                            {
                                Carro.Despachar(carro);
                                //Conductor.FueraServicio(carro.id_conductor, carro.id_carro);
                                return(carro);
                            }
                        }
                    }
                }
            }
            return(new z_carros());
        }