alpha_full/admin/catalog/req/reqUpdateCaPers.php
2026-04-06 22:58:51 +02:00

194 lines
6.6 KiB
PHP
Executable File

<?php
// -----------------------------------------------------
// Nom de la table
// -----------------------------------------------------
$catable = "catype" . $idCaPers;
// -----------------------------------------------------
// Requete CaPers
// if (!empty($tagLib)) $tagLib=addslashes($tagLib);
// if (!empty($code1)) $code1=addslashes($code1);
// if (!empty($code2)) $code2=addslashes($code2);
// if (!empty($code3)) $code3=addslashes($code3);
// if (!empty($imageCA)) $imageCA=addslashes($imageCA);
// if (!empty($tagLib)) $tagLib = $idPdo->quote($tagLib);
// if (!empty($code1)) $code1 = $idPdo->quote($code1);
// if (!empty($code2)) $code2 = $idPdo->quote($code2);
// if (!empty($code3)) $code3 = $idPdo->quote($code3);
// if (!empty($imageCA)) $imageCA = $idPdo->quote($imageCA);
require_once ("../_include/_fonctions/fonctions.gene.php");
include_once ($includePathAdmin. "/_fonctions/gTranslate.php");
$prixHT=(float)$prixHT;
$prixHT=formatNB($prixHT,'MYSQL');
$prixTTC=(float)$prixTTC;
$prixTTC=formatNB($prixTTC,'MYSQL');
// -----------------------------------------------------
// Mise à jour du libellé pour chaque Langue
// -----------------------------------------------------
if ($tagLib != '' && $tagLib != '-' && $upTagLib=='taglib') {
for ($i=0; $i<($_SESSION['nbLgActives']); $i++) {
if (isset($debug[2]) && $debug[2] == '1') { $debugMsg .= monDebug(2, ['$tableLangueCode[' => $i, ']' => $tableLangueCode[$i], '$_SESSION[lgCouranteCode]' => $_SESSION['lgCouranteCode'] ], 'reqUpdateLibDyn_propager.php');}
if ($tableLangueCode[$i] != $_SESSION['lgCouranteCode']) {
$tagLib= gTranslate($tagLib, strtolower( substr ($tableLangueCode[$i], 0, -1) ) );
if (isset($debug[2]) && $debug[2] == '1' ) { $debugMsg .= monDebug (1,['tagLib translated' => $tagLib],''); }
}
try {
// Préparer la requête SQL avec des paramètres liés pour plus de sécurité
$reqUpdate = "UPDATE `" .$catable. "` SET nom = :tagLib WHERE idLg = :lg AND id = :idLib";
// Préparer la requête avec PDO
$stmt = $idPdo->prepare($reqUpdate);
// Lier les paramètres
$stmt->bindParam(':tagLib', $tagLib, PDO::PARAM_STR);
$stmt->bindParam(':lg', $tableLangueCode[$i], PDO::PARAM_STR);
$stmt->bindParam(':idLib', $idLib, PDO::PARAM_INT);
// Debug: afficher la requête exécutée
if (isset($debug[2]) && $debug[2] == '1') {
$reqDebug = str_replace(
[':tagLib', ':lg', ':idLib'],
[
$idPdo->quote($tagLib),
$idPdo->quote($lg),
(int)$idLib
],
$reqUpdate
);
$debugMsg .= monDebug(2, ['reqUpdate' => $reqDebug], 'reqUpdateCaPers.php');
}
// Exécuter la requête
$stmt->execute();
// Vérifier si la requête a été exécutée avec succès
if ($stmt->rowCount() > 0) {
// Si des lignes ont été mises à jour, succès
$admMsg .= '<br>Mise à jour du libellé effectuée avec succès';
$admMsgClass = 'ok';
}
else {
// Si aucune ligne n'a été modifiée => on fait rien
// /$admMsg .= 'Aucune mise à jour effectuée, vérifiez vos données.';
// $admMsgClass = 'ko';
//$erreurSQL=1;
}
}
catch (PDOException $e) {
// Gestion des exceptions : en cas d'erreur PDO, on capture l'exception
if (isset($debug[2]) && $debug[2] == '1') { $debugMsg .= monDebug(2, ['Erreur lors de la mise à jour du libellé :' => $e->getMessage()], '');}
$admMsgClass = 'ko';
$erreurSQL=1;
// Debug: afficher la requête exécutée
if (isset($debug[2]) && $debug[2] == '1') {
$debugMsg .= monDebug (2, ['reqUpdate' => $reqUpdate], basename(__FILE__));
}
}
}//for
}
// -----------------------------------------------------
// Mise à jour des autres champs
// -----------------------------------------------------
$updateFields = [];
// Ajouter les champs à mettre à jour seulement s'ils sont définis
if ($tagOrdre !== '') {
$updateFields['ordre'] = $tagOrdre;
}
if ($code1 !== '') {
$updateFields['code1'] = $code1;
}
if ($code2 !== '') {
$updateFields['code2'] = $code2;
}
if ($code3 !== '') {
$updateFields['code3'] = $code3;
}
if ($prixHT !== '') {
$updateFields['prixHT'] = $prixHT;
}
if ($prixTTC !== '') {
$updateFields['prixTTC'] = $prixTTC;
}
if ($imageCA !== '') {
$updateFields['imageCA'] = $imageCA;
}
if ($idTVA !== '' && $idTVA !== 'undefined') {
$updateFields['tvaTaux'] = $idTVA;
}
// Vérifier s'il y a des champs à mettre à jour
if (!empty($updateFields)) {
// Construction dynamique de la requête
$setClause = [];
foreach ($updateFields as $field => $value) {
$setClause[] = "`$field` = :$field";
}
$setClauseStr = implode(', ', $setClause);
// Préparer la requête SQL avec des paramètres liés pour plus de sécurité
$reqUpdate = "UPDATE `" . $catable . "` SET " . $setClauseStr . " WHERE id = :idLib ;";
// Debug : afficher la requête SQL réelle (debug only)
if (isset($debug[2]) && $debug[2] == '1') {
$reqDebug = $reqUpdate;
// Remplacement des champs dynamiques
foreach ($updateFields as $field => $value) {
if ($value === null) {
$val = 'NULL';
} elseif (is_numeric($value)) {
$val = $value;
} else {
$val = $idPdo->quote($value);
}
$reqDebug = str_replace(":$field", $val, $reqDebug);
}
// Remplacement de l'ID
$reqDebug = str_replace(':idLib', (int)$idLib, $reqDebug);
// $reqDebug = str_replace(':lg', $idPdo->quote($lg), $reqDebug);
$debugMsg .= monDebug(
2,
['reqUpdate' => $reqDebug],
'reqUpdateCaPers.php'
);
}
try {
// Préparer la requête avec PDO
$stmt = $idPdo->prepare($reqUpdate);
// Lier les paramètres
foreach ($updateFields as $field => $value) {
$stmt->bindValue(":$field", $value);
}
$stmt->bindValue(':idLib', $idLib, PDO::PARAM_INT);
// $stmt->bindParam(':lg', $lg, PDO::PARAM_STR);
// Exécuter la requête
if ($stmt->execute()) {
$admMsg .='Mise à jour de la valeur effectuée avec succès' ;
$admMsgClass = 'ok';
} else {
$admMsg .='Echec de la mise à jour de la valeur';
$admMsgClass = 'ko';
$erreurSQL = 1;
}
} catch (PDOException $e) {
// En cas d'exception, afficher l'erreur
if (isset($debug[2]) && $debug[2] == '1') { $debugMsg .= monDebug(2, ['Erreur lors de la mise à jour :' => $e->getMessage()], '');}
$admMsgClass = 'ko';
$erreurSQL = 1;
}
}
?>