<?php
/****************************************************************************************
SMI (Services Maintenance Interventions) est une gestion libre de maintenance et de SAV

Version 0.9.6
Copyright (C) 2006  Sylvain FATOME

This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation; 
either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program
(in the directory docs); 
if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
Boston, MA  02110-1301, USA.

Contact : galawa@free.fr
****************************************************************************************/

include ("../inc/config.inc.php");
?>
<?php include ("../inc/func.inc.php") ?>
<?php include ("../inc/func_date.inc.php") ?>
<?php include ("../inc/func_log.inc.php") ?>
<?php include ("../inc/func_txt.inc.php") ?>
<?php include ("../inc/fic.inc.php") ?>
<?php require_once ("../classes/xpm/smtp.php"); ?>
<?php require ("../inc/mail.inc.php") ?>
<?php include ("../classes/ephpu/upload_class.php") ?>
<?PHP
	Archivelog(@$HTTP_SESSION_VARS["code_log"]);
?>
<?php
	// Téléchargement uniquement si au minimum Technicien	
	if (@$HTTP_SESSION_VARS["niv_log"] >= 3)
	{
		$rep_actif = @$_POST['dir'];	
		
		switch ($HTTP_SESSION_VARS["niv_log"])
		{
		case 9 :
				$max_size = $taille_maxi_admin; // Taille maximum autorisée pour téléchargement
				break;
		case 5 :
				$max_size = $taille_maxi_cge; // Taille maximum autorisée pour téléchargement
				break;
		case 4 :
				$max_size = $taille_maxi_age; // Taille maximum autorisée pour téléchargement
				break;
		case 3 :
				$max_size = $taille_maxi_tec; // Taille maximum autorisée pour téléchargement
				break;
		default : break;
		}
			
		$my_upload = new file_upload;
		
		// Définition du chemin de stockage
		if ($rep_actif <> "")
			$my_upload->upload_dir = $url_gfc."/".$rep_actif."/";
		else
			$my_upload->upload_dir = $url_gfc."/";
		$my_upload->extensions = $extensions_ok; // specify the allowed extensions here
		$my_upload->language = "fr"; // use this to switch the messages into an other language (translate first!!!)
		$my_upload->max_length_filename = 100; // change this value to fit your field length in your database (standard 100)
		$my_upload->rename_file = true;
				
		if(@$_POST['ok'] == "Envoyer")
		{
			$codeuser = @$HTTP_SESSION_VARS["code_log"];
			
			$my_upload->the_temp_file = $_FILES['upload']['tmp_name'];
			$my_upload->the_file = $_FILES['upload']['name'];
			$my_upload->http_error = $_FILES['upload']['error'];
			$my_upload->replace = (isset($_POST['replace'])) ? $_POST['replace'] : "n"; // because only a checked checkboxes is true
			$my_upload->do_filename_check = (isset($_POST['check'])) ? $_POST['check'] : "n"; // use this boolean to check for a valid filename
			$new_name = (isset($_POST['name'])) ? $_POST['name'] : "";
			$new_name = str_upload($new_name);
			if ($my_upload->upload($new_name))
			{ // new name is an additional filename information, use this to rename the uploaded file
				$full_path = $my_upload->upload_dir.$my_upload->file_copy;
				$info = $my_upload->get_uploaded_file_info($full_path);
				// ... or do something like insert the filename to the database

				$nouveau_nom = $my_upload->upload_dir.$new_name.strtolower(strrchr($_FILES['upload']['name'],"."));
				$desc = $_POST['desc'];
				
				$conn = mysql_connect(DBHOST, DBUSER, DBPASS);
				mysql_select_db(DBNAME);
				$rech = "SELECT * FROM " .TBFIC. " WHERE fic_nom = '".$nouveau_nom."'";
				$rs = mysql_query($rech)or die(mysql_error());
				if (mysql_num_rows($rs) == 1) // On a trouvé un enregistrement...c'est un remplacement..on fait une mise à jour
				{
					$rech = "UPDATE `" .TBFIC;
					$rech .= "` SET `fic_desc`='".$desc."', `fic_datecrea`='".$datea."', `fic_codecrea`='".$codeuser."'";
					$rech .=" WHERE `fic_nom` = '".$nouveau_nom."'";
				}
				else // On a pas trouvé, on ajoute l'enregistrement
				{
					$rech = "INSERT INTO " .TBFIC;
					$rech .= " (fic_nom,fic_desc,fic_datecrea,fic_codecrea,fic_nbtel) VALUES";
					$rech .= " ('$nouveau_nom','$desc','$datea','$codeuser','')";
				}
				$rs = mysql_query($rech) or die(mysql_error());
				mysql_close($conn);
	
				// Envoi d'email vers l'administrateur
				envoi_mail("Téléchargement de fichier","fic","cre","xxx","wm",$nouveau_nom,"","",FALSE);


				// Envoi d'email vers l'agence
				if ((@$HTTP_SESSION_VARS["niv_log"] == 9) OR (@$HTTP_SESSION_VARS["niv_log"] == 5))
				{
					// On vérifie si on est dans le répertoire d'une agence pour lui envoyer un email
					$pos = strpos($rep_actif,"agences");
					if ($pos === FALSE)
					{
						// On est pas le répertoire agences, pas besoin d'envoyer d'email
					}
					else
					{
						// On y est..si on est dans un sous répertoire de "agences" (donc dans un répertoire privé), on peut envoyer un email
						if ($rep_actif <> "agences")
						{
							$tab_url = explode("/",$rep_actif);
							$code_agence = $tab_url[1];
							$row = lit_enr_age($code_agence);
							if (is_array($row))
							{
								extract($row);

								// Envoi de l'email
								$mail = new SMTP;
								$mail->Delivery('local');
								$mail->Priority('high');
								
								// Entête de l'email
							
								//Expédié par
								$mail->From($admin_mail, $admin_name);
							
								//Réponse automatique à...
								$mail->AddHeader('Reply-To', $admin_mail);
							
								//Gestion des retours d'erreurs
								$mail->AddHeader('Return-Path', $admin_mail);
								$mail->AddHeader('Errors-To', $admin_mail);
							
								// Sujet de l'email
								$sujet = "Téléchargement de fichier dans votre répertoire privé";

								// Corps de l'email
								$txtcorps = "Bonjour,<br>";
								$txtcorps.= "<br>";
								
								$rep_aff = str_replace("agences/".$tab_url[1],"",$rep_actif);
								if (trim($rep_aff) <> "")
									$txtcorps.= "Nous vous signalons le téléchargement du fichier <strong><em>".$desc."</em></strong> dans votre répertoire privé, sous dossier <strong><em>".$rep_aff."</em></strong>.<br>";
								else
									$txtcorps.= "Nous vous signalons le téléchargement du fichier <strong><em>".$desc."</em></strong> dans votre répertoire privé.<br>";
								$txtcorps.= "<br>";
								$txtcorps.="Merci.<br>";
								$txtcorps.="<br>";
								$txtcorps.="Le Webmaster";

								// Destinataires
								$mail->AddTo($age_emaild);
								if ($age_emailt <> $age_emailt)
									$mail->AddTo($age_emailt);

								$mail->Html($txtcorps);
								$sent = $mail->Send($sujet);
							}
						}
					}
				}


				// Envoi d'email vers le client

				// On vérifie si on est dans le répertoire d'un client pour lui envoyer un email
				$pos = strpos($rep_actif,"clients");
				if ($pos === FALSE)
				{
					// On est pas le répertoire clients, pas besoin d'envoyer d'email
				}
				else
				{
					// On y est..si on est dans un sous répertoire de "clients" (donc dans un répertoire privé), on peut envoyer un email
					if ($rep_actif <> "clients")
					{
						$tab_url = explode("/",$rep_actif);
						$code_client = $tab_url[1];
						$row = lit_enr_cli($code_client);
						if (is_array($row))
						{
							extract($row);
							
							// Envoi de l'email
							$mail = new SMTP;
							$mail->Delivery('local');
							$mail->Priority('high');
							
							// Entête de l'email
						
							//Expédié par
							$mail->From($admin_mail, $admin_name);
						
							//Réponse automatique à...
							$mail->AddHeader('Reply-To', $admin_mail);
						
							//Gestion des retours d'erreurs
							$mail->AddHeader('Return-Path', $admin_mail);
							$mail->AddHeader('Errors-To', $admin_mail);
						
							// Sujet de l'email
							$sujet = "Téléchargement de fichier dans votre répertoire privé";

							// Corps de l'email
							$txtcorps = "Bonjour,<br>";
							$txtcorps.= "<br>";
							$rep_aff = str_replace("clients/".$tab_url[1],"",$rep_actif);
							if (trim($rep_aff) <> "")
								$txtcorps.= "Nous vous signalons le téléchargement du fichier <strong><em>".$desc."</em></strong> dans votre répertoire privé, sous dossier <strong><em>".$rep_aff."</em></strong>.<br>";
							else
								$txtcorps.= "Nous vous signalons le téléchargement du fichier <strong><em>".$desc."</em></strong> dans votre répertoire privé.<br>";
							$txtcorps.= "<br>";
							$txtcorps.="Merci.<br>";
							$txtcorps.="<br>";
							$txtcorps.="Le Webmaster";

							// Destinataires
							$mail->AddTo($cli_email);

							$conn = mysql_connect(DBHOST, DBUSER, DBPASS);
							mysql_select_db(DBNAME);
	
							$rech = "SELECT DISTINCT ccli_email FROM `" .TBCCLI. "` WHERE `ccli_codecli` = '$cli_code'  AND `ccli_mailt` = '1'";
							$rs = mysql_query($rech) or die(mysql_error());
							if (mysql_num_rows($rs) <> 0)
							{
								if ($row = mysql_fetch_array($rs)) 
								{
									extract($row);
									
									if ($ccli_email <> $cli_email) // Pour éviter les doubles envois
										$mail->AddTo($ccli_email);
								}
							}
							mysql_free_result($rs);
							mysql_close($conn);

							$mail->Html($txtcorps);
							$sent = $mail->Send($sujet);

							// Copie vers l'agence "propriétaire" du client si ce n'est pas elle qui a téléchargé
							if ((@$HTTP_SESSION_VARS["niv_log"] == 9) OR (@$HTTP_SESSION_VARS["niv_log"] == 5))
							{
								if ($cli_prop <> NULL)
								{
									$row = lit_enr_age($cli_prop);
									if (is_array($row))
									{
										extract($row);

										// Envoi de l'email
										$mail = new SMTP;
										$mail->Delivery('local');
										$mail->Priority('high');
										
										// Entête de l'email
									
										//Expédié par
										$mail->From($admin_mail, $admin_name);
									
										//Réponse automatique à...
										$mail->AddHeader('Reply-To', $admin_mail);
									
										//Gestion des retours d'erreurs
										$mail->AddHeader('Return-Path', $admin_mail);
										$mail->AddHeader('Errors-To', $admin_mail);
									
										// Sujet de l'email
										$sujet = "Téléchargement de fichier chez un de vos clients";

										// Corps de l'email
										$txtcorps = "Bonjour,<br>";
										$txtcorps.= "<br>";
										
										if (trim($rep_aff) <> "")
											$txtcorps.= "Nous vous signalons le téléchargement du fichier <strong><em>".$desc."</em></strong> dans le répertoire privé du client <strong><em>".$tab_url[1]."</em></strong>, sous dossier <strong><em>".$rep_aff."</em></strong>.<br>";
										else
											$txtcorps.= "Nous vous signalons le téléchargement du fichier <strong><em>".$desc."</em></strong> dans le répertoire privé du client <strong><em>".$tab_url[1]."</em></strong>.<br>";
										$txtcorps.= "<br>";
										$txtcorps.="Merci.<br>";
										$txtcorps.="<br>";
										$txtcorps.="Le Webmaster";

										// Destinataires
										$mail->AddTo($age_emaild);
										if ($age_emailt <> $age_emaild)
											$mail->AddTo($age_emaild);

										$mail->Html($txtcorps);
										$sent = $mail->Send($sujet);
									}
								}
							}
						}
					}
				}

				$msg = "Téléchargement réussi !";
				$retourliste = TRUE;
			}
			else
			{
				$retourliste = FALSE;
				$msg = $my_upload->show_error_string();
			}
		}
	}
	else
	{
		$retourliste = FALSE;
		$msg = "Vous n'avez pas le droit de télécharger des fichiers.";
	}
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>SMI - ESPACE PRIVE : T&eacute;l&eacute;chargement de fichier</title>

<!-- Feuille de style pour les affichages courants -->
<link href="../css/smi.css" rel="stylesheet" type="text/css">

<!-- Feuille de style & Script pour le menu -->
<link href="../inc/menu.css" rel="stylesheet" type="text/css">
<script language="JavaScript" src="../coolmenus/coolmenus4.js"></script>

<!-- Scripts Javascript pour affichages -->
<script language="JavaScript" src="../inc/aff.js"></script>

</head>
<body>

<?php 
	include_once ("../inc/entete.php"); 
?>

<p align="center"><span class="titrepage">TELECHARGEMENT DE FICHIER </span></p>
<p align="center">&nbsp;</p>
<p align="center"><?php echo $msg; ?></p>
<?PHP
	$chemin_retour="fic_down.php?dir=".$rep_actif."&ope=".@$_POST['ope']."&date=".@$_POST['date']."&search=".$_POST['search'];
	if ($retourliste == FALSE) { 
?>
	<table width="100%"  border="0">
	  <tr>
		<td width="3%">&nbsp;</td>
		<td width="44%"><div align="right"><a href="<?PHP echo $chemin_retour;?>"><img src="../img/liste.gif" width="33" height="34" border="0" align="absmiddle"></a> <a href="<?PHP echo $chemin_retour;?>" class="annot_gras_it">Retour &agrave; la liste</a></div></td>
		<td width="7%">&nbsp;</td>
		<td width="43%"><a href="index.php"><em><img src="../img/index.gif" width="48" height="48" border="0" align="absmiddle"> </em><span class="annot_gras_it">Revenir &agrave; l'accueil</span> </a></td>
		<td width="3%">&nbsp;</td>
	  </tr>
	</table>
<?PHP } else { ?>
	<script type="text/javascript">
	window.setTimeout("location=('<?PHP echo $chemin_retour;?>');",2000)
	</script>
	<p align="center" class="annot_std_it">Retour à la liste dans 2 secondes...</p>
<?PHP } ?>

<?php 
	include_once ("pied.php")
?>

