public Boolean agregarRespuesto(int numeroParte, int idTipo, int idMarca, int idModelo, int idEstilo, int idCombustible, string descripcionV, int anio, int inventario, string descripcion, int precio)
        {
            int idVehiculo = -1;

            _RepuestoNuevo = new Repuesto();
            _RepuestoNuevo.NumeroParte = numeroParte;
            _RepuestoNuevo.IdTipo = idTipo;
            _RepuestoNuevo.IdMarca = idMarca;
            _RepuestoNuevo.IdModelo = Int32.Parse(_ListaModelos[idModelo]);
            _RepuestoNuevo.IdEstilo = idEstilo;
            _RepuestoNuevo.IdCombustible = idCombustible;
            _RepuestoNuevo.DescripcionVehiculo = descripcionV;
            _RepuestoNuevo.Anio = anio;
            _RepuestoNuevo.Inventario = inventario;
            _RepuestoNuevo.Descripcion = descripcion;
            _RepuestoNuevo.Precio = (decimal)precio;

            MySqlDataReader myreader;
            myreader = AccesoDatosRepuestos.buscarIdVehiculo(_RepuestoNuevo);

            while (myreader.Read())
            {
                idVehiculo = (int)myreader[0];
            }
            if(idVehiculo == -1)
            {
                AccesoDatosRepuestos.insertarVehiculo(_RepuestoNuevo);
                return AccesoDatosRepuestos.insertarRepuestoNuevoVehiculo(_RepuestoNuevo);

            }
            else
                return AccesoDatosRepuestos.insertarRepuesto(_RepuestoNuevo, idVehiculo) ;
        }
        //busca el id del vehiculo del repuesto que se va a agregar
        public static MySqlDataReader buscarIdVehiculo(Repuesto _RespuestoNuevo)
        {
            MySqlConnection conn = new MySqlConnection(AccesoDatos._Connection);
            MySqlDataReader myreader;
            conn.Open();
            try
            {
                string query = "Select IdVehiculo from vehiculos where IdMarca = @param_Marca AND IdModelo = @param_Modelo AND IdEstilo = " +
                "@param_Estilo AND Ano = @param_Anio AND IdCombustible = @param_Combustible and Descripcion = @param_Descripcion";
                MySqlCommand mycomand = new MySqlCommand(query, conn);
                mycomand.Parameters.AddWithValue("@param_Marca", _RespuestoNuevo.IdMarca);
                mycomand.Parameters.AddWithValue("@param_Modelo", _RespuestoNuevo.IdModelo);
                mycomand.Parameters.AddWithValue("@param_Estilo", _RespuestoNuevo.IdEstilo);
                mycomand.Parameters.AddWithValue("@param_Combustible", _RespuestoNuevo.IdCombustible);
                mycomand.Parameters.AddWithValue("@param_Anio", _RespuestoNuevo.Anio);
                mycomand.Parameters.AddWithValue("@param_Descripcion", _RespuestoNuevo.DescripcionVehiculo);
                myreader = mycomand.ExecuteReader();
            }
            catch (MySqlException ex) { myreader = null; }

            return myreader;
        }
        //inserta el repuesto con el id del vehiculo que se había encontrado en la base
        public static bool actualizarRepuesto(Repuesto _RespuestoNuevo, String pTipo, int IdVehiculo)
        {
            MySqlConnection conn = new MySqlConnection(AccesoDatos._Connection);
            MySqlDataReader myreader;
            conn.Open();
            try
            {
                string query = "Insert into repuestos (idVehiculo, NumeroParte, IdTipo, Inventario, Descripcion, PrecioUnitario) " +
                "select @param_IdVehiculo, @param_Parte,(Select IdTipo from " +
                "tiporepuestos where Descripcion = @param_Tipo), @param_Inventario, @param_Descripcion, @param_Precio";
                MySqlCommand mycomand = new MySqlCommand(query, conn);
                mycomand.Parameters.AddWithValue("@param_Parte", _RespuestoNuevo.NumeroParte);
                mycomand.Parameters.AddWithValue("@param_Tipo", pTipo);
                mycomand.Parameters.AddWithValue("@param_Inventario", _RespuestoNuevo.Inventario);
                mycomand.Parameters.AddWithValue("@param_Precio", _RespuestoNuevo.Precio);
                mycomand.Parameters.AddWithValue("@param_Descripcion", _RespuestoNuevo.Descripcion);
                mycomand.Parameters.AddWithValue("@param_IdVehiculo", IdVehiculo);
                myreader = mycomand.ExecuteReader();
                banderaError = false;
            }
            catch (MySqlException ex) { banderaError = true; }

            return banderaError;
        }
        public bool guardarDatosRepuesto(string pNumeroParte, string pInventario, string pDescripcion, string pPrecioUnitario, string pTipo, string pMarca, string pModelo, string pCombustible, string pEstilo, string pAnio, string pDescripcionV, int IdRepuesto)
        {
            int idVehiculo = -1;
            MySqlDataReader myreader;
            myreader = AccesoDatosRepuestos.buscarIdVehiculoRepuestoActualizado(pMarca, pModelo, pCombustible, pEstilo, pAnio, pDescripcionV);

            while (myreader.Read())
            {
                idVehiculo = (int)myreader[0];
            }
            //en caso de que el vehiculo del repuesto no exista

            if (idVehiculo == -1)
            {
                 AccesoDatosRepuestos.insertarVehiculoRepuestoActualizado(pMarca, pModelo, pCombustible, pEstilo, pAnio, pDescripcionV);
                 myreader = AccesoDatosRepuestos.seleccionarNuevoVehiculo();
                 while (myreader.Read())
                 {
                     idVehiculo = (int)myreader[0];
                 }
            }
                Repuesto repuestoNuevo = new Repuesto();
                repuestoNuevo.NumeroParte = int.Parse(pNumeroParte);
                repuestoNuevo.Inventario = int.Parse(pInventario);
                repuestoNuevo.Precio = decimal.Parse(pPrecioUnitario);
                repuestoNuevo.Descripcion = pDescripcion;
                AccesoDatosRepuestos.borrarRepuesto(IdRepuesto);
                if (AccesoDatosRepuestos.numeroError == 1451)
                {
                    AccesoDatosRepuestos.numeroError = 0;
                    Exception e = new Exception("El Repuesto no se puede modificar, debido a que se encuentra dentro de una factura pendiente");
                    e.Source = "Factura";
                    throw e;
                }
                return AccesoDatosRepuestos.actualizarRepuesto(repuestoNuevo, pTipo, idVehiculo);
        }
 //inserta el vehiculo del nuevo repuesto que se quiere agregar
 public static bool insertarVehiculo(Repuesto _RepuestoNuevo)
 {
     MySqlConnection conn = new MySqlConnection(AccesoDatos._Connection);
     MySqlDataReader myreader;
     conn.Open();
     try
     {
         string query = "insert into vehiculos (IdMarca, IdModelo, IdCombustible, IdEstilo, Ano, Descripcion) values (@param_Marca,@param_Modelo, @param_Combustible,@param_Estilo,@param_Anio, @param_Descripcion)";
         MySqlCommand mycomand = new MySqlCommand(query, conn);
         mycomand.Parameters.AddWithValue("@param_Marca", _RepuestoNuevo.IdMarca);
         mycomand.Parameters.AddWithValue("@param_Modelo", _RepuestoNuevo.IdModelo);
         mycomand.Parameters.AddWithValue("@param_Estilo", _RepuestoNuevo.IdEstilo);
         mycomand.Parameters.AddWithValue("@param_Combustible", _RepuestoNuevo.IdCombustible);
         mycomand.Parameters.AddWithValue("@param_Anio", _RepuestoNuevo.Anio);
         mycomand.Parameters.AddWithValue("@param_Descripcion", _RepuestoNuevo.DescripcionVehiculo);
         myreader = mycomand.ExecuteReader();
         banderaError = false;
     }
     catch (MySqlException ex) { banderaError = true; }
     return banderaError;
 }