ryxeo-glpi-git / plugins / anet_epacks / front / plugin_anet_epacks.generate_odt_maintenance3.form.php @ dd95fdd4
Historique | Voir | Annoter | Télécharger (6,3 ko)
1 |
<?php
|
---|---|
2 |
|
3 |
// Génère le fichier ODT/PDF du contrat de maintenance et ajoute un debut d'information dans la table contracts
|
4 |
include "../ryxeo.php"; |
5 |
|
6 |
if(!defined('GLPI_ROOT')){ |
7 |
define('GLPI_ROOT', '../../..'); |
8 |
} |
9 |
include_once (GLPI_ROOT . "/inc/includes.php"); |
10 |
include_once("tools.php"); |
11 |
|
12 |
checkRight("config","w"); |
13 |
//checkSeveralRightsOr(array("config" => "w", "profile" => "w"));
|
14 |
|
15 |
require_once('lib/odf.php'); |
16 |
//$odf->exportAsAttachedFile();
|
17 |
//$odf->printVars();
|
18 |
//print_r($odf);
|
19 |
//$odf->saveToDisk('tmp/fichier.odt');
|
20 |
|
21 |
global $DB; |
22 |
|
23 |
//Si on demande a re-generer le fichier ODF on ne fait que ça
|
24 |
//a faire
|
25 |
if(isset($_GET['cid'])) { |
26 |
$fk_entitee = $_GET['clientid']; |
27 |
//On a demandé a re-générer le contrat
|
28 |
//print "re - creation du contrat ... ";
|
29 |
|
30 |
//Le nom du contrat
|
31 |
$query = "SELECT name FROM glpi_contracts WHERE ID='" . $_GET['cid'] . "'"; |
32 |
$result = $DB->query($query); |
33 |
$data=$DB->fetch_array($result); |
34 |
$cname=$data[0]; |
35 |
|
36 |
//les epacks
|
37 |
$query2 = "SELECT code FROM glpi_plugin_anet_epacks WHERE FK_contract='" . $_GET['cid'] . "'"; |
38 |
$result2 = $DB->query($query2); |
39 |
$epackstxt = ""; |
40 |
|
41 |
for($i = 0; $i < $DB->numrows($result2); $i++) { |
42 |
$data2 = $DB->fetch_array($result2); |
43 |
$epackstxt .= " " . $data2[0]; |
44 |
} |
45 |
|
46 |
//Le niveau du contrat de maintenance ...
|
47 |
$niveau = "-" . $_GET['niveau']; |
48 |
|
49 |
$odf = new odf("abuledu" . $niveau . ".odt"); |
50 |
setlocale(LC_TIME, "fr_FR"); |
51 |
error_reporting(E_ALL); |
52 |
$odf->setVars('date', strftime("%A %e %B %Y"), true, 'UTF-8'); |
53 |
|
54 |
//Cas spécial des contrats de partenaires ENR
|
55 |
if($_GET['niveau'] == "maintenance-enr-partenaire") { |
56 |
|
57 |
} |
58 |
else {
|
59 |
$odf->setVars('datedebut', strftime("%A %e %B %Y"), true, 'UTF-8'); |
60 |
//$odf->setVars('datefin', strftime("%A %e %B %Y", mktime(0,0,0,date("n")-1,date("j"),date("Y")+3)));
|
61 |
|
62 |
$odf->setVars('epacks', $epackstxt, true, 'UTF-8'); |
63 |
} |
64 |
|
65 |
$query2="SELECT * FROM glpi_entities, glpi_entities_data WHERE glpi_entities.ID=FK_entities AND glpi_entities.ID='$fk_entitee';"; |
66 |
//print $query2;
|
67 |
//$DB->query($query2) or die($DB->error());
|
68 |
$result2 = $DB->query($query2); |
69 |
$data2=$DB->fetch_array($result2); |
70 |
|
71 |
$odf->setVars('cname', $cname, true, 'UTF-8'); |
72 |
|
73 |
$odf->setVars('client', $data2['name'], true, 'UTF-8'); |
74 |
$odf->setVars('clienttype', "____________________", true, 'UTF-8'); |
75 |
$odf->setVars('clientcapital', "____________________", true, 'UTF-8'); |
76 |
$odf->setVars('clientrcs', "____________________", true, 'UTF-8'); |
77 |
$odf->setVars('clientsiret', "____________________", true, 'UTF-8'); |
78 |
$odf->setVars('clientadresse', $data2['address'], true, 'UTF-8'); |
79 |
$odf->setVars('clientcp', $data2['postcode']); |
80 |
$odf->setVars('clientville', $data2['town'], true, 'UTF-8'); |
81 |
$odf->setVars('clientcontact', "____________________", true, 'UTF-8'); |
82 |
|
83 |
//On créé un fichier local pour archive ...
|
84 |
$fichier = "contrats/" . date("Ymd") . "-abuledu-maintenance-" . $cname . ".odt"; |
85 |
$odf->saveToDisk($fichier); |
86 |
pushfile($fichier);
|
87 |
//On génère le fichier
|
88 |
//$odf->exportAsAttachedFile();
|
89 |
//print $texte;
|
90 |
|
91 |
|
92 |
} |
93 |
else {
|
94 |
$fk_entitee = $_POST['clientid']; |
95 |
//On créé le contrat ...
|
96 |
if(count($_POST['epack']) > 0) { |
97 |
$cname=strtoupper(anti_speciaux($_POST['clientname'])) . date("Ymd"); |
98 |
$cnum=date("Ymd"); |
99 |
//Verification que ce numero de contrat ne soit pas déjà pris ...
|
100 |
$query="SELECT count(*) FROM glpi_contracts WHERE name='" . $cname . "'"; |
101 |
//$DB->query($query) or die($DB->error());
|
102 |
$result = $DB->query($query); |
103 |
$data=$DB->fetch_array($result); |
104 |
if($data[0] > 0) { |
105 |
print "<p>AAAAAAAAaaaaaaaaaatention, ce numéro de contrat $cname / $cnum est déjà utilisé !!! cette situation ne peut arriver que si vous créez plus d'un contrat par jour ... si c'est le cas voyez avec les développeurs ...</p>\n"; |
106 |
exit;
|
107 |
} |
108 |
|
109 |
$query="INSERT INTO glpi_contracts(FK_entities,recursive,name,num,contract_type,begin_date,duration,notice,periodicity,facturation,notes,alert,renewal) |
110 |
VALUES(" . $_POST['clientid'] . ",'0','$cname','$cnum','6', NOW( ) ,'36','1','12','12','Créé par anet :: " . basename($_SERVER['SCRIPT_FILENAME']) . "','3','1' )"; |
111 |
$texte .= "<p> Création du contrat :: $query</p>\n"; |
112 |
|
113 |
$DB->query($query) or die($DB->error()); |
114 |
$contractid = $DB->insert_id(); |
115 |
|
116 |
$texte .= "<p>Pour y associer les ePacks suivants:</p> |
117 |
<ul>\n";
|
118 |
|
119 |
for($i = 0; $i < count($_POST['epack']); $i++) { |
120 |
$epack = trim($_POST['epack'][$i]); |
121 |
$epackstxt .= " $epack "; |
122 |
$query="UPDATE glpi_plugin_anet_epacks SET FK_contract='$contractid' WHERE code='$epack'"; |
123 |
$DB->query($query) or die($DB->error()); |
124 |
|
125 |
$texte .= "<li>$query</li>\n"; |
126 |
} |
127 |
$texte .= "</ul>"; |
128 |
|
129 |
} |
130 |
//Sinon c'est qu'on génère un contrat de partenaire global ENR2009
|
131 |
else {
|
132 |
$cname=strtoupper(anti_speciaux(base64_decode($_GET['clientname']))) . "-ENR2009"; |
133 |
$cnum=date("Ymd"); |
134 |
//Verification que ce numero de contrat ne soit pas déjà pris ...
|
135 |
$query="SELECT count(*) FROM glpi_contracts WHERE name='" . $cname . "'"; |
136 |
//$DB->query($query) or die($DB->error());
|
137 |
$result = $DB->query($query); |
138 |
$data=$DB->fetch_array($result); |
139 |
if($data[0] > 0) { |
140 |
print "<p>AAAAAAAAaaaaaaaaaatention, ce numéro de contrat $cname / $cnum est déjà utilisé !!! cette situation ne peut arriver que si vous créez plus d'un contrat par jour ... si c'est le cas voyez avec les développeurs ... <a href=\"plugin_anet_epacks.generate_odt_contrat_partenaire_enr2009.form.php\">Un petit retour à l'accueil</a> ?</p>\n"; |
141 |
exit;
|
142 |
} |
143 |
|
144 |
$query="INSERT INTO glpi_contracts(FK_entities,recursive,name,num,contract_type,begin_date,duration,notice,periodicity,facturation,notes,alert,renewal) |
145 |
VALUES(" . $_GET['clientid'] . ",'0','$cname','$cnum','6', NOW( ) ,'36','1','12','12','Créé par anet :: " . basename($_SERVER['SCRIPT_FILENAME']) . "','3','1' )"; |
146 |
$texte .= "<p> Création du contrat partenaire :: $query</p>\n"; |
147 |
|
148 |
$DB->query($query) or die($DB->error()); |
149 |
$contractid = $DB->insert_id(); |
150 |
|
151 |
} |
152 |
|
153 |
print "<p>Désolé pour la mise en page et cette superbe page blanche ...</p>\n"; |
154 |
|
155 |
print "<p>Les packs sont maintenant associés au contrat, <a href=\"plugin_anet_epacks.view_maintenance.php?year=" . date("Y") . "\">cliquez ici pour choisir le type de contrat que vous voulez</a> pour ce client.</p>\n"; |
156 |
} |
157 |
?>
|