Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-glpi-git / htdocs / mac / contract.php @ e213dd82

Historique | Voir | Annoter | Télécharger (3,54 ko)

1
<?php
2
/*
3
  gestion des contrats - affichage et rappel
4
  http://www.abuledu.net/mac/contract.php/view=toto/mac=08:D8:34:B8:90:CD
5
*/
6

    
7
$g_http_request = $_SERVER['REQUEST_URI'];
8
preg_match("/.*mac=(.*)/",$_SERVER['REQUEST_URI'],$regs);
9
$mac  = addslashes(strtoupper($regs[1]));
10

    
11
preg_match("/.*view=(.*)\/mac=/",$_SERVER['REQUEST_URI'],$regs);
12
$view = addslashes($regs[1]);
13

    
14
//print "on a $mac et $view";
15

    
16
//Ou du POST
17
if(trim($mac) == "") {
18
  $mac = addslashes(strtoupper($_POST['mac']));
19
}
20

    
21
$_SERVER['REQUEST_URI'] = "";
22
$_SERVER['HTTP_REFERER'] = "";
23
define('GLPI_ROOT', '..');
24
include (GLPI_ROOT . "/inc/includes.php");
25

    
26
//On recupere l'id du serveur dont la macaddr correspond
27
$query = "SELECT FK_computers AS ID FROM glpi_computer_device WHERE specificity ='" . $mac . "'";
28
$result = $DB->query($query);
29
$data = $DB->fetch_assoc($result);
30
//print_r($data);
31

    
32
if($data['ID']) {
33
  $serverid=$data['ID'];
34
  
35
  //Quand on a le serverID il faut trouver l'entite dans laquelle il se trouve
36
  $queryEntity = "SELECT FK_entities AS EntityID FROM glpi_computers WHERE ID='$serverid'";
37
  $resultEntity = $DB->query($queryEntity);
38
  $dataEntity = $DB->fetch_assoc($resultEntity);
39
  $entityID = $dataEntity['EntityID'];
40
  
41
  //Et ensuite on cherche dans les contrats ce qui correspond
42
  // -> contrat non supprime
43
  // -> contrat correspondant a ce serveur
44
  // -> contrat de type 1 ()
45
  $query2 = "SELECT UNIX_TIMESTAMP(c.begin_date + INTERVAL c.duration MONTH) as endcontract,c.* FROM glpi_contracts as c WHERE 
46
  c.deleted='0' AND
47
  c.FK_entities='$entityID'";
48

    
49
  //print $query2;
50
  $result2 = $DB->query($query2);
51
  $data2 = $DB->fetch_assoc($result2);
52

    
53
  //print_r($data2);
54
  //print mktime() . " -- ";
55
  $endc = $data2['endcontract'];
56
  if($endc > mktime()) {
57
    if($view == "web") {
58
      header('Location: http://www.abuledu.net/mac/view/direct.php');
59
      exit;
60
    }
61
    else {
62
      print $endc . ":" . "DIRECT:" . $data2['name'] . ":";
63
    }
64
  }
65
  //Reconduction automatique ...
66
  else if($endc < mktime() && $data2['recursive']=='1') {
67
    if($view == "web") {
68
      header('Location: http://www.abuledu.net/mac/view/direct.php');
69
      exit;
70
    }
71
    else {
72
      print mktime(0,0,0, date("m",$endc)+$data2['periodicity'], date("d",$endc), date("Y",$endc)) . ":" . "DIRECT:" . $data2['name'] . ":" . "Renouvellement automatique";
73
    }
74
  }
75
  else {
76
    //Le serveur a ete installe par un partenaire qui a un contrat global mais pas encore d'avenant pour ce serveur
77
    //1 on cherche le partenaire qui a installe ce serveur
78
    $query3 = "SELECT UNIX_TIMESTAMP(c.begin_date + INTERVAL c.duration MONTH) as endcontract,c.* FROM glpi_plugin_anet_epacks,glpi_contracts as c WHERE FK_serveur='" . $serverid . "' AND c.FK_entities=FK_clientderyxeo";
79
    //print $query3;
80
    $result3 = $DB->query($query3);
81
    $data3 = $DB->fetch_assoc($result3);
82
    /*
83
    print "<pre>";
84
    print_r($data3);
85
    print "</pre>";
86
    */
87
    $endc = $data3['endcontract'];
88
    if($endc > mktime()) {
89
      if($view == "web") {
90
        header('Location: http://www.abuledu.net/mac/view/partner.php');
91
        exit;
92
      }
93
      else {
94
        print $endc . ":PARTNER" . ":" . $data3['name'] . ":" . "Avenant pour ce serveur manquant";
95
      }
96
    }
97
    else{
98
      //Le serveur existe dans notre base mais c'est tout
99
      if($view == "web") {
100
        header('Location: http://www.abuledu.net/mac/view/waiting.php');
101
        exit;
102
      }
103
      else {
104
        print "000:WAITING:000:";
105
      }
106
    }
107
  }
108
 }
109
 else {
110
   if($view == "web") {
111
     header('Location: http://www.abuledu.net/mac/view/forbidden.php');
112
     exit;
113
   }
114
   else {
115
     print "000:FORBIDDEN:000:NOT";
116
   }
117
 }
118

    
119
?>
Redmine Appliance - Powered by TurnKey Linux