Esempio n. 1
0
        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);
        }