208 lines
13 KiB
PHP
208 lines
13 KiB
PHP
<?php
|
|
namespace Module\Agefoddx\Classe\Controleur;
|
|
use Module\Agefoddx\Classe\Classe\GestionTexte;
|
|
use Module\Agefoddx\Classe\GestionBD\bdExterneLigneGestion;
|
|
use Module\Agefoddx\Classe\GestionBD\bdGestion;
|
|
use Module\Agefoddx\Classe\GestionBD\ligneGestion;
|
|
use Module\Agefoddx\Classe\GestionBD\tableGestion;
|
|
use Module\Agefoddx\Classe\GestionBD\bdExterneInteraction;
|
|
|
|
class ControleurLigne extends ControleurGenerique {
|
|
/**
|
|
* @var string $lien represent le chemin relatif vers la vue
|
|
*/
|
|
protected static string $lien = "../view/gestionLigne";
|
|
|
|
/**
|
|
* @param $message string message passable en parameter pour les interactions utilisateur
|
|
* @return void affichage de la liste des lignes
|
|
*/
|
|
public static function afficherListe ($message = "") {
|
|
global $langs;
|
|
$idBD = $_POST["idBD"];
|
|
$nomBD = $_POST["nomBD"];
|
|
$idTable = $_POST["idTable"];
|
|
|
|
$infoTable = (new tableGestion())->getTableByPk($idTable);
|
|
$nomTableAgefodd = $infoTable["nomTableAgefodd"];
|
|
$nomTableExterne = $infoTable["nomTableExterne"];
|
|
$titre = GestionTexte::tronquerParentheses($langs->trans("AgefoddxTitreAfficherListeColonne"), "$nomTableExterne ".$langs->trans("AgefoddxEt")." $nomTableAgefodd");
|
|
$liste = (new ligneGestion())->getListeLigneCorreler($idTable);
|
|
$addresse = "afficherListe";
|
|
self::afficherVue(["titre" => $titre, "cheminCorpsVue"=>self::$lien."/".$addresse.".php","message"=>$message,
|
|
"idBD"=>$idBD,"nomBD"=>$nomBD,
|
|
"idTable"=>$idTable, "nomTableA"=>$nomTableAgefodd, "nomTableE"=>$nomTableExterne,
|
|
"liste"=>$liste, "mdp"=>$_POST["mdp"]]);
|
|
}
|
|
|
|
/**
|
|
* @param string $titre titre de la page
|
|
* @param string $actionApres action a réalisé
|
|
* @param string $titreAction label de l'action
|
|
* @param $message string message passable en parameter pour les interactions utilisateur
|
|
* @return void permet la connection avec la base de donnée extérieur
|
|
*/
|
|
public static function getMdp ($titre, $actionApres, $titreAction, $message = "") {
|
|
$idBD = $_POST["idBD"];
|
|
$nomBD = $_POST["nomBD"];
|
|
$idTable = $_POST["idTable"];
|
|
$valeurBase = $_POST["valeurBase"] ?? $_POST["nomTableAgefodd"] ?? "";
|
|
$infoTable = (new tableGestion())->getTableByPk($idTable);
|
|
$nomTableAgefodd = $infoTable["nomTableAgefodd"];
|
|
$nomTableExterne = $infoTable["nomTableExterne"];
|
|
$addresse = "transition";
|
|
self::afficherVue(["titre" => $titre, "cheminCorpsVue"=>self::$lien."/".$addresse.".php","message"=>$message,
|
|
"idBD"=>$idBD,"nomBD"=>$nomBD, "valeurBase"=>$valeurBase,
|
|
"idTable"=>$idTable, "nomTableA"=>$nomTableAgefodd, "nomTableE"=>$nomTableExterne,
|
|
"actionApres"=>$actionApres, "titreAction"=>$titreAction]);
|
|
}
|
|
|
|
/**
|
|
* @param $message string message passable en parameter pour les interactions utilisateur
|
|
* @return void affichage de la page d'ajout de lien entre les lignes
|
|
*/
|
|
public static function ajouter ($message = "") {
|
|
global $langs;
|
|
$idBD = $_POST["idBD"];
|
|
$nomBD = $_POST["nomBD"];
|
|
$idTable = $_POST["idTable"];
|
|
$valeurBase = $_POST["valeurBase"] ?? $_POST["nomTableAgefodd"] ?? $_POST["agefoddLigneFk"] ?? "";
|
|
$infoTable = (new tableGestion())->getTableByPk($idTable);
|
|
$nomTableAgefodd = $infoTable["nomTableAgefodd"];
|
|
$nomTableExterne = $infoTable["nomTableExterne"];
|
|
$titre = $langs->trans("AgefoddxAjouterLien")." $nomTableAgefodd ".$langs->trans("AgefoddxEt")." $nomTableExterne";
|
|
$tab = $_POST["tab"] ?? "tab1";
|
|
|
|
$addresse = "ajouter";
|
|
$mdp = $_POST["mdp"];
|
|
if ($mdp != "" && isset($mdp)){
|
|
$bdE_connexion = bdExterneInteraction::construireDepuisSQL((new bdGestion())->getBdByPk($idBD), $mdp);
|
|
if ($bdE_connexion->connectionBD()){
|
|
$listeE = bdExterneLigneGestion::getListeLigne($bdE_connexion, $nomTableExterne);
|
|
$listeA = (new ligneGestion())->getListeLigneAgefodd($nomTableAgefodd, $idTable);
|
|
$listeEFK = bdExterneLigneGestion::getListeFK($bdE_connexion, $nomTableExterne);
|
|
$listeAFK = (new ligneGestion())->getListeFK($nomTableAgefodd, $idTable);
|
|
if (in_array($valeurBase, $listeAFK[0])) $tab = "tab3";
|
|
self::afficherVue(["titre" => $titre, "cheminCorpsVue"=>self::$lien."/".$addresse.".php","message"=>$message,
|
|
"idBD"=>$idBD,"nomBD"=>$nomBD,
|
|
"idTable"=>$idTable, "nomTableA"=>$nomTableAgefodd, "nomTableE"=>$nomTableExterne,
|
|
"listeE"=>$listeE, "listeA"=>$listeA,"valeurBase"=>$valeurBase, "listeEFK"=>$listeEFK, "listeAFK"=>$listeAFK,"mdp"=>$mdp, "tab"=>$tab]);
|
|
} else {
|
|
self::getMdp($titre, 'ajouter', $langs->trans("AgefoddxAjouter"), $langs->trans("AgefoddxMDPInc"));
|
|
}
|
|
} else {
|
|
self::getMdp($titre, 'ajouter', $langs->trans("AgefoddxAjouter"));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return void insertion de lien entre diver lignes
|
|
*/
|
|
public static function insertion() {
|
|
global $langs;
|
|
$idBD = $_POST["idBD"];
|
|
$nomBD = $_POST["nomBD"];
|
|
$idTable = $_POST["idTable"];
|
|
$infoTable = (new tableGestion())->getTableByPk($idTable);
|
|
$nomTableAgefodd = $infoTable["nomTableAgefodd"];
|
|
$nomTableExterne = $infoTable["nomTableExterne"];
|
|
$agefoddLigne = $_POST["agefoddLigne"];
|
|
$bdExterneLigne = $_POST["bdExterneLigne"];
|
|
$valeurFixe = $_POST["valeurFixe"];
|
|
$valeurBase = $_POST["valeurBase"] ?? $_POST["nomTableAgefodd"] ?? "";
|
|
$agefoddFk = $_POST["agefoddLigneFk"];
|
|
$externeFk = $_POST["bdExterneLigneFk"];
|
|
|
|
$mdp = $_POST["mdp"];
|
|
$tab = $_POST["tab"];
|
|
$gestionLigne = new ligneGestion();
|
|
if (isset($idBD) && isset($nomBD) && isset($idTable) && isset($agefoddLigne) && isset($bdExterneLigne)){
|
|
if ($bdExterneLigne != '' && $agefoddLigne != ''){
|
|
if (!$gestionLigne->correlationEstDansTable($idTable, $agefoddLigne)){
|
|
$bdE_connexion = bdExterneInteraction::construireDepuisSQL((new bdGestion())->getBdByPk($idBD), $mdp);
|
|
$typeE = (new GestionTexte())->tronquerParentheses(bdExterneLigneGestion::getTypeLigne($bdE_connexion, $nomTableExterne, $bdExterneLigne));
|
|
$typeA = (new GestionTexte())->tronquerParentheses($gestionLigne->getTypeLigne($nomTableAgefodd, $agefoddLigne));
|
|
if ($gestionLigne->sontCompatible($typeA, $typeE)){
|
|
$value = $gestionLigne->insertion($idTable, $idBD, $agefoddLigne, $bdExterneLigne);
|
|
if ($value) self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionTrue"), "$agefoddLigne ".$langs->trans("AgefoddxEt")." $bdExterneLigne"));
|
|
else self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionFalse"), "$agefoddLigne ".$langs->trans("AgefoddxEt")." $bdExterneLigne"));
|
|
}else self::ajouter(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionInc"), "$agefoddLigne($typeA) ".$langs->trans("AgefoddxEtDe")." $bdExterneLigne($typeE) "));
|
|
}else self::ajouter(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionDejaLiee"), $agefoddLigne));
|
|
}else self::ajouter($langs->trans("AgefoddxMessageLigneInsertionDoitChoisirVal"));
|
|
}elseif (isset($idBD) && isset($nomBD) && isset($idTable) && isset($agefoddLigne) && $valeurFixe) {
|
|
if ($agefoddLigne != '') {
|
|
if (!$gestionLigne->correlationEstDansTable($idTable, $agefoddLigne)) {
|
|
$value = $gestionLigne->insertionValue($idTable, $idBD, $agefoddLigne, $valeurFixe);
|
|
if ($value) self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionTrue"), "$agefoddLigne " . $langs->trans("AgefoddxEtLaVal") . " $valeurFixe"));
|
|
else self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionTrue"), "$agefoddLigne " . $langs->trans("AgefoddxEtLaVal") . " $valeurFixe"));
|
|
} else self::ajouter(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionDejaLiee"), $agefoddLigne));
|
|
} else self::ajouter($langs->trans("AgefoddxMessageLigneInsertionDoitChoisirVal"));
|
|
}elseif (isset($idBD) && isset($nomBD) && isset($idTable) && isset($agefoddFk) && isset($externeFk)) {
|
|
list($agefoddFk, $tableReferenceA) = explode('|', $agefoddFk);
|
|
list($externeFk, $tableReferenceE) = explode('|', $externeFk);
|
|
if ((new tableGestion())->tablesDejaEnregistrer($tableReferenceA, $tableReferenceE)) {
|
|
$bdE_connexion = bdExterneInteraction::construireDepuisSQL((new bdGestion())->getBdByPk($idBD), $mdp);
|
|
$typeE = (new GestionTexte())->tronquerParentheses(bdExterneLigneGestion::getTypeLigne($bdE_connexion, $nomTableExterne, $externeFk));
|
|
$typeA = (new GestionTexte())->tronquerParentheses($gestionLigne->getTypeLigne($nomTableAgefodd, $agefoddFk));
|
|
if ($gestionLigne->sontCompatible($typeA, $typeE)){
|
|
$value = $gestionLigne->insertion($idTable, $idBD, $agefoddFk, $externeFk);
|
|
if ($value) self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionTrue"), "$agefoddFk " . $langs->trans("AgefoddxEt") . " $externeFk"));
|
|
else self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxMessageLigneInsertionTrue"), "$agefoddFk " . $langs->trans("AgefoddxEt") . " $externeFk"));
|
|
}
|
|
} else ControleurTable::ajouter(GestionTexte::tronquerParentheses($langs->trans("AgefoddxTableFkLierFalse"), "$tableReferenceA ".$langs->trans("AgefoddxEt")." $tableReferenceE"));
|
|
}else self::ajouter($langs->trans("AgefoddxMessageErreurSaisie"));
|
|
}
|
|
|
|
/**
|
|
* @param $message string message passable en parameter pour les interactions utilisateur
|
|
* @return void affichage de la page de suppression de lien entre les lignes
|
|
*/
|
|
public static function supprimer ($message = "") {
|
|
global $langs;
|
|
$idBD = $_POST["idBD"];
|
|
$nomBD = $_POST["nomBD"];
|
|
$idTable = $_POST["idTable"];
|
|
$idLigne = $_POST["idLigne"];
|
|
|
|
$infoTable = (new tableGestion())->getTableByPk($idTable);
|
|
$nomTableAgefodd = $infoTable["nomTableAgefodd"];
|
|
$nomTableExterne = $infoTable["nomTableExterne"];
|
|
$infoLigne = (new ligneGestion())->getLigneByPk($idLigne);
|
|
$nomLigneExterne = $infoLigne["nomLigneE"];
|
|
$nomLigneAgefodd = $infoLigne["nomLigneA"];
|
|
|
|
$titre = $langs->trans("AgefoddxSupprimerLienTable")." $nomLigneExterne ".$langs->trans("AgefoddxEt")." $nomLigneAgefodd";
|
|
$addresse = "supprimer";
|
|
self::afficherVue(["titre" => $titre, "cheminCorpsVue"=>self::$lien."/".$addresse.".php","message"=>$message,
|
|
"idBD"=>$idBD,"nomBD"=>$nomBD,"mdp"=>$_POST["mdp"],
|
|
"idTable"=>$idTable, "nomTableA"=>$nomTableAgefodd, "nomTablE"=>$nomTableExterne,
|
|
"nomLigneE"=>$nomLigneExterne, "nomLigneA"=>$nomLigneAgefodd, "idLigne"=>$idLigne]);
|
|
}
|
|
|
|
/**
|
|
* @param $message string message passable en parameter pour les interactions utilisateur
|
|
* @return void suppression des liens dans entre les lignes dans la bd
|
|
*/
|
|
public static function suppression ($message = "") {
|
|
global $langs;
|
|
$idBD = intval($_POST["idBD"]);
|
|
$nomBD = $_POST["nomBD"];
|
|
$idTable = intval($_POST["idTable"]);
|
|
$idLigne = intval($_POST['idLigne']);
|
|
$mdp=$_POST["mdp"];
|
|
$infoTable = (new tableGestion())->getTableByPk($idTable);
|
|
$nomTableAgefodd = $infoTable["nomTableAgefodd"];
|
|
$nomTableExterne = $infoTable["nomTableExterne"];
|
|
$infoLigne = (new ligneGestion())->getLigneByPk($idLigne);
|
|
$nomLigneExterne = $infoLigne["nomLigneE"];
|
|
$nomLigneAgefodd = $infoLigne["nomLigneA"];
|
|
$value = $_POST["ouiNon"];
|
|
$et = " $nomLigneExterne ".$langs->trans("AgefoddxEt")." $nomLigneAgefodd ";
|
|
if ($value == "true" && $idLigne && isset($nomBD)){
|
|
$connexion_ligne = new ligneGestion();
|
|
$value = $connexion_ligne->suppression($idLigne);
|
|
if ($value)self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxSuppressionLienTrue"), $et));
|
|
else self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxSuppressionLienFalse"), $et));
|
|
} else self::afficherListe(GestionTexte::tronquerParentheses($langs->trans("AgefoddxSuppressionLienAnnuler"), $et));
|
|
}
|
|
} |