public bool ReturnMotor(Customers customer, Motor motor, Contract contract) { bool result = false; CustomerDAL cusdal = new CustomerDAL(); MotorDAL mtdal = new MotorDAL(); MySqlConnection connection = DBHelper.OpenConnection(); MySqlCommand cmd = connection.CreateCommand(); cmd.Connection = connection; cmd.CommandText = "lock tables Contract write,Motor write;"; cmd.ExecuteNonQuery(); MySqlTransaction trans = connection.BeginTransaction(); cmd.Transaction = trans; MySqlDataReader reader = null; try { if (cusdal.GetCustomerByID(customer.CustomerID) != null && mtdal.GetMotorByLicensePlate(motor.LicensePlate) != null) { cmd.CommandText = @"select ct.ContractID,ct.CustomerID,mt.LicensePlate,ct.Contract_DateRental,ct.Contract_DateReturn,datediff(ct.Contract_DateReturn,ct.Contract_DateRental) as TongNgayThue, (mt.PriceOfMotor * datediff(ct.Contract_DateReturn,ct.Contract_DateRental)) as TongTien from Contract ct inner join Contract_Motor cm on ct.ContractID = cm.ContractID inner join Motor mt on mt.LicensePlate = cm.LicensePlate where ct.CustomerID = '" + customer.CustomerID + "' and mt.LicensePlate = '" + motor.LicensePlate + "';"; reader = cmd.ExecuteReader(); if (reader.Read()) { contract.ContractID = reader.GetInt32("ContractID"); } reader.Close(); // Update status contract cmd.CommandText = "update Contract set Contract_Status = 'DA THANH TOAN' where ContractID = '" + contract.ContractID + "';"; // cmd.Parameters.Clear(); // cmd.Parameters.AddWithValue("@LicensePlate",motor.LicensePlate); cmd.ExecuteNonQuery(); // Update status Motor cmd.CommandText = "update Motor set Motor_Status = 'CHUA THUE' where LicensePlate = '" + motor.LicensePlate + "'"; // cmd.Parameters.Clear(); // cmd.Parameters.AddWithValue("@LicensePlate",motor.LicensePlate); cmd.ExecuteNonQuery(); trans.Commit(); return(true); } } catch (Exception e) { Console.WriteLine(e.Message); result = false; try { trans.Rollback(); } catch { } } finally { cmd.CommandText = "unlock tables;"; cmd.ExecuteNonQuery(); DBHelper.CloseConnection(); } return(result); }