Moving to GitHub.
[platal.git] / bin / marketPromo.php
CommitLineData
5be526be
FB
1#!/usr/bin/php5 -q
2<?php
3
4ini_set('include_path', '.:../include:/usr/share/php');
42f5f007
SJ
5require_once 'connect.db.inc.php';
6require_once 'marketing.inc.php';
5be526be
FB
7
8$opts = getopt('f:l:m:');
aab2ffdd
SJ
9if (($opts['f'] && $opts['f'] == '-') || empty($opts['f'])) {
10 $file = 'php://stdin';
5be526be
FB
11} else {
12 $file = $opts['f'];
13}
14if (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
21while ($data = fgetcsv($handle)) {
42f5f007
SJ
22 $login = $data[$logcol];
23 $xorgid = preg_replace('/1(\d{2})(\d{3})/', '20${1}0\2', $data[$matcol]);
24 if (!is_numeric($xorgid)) {
25 echo "ERROR The matricule ($xorgid) is not a numerical value.\n";
5be526be
FB
26 break;
27 }
42f5f007
SJ
28 $query = XDB::query("SELECT a.uid
29 FROM profiles AS p
30 INNER JOIN account_profiles AS ap ON (p.pid = ap.pid AND FIND_IN_SET('owner', perms)
31 INNER JOIN accounts AS a ON (a.uid = ap.uid)
32 WHERE p.xorg_id = {?}",
33 $xorgid);
5be526be
FB
34 $uid = $query->fetchOneCell();
35 if (!$uid) {
42f5f007 36 echo "WARNING Can't find uid for matricule $xorgid (login $login)\n";
5be526be
FB
37 continue;
38 }
39 $market = Marketing::get($uid, "$login@poly.polytechnique.fr");
40 if (!is_null($market)) {
42f5f007 41 echo "WARNING A marketing has already been to $xorgid on $login\n";
5be526be
FB
42 continue;
43 }
44 $market = new Marketing($uid, "$login@poly.polytechnique.fr", 'default', null, 'staff');
45 $market->add(false);
46 $market->send();
47}
48
448c8cdc 49// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
5be526be
FB
50?>
51