diff options
author | Camil Staps | 2016-07-27 21:06:48 +0200 |
---|---|---|
committer | Camil Staps | 2016-07-27 21:06:48 +0200 |
commit | 390251ac43ca889a318369342b4663ef928349d8 (patch) | |
tree | b2b0a68dd6fccf6fa52d2c1fc95bdd70811a60b3 /classes | |
parent | Discount: use Model (diff) |
Contact: use Model
Diffstat (limited to 'classes')
-rw-r--r-- | classes/Contact.php | 340 | ||||
-rw-r--r-- | classes/Correspondence.php | 10 |
2 files changed, 18 insertions, 332 deletions
diff --git a/classes/Contact.php b/classes/Contact.php index 6ed2a78..ed2a80d 100644 --- a/classes/Contact.php +++ b/classes/Contact.php @@ -24,73 +24,20 @@ /** * An interface to the contact table in the database */ -class Contact { - /** - * @var PDO $pdo The PDO class for database communication - * @var int $id The id of the contact - * @var int $clientId The id of the client the contact is linked to - * @var string $name The name of the contact - * @var string $email The email address of the contact - * @var string $address The first address line (normally street and house number) of the contact - * @var string $address_2 The second address line (can be null) - * @var string $postal_code The postal code of the contact - * @var string $city The city of the contact - * @var string $country The country of the contact - * @var string $language The language of the contact - */ - protected $pdo, $id, $clientId, $name, $email, $address, $postal_code, $city, $country, $language; - - /** - * Create a new instance - * - * @param PDO $pdo The PDO class, to access the database - * @param int $id The id of the contact to fetch - * - * @throws PDOException If something went wrong with the database - * @throws Exception If the contact could not be found - */ - public function __construct($pdo, $id) { - $this->pdo = $pdo; - - $stmt = $this->pdo->prepare("SELECT * FROM `".Constants::db_prefix."contact` WHERE `id`=?"); - $stmt->execute(array($id)); - if ($stmt->rowCount() == 0) { - throw new Exception("The contact with id '$id' could not be found."); +class Contact extends Model { + public + $table = 'contact', + $fillable_columns = ['clientId', 'name', 'email', 'address', 'address_2', 'postal_code', 'city', 'country', 'language']; + + protected function mutator($key, $value) { + switch ($key) { + case 'language': + if (!in_array($value, Correspondence::LANGUAGES)) { + throw new Exception("Language $value not available."); + } + default: + return parent::mutator($key, $value); } - $contact = $stmt->fetch(PDO::FETCH_ASSOC); - - $this->id = $contact['id']; - $this->clientId = $contact['clientId']; - $this->name = $contact['name']; - $this->email = $contact['email']; - $this->address = $contact['address']; - $this->address_2 = $contact['address_2']; - $this->postal_code = $contact['postal_code']; - $this->city = $contact['city']; - $this->country = $contact['country']; - $this->language = $contact['language']; - } - - //------------------------------------------------------------------------------ - // Getters and setters - //------------------------------------------------------------------------------ - - /** - * Get the ID of the contact - * - * @return int The ID - */ - public function getId() { - return $this->id; - } - - /** - * Get the ID of the client that this contact is linked to - * - * @return int The ID - */ - public function getClientId() { - return $this->clientId; } /** @@ -103,267 +50,6 @@ class Contact { } /** - * Get the name of the contact - * - * @return string The name - */ - public function getName() { - return $this->name; - } - - /** - * Set the name of the contact - * - * @param string $name The new name for the contact - * - * @throws PDOException If something went wrong with the database - * - * @return bool True on succes, false on failure - */ - public function setName($name) { - $stmt = $this->pdo->prepare("UPDATE `".Constants::db_prefix."contact` SET `name`=? WHERE `id`=?"); - $stmt->execute(array($name, $this->id)); - if ($stmt->rowCount() == 1) { - $this->name = $name; - return true; - } else { - return false; - } - } - - /** - * Get the email of the contact - * - * @return string The email - */ - public function getEmail() { - return $this->email; - } - - /** - * Set the email of the contact - * - * @param string $email The new email for the contact - * - * @throws PDOException If something went wrong with the database - * - * @return bool True on succes, false on failure - */ - public function setEmail($email) { - $stmt = $this->pdo->prepare("UPDATE `".Constants::db_prefix."contact` SET `email`=? WHERE `id`=?"); - $stmt->execute(array($email, $this->id)); - if ($stmt->rowCount() == 1) { - $this->email = $email; - return true; - } else { - return false; - } - } - - /** - * Get the first address line of the contact - * - * @return string The address - */ - public function getAddress() { - return $this->address; - } - - /** - * Set the first address line of the contact - * - * @param string $address The new address for the contact - * - * @throws PDOException If something went wrong with the database - * - * @return bool True on succes, false on failure - */ - public function setAddress($address) { - $stmt = $this->pdo->prepare("UPDATE `".Constants::db_prefix."contact` SET `address`=? WHERE `id`=?"); - $stmt->execute(array($address, $this->id)); - if ($stmt->rowCount() == 1) { - $this->address = $address; - return true; - } else { - return false; - } - } - - /** - * Get the second address line of the contact - * - * @return string The address - */ - public function getAddress_2() { - return $this->address_2; - } - - /** - * Set the second address line of the contact - * - * @param string $address_2 The new address for the contact - * - * @throws PDOException If something went wrong with the database - * - * @return bool True on succes, false on failure - */ - public function setAddress_2($address_2) { - $stmt = $this->pdo->prepare("UPDATE `".Constants::db_prefix."contact` SET `address_2`=? WHERE `id`=?"); - $stmt->execute(array($address_2, $this->id)); - if ($stmt->rowCount() == 1) { - $this->address_2 = $address_2; - return true; - } else { - return false; - } - } - - /** - * Get the postal_code of the contact - * - * @return string The postal_code - */ - public function getPostalCode() { - return $this->postal_code; - } - - /** - * Set the postal code of the contact - * - * @param $postal_code string The new postal code for the contact - * - * @throws PDOException If something went wrong with the database - * - * @return bool True on succes, false on failure - */ - public function setPostalCode($postal_code) { - $stmt = $this->pdo->prepare("UPDATE `".Constants::db_prefix."contact` SET `postal_code`=? WHERE `id`=?"); - $stmt->execute(array($postal_code, $this->id)); - if ($stmt->rowCount() == 1) { - return true; - $this->postal_code = $postal_code; - } else { - return false; - } - } - - /** - * Get the city of the contact - * - * @return string The city - */ - public function getCity() { - return $this->city; - } - - /** - * Set the city of the contact - * - * @param string $city The new city for the contact - * - * @throws PDOException If something went wrong with the database - * - * @return bool True on succes, false on failure - */ - public function setCity($city) { - $stmt = $this->pdo->prepare("UPDATE `".Constants::db_prefix."contact` SET `city`=? WHERE `id`=?"); - $stmt->execute(array($city, $this->id)); - if ($stmt->rowCount() == 1) { - $this->city = $city; - return true; - } else { - return false; - } - } - - /** - * Get the country of the contact - * - * @return string The country - */ - public function getCountry() { - return $this->country; - } - - /** - * Set the country of the contact - * - * @param string $country The new country for the contact - * - * @throws PDOException If something went wrong with the database - * - * @return bool True on succes, false on failure - */ - public function setCountry($country) { - $stmt = $this->pdo->prepare("UPDATE `".Constants::db_prefix."contact` SET `country`=? WHERE `id`=?"); - $stmt->execute(array($country, $this->id)); - if ($stmt->rowCount() == 1) { - $this->country = $country; - return true; - } else { - return false; - } - } - - /** - * Get the language of the contact - * - * @return string The language - */ - public function getLanguage() { - return $this->language; - } - - /** - * Set the language of the contact - * - * @see correspondence::LANGUAGES The available languages - * - * @param string $language The new language for the contact - * - * @throws PDOException If something went wrong with the database - * @throws Exception If the language is unknown - * - * @return bool True on succes, false on failure - */ - public function setLanguage($language) { - if (!in_array($language, correspondence::LANGUAGES)) { - throw new Exception("Language $language not available."); - } - $stmt = $this->pdo->prepare("UPDATE `".Constants::db_prefix."contact` SET `language`=? WHERE `id`=?"); - $stmt->execute(array($language, $this->id)); - if ($stmt->rowCount() == 1) { - $this->language = $language; - return true; - } else { - return false; - } - } - - //------------------------------------------------------------------------------ - // Other functions - //------------------------------------------------------------------------------ - - /** - * Remove this contact from the database - * - * If this doesn't succeed (i.e. false is returned), that means the contact was removed manually or by another instance of this class - * - * @throws PDOException If something went wrong with the database - * - * @return bool True on success, false on failure - */ - public function delete() { - $stmt = $this->pdo->prepare("DELETE FROM `".Constants::db_prefix."contact` WHERE `id`=?"); - $stmt->execute(array($this->id)); - if ($stmt->rowCount() != 1) { - return false; - } else { - return true; - } - } - - /** * Make a new offer for this contact * * @throws PDOException If something went wrong with the database diff --git a/classes/Correspondence.php b/classes/Correspondence.php index 4c7a23b..09873c3 100644 --- a/classes/Correspondence.php +++ b/classes/Correspondence.php @@ -183,7 +183,7 @@ class Correspondence extends FPDF { function SetContact($contact) { $this->contact = $contact; - $this->language = $contact->getLanguage(); + $this->language = $contact->language; } /** @@ -262,16 +262,16 @@ class Correspondence extends FPDF { $this->SetFont('','',11); $this->SetXY(30,56.5); - $this->Cell(90,5.5,utf8_decode($this->contact->getName())); + $this->Cell(90,5.5,utf8_decode($this->contact->name)); $this->Ln(); $this->SetXY(30,61.5); - $this->Cell(90,5.5,utf8_decode($this->contact->getAddress())); + $this->Cell(90,5.5,utf8_decode($this->contact->address)); $this->Ln(); $this->SetXY(30,66.5); - $this->Cell(90,5.5,utf8_decode($this->contact->getPostalCode().' '.$this->contact->getCity())); + $this->Cell(90,5.5,utf8_decode($this->contact->postal_code.' '.$this->contact->city)); $this->Ln(); $this->SetXY(30,71.5); - $this->Cell(90,5.5,utf8_decode($this->contact->getCountry())); + $this->Cell(90,5.5,utf8_decode($this->contact->country)); $this->Ln(); } |