17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
|| !$db->simpleQuerySingle('SELECT 1 FROM cotisations WHERE id = ?;', false, (int) $data['id_cotisation']))
{
throw new UserException('Cotisation inconnue.');
}
$data['id_cotisation'] = (int) $data['id_cotisation'];
if (empty($data['delai']) || !is_numeric($data['delai']) || (int)$data['delai'] < 0)
{
throw new UserException('Délai avant rappel invalide : doit être indiqué en nombre de jours.');
}
$data['delai'] = (int) $data['delai'];
if (!isset($data['sujet']) || trim($data['sujet']) === '')
|
|
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
|| !$db->simpleQuerySingle('SELECT 1 FROM cotisations WHERE id = ?;', false, (int) $data['id_cotisation']))
{
throw new UserException('Cotisation inconnue.');
}
$data['id_cotisation'] = (int) $data['id_cotisation'];
if (empty($data['delai']) || !is_numeric($data['delai']))
{
throw new UserException('Délai avant rappel invalide : doit être indiqué en nombre de jours.');
}
$data['delai'] = (int) $data['delai'];
if (!isset($data['sujet']) || trim($data['sujet']) === '')
|
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
/**
* Liste des rappels triés par cotisation
* @return array Liste des rappels
*/
public function listByCotisation()
{
return DB::getInstance()->simpleStatementFetch('SELECT r.*, c.intitule FROM rappels AS r
INNER JOIN cotisations ON c.id = r.id_cotisation ORDER BY r.id_cotisation, r.delai, r.sujet;');
}
/**
* Liste des rappels pour une cotisation donnée
* @param integer $id Numéro du rappel
* @return array Liste des rappels
*/
public function listForCotisation($id)
{
return DB::getInstance()->simpleStatementFetch('SELECT * FROM rappels
WHERE id_cotisation = ? ORDER BY delai, sujet;', \SQLITE3_ASSOC, (int)$id);
}
}
|
|
>
>
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
/**
* Liste des rappels triés par cotisation
* @return array Liste des rappels
*/
public function listByCotisation()
{
return DB::getInstance()->simpleStatementFetch('SELECT r.*,
c.intitule, c.montant, c.duree, c.debut, c.fin
FROM rappels AS r
INNER JOIN cotisations AS c ON c.id = r.id_cotisation ORDER BY r.id_cotisation, r.delai, r.sujet;');
}
/**
* Liste des rappels pour une cotisation donnée
* @param integer $id Numéro du rappel
* @return array Liste des rappels
*/
public function listForCotisation($id)
{
return DB::getInstance()->simpleStatementFetch('SELECT * FROM rappels
WHERE id_cotisation = ? ORDER BY delai, sujet;', \SQLITE3_ASSOC, (int)$id);
}
/**
* Remplacer les tags dans le contenu/sujet du mail
* @param string $content Chaîne à traiter
* @param array $data Données supplémentaires à utiliser comme tags (tableau associatif)
* @return string $content dont les tags ont été remplacés par le contenu correct
*/
public function replaceTagsInContent($content, $data = null)
{
$config = Config::getInstance();
$tags = [
'#NOM_ASSO' => $config->get('nom_asso'),
'#ADRESSE_ASSO' => $config->get('adresse_asso'),
'#EMAIL_ASSO' => $config->get('email_asso'),
'#SITE_ASSO' => $config->get('site_asso'),
'#URL_RACINE' => WWW_URL,
'#URL_SITE' => WWW_URL,
'#URL_ADMIN' => WWW_URL . 'admin/',
];
if (!empty($data) && is_array($data))
{
foreach ($data as $key=>$value)
{
$key = '#' . strtoupper($key);
$tags[$key] = $value;
}
}
return strtr($content, $tags);
}
}
|