Backport SVN revision 1935 & 1936 (New script to send a marketing to a
[platal.git] / bin / marketPromo.php
1 #!/usr/bin/php5 -q
2 <?php
3
4 ini_set('include_path', '.:../include:/usr/share/php');
5 require_once('connect.db.inc.php');
6 require_once('marketing.inc.php');
7
8 $opts = getopt('f:l:m:');
9 if (($opts['f'] && $opts['f'] == '-') || empty($opts['f'])) {
10 $file = 'php://stdin';
11 } else {
12 $file = $opts['f'];
13 }
14 if (empty($opts['l']) || empty($opts['m'])) {
15 exit;
16 }
17 $matcol = intval($opts['m']);
18 $logcol = intval($opts['l']);
19 $handle = fopen($file, 'r');
20
21 while ($data = fgetcsv($handle)) {
22 $login = $data[$logcol];
23 $matri = preg_replace('/1(\d{2})(\d{3})/', '20${1}0\2', $data[$matcol]);
24 if (!is_numeric($matri)) {
25 echo "ERROR The matricule ($matri) is not a numerical value\n";
26 break;
27 }
28 $query = XDB::query("SELECT user_id
29 FROM auth_user_md5
30 WHERE matricule = {?}",
31 $matri);
32 $uid = $query->fetchOneCell();
33 if (!$uid) {
34 echo "WARNING Can't find uid for matricule $matri (login $login)\n";
35 continue;
36 }
37 $market = Marketing::get($uid, "$login@poly.polytechnique.fr");
38 if (!is_null($market)) {
39 echo "WARNING A marketing has already been to $matri on $login\n";
40 continue;
41 }
42 $market = new Marketing($uid, "$login@poly.polytechnique.fr", 'default', null, 'staff');
43 $market->add(false);
44 $market->send();
45 }
46
47 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
48 ?>
49