Browse Source

Preparation du CRM

isundil 10 years ago
parent
commit
a768362a37

+ 27 - 0
src/classes/CRM.php

@@ -0,0 +1,27 @@
+<?php
+
+class CRM
+{
+	public static function sendInitEmail($dest, $name, $id)
+	{
+		$result = print_r(array("dest" => $dest, "name" => $name, "id" => $id), true);
+		mail($dest, "[Secret santa] - Création de votre campagne", $result, "Content-Type: text/HTML");
+	}
+
+	public static function sendMail($sender, $receiver, $campain)
+	{
+		$from = $to = null;
+		foreach ($campain->getUsers() as $i)
+		{
+			if ($i->getEmail() == $sender)
+				$from = $i;
+			if ($i->getEmail() == $receiver)
+				$to = $i;
+		}
+		if ($from == null || $to == null)
+			return;
+		$result = print_r(array("from" => $from->getName(), "receiver" => $to->getName(), "camp" => array("name" => $campain->getName(), "description" => $campain->getDescr())), true);
+		mail($sender, "[Secret santa] - Résultat du tirage au sort", $result, "Content-Type: text/HTML");
+	}
+}
+

+ 2 - 2
src/classes/SecretRandomizer.class.php

@@ -34,7 +34,7 @@ class SecretRandomizer
 		return $result;
 	}
 
-	private function getNextPresent($candidates, $used = array())
+	private function getNextPresent($candidates, $used =array())
 	{
 		if (count($candidates) == count($used))
 		{
@@ -78,7 +78,7 @@ class SecretRandomizer
 			unset($candidates[$i->getUserA()][array_search($i->getUserB(), $candidates[$i->getUserA()])]);
 			unset($candidates[$i->getUserB()][array_search($i->getUserA(), $candidates[$i->getUserB()])]);
 		}
-		return new SecretResult($this->getNextPresent($candidates));
+		return new SecretResult($this->getNextPresent($candidates), $this->campain);
 	}
 }
 

+ 7 - 1
src/classes/SecretResult.class.php

@@ -1,16 +1,22 @@
 <?php
 
+require_once(dirname(__FILE__).'/CRM.php');
+
 class SecretResult
 {
 	private $result;
+	private $campain;
 
-	public function __construct($result)
+	public function __construct($result, $campain)
 	{
 		$this->result = $result;
+		$this->campain = $campain;
 	}
 
 	public function sendMails()
 	{
+		for ($i =0; $i < count($this->result); ++$i)
+			CRM::sendMail($this->result[$i], $this->result[($i +1) % count($this->result)], $this->campain);
 	}
 
 	public function getResult()

+ 2 - 0
src/create.php

@@ -2,6 +2,7 @@
 
 require_once(dirname(__FILE__) . '/classes/Controller.php');
 require_once(dirname(__FILE__) . '/classes/Secret.Entity.php');
+require_once(dirname(__FILE__) . '/classes/CRM.php');
 
 class CreateController extends Controller
 {
@@ -19,6 +20,7 @@ class CreateController extends Controller
 		$name = empty($_POST['cname']) ? NULL : $_POST['cname'];
 		$desc = empty($_POST['cdescr']) ? NULL : $_POST['cdescr'];
 		$id = SecretEntity::create($cadmin, $name, $desc);
+		CRM::sendInitEmail($cadmin, $name, $id);
 		if ($id !== false)
 		{
 			header("HTTP/1.0 302 Found");