diff --git a/.htaccess b/.htaccess deleted file mode 100644 index 7ed93bd..0000000 --- a/.htaccess +++ /dev/null @@ -1,4 +0,0 @@ -RewriteEngine On -RewriteCond %{REQUEST_FILENAME} !-f -RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule ^(.*)$ index.php?cont=$1 [L,QSA] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec1cad4 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# php-oop +PHP OOP session 1 assignment diff --git a/assignment.txt b/assignment.txt old mode 100644 new mode 100755 diff --git a/classes/Account.php b/classes/Account.php old mode 100644 new mode 100755 index 0765a40..e8f59d1 --- a/classes/Account.php +++ b/classes/Account.php @@ -1,22 +1,94 @@ _validate_account($account_number)){ AppError::show_errors(); return; } + if(!$this->_validate_balance($balance)){ + AppError::show_errors(); + return; + } $this->account_number = $account_number; + $this->balance = $balance; + } + public function Deposit($value, $log = true){ + + if(!$this->_validate_deposit($value)){ + AppError::show_errors(); + return; + } + + $this->balance += $value ; + if($log){ + $this->_add_transaction("Deposited {$value} and new balance is {$this->balance}"); + } + return $this; + } + public function Withdraw($value, $log = true){ + + if(!$this->_validate_withdraw($value)){ + AppError::show_errors(); + return; + } + + $this->balance -= $value ; + if($log){ + $this->_add_transaction("Withdraw {$value} and new balance is {$this->balance}"); + } + return $this; + } + public function Transfer($value, $to){ + + $this->Withdraw($value, false); + $to->Deposit($value, false); + $this->_add_transaction("Transfered {$value} to {$to->account_number} and new balance is {$this->balance}"); + return $this; + } + public function Balance(){ + echo "
Balanse of account {$this->account_number} is {$this->balance}
"; + return $this; + } + public function Transactions(){ + echo "
List of transactions of account {$this->account_number} :
"; + foreach ($this->transactions as $value) { + echo "{$value}
"; + } + echo "
"; + return $this; + } + protected function _add_transaction($transaction){ + $this->transactions[] = $transaction ; } - protected function _validate_account($num){ if($num >= 1000000000 && $num <= 9999999999) return true; AppError::add_error('Invalid account number'); return false; } + protected function _validate_balance($num){ + if($num >= 1000 ) return true; + + AppError::add_error('Invalid Balance'); + return false; + } + protected function _validate_deposit($num){ + if($num > 0) return true; + + AppError::add_error('Invalid Deposit'); + return false; + } + protected function _validate_withdraw($num){ + if($num > 0 && $num < $this->balance) return true; + + AppError::add_error('Invalid Withdraw '); + return false; + } } \ No newline at end of file diff --git a/classes/AppError.php b/classes/AppError.php old mode 100644 new mode 100755 diff --git a/classes/Client.php b/classes/Client.php old mode 100644 new mode 100755 index e454437..da719c5 --- a/classes/Client.php +++ b/classes/Client.php @@ -37,13 +37,13 @@ private function _validate_name($name){ return $match; } - public function add_account($account_number, $type = 'current'){ + public function add_account($account_number, $balance, $type = 'current'){ switch($type){ case 'savings': - $new_acc = new SavingsAccount($account_number); + $new_acc = new SavingsAccount($account_number , $balance); break; default: - $new_acc = new CurrentAccount($account_number); + $new_acc = new CurrentAccount($account_number, $balance); } $this->accounts[] = $new_acc; diff --git a/classes/CurrentAccount.php b/classes/CurrentAccount.php old mode 100644 new mode 100755 index e03538b..e6c2cc5 --- a/classes/CurrentAccount.php +++ b/classes/CurrentAccount.php @@ -2,8 +2,8 @@ class CurrentAccount extends Account { private $has_checks = false; - public function __construct($account_number){ - parent::__construct($account_number); + public function __construct($account_number, $balance){ + parent::__construct($account_number, $balance); } diff --git a/classes/SavingsAccount.php b/classes/SavingsAccount.php old mode 100644 new mode 100755 index 320c033..ff61023 --- a/classes/SavingsAccount.php +++ b/classes/SavingsAccount.php @@ -2,8 +2,8 @@ class SavingsAccount extends Account { private $interest = 0.0; - public function __construct($account_number){ - parent::__construct($account_number); + public function __construct($account_number, $balance){ + parent::__construct($account_number, $balance); } diff --git a/controllers/help.php b/controllers/help.php deleted file mode 100644 index aa0178d..0000000 --- a/controllers/help.php +++ /dev/null @@ -1,14 +0,0 @@ -"; - echo "Action: {$action}
"; + $client = new Client('Ahmed', 'Saeed'); + + echo $client->full_name()."
"; + + $client->add_account(1000000015, 1000)->add_checkbook(); + $client->add_account(1000000016, 1000); + $client->add_account(1000000018, 1000, 'savings')->set_interest(0.1); + + $client + ->accounts[0] + ->Deposit(1000) // make a deposit of 1000 to client's account #0 + ->Withdraw(500) // withdrawf 500 from client's account #0 + ->Transfer(200, $client->accounts[1]) // transfer 200 from client's account #0 to account #1 + ->Balance() // print balance of client's account #2 (should be 300) + ->Transactions(); // display list of transactions of client's account #0 (3 transactions) + +// echo "
";
+// 	var_dump($client);
+// echo "
"; - route($controller, $action); \ No newline at end of file diff --git a/loader.php b/loader.php old mode 100644 new mode 100755 diff --git a/test-client.php b/test-client.php deleted file mode 100644 index 7a5fc1a..0000000 --- a/test-client.php +++ /dev/null @@ -1,15 +0,0 @@ -full_name(); - //echo $client->first_name . ' ' . $client->last_name; - - $client->add_account(1000000015)->add_checkbook(); - $client->add_account(1000000016); - $client->add_account(1000000018, 'savings')->set_interest(0.1); - - var_dump($client->accounts); - diff --git a/test-error.php b/test-error.php deleted file mode 100644 index ba41c86..0000000 --- a/test-error.php +++ /dev/null @@ -1,20 +0,0 @@ -add_error('Test error 11'); - $err->add_error('Test error 12'); - - $err2->add_error('Test error 21'); - $err2->add_error('Test error 22'); - - $err->show_errors(); - - $err2->show_errors(); \ No newline at end of file