feat(v2.0.4): Corrections diverses et tri des tableaux devis
- Correction affichage email contact dans SAP (models/msap.php) - Ajout fonctionnalité tri des tableaux devis (jsap.js, jdevis.js) - Améliorations diverses vues devis et SAP - Mise à jour contrôleurs et modèles export 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
<?php
|
||||
global $Route;
|
||||
|
||||
function cleanData(&$str)
|
||||
{
|
||||
function cleanData(&$str) {
|
||||
// Fonction de nettoyage des données pour l'export Excel
|
||||
if ($str == 't') $str = 'TRUE';
|
||||
if ($str == 'f') $str = 'FALSE';
|
||||
@@ -13,8 +12,7 @@ function cleanData(&$str)
|
||||
$str = mb_convert_encoding($str, 'UTF-16LE', 'UTF-8');
|
||||
}
|
||||
|
||||
function filterData(&$str)
|
||||
{
|
||||
function filterData(&$str) {
|
||||
$str = preg_replace("/\t/", "\\t", $str);
|
||||
$str = preg_replace("/\r?\n/", "\\n", $str);
|
||||
if ($str == 't') $str = 'TRUE';
|
||||
@@ -95,7 +93,6 @@ switch ($Route->_action) {
|
||||
$excelData .= implode("\t", array_values($fields)) . "\n";
|
||||
array_walk($contact, 'filterData');
|
||||
$excelData .= implode("\t", array_values($contact)) . "\n";
|
||||
|
||||
} else {
|
||||
// Client existant : données depuis la table clients
|
||||
$sql = 'SELECT c.code, c.libelle, c.adresse1, c.adresse2, c.adresse3, c.cp, c.ville FROM clients c WHERE c.rowid = :client_id';
|
||||
@@ -112,7 +109,7 @@ switch ($Route->_action) {
|
||||
$contact = $db->fetchOne($sql, [':contact_id' => $fkContactSafe]);
|
||||
} else {
|
||||
// Fallback : contact principal du client
|
||||
$sql = 'SELECT cc.nom, cc.prenom, cc.fonction, cc.telephone, cc.mobile, cc.email FROM clients_contacts cc WHERE cc.fk_client = :client_id AND cc.chk_principal = 1 AND cc.active = 1 LIMIT 1';
|
||||
$sql = 'SELECT cc.nom, cc.prenom, cc.fonction, cc.telephone, cc.mobile, cc.email FROM clients_contacts cc WHERE cc.fk_client = :client_id AND cc.principal = 1 AND cc.active = 1 LIMIT 1';
|
||||
$contact = $db->fetchOne($sql, [':client_id' => $fkClientSafe]);
|
||||
}
|
||||
|
||||
@@ -217,12 +214,10 @@ switch ($Route->_action) {
|
||||
header('Content-Disposition: attachment; filename="' . $fileName . '"');
|
||||
header('Cache-Control: max-age=0');
|
||||
echo $excelData;
|
||||
|
||||
} catch (Exception $e) {
|
||||
error_log("Erreur export Excel : " . $e->getMessage());
|
||||
http_response_code(500);
|
||||
echo "Erreur lors de l'export du devis";
|
||||
}
|
||||
exit();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user