aboutsummaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorCamil Staps2016-07-27 21:06:48 +0200
committerCamil Staps2016-07-27 21:06:48 +0200
commit390251ac43ca889a318369342b4663ef928349d8 (patch)
treeb2b0a68dd6fccf6fa52d2c1fc95bdd70811a60b3 /classes
parentDiscount: use Model (diff)
Contact: use Model
Diffstat (limited to 'classes')
-rw-r--r--classes/Contact.php340
-rw-r--r--classes/Correspondence.php10
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();
}