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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,10 @@ $aModel = array();
|
||||
$sql = 'SELECT m.* FROM medias m WHERE m.support="devis_pdf_sap" ORDER BY m.support_rowid;';
|
||||
$aModel["medias"] = getinfos($sql, "gen");
|
||||
|
||||
$sql = 'SELECT d.*, c.libelle, c.adresse1, c.adresse2, c.adresse3, c.code, c.cp, c.ville, c.email, u.libelle as nom, u.prenom, s.libelle as lib_statut, m.libelle as lib_marche ';
|
||||
$sql = 'SELECT d.*, c.libelle, c.adresse1, c.adresse2, c.adresse3, c.code, c.cp, c.ville, cc.email, u.libelle as nom, u.prenom, s.libelle as lib_statut, m.libelle as lib_marche ';
|
||||
$sql .= 'FROM devis d ';
|
||||
$sql .= 'LEFT JOIN clients c on d.fk_client = c.rowid ';
|
||||
$sql .= 'LEFT JOIN clients_contacts cc ON d.fk_contact = cc.rowid ';
|
||||
$sql .= 'LEFT JOIN users u ON d.fk_user = u.rowid ';
|
||||
$sql .= 'LEFT JOIN marches m ON d.fk_marche = m.rowid ';
|
||||
$sql .= 'LEFT JOIN x_statuts_devis s ON d.fk_statut_devis = s.rowid ';
|
||||
@@ -24,9 +25,10 @@ foreach ($aModel["devisEnCours"] as $devis) {
|
||||
}
|
||||
}
|
||||
|
||||
$sql = 'SELECT d.*, c.libelle, c.adresse1, c.adresse2, c.adresse3, c.code, c.cp, c.ville, u.libelle as nom, u.prenom, s.libelle as lib_statut, m.libelle as lib_marche ';
|
||||
$sql = 'SELECT d.*, c.libelle, c.adresse1, c.adresse2, c.adresse3, c.code, c.cp, c.ville, cc.email, u.libelle as nom, u.prenom, s.libelle as lib_statut, m.libelle as lib_marche ';
|
||||
$sql .= 'FROM devis d ';
|
||||
$sql .= 'LEFT JOIN clients c on d.fk_client = c.rowid ';
|
||||
$sql .= 'LEFT JOIN clients_contacts cc ON d.fk_contact = cc.rowid ';
|
||||
$sql .= 'LEFT JOIN users u ON d.fk_user = u.rowid ';
|
||||
$sql .= 'LEFT JOIN marches m ON d.fk_marche = m.rowid ';
|
||||
$sql .= 'LEFT JOIN x_statuts_devis s ON d.fk_statut_devis = s.rowid ';
|
||||
|
||||
Reference in New Issue
Block a user