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

Version 0.9.9

Copyright (C) 2006-2009  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

Web : http://smitst.homelinux.com
****************************************************************************************/


// Vérification des tentatives de hack
$pos=strpos($_SERVER['PHP_SELF'],"inc.php");
if ($pos===FALSE)
	$ok_inc=TRUE;
else
	$ok_inc=FALSE;
if ($ok_inc==FALSE) header("Location: ../index.php");

if (!isset($_SESSION["lng"])) $_SESSION["lng"]="fr";
include_once("../lng/".$_SESSION["lng"].".inc.php"); // Paramètres de language
include_once("../inc/config.inc.php");
include_once("../inc/fic_age.inc.php");
include_once("../inc/fic_do.inc.php");
include_once("../inc/fic_st.inc.php");
include_once("../inc/fic_hum.inc.php");
include_once("../inc/fic_int.inc.php");
include_once("../inc/fic_tec.inc.php");
include_once("../inc/fic_txt.inc.php");
include_once("../inc/func.inc.php");
include_once("../inc/func_date.inc.php");
include_once("../inc/func_log.inc.php");
include_once("../inc/func_geo.inc.php");
include_once("../inc/func_mail.inc.php");
include_once("../inc/func_txt.inc.php");
include_once("../inc/func_txtcm.inc.php");
include_once("../classes/phpmailer/class.phpmailer.php");
include_once("../inc/mail.inc.php");
Archivelog(@$_SESSION["code_log"]);

// Variables Formulaire
$titre = stripslashes(strip_tags(trim(@$_POST["titre"])));
$td = strip_tags(trim(@$_POST["td"]));
$tl = strip_tags(trim(@$_POST["tl"]));

$datecrea = datefrang(strip_tags(trim(@$_POST["datecreaf"])));
$dateout = datefrang(strip_tags(trim(@$_POST["dateoutf"])));
$emploi = strip_tags(trim(@$_POST["emploi"]));
$qualif = strip_tags(trim(@$_POST["qualif"]));
$niveau = strip_tags(trim(@$_POST["niveau"]));
$echelon = strip_tags(trim(@$_POST["echelon"]));
$coeff = strip_tags(trim(@$_POST["coeff"]));
$dconges = datefrang(strip_tags(trim(@$_POST["dconges"])));
$fconges = datefrang(strip_tags(trim(@$_POST["fconges"])));
$empl = strip_tags(trim(@$_POST["empl"]));
$codeage="";
$codedo="";
$codest="";
switch ($tl)
{
	case 1 :
		$codeage = $empl;
		// On vérifie si cette agence est aussi sous-traitant
		$row=lit_enr_stage($empl);
		if (is_array($row))
			$codest="S".substr($empl,1,strlen($empl));
		break;
	case 2 :
		$codedo = $empl;
		break;
	case 3 :
		$codest = $empl;
		// On vérifie si ce sous-traitant est aussi agence
		$row=lit_enr_st($empl);
		if (is_array($row))
		{
			extract($row);
			if (trim($st_codeage)<>"")
				$codeage=$st_codeage;
		}
		break;
	default :
		break;
}
$code = strip_tags(trim(@$_POST["code"]));
$civil = str_majuscules(strip_tags(trim(@$_POST["civil"])));
$prenom = ucwords(strtolower(strip_tags(str_escape(trim(@$_POST["prenom"])))));
$nom = str_majuscules(strip_tags(str_escape(trim(@$_POST["nom"]))));
$adr1 = str_majuscules(strip_tags(str_escape(trim(@$_POST["adr1"]))));
$adr2 = str_majuscules(strip_tags(str_escape(trim(@$_POST["adr2"]))));
$dep = str_majuscules(strip_tags(trim(@$_POST["dep"])));
$ville = str_majuscules(strip_tags(trim(@$_POST["ville"])));
$pays = str_majuscules(strip_tags(trim(@$_POST["pays"])));
$telf = strip_tags(trim(@$_POST["telf"]));
$fax = strip_tags(trim(@$_POST["fax"]));
$telp = strip_tags(trim(@$_POST["telp"]));
$email = strtolower(strip_tags(trim(@$_POST["email"])));
$mess = strtolower(strip_tags(trim(@$_POST["mess"])));
$nota = str_escape(trim(@$_POST["nota"]));

$codeuser = @$_SESSION["code_log"];

$pass = cremdp(FALSE);
$passcrypt = md5($pass);

$retourliste = TRUE;

switch ($td)
{
	// Ajout de la fiche Technicien
	case "add" :
		$codet = crecode("T",TRUE);
	
		$conn = mysql_connect(DBHOST, DBUSER, DBPASS);
		mysql_select_db(DBNAME);
	
		$rech = "SELECT * FROM " .TBTEC. " WHERE tec_code = '$codet'";
		$rs = mysql_query($rech) or die(mysql_error());
		if (mysql_num_rows($rs) == 0)
		{
			$rech = "INSERT INTO " .TBTEC;
			$rech .= " (tec_datecrea,tec_codecrea,tec_datemod,tec_codemod,tec_emploi,tec_qualif,tec_niveau,tec_echelon,tec_coeff,tec_codeage,tec_codedo,tec_codest,tec_code,tec_pass,tec_civilite,tec_prenom,tec_nom,tec_adr1,tec_adr2,tec_dep,tec_ville,tec_codepays,tec_telf,tec_fax,tec_telp,tec_email,tec_mess,tec_nota) VALUES";
			$rech .= " ('$datea','$codeuser','$datecrea','$codeuser','$emploi','$qualif','$niveau','$echelon','$coeff','$codeage','$codedo','$codest','$codet','$passcrypt','$civil','$prenom','$nom','$adr1','$adr2','$dep','$ville','$pays','$telf','$fax','$telp','$email','$mess','$nota')";
			$rs2 = mysql_query($rech) or die(mysql_error());
	
			// Ajout du compte pour connexion
			// Niveau par défaut : 3/7/11
			// Actif par défaut
			switch ($tl)
			{
				case 1 :
					$nivpw=3;
					break;
				case 2 :
					$nivpw=7;
					break;
				case 3 :
					$nivpw=11;
					break;
				default :
					break;
			}
			$log_ip = $_SERVER['REMOTE_ADDR']; // Récupération adresse IP
			$rech = "INSERT INTO " .TBPW. "(pw_code,pw_pass,pw_level,pw_lastsuccess,pw_lastip,pw_actif) VALUES ('$codet','$passcrypt','$nivpw','$dateheurea','$log_ip','1')";
			$rs2 = mysql_query($rech) or die(mysql_error());
	
			$msg = $txt_fiche_add;
			$code=$codet;
		}
		else
		{
			$msg = $txt_fiche_exist;
			$retourliste = FALSE;
		}
		mysql_free_result($rs);
		mysql_close($conn);
	
		if ($retourliste == TRUE)
		{
			switch ($tl)
			{
				case 1 :
					// Envoi d'email vers le technicien
					envoi_mail("","Ouverture de votre compte technicien","tec","cre","xxx","tec",$codet,$pass,"",TRUE);
					// Envoi d'email vers l'agence si pas créé par elle
					if ((@$_SESSION["niv_log"]<>4) AND (@$_SESSION["niv_log"]<>3))
						envoi_mail("","Ouverture d'un compte technicien","tec","cre","xxx","age",$codet,$pass,"",FALSE);
					// Envoi d'email vers le centre de gestion
					envoi_mail("","Création de technicien","tec","cre","xxx","cdg",$codet,"","",FALSE);
					break;
				case  2 :
					// Envoi d'email vers le technicien
					envoi_mail("","Ouverture de votre compte technicien","tec","cre2","xxx","tec",$codet,$pass,"",TRUE);
					// Envoi d'email vers le donneur d'ordre si pas créé par lui
					if ((@$_SESSION["niv_log"]<>7) AND (@$_SESSION["niv_log"]<>6))
						envoi_mail("","Ouverture d'un compte technicien","tec","cre","xxx","do",$codet,$pass,"",FALSE);
					// Envoi d'email vers le centre de gestion
					envoi_mail("","Création de technicien","tec","cre2","xxx","cdg",$codet,"","",FALSE);
					break;
				case  3 :
					// Envoi d'email vers le technicien
					envoi_mail("","Ouverture de votre compte technicien","tec","cre3","xxx","tec",$codet,$pass,"",TRUE);
					// Envoi d'email vers le sous-traitant si pas créé par lui
					if ((@$_SESSION["niv_log"]<>11) AND (@$_SESSION["niv_log"]<>10))
						envoi_mail("","Ouverture d'un compte technicien","tec","cre","xxx","st",$codet,$pass,"",FALSE);
					// Envoi d'email vers le centre de gestion
					envoi_mail("","Création de technicien","tec","cre3","xxx","cdg",$codet,"","",FALSE);
					break;
				default :
					break;
			}
		}
		break;
		
	// MAJ de la fiche Technicien
	case "edit" :
		$existeint = FALSE;
		$existeot = FALSE;
	
		if (formatedate($dateout)<> "") // Si le technicien n'est plus salarié, quelques contrôles sont nécessaires
		{
			// Vérifie si utilisé dans une fiche intervention non close
			if (exist_tec_in_int_ouv($code) == TRUE)
			{
				$existeint = TRUE;
				$msg = "Il faut d'abord clore ou modifier les interventions en cours dont ce technicien est responsable";
				$msg.="<br /><br />Avant de saisir une date de d&eacute;part pour ce technicien";
				$retourliste = FALSE;
			}

			// Vérifie si utilisé dans une fiche bon de travail non close
			if (exist_tec_in_ot_ouv($code) == TRUE)
			{
				$existeot = TRUE;
				$msg = "Il faut d'abord clore ou modifier les bons de travail en cours dont ce technicien est responsable";
				$msg.="<br /><br />Avant de saisir une date de d&eacute;part pour ce technicien";
				$retourliste = FALSE;
			}
		}
	
		if (($existeint == FALSE) AND ($existeot == FALSE))
		{
			$parti=0;
			// Plus besoin de dates de congés si licencié
			if (formatedate($dateout)<> "")
			{
				$dconges="";
				$fconges="";
				$parti=1;
			}
	
			$conn = mysql_connect(DBHOST, DBUSER, DBPASS);
			mysql_select_db(DBNAME);
	
			// MAJ de la fiche Technicien
			$rech = "UPDATE `" .TBTEC. "` SET `tec_datemod`='".$datea."', `tec_codemod`='".$codeuser."', `tec_emploi`='".$emploi."', `tec_qualif`='".$qualif."',";
			$rech.= " `tec_niveau`='".$niveau."',`tec_echelon`='".$echelon."',`tec_coeff`='".$coeff."',`tec_congd`='".$dconges."',";
			$rech.= " `tec_congf`='".$fconges."', `tec_codeage`='".$codeage."', `tec_codedo`='".$codedo."', `tec_codest`='".$codest."', `tec_civilite`='".$civil."',";
			$rech.= " `tec_prenom`='".$prenom."', `tec_nom`='".$nom."', `tec_adr1`='".$adr1."', `tec_adr2`='".$adr2."', ";
			$rech.= "`tec_dep`='".$dep."', `tec_ville`='".$ville."', `tec_codepays`='".$pays."', `tec_telf`='".$telf."', ";
			$rech.= "`tec_fax`='".$fax."', `tec_telp`='".$telp."', `tec_email`='".$email."', `tec_mess`='".$mess."',";
			$rech.= " `tec_nota`='".$nota."', `tec_out`='".$parti."', `tec_dateout`='".$dateout."'  WHERE `tec_code` = '".$code."'";
			$rs = mysql_query($rech) or die(mysql_error());
	
			if (formatedate($dateout)<> "")
			{
				// Désactivation du mot de passe rattaché
				$rech = "UPDATE `" .TBPW.  "` SET `pw_actif`='0'  WHERE `pw_code` = '".$code."'";
				$rs = mysql_query($rech) or die(mysql_error());
	
				// On rend l'agence employeur propriétaire des fichiers de ce technicien
				$rech = "UPDATE `" .TBFIC;
				$rech.= "` SET `fic_codecrea`='".@$_SESSION["code_age"]."'  WHERE `fic_codecrea` = '".$code."'";
				$rs = mysql_query($rech) or die(mysql_error());
	
			}
	
			mysql_close($conn);
	
			$msg = $txt_fiche_mod;
	
			if (formatedate($dateout)<> "")
			{
				switch ($tl)
				{
					case 1 :
						// Envoi d'email vers l'agence si licenciement pas effectué par elle
						if ((@$_SESSION["niv_log"]<>4) AND (@$_SESSION["niv_log"]<>3))
							envoi_mail("","Départ d'un technicien","tec","lic","xxx","age",$code,"","",FALSE);
						// Envoi d'email vers le centre de gestion
						envoi_mail("","Départ de technicien","tec","lic","xxx","cdg",$code,"","",TRUE);
						break;
					case  2 :
						// Envoi d'email vers le donneur d'ordres si licenciement pas effectué par lui
						if ((@$_SESSION["niv_log"]<>7) AND (@$_SESSION["niv_log"]<>6))
							envoi_mail("","Départ d'un technicien","tec","lic","xxx","do",$code,"","",FALSE);
						// Envoi d'email vers le centre de gestion
						envoi_mail("","Départ de technicien","tec","lic2","xxx","cdg",$code,"","",TRUE);
						break;
					case  3 :
						// Envoi d'email vers le sous-traitant si licenciement pas effectué par lui
						if ((@$_SESSION["niv_log"]<>11) AND (@$_SESSION["niv_log"]<>10))
							envoi_mail("","Départ d'un technicien","tec","lic","xxx","st",$code,"","",FALSE);
						// Envoi d'email vers le centre de gestion
						envoi_mail("","Départ de technicien","tec","lic3","xxx","cdg",$code,"","",TRUE);
						break;
					default :
						break;
				}
			}
		}
		break;
		
	// Suppression de la fiche Technicien
	case "del" :
		$existeint1 = FALSE;
		$existeint2 = FALSE;
		$existeot = FALSE;
		$existerl = FALSE;
		$existerp = FALSE;
		$msg = "";
	
		// Vérifie si utilisé dans une fiche intervention
		if (exist_tec_in_int($code) == TRUE)
		{
			$existeint1 = TRUE;
			$msg = "Ce technicien est pr&eacute;sent dans une fiche intervention.<br />Si vous voulez le d&eacute;sactiver, il suffit de le passer en mode 'licenci&eacute;'.";
			$retourliste = FALSE;
		}
	
		// Vérifie si utilisé dans une fiche intervention en temps que code de création
		if (exist_in_int_codecrea($code) == TRUE)
		{
			$existeint2 = TRUE;
			if ($msg <> "")
				$msg .= "<br /><br />";
			$msg.= "Ce technicien a d&eacute;j&agrave; saisi des interventions (vous ne pouvez ne pouvez pas le supprimer).<br />Si vous voulez le d&eacute;sactiver, il suffit de le noter 'licenci&eacute;'.";
			$retourliste = FALSE;
		}
	
		// Vérifie si utilisé dans une fiche bon de travail
		if (exist_tec_in_ot($code) == TRUE)
		{
			$existeot = TRUE;
			if ($msg <> "")
				$msg .= "<br /><br />";
			$msg.= "Ce technicien a d&eacute;j&agrave; saisi des bons de travail (vous ne pouvez ne pouvez pas le supprimer).<br />Si vous voulez le d&eacute;sactiver, il suffit de le noter 'licenci&eacute;'.";
			$retourliste = FALSE;
		}

		// Vérifie si utilisé dans une fiche relevé licences
		if (exist_tec_in_rl($code) == TRUE)
		{
			$existerl = TRUE;
			if ($msg <> "")
				$msg .= "<br /><br />";
			$msg.= "Ce technicien est pr&eacute;sent dans une fiche relev&eacute; licence.<br />Si vous voulez le d&eacute;sactiver, il suffit de le passer en mode 'licenci&eacute;'.";
			$retourliste = FALSE;
		}
	
		// Vérifie si utilisé dans une fiche relevé produits
		if (exist_tec_in_rp($code) == TRUE)
		{
			$existerp = TRUE;
			if ($msg <> "")
				$msg .= "<br /><br />";
			$msg.= "Ce technicien est pr&eacute;sent dans une fiche relev&eacute; mat&eacute;riel.<br />Si vous voulez le d&eacute;sactiver, il suffit de le passer en mode 'licenci&eacute;'.";
			$retourliste = FALSE;
		}
	
		if  (($existeint1 == FALSE) AND ($existeint2 == FALSE) AND ($existeot == FALSE) AND ($existerl == FALSE) AND ($existerp == FALSE))
		{
			switch ($tl)
			{
				case 1 :
					if (trim($codest)<>"")
					{
						// Envoi d'email vers l'agence si suppression pas effectuée par elle
						if ((@$_SESSION["niv_log"]<>4) AND (@$_SESSION["niv_log"]<>3))
							envoi_mail("","Suppression d'un technicien","tec","del","xxx","age",$code,"","",FALSE);
						// Envoi d'email vers le centre de gestion
						envoi_mail("","Suppression de technicien","tec","del","xxx","cdg",$code,"","",TRUE);
					}
					break;
				case  2 :
					// Envoi d'email vers le donneur d'ordres si suppression pas effectuée par lui
					if ((@$_SESSION["niv_log"]<>7) AND (@$_SESSION["niv_log"]<>6))
						envoi_mail("","Suppression d'un technicien","tec","del","xxx","do",$code,"","",FALSE);
					// Envoi d'email vers le centre de gestion
					envoi_mail("","Suppression de technicien","tec","del2","xxx","cdg",$code,"","",TRUE);
					break;
				case  3 :
					if (trim($codeage)<>"")
					{
						// Envoi d'email vers le sous-traitant si suppression pas effectuée par lui
						if ((@$_SESSION["niv_log"]<>11) AND (@$_SESSION["niv_log"]<>10))
							envoi_mail("","Suppression d'un technicien","tec","del","xxx","st",$code,"","",FALSE);
						// Envoi d'email vers le centre de gestion
						envoi_mail("","Suppression de technicien","tec","del3","xxx","cdg",$code,"","",TRUE);
					}
					break;
				default :
					break;
			}
	
			$conn = mysql_connect(DBHOST, DBUSER, DBPASS);
			mysql_select_db(DBNAME);
	
			switch ($tl)
			{
				case 1 :
					// On rend l'agence employeur propriétaire des fichiers de ce technicien
					$rech = "UPDATE `" .TBFIC;
					$rech.= "` SET `fic_codecrea`='".$codeage."'  WHERE `fic_codecrea` = '".$code."'";
					$rs = mysql_query($rech) or die(mysql_error());

					if (trim($codest)=="") // C'est un technicien "uniquement" agence
					{
						// Suppression du compte technicien
						$rech = "DELETE FROM `" .TBTEC. "` WHERE `tec_code` = '$code'";
						$rs = mysql_query($rech) or die(mysql_error());
						break;
	
						// Suppression des prix de revient technicien
						$rech = "DELETE FROM `" .TBTECPR. "` WHERE `tecpr_codetec` = '$code'";
						$rs = mysql_query($rech) or die(mysql_error());
				
						// Suppression du mot de passe rattaché
						$rech = "DELETE FROM `" .TBPW. "` WHERE `pw_code` = '$code'";
						$rs = mysql_query($rech) or die(mysql_error());
					}
					else
					{
						// RAZ du code agence
						$rech = "UPDATE `" .TBTEC;
						$rech.= "` SET `tec_codeage`=''  WHERE `tec_code` = '".$code."'";
						$rs = mysql_query($rech) or die(mysql_error());
					}
					break;
				case 2 :
					// Suppression du compte technicien
					$rech = "DELETE FROM `" .TBTEC. "` WHERE `tec_code` = '$code'";
					$rs = mysql_query($rech) or die(mysql_error());
					break;

					// Suppression des prix de revient technicien
					$rech = "DELETE FROM `" .TBTECPR. "` WHERE `tecpr_codetec` = '$code'";
					$rs = mysql_query($rech) or die(mysql_error());
			
					// Suppression du mot de passe rattaché
					$rech = "DELETE FROM `" .TBPW. "` WHERE `pw_code` = '$code'";
					$rs = mysql_query($rech) or die(mysql_error());
					break;
				case 3 :
					if (trim($codeage)=="") // C'est un technicien "uniquement" sous-traitant
					{
						// Suppression du compte technicien
						$rech = "DELETE FROM `" .TBTEC. "` WHERE `tec_code` = '$code'";
						$rs = mysql_query($rech) or die(mysql_error());
						break;
	
						// Suppression des prix de revient technicien
						$rech = "DELETE FROM `" .TBTECPR. "` WHERE `tecpr_codetec` = '$code'";
						$rs = mysql_query($rech) or die(mysql_error());
				
						// Suppression du mot de passe rattaché
						$rech = "DELETE FROM `" .TBPW. "` WHERE `pw_code` = '$code'";
						$rs = mysql_query($rech) or die(mysql_error());
					}
					else
					{
						// RAZ du code sous-traitant
						$rech = "UPDATE `" .TBTEC;
						$rech.= "` SET `tec_codest`=''  WHERE `tec_code` = '".$code."'";
						$rs = mysql_query($rech) or die(mysql_error());
					}
					break;
			}
	
			mysql_close($conn);
	
			$msg = $txt_fiche_del;
		}
		break;
	default :
		break;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>SMI - <?PHP echo $title_esp_prive; ?> : Fiche Technicien</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 -->

<script language="JavaScript" src="../jscript/coolmenus/coolmenus4.js"></script>

<!-- Scripts Javascript pour fenêtres -->
<script language="JavaScript" src="../jscript/fen.js"></script>

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

<p align="center"><span class="titrepage"><?PHP echo $titre ?></span></p>
<p align="center">&nbsp;</p>
<p align="center">
<?PHP if ($retourliste==FALSE)
	echo '<span class="alerte1">';
else
	echo '<span class="annot_std_gras">';
?>
<?PHP echo $msg ?>
</span>
</p>
<?PHP 
if ($retourliste == FALSE) 
{ 
	if (($td == "add") OR ($td == "edit"))
	{
?>
		<p align="center">
		<a href="javascript:history.back();">
		<?PHP echo $txt_lnk_ret_saisie; ?>
		</a>
<?PHP
	}
	aff_ret_idx_man($td,"tec_lst.php?td=std&tl=".$tl,$txt_lnk_ret_liste,TRUE);
}
else
{
	if ($td == "add")
		aff_ret_sais_auto("tec_maj.php?td=edit&code=".$code."&dep=".$dep."&tl=".$tl,2000);
	else
		aff_ret_lst_auto("tec_lst.php?td=std&tl=".$tl,2000);
}
include_once("pied.php");
?>
