Initial commit: CLEO ERP avec améliorations debug
- Configuration du debug conditionnel pour dev/recette - Fonction debug() globale avec niveaux - Logging des requêtes SQL - Handlers d'exceptions et d'erreurs globaux 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
115
views/layouts/blocks/barre.php
Normal file
115
views/layouts/blocks/barre.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
$script = $Route->_script;
|
||||
?>
|
||||
<div class="panel panel-danger">
|
||||
<div class="list-group menu-gauche">
|
||||
<?php
|
||||
switch (substr($script, 0, 5)) {
|
||||
case "impor":
|
||||
?>
|
||||
<div class="panel-heading" style="background-color:#01519E; color:white;"><strong>IMPORTATIONS</strong>
|
||||
</div>
|
||||
<a href="comcrr.php" class="list-group-item <?php if ($script == "comcrr.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-file-o"></i> Les comptes-rendus du C.E. <span class='selected'></span></a>
|
||||
<a href="comflashs.php" class="list-group-item <?php if ($script == "comflashs.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-flash"></i> Les flashs du C.E. <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Agenda du C.E. <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Albums photos <span class='selected'></span></a>
|
||||
<a href="comcommissions.php" class="list-group-item <?php if ($script == "comcommissions.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-group"></i> Les commissions du C.E. <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Budget C.E. <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Documents à télécharger <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Sites Partenaires <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Petites annonces <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Infos du jour <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Pages vitrine <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "comxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-arrow-right"></i> Sondages <span class='selected'></span></a>
|
||||
<?php
|
||||
break;
|
||||
case "fic":
|
||||
?>
|
||||
<div class="panel-heading" style="background-color:#01519E; color:white;"><strong>MON COMPTE</strong></div>
|
||||
<a href="fiche.php" class="list-group-item <?php if ($script == "fiche.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-user"></i> Mes informations <span class='selected'></span></a>
|
||||
<a href="ficdem.php" class="list-group-item <?php if ($script == "ficdem.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-comments-o"></i> Mes demandes <span class='selected'></span></a>
|
||||
<a href="ficregl.php" class="list-group-item <?php if ($script == "ficregl.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-euro"></i> Mes règlements <span class='selected'></span></a>
|
||||
<?php
|
||||
break;
|
||||
case "oeu":
|
||||
?>
|
||||
<div class="panel-heading" style="background-color:#01519E; color:white;"><strong><i class="fa fa-star"></i>
|
||||
LES ŒUVRES SOCIALES</strong></div>
|
||||
<a href="oeubilletterie.php" class="list-group-item <?php if ($script == "oeubilletterie.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-ticket"></i> La billetterie <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "oeuxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-child"></i> Evènements familiaux <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "oeuxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-tree"></i> Noël <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "oeuxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-check"></i> Chèques Vacances <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "oeuxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-trophy"></i> Médailles du travail <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "oeuxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-leaf"></i> Locations courts séjours <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "oeuxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-sun-o"></i> Locations semaines <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "oeuxx.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-ticket"></i> Crédits spectacles <span class='selected'></span></a>
|
||||
<?php
|
||||
break;
|
||||
case "out":
|
||||
?>
|
||||
<div class="panel-heading" style="background-color:#01519E; color:white;"><strong><i
|
||||
class="fa fa-gears"></i> MES OUTILS</strong></div>
|
||||
<a href="#" class="list-group-item <?php if ($script == "outalbums.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-camera"></i> Albums photos <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "outbudget.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-euro"></i> Budget du C.E. <span class='selected'></span></a>
|
||||
<a href="outannonces.php" class="list-group-item <?php if ($script == "outannonces.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-comments-o"></i> Petites annonces <span class='selected'></span></a>
|
||||
<a href="#" class="list-group-item <?php if ($script == "outsondages.php") {
|
||||
echo "active";
|
||||
} ?>"><i class="fa fa-question"></i> Sondages <span class='selected'></span></a>
|
||||
<?php
|
||||
break;
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
12
views/layouts/blocks/footer.php
Normal file
12
views/layouts/blocks/footer.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<footer>
|
||||
<div class="left ml-1">© <?= $Conf->_brandname; ?> <?= date("Y"); ?></div>
|
||||
<div class="center">Version
|
||||
<?php
|
||||
echo $Conf->_appversion . ' - IP : ' . $Conf->_clientIp;
|
||||
$delay = round(microtime(true) - $tpsdebut, 3);
|
||||
echo ' - Page générée en ' . $delay . ' secondes';
|
||||
logstats($delay);
|
||||
?>
|
||||
</div>
|
||||
<div class="right"><a href="https://d6soft.fr" title="Conception du site" target="_blank">D6SOFT</a></div>
|
||||
</footer>
|
||||
65
views/layouts/blocks/header.php
Normal file
65
views/layouts/blocks/header.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
global $Route;
|
||||
global $Conf;
|
||||
global $Session;
|
||||
|
||||
$menu = "";
|
||||
switch ($Route->_script) {
|
||||
case "users":
|
||||
case "interface":
|
||||
$menu = "gestion";
|
||||
break;
|
||||
}
|
||||
?>
|
||||
<nav class="navbar" role="navigation">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false">
|
||||
<span class="sr-only">Navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/accueil"><img src="/pub/res/img/logo/cleo_150.png" alt="logo <?= $Conf->_brandname; ?>"/></a>
|
||||
<p class="navbar-text"><?php echo $Session->_user["prenom"] . " " . $Session->_user["libelle"]; ?></p>
|
||||
<?php if ($Route->_script == "devis") {
|
||||
?>
|
||||
<a href="#" title="SideBar" class="navbar-text" id="btnSideBarDevis">
|
||||
<svg>
|
||||
<use xlink:href="pub/res/svg/icons.svg#layout-sidebar-inset" width="18" height="18" style="fill: yellow;"/>
|
||||
</svg>
|
||||
</a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse-1">
|
||||
<ul class="nav navbar-nav navbar-right" role="navigation">
|
||||
<?php
|
||||
echo '<li ' . ($Route->_script == "accueil" ? 'class="active">' : '>') . '<a href="/accueil" title="Accueil"><svg><use xlink:href="pub/res/svg/icons.svg#house" style="fill: white;"/></svg></a></li>';
|
||||
|
||||
if ($Session->_user["fk_role"] == 90) {
|
||||
echo '<li ' . ($Route->_script == "clients" ? 'class="active">' : '>') . '<a href="/clients" title="Clients"><svg><use xlink:href="pub/res/svg/icons.svg#address-book" style="fill: white;"/></svg> CLIENTS</a></li>';
|
||||
echo '<li ' . ($Route->_script == "marches" ? 'class="active">' : '>') . '<a href="/marches" title="Marchés"><svg><use xlink:href="pub/res/svg/icons.svg#cubes" style="fill: white;"/></svg> MARCHES</a></li>';
|
||||
}
|
||||
if ($Session->_user["fk_role"] == 90 || $Session->_user["fk_role"] == 20) {
|
||||
echo '<li ' . ($Route->_script == "sap" ? 'class="active">' : '>') . '<a href="/sap" title="SAP"><svg><use xlink:href="pub/res/svg/icons.svg#gears" style="fill: white;"/></svg> GESTION SAP</a></li>';
|
||||
}
|
||||
echo '<li ' . ($Route->_script == "devis" ? 'class="active">' : '>') . '<a href="/devis" title="Devis"><svg><use xlink:href="pub/res/svg/icons.svg#file-invoice" style="fill: white;" /></svg> DEVIS</a></li>';
|
||||
|
||||
if ($Session->_user["fk_role"] == 90) {
|
||||
echo '<li class="dropdown ' . ($menu == "gestion" ? 'active">' : '">') . '<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="Gestion"><svg><use xlink:href="pub/res/svg/icons.svg#gauge" style="fill: white;" /></svg> GESTION <span class="caret"></span></a>';
|
||||
echo '<ul class="dropdown-menu" role="menu">';
|
||||
echo '<li><a href="/users" title="Gestion des utilisateurs"><i class="fa fa-users"></i> Utilisateurs</a></li>';
|
||||
echo '<li class="divider"></li>';
|
||||
echo '<li><a href="/interface" title="Gestion de l\'interface"><i class="fa fa-file"></i> Interface</a></li>';
|
||||
echo '</ul>';
|
||||
echo '</li>';
|
||||
}
|
||||
echo '<li class="divider"></li>';
|
||||
echo '<li style="background: transparent;"><a href="/login" title="Se déconnecter"><i class="fa fa-power-off"></i></a></li>';
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="clearfix"></div>
|
||||
35
views/layouts/default.php
Normal file
35
views/layouts/default.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<HTML lang="fr">
|
||||
|
||||
<head>
|
||||
<?php
|
||||
require_once BLOCKROOT . DS . 'meta-css-labs.php';
|
||||
if (isset($metacss)) echo $metacss;
|
||||
?>
|
||||
<link href="/pub/res/css/notifications.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php require "blocks/header.php"; ?>
|
||||
|
||||
<div class="container-fluid" id="dynamic-content">
|
||||
<div class="wrapper">
|
||||
<?php if (isset($content)) echo $content; ?>
|
||||
<?php if (isset($modal)) echo $modal; ?>
|
||||
</div>
|
||||
<?php require 'blocks/footer.php'; ?>
|
||||
</div>
|
||||
<audio id="SoundHandle" style="display:none;"></audio>
|
||||
<div id="loadingDiv"></div>
|
||||
<?php
|
||||
require_once BLOCKROOT . DS . 'footer-script-labs.php';
|
||||
echo '<script src="/pub/res/js/notifications.js"></script>';
|
||||
echo '<script src="/pub/res/js/jglobal.js"></script>';
|
||||
if (file_exists($Route->_js)) {
|
||||
echo '<script src="' . $Route->_js . '"></script>';
|
||||
}
|
||||
if (isset($jscript)) echo $jscript;
|
||||
?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
35
views/layouts/login.php
Normal file
35
views/layouts/login.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<HTML lang="fr">
|
||||
<head>
|
||||
<?php
|
||||
require_once BLOCKROOT.DS.'meta-css-labs.php';
|
||||
if ($metacss != "") { echo $metacss; }
|
||||
?>
|
||||
</head>
|
||||
<body class="userlogin">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<?php if ($barre != "") { ?>
|
||||
<div class="col-md-3">
|
||||
<?php echo $barre; ?>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<?php echo $content; ?>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<div class="col-md-12">
|
||||
<?php echo $content; ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php
|
||||
echo $modal;
|
||||
require 'blocks/footer.php';
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
require_once BLOCKROOT.DS.'footer-script-labs.php';
|
||||
echo $jscript;
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
77
views/vaccueil.php
Normal file
77
views/vaccueil.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
global $Route;
|
||||
$metacss = "";
|
||||
$barre = "";
|
||||
ob_start();
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Informations marchés</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<?php
|
||||
if (count($aModel["infos"]) == 0) {
|
||||
echo '<p class="text-center">Aucune information marché</p>';
|
||||
} else {
|
||||
echo '<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-400">';
|
||||
echo '<table class="table table-bordered table-striped table-fixed">';
|
||||
echo '<thead>';
|
||||
echo '<tr>';
|
||||
echo '<th class="header" scope="col" width="10%">Date</th>';
|
||||
echo '<th class="header" scope="col" width="20%">Titre</th>';
|
||||
echo '<th class="header" scope="col" width="50%">Infos</th>';
|
||||
echo '</tr>';
|
||||
echo '</thead>';
|
||||
echo '<tbody>';
|
||||
foreach ($aModel["infos"] as $info) {
|
||||
echo '<tr>';
|
||||
echo '<td >' . affiche_date($info["date_infos"]) . '</td>';
|
||||
echo '<td><strong>' . $info["titre_infos"] . '</strong></td>';
|
||||
// Afficher le texte avec les sauts de ligne
|
||||
$info["text_infos"] = str_replace("\n", "<br>", $info["text_infos"]);
|
||||
echo '<td>' . $info["text_infos"] . '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</tbody>';
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Outils</h3>
|
||||
</div>
|
||||
<div class="panel-body" style="padding:5px;margin:0;">
|
||||
<button class="btn btn-sm btn-primary" id="btnExtractTPG">Extraire le tarif public général au format Excel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="diaporama">
|
||||
<img src="pub/res/img/diapo/1.png" alt="Image 1">
|
||||
<img src="pub/res/img/diapo/2.png" alt="Image 2">
|
||||
<img src="pub/res/img/diapo/3.png" alt="Image 3">
|
||||
<img src="pub/res/img/diapo/4.jpg" alt="Image 4">
|
||||
<img src="pub/res/img/diapo/5.jpg" alt="Image 5">
|
||||
<img src="pub/res/img/diapo/6.jpg" alt="Image 6">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$content = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
$modal = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
echo '<script src="/pub/res/js/jaccueil.js"></script>';
|
||||
$jscript = ob_get_contents();
|
||||
ob_end_clean();
|
||||
require_once $Route->_layout;
|
||||
147
views/vclients.php
Normal file
147
views/vclients.php
Normal file
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
// TODO: Gérer l'importation du fichier des clients SAP dans cette page directement
|
||||
// TODO: Finaliser la gestion du click de ligne du tableau des clients et des boutons de consultation sur lignes dynamiques
|
||||
|
||||
global $Route;
|
||||
global $aModel;
|
||||
$nbClients = count($aModel["clients"]);
|
||||
$metacss = "";
|
||||
$barre = "";
|
||||
ob_start();
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading ">
|
||||
<h3 class="panel-title">
|
||||
<span id="pnlClientsTitre"><i class="fa fa-handshake-o"></i> Liste des <?= $nbClients; ?> clients</span>
|
||||
<button class="btn btn-info btn-xs pull-right" id="btnImport" title="Importer une mise à jour des clients"><i class="fa fa-sign-in fa-lg"></i> Importer</button>
|
||||
<div class="input-group pull-right panel-search">
|
||||
<input type="text" class="form-control form-control-xs" id="schClients" name="schClients" placeholder="nom, adresse, ville..." value=""/>
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default" id="btnSearch"><i class="fa fa-search fa-xs"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="cm-scrollbar cm-table-w-scroll table-800">
|
||||
<table id="tblClients" class="table table-bordered table-responsive table-fixed ">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header" scope="col" width="30%">Etablissement</th>
|
||||
<th class="header text-center" scope="col" width="10%">Type</th>
|
||||
<th class="header text-center" scope="col" width="10%">CP</th>
|
||||
<th class="header" scope="col" width="20%">Ville</th>
|
||||
<th class="header" scope="col" width="20%">Adresse</th>
|
||||
<th class="header text-center" scope="col" width="10%">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tblClientsBody">
|
||||
<?php
|
||||
foreach ($aModel["clients"] as $client) {
|
||||
echo '<tr>';
|
||||
echo '<td class="clickable celClient" data-rowid="' . $client["rowid"] . '">' . $client["libelle"] . '</td>';
|
||||
echo '<td class="clickable celClient text-center" data-rowid="' . $client["rowid"] . '">' . $client["type_client"] . '</td>';
|
||||
echo '<td class="clickable celClient text-center" data-rowid="' . $client["rowid"] . '">' . $client["cp"] . '</td>';
|
||||
echo '<td class="clickable celClient" data-rowid="' . $client["rowid"] . '">' . $client["ville"] . '</td>';
|
||||
echo '<td class="clickable celClient" data-rowid="' . $client["rowid"] . '">' . $client["adresse1"] . '</td>';
|
||||
echo '<td class="text-center">';
|
||||
echo '<button class="btn btn-xs btn-primary" data-rowid="' . $client["rowid"] . '" title="Consulter"><i class="fa fa-eye"></i></button>';
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$content = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div class="modal draggable fade" id="modalModClient" tabindex="-1" role="dialog" aria-labelledby="modalModClientTitre" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modalModClientTitre">Fiche Client</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" enctype="multipart/form-data" method="post" id='frmModClient'>
|
||||
<input type="hidden" id="rowid" name="rowid">
|
||||
<div class="form-group">
|
||||
<label for="libelle" class="col-sm-1 control-label">Etablissement :</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control" id="libelle" name="libelle">
|
||||
</div>
|
||||
<label for="groupe" class="col-sm-1 control-label">Type :</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="form-control" id="type_client" name="type_client">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="libelle" class="col-sm-1 control-label">Adresse :</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control" id="adresse1" name="adresse1">
|
||||
</div>
|
||||
<label for="groupe" class="col-sm-1 control-label">CP :</label>
|
||||
<div class="col-sm-1">
|
||||
<input type="text" class="form-control" id="cp" name="cp">
|
||||
</div>
|
||||
<label for="ville" class="col-sm-1 control-label">Ville :</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="form-control" id="ville" name="ville">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" id="btnQuitModClient" title="Quitter la fiche client">Quitter</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal draggable fade" id="modalImport" tabindex="-1" role="dialog" aria-labelledby="modalImportTitre" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modalImportTitre">Importation d'une mise à jour des clients SAP</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" enctype="multipart/form-data" method="post" id='frmImport'>
|
||||
<input type="hidden" name="importListe" id="importListe" value="0"/>
|
||||
<input type="hidden" name="MAX_FILE_SIZE" id="MAX_FILE_SIZE" value="10297150"/>
|
||||
<div class="form-group">
|
||||
<label for="importFile" class="col-sm-2 control-label">Fichier :</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="file" name="importFile" id="importFile" class="btn btn-default"/>
|
||||
<p class="help-block"><strong>Le fichier doit être au format CSV avec des séparateurs ;</strong><br/>
|
||||
avec 16 colonnes suivantes par client :<br/>
|
||||
code; libelle; siret; adresse1; adresse2; adresse3; cp; ville; fk_type; contact_civilite; contact_nom; contact_prenom; contact_fonction; telephone; mobile; email
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" id="btnCancelImport" title="Annuler l'importation">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSubmitImport" title="Lancer l'importation">Importer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
$modal = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
echo '<script src="/pub/res/js/jclients.js"></script>';
|
||||
$jscript = ob_get_contents();
|
||||
ob_end_clean();
|
||||
require_once $Route->_layout;
|
||||
964
views/vdevis.php
Normal file
964
views/vdevis.php
Normal file
@@ -0,0 +1,964 @@
|
||||
<?php
|
||||
|
||||
global $aModel;
|
||||
global $Route;
|
||||
global $Session;
|
||||
|
||||
$fkUser = $Session->_user["rowid"];
|
||||
$fkRole = $Session->_user["fk_role"];
|
||||
|
||||
$metacss = '<link href="/pub/res/css/schat.css" rel="stylesheet" type="text/css"/>';
|
||||
$barre = "";
|
||||
ob_start();
|
||||
?>
|
||||
<div id="verticalBar">
|
||||
<div id="verticalBarContent">
|
||||
<div id="vb-buttons" class="mb-1">
|
||||
<button class="btn btn-default" id="btnDevisArchives" title="Voir les devis archivés"><i class="fa fa-stack-overflow fa-lg"></i> Devis archivés</button>
|
||||
<button class="btn btn-success" id="btnCreateDevis" title="Créer un nouveau devis"><i class="fa fa-plus fa-lg"></i> Créer un devis</button>
|
||||
</div>
|
||||
<?php
|
||||
if ($aModel["last_devis"] > 0) {
|
||||
echo '<div class="pan bg-warning">';
|
||||
echo '<div class="pan-heading"><div class="pan-title">Mon dernier devis créé ou modifié</div></div>';
|
||||
echo '<div class="pan-body">';
|
||||
foreach ($aModel["devis"] as $devis) {
|
||||
if ($devis["rowid"] == $aModel["last_devis"]) {
|
||||
echo '<table class="table table-responsive table-bordered table-fixed mb-0"><tbody><tr id="tr_lastDevis_' . $devis["rowid"] . '">';
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">#' . $devis["rowid"] . '</td>';
|
||||
$dateDem = substr($devis["date_demande"], 8, 2) . '/' . substr($devis["date_demande"], 5, 2) . ' ' . substr($devis["date_demande"], 0, 4);
|
||||
if ($devis["chk_speciaux"] == 1) {
|
||||
$cellDateDem = '<span data-after-text="S" data-after-type="blue circle">' . $dateDem . '</span>';
|
||||
} else {
|
||||
$cellDateDem = $dateDem;
|
||||
}
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $cellDateDem . '</td>';
|
||||
$dateRem = substr($devis["date_remise"], 8, 2) . '/' . substr($devis["date_remise"], 5, 2) . ' ' . substr($devis["date_remise"], 0, 4);
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $dateRem . '</td>';
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $devis["num_opportunite"] . '</td>';
|
||||
if ($devis["fk_client"] == 0) {
|
||||
$ville = $devis["ville_new_client"];
|
||||
$libelle = '<span data-after-text="N" data-after-type="red circle">' . $devis["lib_new_client"] . '</span>';
|
||||
|
||||
} else {
|
||||
$ville = $devis["ville"];
|
||||
$libelle = $devis["libelle"];
|
||||
}
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $ville . '</td>';
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $libelle . '</td>';
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $devis["lib_marche"] . '</td>';
|
||||
$montant = floatval($devis["montant_total_ht_remise"]);
|
||||
echo '<td class="clickable celDevis right" data-rid="' . $devis["rowid"] . '">' . number_format($montant, 2, ',', ' ') . ' €</td>';
|
||||
$margeTotale = floatval($devis["marge_totale"]);
|
||||
echo '<td class="clickable celDevis right" data-rid="' . $devis["rowid"] . '">' . number_format($margeTotale, 2, ',', ' ') . ' %</td>';
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $devis["lib_statut"] . '</td>';
|
||||
echo '</tr></tbody></table>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
}
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div id="vb-dossiers-statuts" class="mt-1">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
<?php
|
||||
$i = 0;
|
||||
foreach ($aModel["statuts_devis"] as $dossier) {
|
||||
$active = ($i == 0) ? "active" : "";
|
||||
$lib = $dossier["libelle"];
|
||||
$badge = "";
|
||||
if (isset($aModel["nb_devis"][$dossier["rowid"]])) {
|
||||
$badge = 'data-after-text="' . $aModel["nb_devis"][$dossier["rowid"]] . '" data-after-type="orange badge top left"';
|
||||
}
|
||||
echo '<li role="presentation" class="' . $active . '" id="liStat' . $i . '"' . $badge . '><a href="#dos' . $i . '" aria-controls="dos' . $i . '" role="tab" data-toggle="tab">' . $lib . '</a></li>';
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<?php
|
||||
$iDos = 0;
|
||||
foreach ($aModel["statuts_devis"] as $dossier) {
|
||||
$active = ($iDos == 0) ? "active" : "";
|
||||
echo '<div role="tabpanel" class="tab-pane p-0 ' . $active . '" id="dos' . $iDos . '">';
|
||||
echo '<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-800">';
|
||||
echo '<table class="table table-responsive table-bordered table-fixed" id="tblDos' . $iDos . '">';
|
||||
echo '<thead><tr>';
|
||||
echo '<th class="header" scope="col" width="5%">#</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Demande</th>';
|
||||
if (($fkRole == 2 && $iDos == 2) || ($fkRole == 1 && $iDos == 1)) {
|
||||
// C'est un DV et sur le dossier Encours de validation DV
|
||||
// Ou le Dir-CO sur le dossier de validation DIR-CO
|
||||
// on affiche la colonne du nom du RR pour qu'il puisse savoir qui a fait la demande
|
||||
echo '<th class="header" scope="col" width="15%">RR</th>';
|
||||
}
|
||||
echo '<th class="header" scope="col" width="10%">Opport.</th>';
|
||||
echo '<th class="header" scope="col" width="5%">CP</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Ville</th>';
|
||||
echo '<th class="header" scope="col" width="15%">Client</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Marché</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Total HT</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Marge Totale</th>';
|
||||
echo '<th class="header" scope="col" width="12%"></th>';
|
||||
echo '</tr></thead>';
|
||||
echo '<tbody id="tblBodyDos' . $iDos . '">';
|
||||
$idStatut = $dossier["rowid"];
|
||||
$i = 0;
|
||||
foreach ($aModel["devis"] as $devis) {
|
||||
if ($devis["fk_statut_devis"] == $idStatut) {
|
||||
|
||||
$refuse = false;
|
||||
$trClass = '';
|
||||
if ($idStatut > 1 && $idStatut < 4) {
|
||||
if ($devis["chk_validat"] == 0 && $devis["fk_user_validat"] > 0) {
|
||||
$trClass = 'class="bg-warning" title="Devis refusé"';
|
||||
$refuse = true;
|
||||
}
|
||||
}
|
||||
echo '<tr id="tr_' . $devis["rowid"] . '" ' . $trClass . '>';
|
||||
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $devis["rowid"] . '</td>';
|
||||
$dateDem = substr($devis["date_demande"], 8, 2) . '/' . substr($devis["date_demande"], 5, 2) . '/' . substr($devis["date_demande"], 0, 4);
|
||||
if ($devis["chk_speciaux"] == 1) {
|
||||
$cellDateDem = '<span data-after-text="S" data-after-type="blue circle">' . $dateDem . '</span>';
|
||||
} else {
|
||||
$cellDateDem = $dateDem;
|
||||
}
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $cellDateDem . '</td>';
|
||||
if (($fkRole == 2 && $iDos == 2) || ($fkRole == 1 && $iDos == 1)) {
|
||||
// C'est un DV et sur le dossier Encours de validation DV
|
||||
// Ou le Dir-CO sur le dossier de validation DIR-CO
|
||||
// on affiche la colonne du nom du RR pour qu'il puisse savoir qui a fait la demande
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $devis["prenom"] . '. ' . $devis["nom"] . '</td>';
|
||||
}
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $devis["num_opportunite"] . '</td>';
|
||||
|
||||
if ($devis["fk_client"] == 0) {
|
||||
$cp = substr($devis["cp_new_client"], 0, 2);
|
||||
$ville = $devis["ville_new_client"];
|
||||
$libelle = '<span data-after-text="N" data-after-type="red circle">' . $devis["lib_new_client"] . '</span>';
|
||||
} else {
|
||||
$cp = substr($devis["cp"], 0, 2);
|
||||
$ville = $devis["ville"];
|
||||
$libelle = $devis["libelle"];
|
||||
}
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $cp . '</td>';
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $ville . '</td>';
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $libelle . '</td>';
|
||||
echo '<td class="clickable celDevis" data-rid="' . $devis["rowid"] . '">' . $devis["lib_marche"] . '</td>';
|
||||
$montant = floatval($devis["montant_total_ht_remise"]);
|
||||
echo '<td class="clickable celDevis right" data-rid="' . $devis["rowid"] . '">' . number_format($montant, 2, ',', ' ') . ' €</td>';
|
||||
$margeTotale = floatval($devis["marge_totale"]);
|
||||
echo '<td class="clickable celDevis right" data-rid="' . $devis["rowid"] . '">' . number_format($margeTotale, 2, ',', ' ') . ' %</td>';
|
||||
echo '<td class="center">';
|
||||
echo '<div class="btn-group">';
|
||||
if ($devis["fk_statut_devis"] == 1 || $refuse) {
|
||||
echo '<button class="btn btn-danger btn-xs btnSupprDevis" data-rid="' . $devis["rowid"] . '" title="Supprimer ce devis"><i class="fa fa-trash-o"></i></button>';
|
||||
}
|
||||
echo '<button class="btn btn-primary btn-xs btnExpExcelDevis" data-rid="' . $devis["rowid"] . '" title="Exporter ce devis au format Excel"><i class="fa fa-file-excel-o"></i></button>';
|
||||
echo '<button class="btn btn-info btn-xs btnDupDevis" data-rid="' . $devis["rowid"] . '" title="Dupliquer ce devis"><i class="fa fa-copy"></i></button>';
|
||||
if ($devis["fk_statut_devis"] == 6) {
|
||||
echo '<button class="btn btn-success btn-xs btnValDevis" data-rid="' . $devis["rowid"] . '" title="Valider le devis SAP"><i class="fa fa-check"></i></button>';
|
||||
}
|
||||
echo '</div>';
|
||||
echo '</td></tr>';
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if ($i == 0) echo '<tr><td colspan="7" class="center">Aucun devis trouvé pour ce statut</td></tr>';
|
||||
echo '</tbody>';
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
$iDos++;
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="vb-dossiers-archives" class="mt-1">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
<?php
|
||||
$i = 0;
|
||||
foreach ($aModel["dossiers"] as $dossier) {
|
||||
// si $i est un multiple de 15, on crée une nouvelle ligne
|
||||
if ($i % 15 == 0 && $i > 0) {
|
||||
echo '<div class="spacer"></div>';
|
||||
}
|
||||
$active = ($i == 0) ? "active" : "";
|
||||
echo '<li role="presentation" class="' . $active . '"><a href="#dosArch' . $i . '" aria-controls="dosArch' . $i . '" role="tab" data-toggle="tab">' . $dossier["dossier"] . '</a></li>';
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<?php
|
||||
$iDos = 0;
|
||||
foreach ($aModel["dossiers"] as $dossier) {
|
||||
$active = ($iDos == 0) ? "active" : "";
|
||||
echo '<div role="tabpanel" class="tab-pane p-0 ' . $active . '" id="dosArch' . $iDos . '">';
|
||||
echo '<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-800">';
|
||||
echo '<table class="table table-responsive table-bordered table-fixed" id="tblDosArch' . $iDos . '">';
|
||||
echo '<thead><tr>';
|
||||
echo '<th class="header" scope="col" width="5%">#</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Demande</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Opport.</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Ville</th>';
|
||||
echo '<th class="header" scope="col" width="20%">Client</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Marché</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Total HT</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Marge Totale</th>';
|
||||
echo '<th class="header" scope="col" width="10%"></th>';
|
||||
echo '</tr></thead>';
|
||||
echo '<tbody id="tblBodyDosArch' . $iDos . '">';
|
||||
$libDossier = $dossier["dossier"];
|
||||
$i = 0;
|
||||
foreach ($aModel["devis"] as $devis) {
|
||||
if ($devis["fk_statut_devis"] != 20) continue;
|
||||
if ($devis["dossier"] != $libDossier) continue;
|
||||
echo '<tr id="trArch_' . $devis["rowid"] . '">';
|
||||
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $devis["rowid"] . '</td>';
|
||||
|
||||
$dateDem = substr($devis["date_demande"], 8, 2) . '/' . substr($devis["date_demande"], 5, 2) . ' ' . substr($devis["date_demande"], 0, 4);
|
||||
if ($devis["chk_speciaux"] == 1) {
|
||||
$cellDateDem = '<span data-after-text="S" data-after-type="blue circle">' . $dateDem . '</span>';
|
||||
} else {
|
||||
$cellDateDem = $dateDem;
|
||||
}
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $cellDateDem . '</td>';
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $devis["num_opportunite"] . '</td>';
|
||||
if ($devis["fk_client"] == 0) {
|
||||
$ville = $devis["ville_new_client"];
|
||||
$libelle = '<span data-after-text="N" data-after-type="red circle">' . $devis["lib_new_client"] . '</span>';
|
||||
|
||||
} else {
|
||||
$ville = $devis["ville"];
|
||||
$libelle = $devis["libelle"];
|
||||
}
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $ville . '</td>';
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $libelle . '</td>';
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $devis["lib_marche"] . '</td>';
|
||||
$montant = floatval($devis["montant_total_ht_remise"]);
|
||||
echo '<td class="clickable celArchives right" data-rid="' . $devis["rowid"] . '">' . number_format($montant, 2, ',', ' ') . ' €</td>';
|
||||
$margeTotale = floatval($devis["marge_totale"]);
|
||||
echo '<td class="clickable celArchives right" data-rid="' . $devis["rowid"] . '">' . number_format($margeTotale, 2, ',', ' ') . ' %</td>';
|
||||
echo '<td class="center">';
|
||||
echo '<div class="btn-group">';
|
||||
echo '<button class="btn btn-info btn-xs btnDupDevis" data-rid="' . $devis["rowid"] . '" title="Dupliquer ce devis"><i class="fa fa-copy"></i></button>';
|
||||
echo '<button class="btn btn-primary btn-xs btnExpExcelDevis" data-rid="' . $devis["rowid"] . '" title="Exporter ce devis au format Excel"><i class="fa fa-file-excel-o"></i></button>';
|
||||
echo '<button class="btn btn-warning btn-xs btnPdfDevis" data-rid="' . $devis["rowid"] . '" title="Consulter le devis SAP PDF"><i class="fa fa-file-pdf-o"></i></button>';
|
||||
echo '</div>';
|
||||
echo '</td></tr>';
|
||||
$i++;
|
||||
}
|
||||
if ($i == 0) echo '<tr><td colspan="7" class="center">Aucun devis archivé trouvé sur ce département</td></tr>';
|
||||
echo '</tbody>';
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
$iDos++;
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div id="chat-container">
|
||||
<div class="chat-bubbles" id="chat-bubbles">
|
||||
</div>
|
||||
<div class="message-input" id="chat-message-input">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Ecrire mon message ici..." id="chatInputMessage"/>
|
||||
<div class="input-group-addon">
|
||||
<svg class="start-icon clickable" id="chatBtnSend">
|
||||
<use xlink:href="/pub/res/css/images/icons.svg#paperplane"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div id="divDevis">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
<li role="presentation" class="active"><a href="#tabentete" aria-controls="tabentete" role="tab" data-toggle="tab">1. Identité de l'établissement</a></li>
|
||||
<li role="presentation"><a href="#tabproduits" aria-controls="tabproduits" role="tab" data-toggle="tab">2. Sélection Produits</a></li>
|
||||
<li role="presentation"><a href="#tabdevis" aria-controls="tabdevis" role="tab" data-toggle="tab">3. Devis</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="tabentete">
|
||||
<div class="container-fluid">
|
||||
<form id="frmDevisEntete" autocomplete="off" role="form" method="POST">
|
||||
<input type="hidden" id="inp_rowid" name="rowid" value="0"/>
|
||||
<input type="hidden" id="inp_fk_client" name="fk_client" value="0"/>
|
||||
<input type="hidden" id="inp_type_client" name="type_client" value="0"/>
|
||||
<input type="hidden" id="inp_fk_user" name="fk_user" value="0"/>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_num_opportunite">N° opportunité :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="text" class="form-control" id="inp_num_opportunite" name="num_opportunite" maxlength="8" required="required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_date_demande">Date demande :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="date" class="form-control" id="inp_date_demande" name="date_demande" size="10" maxlength="10" placeholder="jj/mm/aaaa" required="required"/>
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_date_remise">A remettre au client le :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="date" class="form-control" id="inp_date_remise" name="date_remise" size="10" maxlength="10" placeholder="jj/mm/aaaa" required="required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">Recherche du client :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="checkbox" name="chk_clients_secteur" id="inp_chk_clients_secteur" checked> Sur mon secteur uniquement
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">Nom du client :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_lib_client" name="lib_client" required="required" placeholder="Saisir les premiers caractères de son nom..."/>
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="selTypeEtab">Type de l'établissement :</label>
|
||||
<div class="col-md-2">
|
||||
<select class="form-control" id="selTypeEtab" name="selTypeEtab" disabled>
|
||||
<option value="">-</option>
|
||||
<option value="PUB">PUB</option>
|
||||
<option value="PRA">PRA</option>
|
||||
<option value="PRC">PRC</option>
|
||||
<option value="PRD">PRD</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<button type="button" class="btn btn-primary" id="btnCreateClient">Nouveau client</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_adresse1">Adresse :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_adresse1" name="adresse1" readonly="readonly"/>
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_cp">CP :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="text" class="form-control" id="inp_cp" name="cp" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_adresse2"></label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_adresse2" name="adresse2" placeholder="adresse ligne 2" readonly="readonly"/>
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_ville">Ville :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_ville" name="ville" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_adresse3"></label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_adresse3" name="adresse3" placeholder="adresse ligne 3" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_contact_nom">Contact :</label>
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control" id="inp_contact_nom" name="contact_nom" placeholder="Nom" required="required"/>
|
||||
<p class="help-block">Nom du contact</p>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control" id="inp_contact_prenom" name="contact_prenom" placeholder="Prénom" required="required"/>
|
||||
<p class="help-block">Prénom du contact</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_contact_fonction">Fonction du contact :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_contact_fonction" name="contact_fonction" required="required"/>
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_email">Email :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_email" name="email" required="required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" form-group">
|
||||
<label class=" control-label col-md-2" for="inp_telephone">Tél :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="text" class="form-control" id="inp_telephone" name="telephone" size="10" maxlength="18" placeholder="Fixe"/>
|
||||
</div>
|
||||
<label class=" control-label col-md-2" for="inp_mobile">Mob :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="text" class="form-control" id="inp_mobile" name="mobile" size=" 10" maxlength="18" placeholder="Mobile"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="fk_marche" class="control-label col-md-2">Marché :</label>
|
||||
<div class="col-md-3">
|
||||
<select class="form-control" name="fk_marche" id="inp_fk_marche" required="required">
|
||||
<option value="0">Aucun</option>
|
||||
<?php
|
||||
foreach ($aModel["marches"] as $marche) {
|
||||
echo '<option value="' . $marche["rowid"] . '">' . $marche["libelle"] . '</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<label for="inp_chk_devis_photos" class="control-label col-md-2">Devis avec photos :</label>
|
||||
<div class="col-md-1">
|
||||
<input type="checkbox" name="chk_devis_photos" id="inp_chk_devis_photos">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inp_commentaire" class="control-label col-md-2">Commentaire :</label>
|
||||
<div class="col-md-8">
|
||||
<input type="text" class="form-control" name="commentaire" id="inp_commentaire"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<button class="btn btn-success pull-right" id="btnSaveEnTete">Enregistrer l'en-tête de ce devis</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="tabproduits">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-7">
|
||||
<h4>Liste des produits disponibles</h4>
|
||||
<div id="divProduitsDisponibles">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist" id="listOngletsProduits">
|
||||
<?php
|
||||
// on crée autant d'onglets que de familles de produits
|
||||
$iTab = 0;
|
||||
foreach ($aModel["familles"] as $famille) {
|
||||
// si $iTab est un multiple de 5, on crée une nouvelle ligne
|
||||
// if ($iTab % 5 == 0 && $iTab > 0) {
|
||||
// echo '<div class="spacer"></div>';
|
||||
// }
|
||||
echo '<li role="presentation"';
|
||||
if ($iTab == 0) {
|
||||
echo ' class="active"';
|
||||
}
|
||||
$libFamille = $famille["libelle"];
|
||||
$libIdFamille = str_replace(" ", "_", $famille["libelle"]);
|
||||
echo '><a href="#tab' . $libIdFamille . '" id="onglet_' . $famille["ordre"] . "_" . $libIdFamille . '" data-famille="' . $libIdFamille . '" data-ordre="' . $famille["ordre"] . '" aria-controls="tab' . $libIdFamille . '" role="tab" data-toggle="tab">' . $libFamille . '</a></li>';
|
||||
$iTab++;
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<?php
|
||||
// on crée autant de panneaux que de familles de produits
|
||||
$iTab = 0;
|
||||
foreach ($aModel["familles"] as $famille) {
|
||||
echo '<div role="tabpanel" class="tab-pane';
|
||||
if ($iTab == 0) {
|
||||
echo ' active';
|
||||
}
|
||||
$libIdFamille = str_replace(" ", "_", $famille["libelle"]);
|
||||
echo '" id="tab' . $libIdFamille . '">';
|
||||
// echo '<form class="form-inline">';
|
||||
echo '<div class="form-group">';
|
||||
echo '<label for="inpSearchProduct_' . $libIdFamille . '">Recherche de produits dans cette famille : </label>';
|
||||
echo '<div class="input-group"><input type="text" class="form-control" id="inpSearchProduct_' . $libIdFamille . '" data-idfamille="' . $famille["rowid"] . '" placeholder="code ou libellé" size="50px" />';
|
||||
echo '<div class="input-group-addon"><svg width="18px" height="18px" viewBox="0 0 20 20" role="img" xmlns="http://www.w3.org/2000/svg" aria-labelledby="returnIconTitle" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none" color="#000000"><path d="M19,8 L19,11 C19,12.1045695 18.1045695,13 17,13 L6,13"/> <polyline points="8 16 5 13 8 10"/> </svg></div>';
|
||||
echo '</div></div>';
|
||||
// echo '</form>';
|
||||
echo '<div class="border cm-scrollbar cm-table-w-scroll table-responsive mt-1 table-400">';
|
||||
echo '<table class="table table-striped table-bordered table-responsive table-fixed" id="tblProduits_' . $libIdFamille . '">';
|
||||
echo '<thead>';
|
||||
echo '<tr>';
|
||||
echo '<th class="header" scope="col" width="10%">Sélection</th>';
|
||||
echo '<th class="header" scope="col" width="20%">Code</th>';
|
||||
echo '<th class="header" scope="col" width="30%">Libellé</th>';
|
||||
echo '<th class="header" scope="col" width="10%">Famille</th>';
|
||||
echo '</tr>';
|
||||
echo '</thead>';
|
||||
echo '<tbody>';
|
||||
|
||||
echo '</tbody>';
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
$iTab++;
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5">
|
||||
<h3>Liste des produits sélectionnés pour ce devis</h3>
|
||||
<form class="form" id="frmSelProduits">
|
||||
<input type="hidden" name="fk_devis" id="inp_SelProd_fkDevis"/>
|
||||
<div class="border cm-scrollbar cm-table-w-scroll table-responsive">
|
||||
<table class="table table-bordered table-responsive table-fixed" id="tblProduitsSelect">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header" scope="col" width="10%">Retrait</th>
|
||||
<th class="header" scope="col" width="20%">Code</th>
|
||||
<th class="header" scope="col" width="30%">Libellé</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<button class="btn btn-warning" id="btnSpeciaux"><span data-after-text="S" data-after-type="blue circle">Demande de produits spéciaux</span></button>
|
||||
<button class="btn btn-success pull-right" id="btnSaveSelProduits">Enregistrer les produits sélectionnés</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- fin container-fluid -->
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="tabdevis">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<form class="form-inline" id="frmDevis">
|
||||
<input type="hidden" name="inpIdDevis" id="inpIdDevis"/>
|
||||
<div class="col-md-9">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<table class="table mb-0">
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-group">
|
||||
<label for="inpTotalHT">Total HT avant remise :</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control numeric" id="inpTotalHT" name="inpTotalHT" readonly="readonly" tabindex="-1" size="12" maxlength="12"/>
|
||||
<div class="input-group-addon">€</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
if ($Conf->_devIp) {
|
||||
echo '<div class="form-group">';
|
||||
echo '<label for="inpCoutTotalAchat">Coût total achat :</label>';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
if ($Conf->_devIp) {
|
||||
echo '<div class="input-group">';
|
||||
echo '<input type="text" class="form-control numeric" id="inpCoutTotalAchat" name="inpCoutTotalAchat" readonly="readonly" tabindex="-1" size="12" maxlength="12"/>';
|
||||
echo '<div class="input-group-addon">€</div>';
|
||||
echo '</div></div>';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-group">
|
||||
<label for="inpTotalRemHT">Total HT après remise :</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control numeric" id="inpTotalRemHT" name="inpTotalRemHT" readonly="readonly" tabindex="-1" size="12" maxlength="12"/>
|
||||
<div class="input-group-addon">€</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-group">
|
||||
<label for="inpTotalMarge">Marge totale avant logistique :</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control numeric" id="inpTotalMarge" name="inpTotalMarge" readonly="readonly" tabindex="-1" size="10" maxlength="10"/>
|
||||
<div class="input-group-addon">%</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="trRemisesMarche">
|
||||
<td>
|
||||
<div class="form-group"><label for="">Remises du marché :</label></div>
|
||||
</td>
|
||||
<td colspan="3" id="tdRemisesMarche">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div style="overflow-x: auto;">
|
||||
<table class="table table-responsive" width="90%" id="tblDevisPro">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="10%">Ref</th>
|
||||
<th width="20%">Désignation</th>
|
||||
<th width="10%">Prix vente</th>
|
||||
<th width="10%">Qté</th>
|
||||
<th width="10%">Remise</th>
|
||||
<th width="10%">PU vente remisé</th>
|
||||
<th width="10%">Total HT</th>
|
||||
<th width="10%" class="text-center" title="Variante ou Option">V/O</th>
|
||||
<th width="10%">Marge</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<table id="tblCommentDevis">
|
||||
<tbody class="w-100">
|
||||
<tr>
|
||||
<td width="10%">Commentaire :</td>
|
||||
<td width="90%" colspan="2"><input type="text" class="form-control w-100" id="inpCommentDevis" name="commentDevis"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="10%">Demande geste commercial :</td>
|
||||
<td width="90%" colspan="2"><input type="text" class="form-control w-100" id="inpCommentGesteComm" name="commentGesteComm" placeholder="Demande adressée à votre DV"/></td>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="well" style="background: #b1dfbb">
|
||||
<h5><strong>Latitudes sur la marge avant logistique</strong></h5>
|
||||
<table class="table transparent" style="background: #b1dfbb;">
|
||||
<tr class="transparent">
|
||||
<td class="transparent">Pour le RR</td>
|
||||
<td class="transparent">
|
||||
<div class="input-group"><input type="text" class="form-control numeric" id="inp_latitudeRR" disabled/>
|
||||
<div class="input-group-addon">%</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="transparent">
|
||||
<td class="transparent">Pour le DV/DGC</td>
|
||||
<td class="transparent">
|
||||
<div class="input-group"><input type="text" class="form-control numeric" id="inp_latitudeDV" disabled/>
|
||||
<div class="input-group-addon">%</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="transparent">
|
||||
<td class="transparent">Pour le DIR-CO</td>
|
||||
<td class="transparent"><input type="text" class="form-control" id="inp_latitudeAuDela" value="Au-delà" disabled></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="well" style="background: #EEE;">
|
||||
<h5 id="titleMarche"><strong>Informations Marché</strong></h5>
|
||||
<table class="table table-bordered table-striped" id="tblMarche">
|
||||
<tr>
|
||||
<td>Tx Remise trimestrielle</td>
|
||||
<td id="tdTxRemiseTrim" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tx Remise semestrielle</td>
|
||||
<td id="tdTxRemiseSeme" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tx Remise annuelle</td>
|
||||
<td id="tdTxRemiseAnnu" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Début et fin marché</td>
|
||||
<td id="tdDebutFin" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Date de validité des prix</td>
|
||||
<td id="tdDateValiditePrix" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Garantie</td>
|
||||
<td id="tdGarantie" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Remises commerciales</td>
|
||||
<td id="tdRemisesCo" class="bold"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<button class="btn btn-primary pull-right" id="btnSaveDevisAndSend" data-statut="2">Demander Traitement SAP</button>
|
||||
<button class="btn btn-success pull-right mr-1" id="btnSaveDevis">Enregistrer ce devis</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$content = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
// Endroit destiné aux modales
|
||||
// Modal pour les produits spéciaux
|
||||
?>
|
||||
<div class="modal draggable fade" id="modalSpeciaux" tabindex="-1" role="dialog" aria-labelledby="modalSpeciauxTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modSpeciauxTitre"><i class="fa fa-stack-exchange fa-lg"></i> Demande de produits spéciaux</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="panel panel-warning">
|
||||
<div class="panel-heading ">
|
||||
<h3 class="panel-title">
|
||||
<span><i class="fa fa-truck"></i> Livraison souhaitée</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form class="form-horizontal" id="frmSpeciaux" autocomplete="off" role="form" enctype="multipart/form-data">
|
||||
<input type="hidden" id="inp_idDevis_speciaux" name="idDevis_speciaux"/>
|
||||
<input type="hidden" id="inp_specialFkProduit_1" name="specialFkProduit_1"/>
|
||||
<input type="hidden" id="inp_specialFkProduit_2" name="specialFkProduit_2"/>
|
||||
<input type="hidden" id="inp_specialFkProduit_3" name="specialFkProduit_3"/>
|
||||
<input type="hidden" id="inp_specialFkProduit_4" name="specialFkProduit_4"/>
|
||||
<input type="hidden" id="inp_specialFkProduit_5" name="specialFkProduit_5"/>
|
||||
<div class="form-group">
|
||||
<label for="inp_chk_livr_multi" class="control-label col-md-1">Livraisons multiples :</label>
|
||||
<div class="col-md-1">
|
||||
<input type="checkbox" class="form-control" name="chk_livr_multi" id="inp_chk_livr_multi">
|
||||
</div>
|
||||
<label class="control-label col-md-1" for="inp_nb_livr">Si oui, combien :</label>
|
||||
<div class="col-md-1">
|
||||
<input type="number" class="form-control" id="inp_nb_livr" name="nb_livr" size="3" maxlength="3"/>
|
||||
</div>
|
||||
<label class="control-label col-md-1" for="inp_date_livr_1">Date 1ère livraison :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="date" class="form-control" id="inp_date_livr_1" name="date_livr_1" placeholder="jj/mm/aaaa"/>
|
||||
</div>
|
||||
<label for="inp_specialEmail" class="control-label col-md-1">Email Service :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="email" class="form-control" id="inp_specialEmail" name="specialEmail" title="Envoyer un email au service concerné pour cette demande"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading ">
|
||||
<h3 class="panel-title">
|
||||
<span id="pnlProduitsSpeciauxTitre"><i class="fa fa-cubes"></i> Produits spéciaux</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div style="overflow-x: auto;">
|
||||
<table class="table table-responsive" width="90%" id="tblProduitsSpeciaux">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="8%">Code</th>
|
||||
<th width="10%">Désignation</th>
|
||||
<th width="5%">Qté</th>
|
||||
<th width="10%">Surcoût<br/>acceptable</th>
|
||||
<th width="5%">Echantillon ?</th>
|
||||
<th width="10%">Quand ?</th>
|
||||
<th width="15%">Concurrent ?</th>
|
||||
<th width="20%">Demande</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
for ($i = 1; $i <= 5; $i++) {
|
||||
echo '<tr>';
|
||||
echo '<td><input type="text" class="form-control" id="inp_specialCode_' . $i . '" name="specialCode_' . $i . '" placeholder="Code produit"/></td>';
|
||||
echo '<td><input type="text" class="form-control" id="inp_specialLibe_' . $i . '" name="specialLibe_' . $i . '" /></td>';
|
||||
echo '<td><input type="number" step="1" class="form-control" id="inp_specialQte_' . $i . '" name="specialQte_' . $i . '"/></td>';
|
||||
echo '<td><div class="input-group"><input type="text" class="form-control" id="inp_specialCout_' . $i . '" name="specialCout_' . $i . '"/>';
|
||||
echo '<div class="input-group-addon">€</div></div></td>';
|
||||
echo '<td><input type="checkbox" class="form-control" name="chk_specialEchantillon_' . $i . '" id="inp_chk_specialEchantillon_' . $i . '"/></td>';
|
||||
echo '<td><input type="date" class="form-control" id="inp_specialDate_' . $i . '" name="specialDate_' . $i . '"/></td>';
|
||||
echo '<td><input type="text" class="form-control" id="inp_specialConcurrent_' . $i . '" name="specialConcurrent_' . $i . '"/></td>';
|
||||
echo '<td><input type="text" class="form-control" id="inp_specialDescription_' . $i . '" name="specialDescription_' . $i . '"/></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" id="btnCancelSpeciaux" title="Fermer sans enregistrer">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSaveSpeciaux" title="Enregistrer la modification">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal draggable fade" id="modalCreateClient" tabindex="-1" role="dialog" aria-labelledby="modalCreateClientTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modCreateClientTitre"><i class="fa fa-user fa-lg"></i> Création d'un nouveau client</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading ">
|
||||
<h3 class="panel-title">
|
||||
<span><i class="fa fa-user"></i> Saisir ses coordonnées</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="container-fluid">
|
||||
<form class="form-horizontal" id="frmCreateClient" autocomplete="off" role="form" enctype="multipart/form-data">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_create_libelle">Nom de l'établissement :</label>
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control" id="inp_create_libelle" name="create_libelle" maxlength="75"/>
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_create_type_client">Type de l'établissement :</label>
|
||||
<div class="col-md-2">
|
||||
<select class="form-control" name="create_type_client" id="inp_create_type_client">
|
||||
<option value="0">-</option>
|
||||
<?php
|
||||
foreach ($aModel["types_clients"] as $type) {
|
||||
echo '<option value="' . $type["code"] . '">' . $type["code"] . ' - ' . $type["libelle"] . '</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_create_adresse1">Adresse :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_create_adresse1" name="create_adresse1" maxlength="50"/>
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_create_cp">CP :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="text" class="form-control" id="inp_create_cp" name="create_cp" maxlength="5"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_create_adresse2"></label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_create_adresse2" name="create_adresse2" placeholder="adresse ligne 2" maxlength="50"/>
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_create_ville">Ville :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_create_ville" name="create_ville" maxlength="50"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_create_adresse3"></label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_create_adresse3" name="create_adresse3" placeholder="adresse ligne 3" maxlength="50"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" id="btnCancelCreateClient" title="Fermer sans enregistrer">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSaveCreateClient" title="Enregistrer la modification">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal draggable fade" id="modalPDFSAP" tabindex="-1" role="dialog" aria-labelledby="modalCreateClientTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<form class="form-inline" id="frmValidationRR">
|
||||
<input type="text" class="form-control w-75" id="inpCommentPDFSAP" name="commentPDFSAP" placeholder="Saisir un commentaire..." required/>
|
||||
<button id="btnValidationRR" class="btn btn-success">Valider</button>
|
||||
<button id="btnRefusRR" class="btn btn-danger">Refuser</button>
|
||||
<button id="btnCloseRR" class="btn btn-default">Fermer sans répondre</button>
|
||||
</form>
|
||||
<button id="btnClosePDF" class="btn btn-primary">Fermer le document</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div id="pdfContainer">
|
||||
<embed src="" frameborder="0" width="100%" height="600px" id="embPdfSAP">
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal draggable fade" id="modalCommentProd" tabindex="-1" role="dialog" aria-labelledby="modalCommentProdTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modCommentProdTitre"> Commentaire sur le produit</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<input type="hidden" id="inp_commentProdId" value="0" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_commentProd">Commentaire : </label>
|
||||
<div class="col-md-8">
|
||||
<input type="text" class="form-control w-100" id="inp_commentProd" placeholder="" maxlength="255"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" id="btnCancelCommentProd" title="Fermer sans enregistrer">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSaveCommentProd" title="Enregistrer le commentaire">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$modal = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
echo '<script src="/pub/res/js/jdevis.js"></script>';
|
||||
echo '<script src="/pub/res/js/jchat.js"></script>';
|
||||
$jscript = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
require_once $Route->_layout;
|
||||
122
views/vinterface.php
Normal file
122
views/vinterface.php
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
$metacss = "";
|
||||
$barre = "";
|
||||
|
||||
global $aModel;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading"><i class="fa fa-file-text"></i> Accueil - Informations Marchés
|
||||
<button class="btn btn-success btn-xs pull-right" id="btnAddInfo" title="Créer une info marché"><i class="fa fa-plus fa-lg"></i> Ajouter</button>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-800">
|
||||
<table id="tblInfos" class="table table-bordered table-striped table-fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header" scope="col" width="10%">Date</th>
|
||||
<th class="header text-center" scope="col" width="20%">Titre</th>
|
||||
<th class="header text-center" scope="col" width="30%">Texte</th>
|
||||
<th class="header text-center" scope="col" width="10%">Publié</th>
|
||||
<th class="header text-center" scope="col" width="10%">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$iLines = 0;
|
||||
foreach ($aModel["infos"] as $info) {
|
||||
echo '<tr class="ligInfo">';
|
||||
echo '<td>' . affiche_date($info["date_infos"]) . '</td>';
|
||||
echo '<td>' . $info["titre_infos"] . '</td>';
|
||||
echo '<td>' . $info["text_infos"] . '</td>';
|
||||
echo '<td class="center">';
|
||||
if ($info["chk_publie"] == 1) {
|
||||
echo 'Oui';
|
||||
} else {
|
||||
echo 'Non';
|
||||
}
|
||||
echo '</td>';
|
||||
echo '<td class="text-center">';
|
||||
echo '<a title="Modifier cette info marchés" class="btn btn-xs btn-primary btnModInfo mr-1" data-rowid="' . $info["rowid"] . '"><i class="fa fa-pencil fa-lg"></i></a>';
|
||||
echo '<a title="Supprimer cette info marchés" class="btn btn-xs btn-danger btnSuppInfo" data-rowid="' . $info["rowid"] . '"><i class="fa fa-trash fa-lg"></i></a>';
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
$iLines++;
|
||||
}
|
||||
if ($iLines == 0) {
|
||||
echo '<tr><td colspan="5" class="text-center">Aucune info marchés</td></tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$content = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
//! Affichage des modales
|
||||
?>
|
||||
<div class="modal draggable fade" id="modalEditInfos" tabindex="-1" role="dialog" aria-labelledby="modInfosTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modInfosTitre"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<form class="form-horizontal" id="frmInfo" role="form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="rowid" id="inpInfoRowid" value=""/>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inpInfoDate" class="control-label col-md-2">Date :</label>
|
||||
<div class="col-md-2"><input type="date" class="form-control" name="date_infos" id="inpInfoDate" data-default="" required="required"/></div>
|
||||
<label for="inpInfoChkPublie" class="control-label col-md-2">Publié :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="checkbox"><input type="checkbox" name="chk_publie" id="inpInfoChkPublie"/></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inpInfoTitre" class="control-label col-md-2">Titre :</label>
|
||||
<div class="col-md-6"><input type="text" class="form-control" name="titre_infos" id="inpInfoTitre" data-default="" required="required" maxlength="200"/></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inpInfoText" class="control-label col-md-2">Texte :</label>
|
||||
<div class="col-md-8">
|
||||
<textarea class="form-control" rows="3" name="text_infos" id="inpInfoText" required="required"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" id="btnCancelModInfo" title="Annuler la modification">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSaveModInfo">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
$modal = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<script src="/pub/res/js/jinterface.js"></script>
|
||||
<?php
|
||||
$jscript = ob_get_contents();
|
||||
ob_end_clean();
|
||||
require_once $Route->_layout;
|
||||
61
views/vlogin.php
Normal file
61
views/vlogin.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
global $Conf;
|
||||
global $Route;
|
||||
$metacss = "";
|
||||
$barre = "";
|
||||
ob_start();
|
||||
?>
|
||||
<br/>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<p align="center"><img src="/pub/res/img/logo/cleo_login.png" alt="logo <?= $Conf->_brandname; ?>" class="img-responsive"/></p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading"><i class="fa fa-lock"></i> Connexion <?= $Conf->_brandname; ?></div>
|
||||
<div class="panel-body">
|
||||
<?php if ($msg != "") {
|
||||
echo '<div class="alert alert-danger">' . $msg . '</div>';
|
||||
} ?>
|
||||
<div class="container-fluid">
|
||||
<form role="form" method="post" accept-charset="utf8" action="login">
|
||||
<div class="mb-3" id="divUserName">
|
||||
<label for="bcusername" class="form-label">Mon identifiant</label>
|
||||
<input type="text" class="form-control" name="bcusername" id="bcusername" placeholder="Mon identifiant">
|
||||
</div>
|
||||
<div class="mb-3" id="divPassWord">
|
||||
<label for="bcpassword" class="form-label">Mon mot de passe</label>
|
||||
<div class="input-group">
|
||||
<input type="password" class="form-control pwd" name="bcpassword" id="bcpassword" placeholder="Mon mot de passe">
|
||||
<div class="input-group-addon" id="togglePassword">
|
||||
|
||||
<svg width="18px" height="18px" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 10C4 10 5.6 15 12 15M12 15C18.4 15 20 10 20 10M12 15V18M18 17L16 14.5M6 17L8 14.5" stroke="#464455" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="#" id="lnPerdu">Mot de passe perdu ?</a>
|
||||
</div>
|
||||
<div class="mb-3" id="divEmail" style='display: none;'>
|
||||
<label for="bcemail" class="form-label">Mot de passe perdu ? Entrez votre email</label>
|
||||
<input type="email" class="form-control" name="bcemail" id="bcemail" placeholder="Mon email">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary pull-right" id="btnSubmit">Se connecter</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$content = ob_get_contents();
|
||||
ob_clean();
|
||||
$modal = "";
|
||||
ob_start();
|
||||
?>
|
||||
<script src="/pub/res/js/jlogin.js"></script>
|
||||
<?php
|
||||
$jscript = ob_get_contents();
|
||||
ob_end_clean();
|
||||
require_once $Route->_layout;
|
||||
451
views/vmarches.php
Normal file
451
views/vmarches.php
Normal file
@@ -0,0 +1,451 @@
|
||||
<?php
|
||||
// TODO: Mettre en place une zone de saisie d'un filtre sur la table des produits
|
||||
global $aModel;
|
||||
global $Route;
|
||||
|
||||
$metacss = '';
|
||||
$barre = "";
|
||||
ob_start();
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-cubes"></i> Liste des marchés
|
||||
<button class="btn btn-success btn-xs pull-right" id="btnCreateMarche" title="Créer un marché"><i class="fa fa-plus fa-lg"></i> Ajouter</button>
|
||||
<button class="btn btn-warning btn-xs pull-right mr-1" id="btnGestionListes" title="Gestion des listes tarifaires par marché"><i class="fa fa-stack-exchange fa-lg"></i> Listes tarifaires</button>
|
||||
<button class="btn btn-warning btn-xs pull-right mr-1" id="btnFamilles" title="Gestion des familles de produits"><i class="fa fa-stack-exchange fa-lg"></i> Familles</button>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-800">
|
||||
<table id="tblMarches" class="table table-bordered table-striped table-fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header" scope="col" width="20%">Libellé</th>
|
||||
<th class="header text-center" scope="col" width="10%">Actif</th>
|
||||
<th class="header text-center" scope="col" width="10%">Type</th>
|
||||
<th class="header text-center" scope="col" width="15%">Date début</th>
|
||||
<th class="header text-center" scope="col" width="15%">Date fin</th>
|
||||
<th class="header text-center" scope="col" width="15%">Date validité Prix</th>
|
||||
<th class="header text-center" scope="col" width="15%">Date Import</th>
|
||||
<th class="header text-center" scope="col" width="10%">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($aModel["lesmarches"] as $leMarche) {
|
||||
if ($leMarche["rowid"] == 999) {
|
||||
$style = 'style="background-color: #ccccff;font-weight: bold;font-size: 1.2em;"';
|
||||
} else {
|
||||
$style = '';
|
||||
}
|
||||
echo '<tr class="ligMarche">';
|
||||
echo '<td class="clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '" ' . $style . '>' . $leMarche["libelle"] . '</td>';
|
||||
echo '<td class="text-center clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '" ' . $style . '>';
|
||||
if ($leMarche["active"] == 1) {
|
||||
echo "Oui";
|
||||
} else {
|
||||
echo "non";
|
||||
}
|
||||
echo '</td>';
|
||||
echo '<td class="text-center clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '" ' . $style . '>';
|
||||
if ($leMarche["chk_marche_hybride"] == 1) {
|
||||
echo "Hybride";
|
||||
if ($leMarche["chk_remise_sur_tg"] == 1) {
|
||||
echo " + TG";
|
||||
}
|
||||
} else {
|
||||
if ($leMarche["chk_remise_sur_tg"] == 1) {
|
||||
echo "TG";
|
||||
} else {
|
||||
echo "-";
|
||||
}
|
||||
}
|
||||
echo '</td>';
|
||||
echo '<td class="text-center clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '" ' . $style . '>' . affiche_date($leMarche["date_debut"]) . '</td>';
|
||||
// on change la couleur de fond de la cellule si la date de fin est dépassée
|
||||
if (strtotime($leMarche["date_fin"]) <= strtotime(date("Y-m-d"))) {
|
||||
echo '<td class="text-center clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '" style="background-color: #ff0000;color:white;">' . affiche_date($leMarche["date_fin"]) . '</td>';
|
||||
} else {
|
||||
// on change la couleur de fond de la cellule si la date de fin est dans un délai de 2 mois
|
||||
if (strtotime($leMarche["date_fin"]) <= strtotime(date("Y-m-d", strtotime("+3 months")))) {
|
||||
echo '<td class="text-center clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '" style="background-color: #ffcccc;">' . affiche_date($leMarche["date_fin"]) . '</td>';
|
||||
} else {
|
||||
echo '<td class="text-center clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '">' . affiche_date($leMarche["date_fin"]) . '</td>';
|
||||
}
|
||||
}
|
||||
echo '<td class="text-center clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '">' . affiche_date($leMarche["date_validite_prix"]) . '</td>';
|
||||
if (!empty((int)$leMarche["date_import"])) {
|
||||
$laDateImport = affiche_date($leMarche["date_import"]);
|
||||
} else {
|
||||
$laDateImport = "-";
|
||||
}
|
||||
echo '<td class="text-center clickable celMarche" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '">' . $laDateImport . '</td>';
|
||||
echo '<td class="text-center">';
|
||||
echo '<a title="Modifier la fiche de ce marché" class="btn btn-xs btn-primary btnModMarche mr-1" data-act="E" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '"><i class="fa fa-pencil fa-lg"></i></a>';
|
||||
if ($leMarche["rowid"] != 999) {
|
||||
//! si ce n'est pas le marché par défaut (hors marché), on autorise la suppression du marché
|
||||
echo '<a title="Supprimer ce marché" class="btn btn-xs btn-danger btnSuppMarche" data-act="D" data-rowid="' . $leMarche["rowid"] . '" data-libelle="' . $leMarche["libelle"] . '"><i class="fa fa-trash fa-lg"></i></a>';
|
||||
}
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><span id="pnlProduitsTitre"><i class="fa fa-cubes"></i> Produits du marché</span>
|
||||
<input type="text" class="w-25" id="inpSearchProduit" placeholder="Rechercher">
|
||||
<button class="btn btn-info btn-xs pull-right" id="btnImportProduits" title="Importer une mise à jour de produits sur un marché ou hors marché"><i class="fa fa-sign-in fa-lg"></i> Importer</button>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-800">
|
||||
<table id="tblMarchesProduits" class="table table-bordered table-striped table-fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header" scope="col" width="15%">Code</th>
|
||||
<th class="header" scope="col" width="25%">Désignation</th>
|
||||
<th class="header" scope="col" width="15%">Groupe</th>
|
||||
<th class="header text-center" scope="col" width="15%">Prix Achat Net</th>
|
||||
<th class="header text-center" scope="col" width="15%">Prix Vente</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$content = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
//! Affichage des modales
|
||||
?>
|
||||
<div class="modal draggable fade" id="modalEditMarche" tabindex="-1" role="dialog" aria-labelledby="modMarcheTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modMarcheTitre"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<form class="form-horizontal" id="frmMarche" role="form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="act" id="marcheAct" value=""/>
|
||||
<input type="hidden" name="rowid" id="marcheRowid" value=""/>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="marcheLibelle" class="control-label col-md-2">Libellé :</label>
|
||||
<div class="col-md-3"><input type="text" class="form-control" name="libelle" id="marcheLibelle" data-default="" required="required"/></div>
|
||||
<label for="marcheNumero" class="control-label col-md-1">N° :</label>
|
||||
<div class="col-md-2"><input type="text" class="form-control" name="numero" id="marcheNumero" data-default=""/></div>
|
||||
<label for="marcheNom" class="control-label col-md-1">Nom :</label>
|
||||
<div class="col-md-3"><input type="text" class="form-control" name="nom" id="marcheNom" data-default=""/></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheChk_remise_sur_tg" class="control-label col-md-2">Remise sur TG :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="checkbox"><input type="checkbox" name="chk_remise_sur_tg" id="marcheChk_remise_sur_tg"/></div>
|
||||
</div>
|
||||
<label for="marcheChk_prix_nets" class="control-label col-md-2">Prix nets :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="checkbox"><input type="checkbox" name="chk_prix_nets" id="marcheChk_prix_nets"/></div>
|
||||
</div>
|
||||
<label for="marcheChk_marche_public" class="control-label col-md-2">Marché public :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="checkbox"><input type="checkbox" name="chk_marche_public" id="marcheChk_marche_public"/></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group has-warning has-feedback">
|
||||
<label for="marcheTaux_remise_trimestrielle" class="control-label col-md-2">RFA trimestrielle :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" min="0" step="0.01" max="9999" class="form-control" name="taux_remise_trimestrielle" id="marcheTaux_remise_trimestrielle" data-default=""/>
|
||||
<span class="input-group-addon">%</span>
|
||||
</div>
|
||||
</div>
|
||||
<label for="marcheTaux_remise_semestrielle" class="control-label col-md-2">RFA semestrielle :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" min="0" step="0.01" max="9999" class="form-control" name="taux_remise_semestrielle" id="marcheTaux_remise_semestrielle" data-default=""/>
|
||||
<span class="input-group-addon">%</span>
|
||||
</div>
|
||||
</div>
|
||||
<label for="marcheTaux_remise_annuelle" class="control-label col-md-2">RFA annuelle :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" min="0" step="0.01" max="9999" class="form-control" name="taux_remise_annuelle" id="marcheTaux_remise_annuelle" data-default=""/>
|
||||
<span class="input-group-addon">%</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheDate_debut" class="control-label col-md-2">Date debut :</label>
|
||||
<div class="col-md-2"><input type="text" class="form-control datepicker" name="date_debut" id="marcheDate_debut" data-default=""/></div>
|
||||
<label for="marcheDate_fin" class="control-label col-md-2">Date fin :</label>
|
||||
<div class="col-md-2"><input type="text" class="form-control datepicker" name="date_fin" id="marcheDate_fin" data-default=""/></div>
|
||||
<label for="marcheDate_validite_prix" class="control-label col-md-2">Date validite prix :</label>
|
||||
<div class="col-md-2"><input type="text" class="form-control datepicker" name="date_validite_prix" id="marcheDate_validite_prix" data-default=""/></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheFranco_de_port" class="control-label col-md-2">Franco de port :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" min="0" step="1" max="9999" class="form-control" name="franco_de_port" id="marcheFranco_de_port" data-default=""/>
|
||||
<span class="input-group-addon">€</span>
|
||||
</div>
|
||||
</div>
|
||||
<label for="marcheGarantie" class="control-label col-md-2">Garantie :</label>
|
||||
<div class="col-md-2"><input type="text" class="form-control" name="garantie" id="marcheGarantie" data-default=""/></div>
|
||||
<label for="marcheDelai_de_livraison" class="control-label col-md-2">Délai de livraison :</label>
|
||||
<div class="col-md-2"><input type="text" class="form-control" name="delai_de_livraison" id="marcheDelai_de_livraison" data-default=""/></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheRemises_commerciales" class="control-label col-md-2">Remises commerciales :</label>
|
||||
<div class="col-md-8"><input type="text" class="form-control" name="remises_commerciales" id="marcheRemises_commerciales" data-default=""/></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheRemise_palier_1" class="control-label col-md-2">Remise palier 1 :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" lang="fr" min="0" step="1" max="9999" class="form-control" name="remise_palier_1" id="marcheRemise_palier_1" data-default=""/>
|
||||
<span class="input-group-addon">k€</span>
|
||||
</div>
|
||||
</div>
|
||||
<label for="marcheRemise_taux_1" class="control-label col-md-2">Remise taux 1 :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" lang="fr" min="0" step="0.01" max="99" class="form-control" name="remise_taux_1" id="marcheRemise_taux_1" data-default=""/>
|
||||
<span class="input-group-addon">%</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheRemise_palier_2" class="control-label col-md-2">Remise palier 2 :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" lang="fr" min="0" step="1" max="9999" class="form-control" name="remise_palier_2" id="marcheRemise_palier_2" data-default=""/>
|
||||
<span class="input-group-addon">k€</span>
|
||||
</div>
|
||||
</div>
|
||||
<label for="marcheRemise_taux_2" class="control-label col-md-2">Remise taux 2 :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" lang="fr" min="0" step="0.01" max="99" class="form-control" name="remise_taux_2" id="marcheRemise_taux_2" data-default=""/>
|
||||
<span class="input-group-addon">%</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheRemise_palier_3" class="control-label col-md-2">Remise palier 3 :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" lang="fr" min="0" step="1" max="9999" class="form-control" name="remise_palier_3" id="marcheRemise_palier_3" data-default=""/>
|
||||
<span class="input-group-addon">k€</span>
|
||||
</div>
|
||||
</div>
|
||||
<label for="marcheRemise_taux_3" class="control-label col-md-2">Remise taux 3 :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" lang="fr" min="0" step="0.01" max="99" class="form-control" name="remise_taux_3" id="marcheRemise_taux_3" data-default=""/>
|
||||
<span class="input-group-addon">%</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheRemise_palier_4" class="control-label col-md-2">Remise palier 4 :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" lang="fr" min="0" step="1" max="9999" class="form-control" name="remise_palier_4" id="marcheRemise_palier_4" data-default=""/>
|
||||
<span class="input-group-addon">k€</span>
|
||||
</div>
|
||||
</div>
|
||||
<label for="marcheRemise_taux_4" class="control-label col-md-2">Remise taux 4 :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group">
|
||||
<input type="number" lang="fr" min="0" step="0.01" max="99" class="form-control" name="remise_taux_4" id="marcheRemise_taux_4" data-default=""/>
|
||||
<span class="input-group-addon">%</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheCommentaire" class="control-label col-md-2">Commentaire :</label>
|
||||
<div class="col-md-8">
|
||||
<textarea class="form-control" rows="3" name="commentaire" id="marcheCommentaire"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheActive" class="control-label col-md-2">Marché activé :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="checkbox"><input type="checkbox" name="active" id="marcheActive"/></div>
|
||||
</div>
|
||||
<label for="marcheChk_cache_commerciaux" class="control-label col-md-2">Marché caché aux commerciaux :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="checkbox"><input type="checkbox" name="chk_cache_commerciaux" id="marcheChk_cache_commerciaux"/></div>
|
||||
</div>
|
||||
<label for="marcheChk_marche_hybride" class="control-label col-md-2">Marché hybride :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="checkbox"><input type="checkbox" class="checkbox" name="chk_marche_hybride" id="marcheChk_marche_hybride"/></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="marcheChk_regle_seuils_marge" class="control-label col-md-2">Règle des seuils de marge :</label>
|
||||
<div class="col-md-2">
|
||||
<div class="checkbox"><input type="checkbox" class="checkbox" name="chk_regle_seuils_marge" id="marcheChk_regle_seuils_marge"/></div>
|
||||
<p class="help-block">Prise en compte des seuils de marge RR et DV enregistrés dans les familles de produits</p>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="alert col-md-4" id="frmMsgErrorModMarche"></div>
|
||||
<button type="button" class="btn btn-default" id="btnCancelModMarche" title="Annuler la modification">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSubmitModMarche">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal draggable fade" id="modalImportMarche" tabindex="-1" role="dialog" aria-labelledby="modImportTitre" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modImportTitre"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert-danger">Le fichier doit contenir tous les produits d'un marché avec les toutes ses lignes de vente et d'achat.<br/>Un fichier complet, pas partiel.</div>
|
||||
<form class="form-horizontal" enctype="multipart/form-data" method="post" id='frmImportMarche'>
|
||||
<input type="hidden" id="importIdMarche" name="importIdMarche" value="0"/>
|
||||
<input type="hidden" name="MAX_FILE_SIZE" id="MAX_FILE_SIZE" value="10297150"/>
|
||||
<div class="form-group">
|
||||
<label for="importFileMarche" class="col-sm-2 control-label">Fichier :</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="file" id="importFileMarche" name="importFileMarche" class="btn btn-default"/>
|
||||
<p class="help-block">Le fichier doit être au format CSV avec des séparateurs ;<br/>
|
||||
avec 7 colonnes suivantes par produit :<br/>
|
||||
Item No.;ItemName;Item Group;ListName;List Price;Discount in %;Quantity
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<progress id="progressBar" value="0" max="100" style="width:300px;display:none"></progress>
|
||||
<p id="loaded_n_total"></p>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<span id="importMarcheBarProgress"></span>
|
||||
<button type="button" class="btn btn-default" id="btnCancelImportMarche" title="Annuler l'importation">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSubmitImportMarche" title="Lancer l'importation">Importer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal draggable fade" id="modalEditListes" tabindex="-1" role="dialog" aria-labelledby="modListesTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modListesTitre"><i class="fa fa-stack-exchange fa-lg"></i> Gestion des listes tarifaires par marché</h4>
|
||||
</div>
|
||||
<div class="modal-body p-5">
|
||||
<p>Définition des mots clés et termes à rechercher dans les listes tarifaires importées pour enregistrer les produits dans les bons marchés en vente ou en achat</p>
|
||||
<form class="form-horizontal" id="frmListes" role="form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="idListe" value="1"/>
|
||||
|
||||
<div class="border cm-scrollbar cm-table-w-scroll table-responsive">
|
||||
<table class="table table-bordered table-striped table-400" id="tblListes">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header" scope="col" width="10%">#</th>
|
||||
<th class="header" scope="col" width="15%">Marché</th>
|
||||
<th class="header" scope="col" width="20%">Mot clé</th>
|
||||
<th class="header" scope="col" width="20%">Terme Achat</th>
|
||||
<th class="header" scope="col" width="20%">Terme Vente</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" id="btnCancelListes" title="Annuler la modification">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSubmitListes" title="Enregistrer la modification">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal draggable fade" id="modalFamilles" tabindex="-1" role="dialog" aria-labelledby="modFamillesTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modFamillesTitre"><i class="fa fa-stack-exchange fa-lg"></i> Gestion des familles de produits</h4>
|
||||
</div>
|
||||
<div class="modal-body p-0">
|
||||
<div class="panel panel-primary mb-0">
|
||||
<div class="panel-heading ">
|
||||
<h3 class="panel-title">
|
||||
<span id="pnlFamillesTitre"><i class="fa fa-cubes"></i> Correspondances des groupes et des familles de produits par mots clés</span>
|
||||
<button class="btn btn-success btn-xs pull-right" id="btnAddFamille" title="Ajouter une famille"><i class="fa fa-plus fa-lg"></i> Ajouter</button>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form class="form-horizontal" id="frmListes" role="form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="idFamilles" value="1"/>
|
||||
<div class="cm-scrollbar cm-table-w-scroll">
|
||||
<table id="tblFamilles" class="table-bordered table-400">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header" scope="col" width="10%">#</th>
|
||||
<th class="header" scope="col" width="20%">Groupe</th>
|
||||
<th class="header" scope="col" width="20%">Famille</th>
|
||||
<th class="header" scope="col" width="20%">Code Maintenance</th>
|
||||
<th class="header" scope="col" width="10%">Marge RR</th>
|
||||
<th class="header" scope="col" width="10%">Marge DV</th>
|
||||
<th class="header" scope="col" width="10%">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" id="btnCancelFamilles" title="Annuler la modification">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSubmitFamilles" title="Enregistrer la modification">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
$modal = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<script src="/pub/res/js/jmarches.js"></script>
|
||||
<?php
|
||||
$jscript = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
require_once $Route->_layout;
|
||||
696
views/vsap.php
Normal file
696
views/vsap.php
Normal file
@@ -0,0 +1,696 @@
|
||||
<?php
|
||||
global $Route;
|
||||
global $aModel;
|
||||
$metacss = '<link href="/pub/res/css/schat.css" rel="stylesheet" type="text/css"/>';
|
||||
$barre = "";
|
||||
ob_start();
|
||||
?>
|
||||
<div id="divSAP">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
<li role="presentation" class="active"><a href="#tabEnCours" aria-controls="tabEnCours" role="tab" data-toggle="tab">Les devis en cours</a></li>
|
||||
<li role="presentation"><a href="#tabArchives" aria-controls="tabArchives" role="tab" data-toggle="tab">Les devis archivés</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="tabEnCours">
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
<?php
|
||||
$i = 0;
|
||||
foreach ($aModel["statuts_devis"] as $dossier) {
|
||||
$active = ($i == 0) ? "active" : "";
|
||||
$lib = $dossier["libelle"];
|
||||
$badge = "";
|
||||
if (isset($aModel["nb_devis"][$dossier["rowid"]])) {
|
||||
$badge = 'data-after-text="' . $aModel["nb_devis"][$dossier["rowid"]] . '" data-after-type="orange badge top left"';
|
||||
}
|
||||
echo '<li role="presentation" class="' . $active . '" id="liStat' . $i . '"' . $badge . '><a href="#dos' . $i . '" aria-controls="dos' . $i . '" role="tab" data-toggle="tab">' . $lib . '</a></li>';
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<?php
|
||||
$iDos = 0;
|
||||
foreach ($aModel["statuts_devis"] as $dossier) {
|
||||
$active = ($iDos == 0) ? "active" : "";
|
||||
echo '<div role="tabpanel" class="tab-pane p-0 ' . $active . '" id="dos' . $iDos . '">';
|
||||
echo '<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-800">';
|
||||
echo '<table class="table table-responsive table-bordered table-fixed" id="tblDos' . $iDos . '">';
|
||||
echo '<thead><tr>';
|
||||
echo '<th class="header text-center" scope="col" width="5%">#</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Date Demande</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Date Remise</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Responsable Régional</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Code Etabliss.</th>';
|
||||
echo '<th class="header text-center" scope="col" width="15%">Etablissement</th>';
|
||||
echo '<th class="header text-center" scope="col" width="7%">CP</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Ville</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Marché</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Montant Total HT</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Marge totale</th>';
|
||||
if ($dossier["rowid"] == 7) {
|
||||
// Si le dossier est "A envoyer au client", on affiche la colonne "Email"
|
||||
echo '<th class="header text-center" scope="col" width="10%">Email</th>';
|
||||
}
|
||||
echo '<th class="header text-center" scope="col" width="20%">Actions <button class="btn btn-info btn-xs btnExportSelectedXML hidden" title="Export XML SAP des devis sélectionnés"><i class="fa fa-scribd fa-lg"></i></button></th>';
|
||||
echo '</tr></thead>';
|
||||
echo '<tbody id="tblBodyDos' . $iDos . '">';
|
||||
$idStatut = $dossier["rowid"];
|
||||
$i = 0;
|
||||
foreach ($aModel["devisEnCours"] as $devis) {
|
||||
if ($devis["fk_statut_devis"] == $dossier["rowid"]) {
|
||||
echo '<tr class="ligEnCours">';
|
||||
if ($devis["chk_maj"] == 1) {
|
||||
$bMaj = 'data-after-text="màj" data-after-type="green pill" title="Devis mis à jour par le RR"';
|
||||
} else {
|
||||
$bMaj = '';
|
||||
}
|
||||
if ($devis["chk_speciaux"] == 1) {
|
||||
$cellId = '<span data-after-text="Sp" data-after-type="blue circle" title="Produits Spéciaux">' . $devis["rowid"] . '</span>';
|
||||
} else {
|
||||
$cellId = '<span>' . $devis["rowid"] . '</span>';
|
||||
}
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $cellId . '</td>';
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . affiche_date($devis["date_demande"]) . '</td>';
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . affiche_date($devis["date_remise"]) . '</td>';
|
||||
echo '<td class="text-center clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["prenom"] . ' ' . $devis["nom"] . '</td>';
|
||||
if ($devis["fk_client"] == 0) {
|
||||
echo '<td class="text-center clickable celEnCours" data-rid="' . $devis["rowid"] . '" ><span data-after-text="N" data-after-type="red circle" title="Nouveau client !"> -</span></td>';
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["lib_new_client"] . '</td>';
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["cp_new_client"] . '</td>';
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["ville_new_client"] . '</td>';
|
||||
} else {
|
||||
echo '<td class="text-center clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["code"] . '</td>';
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["libelle"] . '</td>';
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["cp"] . '</td>';
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["ville"] . '</td>';
|
||||
}
|
||||
echo '<td class="clickable celEnCours" data-rid="' . $devis["rowid"] . '" >' . $devis["lib_marche"] . '</td>';
|
||||
echo '<td class="text-center clickable celEnCours" data-rid="' . $devis["rowid"] . '" ><span ' . $bMaj . '>' . $devis["montant_total_ht_remise"] . ' €</span></td>';
|
||||
$margeTotale = floatval($devis["marge_totale"]);
|
||||
echo '<td class="clickable celEnCours text-center" data-rid="' . $devis["rowid"] . '">' . number_format($margeTotale, 2, ',', ' ') . ' %</td>';
|
||||
if ($dossier["rowid"] == 7) {
|
||||
if ($devis["email"] == "") {
|
||||
echo '<td class="" ><span data-after-text="!" data-after-type="red circle" title="Pas d\'email !"> -</span></td>';
|
||||
} else {
|
||||
echo '<td class=""><a href="mailto:' . $devis["email"] . '?subject=LINET France - Offre de prix :" title="Envoyer le devis à cette adresse email">' . $devis["email"] . '</a></td>';
|
||||
}
|
||||
}
|
||||
echo '<td class="text-center">';
|
||||
echo '<div class="btn-group">';
|
||||
echo '<button class="btn btn-primary btn-xs btnViewDevisEnCours" title="Consulter le devis" data-rid="' . $devis["rowid"] . '"><i class="fa fa-eye fa-lg"></i></button>';
|
||||
echo '<button class="btn btn-info btn-xs btnExportDevisEnCours" title="Export Excel du devis" data-rid="' . $devis["rowid"] . '" data-libelle="' . $devis["libelle"] . '"><i class="fa fa-file-excel-o fa-lg"></i></button>';
|
||||
echo '<button class="btn btn-info btn-xs btnExportDevisXMLEnCours" title="Export XML SAP du devis" data-rid="' . $devis["rowid"] . '" data-libelle="' . $devis["libelle"] . '"><i class="fa fa-scribd fa-lg"></i></button>';
|
||||
$typBtn = "btn-success";
|
||||
foreach ($aModel["medias"] as $media) {
|
||||
if ($media["support_rowid"] == $devis["rowid"]) {
|
||||
$typBtn = "btn-warning";
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '<button class="btn ' . $typBtn . ' btn-xs btnImportPDFEnCours" title="Import PDF SAP du devis" data-rid="' . $devis["rowid"] . '" data-libelle="' . $devis["libelle"] . '"><i class="fa fa-upload fa-lg"></i></button>';
|
||||
if ($devis["fk_statut_devis"] == 7) {
|
||||
// Le devis vient d'être validé par le RR, l'ADV doit l'envoyer au client et le passer en statut 20 "Envoyé et archivé"
|
||||
echo '<button class="btn btn-default btn-xs btnDevisEnvoye" title="Vous avez envoyé ce devis au client et il est maintenant à archiver" data-rid="' . $devis["rowid"] . '"><i class="fa fa-envelope fa-lg"></i></button>';
|
||||
}
|
||||
if ($devis["fk_statut_devis"] == 4) {
|
||||
// Le devis vient d'être envoyé par le RR à l'ADV, l'ADV peut encore le supprimer
|
||||
echo '<button class="btn btn-danger btn-xs btnDeleteDevis" title="Ce devis peut être encore supprimé" data-rid="' . $devis["rowid"] . '"><i class="fa fa-trash fa-lg"></i></button>';
|
||||
}
|
||||
echo '</div>';
|
||||
if ($devis["fk_statut_devis"] == 4) {
|
||||
// Le devis est à traiter sur SAP
|
||||
echo '<input type="checkbox" class="ml-2 exportXMLCheckbox" data-rid="' . $devis["rowid"] . '" title="Cocher ce devis pour l exporter au format XML pour SAP">';
|
||||
}
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if ($i == 0) {
|
||||
echo '<tr><td colspan="10" class="text-center">Aucun devis à ce niveau</td></tr>';
|
||||
}
|
||||
echo '</tbody>';
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
$iDos++;
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div id="chat-container-enCours">
|
||||
<div class="chat-bubbles" id="chat-bubbles-enCours">
|
||||
</div>
|
||||
<div class="message-input">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Ecrire mon message ici..." id="chatInputMessage" />
|
||||
<div class="input-group-addon">
|
||||
<svg class="start-icon clickable" id="chatBtnSendEnCours">
|
||||
<use xlink:href="/pub/res/css/images/icons.svg#paperplane"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="tabArchives">
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
<?php
|
||||
$i = 0;
|
||||
foreach ($aModel["dossiers"] as $dossier) {
|
||||
if ($i % 15 == 0 && $i > 0) {
|
||||
echo '<div class="spacer"></div>';
|
||||
}
|
||||
$active = ($i == 0) ? "active" : "";
|
||||
$ceDossier = ($dossier["dossier"] == "") ? "?" : $dossier["dossier"];
|
||||
echo '<li role="presentation" class="' . $active . '"><a href="#dosArch' . $i . '" aria-controls="dosArch' . $i . '" role="tab" data-toggle="tab">' . $ceDossier . '</a></li>';
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<?php
|
||||
$iDos = 0;
|
||||
foreach ($aModel["dossiers"] as $dossier) {
|
||||
$active = ($iDos == 0) ? "active" : "";
|
||||
echo '<div role="tabpanel" class="tab-pane p-0 ' . $active . '" id="dosArch' . $iDos . '">';
|
||||
echo '<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-800">';
|
||||
echo '<table class="table table-responsive table-bordered table-fixed" id="tblDosArch' . $iDos . '">';
|
||||
echo '<thead><tr>';
|
||||
echo '<th class="header text-center" scope="col" width="5%">#</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Date Demande</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Resp. Régional</th>';
|
||||
echo '<th class="header text-center" scope="col" width="7%">Code Etabliss.</th>';
|
||||
echo '<th class="header text-center" scope="col" width="20%">Etablissement</th>';
|
||||
echo '<th class="header text-center" scope="col" width="5%">CP</th>';
|
||||
echo '<th class="header text-center" scope="col" width="13%">Ville</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Marché</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Montant Total HT</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Marge totale</th>';
|
||||
echo '<th class="header text-center" scope="col" width="10%">Actions</th>';
|
||||
echo '</tr></thead>';
|
||||
echo '<tbody id="tblBodyDosArch' . $iDos . '">';
|
||||
$libDossier = $dossier["dossier"];
|
||||
$i = 0;
|
||||
foreach ($aModel["devisArchives"] as $devis) {
|
||||
if ($devis["dossier"] == $libDossier) {
|
||||
echo '<tr id="trArch_' . $devis["rowid"] . '">';
|
||||
echo '<td class="text-center">' . $devis["rowid"] . '</td>';
|
||||
$dateDem = substr($devis["date_demande"], 8, 2) . '/' . substr($devis["date_demande"], 5, 2) . ' ' . substr($devis["date_demande"], 0, 4);
|
||||
if ($devis["chk_speciaux"] == 1) {
|
||||
$cellDateDem = '<span data-after-text="S" data-after-type="blue circle">' . $dateDem . '</span>';
|
||||
} else {
|
||||
$cellDateDem = $dateDem;
|
||||
}
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $cellDateDem . '</td>';
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $devis["prenom"] . " " . $devis["nom"] . '</td>';
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $devis["code"] . '</td>';
|
||||
|
||||
if ($devis["fk_client"] == 0) {
|
||||
$ville = $devis["ville_new_client"];
|
||||
$libelle = '<span data-after-text="N" data-after-type="red circle">' . $devis["lib_new_client"] . '</span>';
|
||||
} else {
|
||||
$ville = $devis["ville"];
|
||||
$libelle = $devis["libelle"];
|
||||
}
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $libelle . '</td>';
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $devis["cp"] . '</td>';
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $ville . '</td>';
|
||||
echo '<td class="clickable celArchives" data-rid="' . $devis["rowid"] . '">' . $devis["lib_marche"] . '</td>';
|
||||
$montant = floatval($devis["montant_total_ht_remise"]);
|
||||
echo '<td class="clickable celArchives right" data-rid="' . $devis["rowid"] . '">' . number_format($montant, 2, ',', ' ') . ' €</td>';
|
||||
$margeTotale = floatval($devis["marge_totale"]);
|
||||
echo '<td class="clickable celArchives right" data-rid="' . $devis["rowid"] . '">' . number_format($margeTotale, 2, ',', ' ') . ' %</td>';
|
||||
echo '<td class="text-center">';
|
||||
echo '<div class="btn-group">';
|
||||
echo '<button class="btn btn-primary btn-xs btnViewDevisArchives" title="Consulter le devis" data-rid="' . $devis["rowid"] . '"><i class="fa fa-eye fa-lg"></i></button>';
|
||||
echo '<button class="btn btn-info btn-xs btnExportDevisEnCours" title="Export Excel du devis" data-rid="' . $devis["rowid"] . '" data-libelle="' . $devis["libelle"] . '"><i class="fa fa-file-excel-o fa-lg"></i></button>';
|
||||
$typBtn = "btn-success";
|
||||
foreach ($aModel["medias"] as $media) {
|
||||
if ($media["support_rowid"] == $devis["rowid"]) {
|
||||
$typBtn = "btn-warning";
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '<button class="btn ' . $typBtn . ' btn-xs btnImportPDFEnCours" title="Consulter le PDF SAP du devis" data-rid="' . $devis["rowid"] . '" data-libelle="' . $devis["libelle"] . '"><i class="fa fa-file-pdf-o fa-lg"></i></button>';
|
||||
echo '</div>';
|
||||
echo '</td></tr>';
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if ($i == 0) echo '<tr><td colspan="10" class="center">Aucun devis archivé trouvé sur ce département</td></tr>';
|
||||
echo '</tbody>';
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
$iDos++;
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div id="chat-container-archives">
|
||||
<div class="chat-bubbles" id="chat-bubbles-archives">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$content = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div class="modal draggable fade" id="modalUploadPDF" tabindex="-1" role="dialog" aria-labelledby="modUploadPDFTitre" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modUploadPDFTitre">Importer le PDF SAP du devis</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<table id="tblPJ" class="table">
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<form class="form-inline">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="txtUploadPDF">Document PDF</label>
|
||||
<input type="file" id="txtUploadPDF" name="txtUploadPDF" class="form-control" accept="application/pdf">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-primary" id="btnUploadPDF">Importer</button>
|
||||
<button type="button" class="btn btn-default" id="btnClosePDF">Fermer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal draggable fade" id="modalViewDevis" tabindex="-1" role="dialog" aria-labelledby="modViewDevisTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modViewDevisTitre"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
<li role="presentation" class="active"><a href="#tabentete" aria-controls="tabentete" role="tab" data-toggle="tab">1. Identité de l'établissement</a></li>
|
||||
<li role="presentation"><a href="#tabdevis" aria-controls="tabdevis" role="tab" data-toggle="tab">2. Devis</a></li>
|
||||
<li role="presentation" id="panSpeciaux"><a href="#tabspeciaux" aria-controls="tabspeciaux" role="tab" data-toggle="tab">3. Produits spéciaux</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="tabentete">
|
||||
<div class="container-fluid">
|
||||
<form id="frmDevisEntete" class="form" role="presentation">
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_num_opportunite">N° opportunité :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_num_opportunite" name="num_opportunite" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_date_demande">Date demande :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_date_demande" name="date_demande" disabled="disabled" />
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_date_remise">A remettre au client le :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_date_remise" name="date_remise" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">Nom du client :</label>
|
||||
<div class="col-md-5">
|
||||
<input type="text" class="form-control" id="inp_lib_client" name="lib_client" disabled="disabled" />
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_type_etablissement">Type de l'établissement :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="text" class="form-control" id="inp_type_client" name="type_client" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_adresse1">Adresse :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_adresse1" name="adresse1" disabled="disabled" />
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_cp">CP :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="text" class="form-control" id="inp_cp" name="cp" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_adresse2"></label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_adresse2" name="adresse2" disabled="disabled" />
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_ville">Ville :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_ville" name="ville" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_adresse3"></label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_adresse3" name="adresse3" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_contact_nom">Contact :</label>
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control" id="inp_contact_nom" name="contact_nom" disabled="disabled" />
|
||||
<p class="help-block">Nom du contact</p>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control" id="inp_contact_prenom" name="contact_prenom" disabled="disabled" />
|
||||
<p class="help-block">Prénom du contact</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="inp_contact_fonction">Fonction du contact :</label>
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control" id="inp_contact_fonction" name="contact_fonction" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class=" form-group">
|
||||
<label class="control-label col-md-2" for="inp_email">Email :</label>
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control" id="inp_email" name="email" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class=" form-group">
|
||||
<label class=" control-label col-md-2" for="inp_telephone">Tél :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_telephone" name="telephone" disabled="disabled" />
|
||||
</div>
|
||||
<label class=" control-label col-md-2" for="inp_mobile">Mob :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_mobile" name="mobile" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="fk_marche" class="control-label col-md-2">Marché :</label>
|
||||
<div class="col-md-3">
|
||||
<input type="text" class="form-control" id="inp_lib_marche" name="lib_marche" disabled />
|
||||
</div>
|
||||
<label for="inp_chk_devis_photos" class="control-label col-md-2">Devis avec photos :</label>
|
||||
<input type="checkbox" class="form-control" name="chk_devis_photos" id="inp_chk_devis_photos" disabled />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inp_commentaire" class="control-label col-md-2">Commentaire :</label>
|
||||
<div class="col-md-8">
|
||||
<input type="text" class="form-control" name="commentaire" id="inp_commentaire" disabled="disabled" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="tabdevis">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<form class="form-inline" id="frmDevis">
|
||||
<div class="col-md-9">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-group">
|
||||
<label for="inpTotalHT">Total HT avant remise :</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control numeric" id="inpTotalHT" name="inpTotalHT" readonly="readonly" tabindex="-1" size="12" maxlength="12" />
|
||||
<div class="input-group-addon">€</div>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-group">
|
||||
<label for="inpTotalRemHT">Total HT après remise :</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control numeric" id="inpTotalRemHT" name="inpTotalRemHT" readonly="readonly" tabindex="-1" size="12" maxlength="12"
|
||||
style="border-color: #8DB255!important; border-width: 4px;" />
|
||||
<div class="input-group-addon">€</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-group">
|
||||
<label for="inpTotalMarge">Marge totale avant logistique :</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control numeric" id="inpTotalMarge" name="inpTotalMarge" readonly="readonly" tabindex="-1" size="10" maxlength="10"
|
||||
style="border-color: #DC3023!important; border-width: 4px;" />
|
||||
<div class="input-group-addon">%</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div style="overflow-x: auto;">
|
||||
<table class="table table-responsive" width="90%" id="tblDevisPro">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="10%">Ref</th>
|
||||
<th width="20%">Désignation</th>
|
||||
<th width="10%">Prix vente</th>
|
||||
<th width="10%">Qté</th>
|
||||
<th width="10%">Remise</th>
|
||||
<th width="10%">Total HT</th>
|
||||
<th width="10%" class="text-center" title="Variante ou Option">V/O</th>
|
||||
<th width="10%">Marge</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="well" style="background: #EEE;">
|
||||
<h5><strong>Informations Marché</strong></h5>
|
||||
<table class="table table-bordered table-striped" id="tblMarche">
|
||||
<tr>
|
||||
<td>Tx Remise trimestrielle</td>
|
||||
<td id="tdTxRemiseTrim" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tx Remise semestrielle</td>
|
||||
<td id="tdTxRemiseSeme" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tx Remise annuelle</td>
|
||||
<td id="tdTxRemiseAnnu" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Début et fin marché</td>
|
||||
<td id="tdDebutFin" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Franco de port</td>
|
||||
<td id="tdFrancoPort" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Garantie</td>
|
||||
<td id="tdGarantie" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Délai de livraison</td>
|
||||
<td id="tdDelaiLivr" class="bold"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Remises commerciales</td>
|
||||
<td id="tdRemisesCo" class="bold"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="tabspeciaux">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label for="inp_chk_livr_multi" class="control-label col-md-2">Livraisons multiples :</label>
|
||||
<div class="col-md-1">
|
||||
<input type="checkbox" class="form-control" id="inp_chk_livr_multi" disabled />
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_nb_livr">Si oui, combien :</label>
|
||||
<div class="col-md-1">
|
||||
<input type="number" class="form-control" id="inp_nb_livr" disabled />
|
||||
</div>
|
||||
<label class="control-label col-md-2" for="inp_date_livr_1">Date 1ère livraison :</label>
|
||||
<div class="col-md-2">
|
||||
<input type="date" class="form-control" id="inp_date_livr_1" disabled />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div style="overflow-x: auto;">
|
||||
<table class="table table-responsive" width="90%" id="tblProduitsSpeciaux">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="10%">Code</th>
|
||||
<th width="10%">Désignation</th>
|
||||
<th width="10%">Qté</th>
|
||||
<th width="10%">Surcoût</th>
|
||||
<th width="10%">Echantillon</th>
|
||||
<th width="10%">Date</th>
|
||||
<th width="15%">Concurrent</th>
|
||||
<th width="15%">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><input type="text" class="form-control" id="inp_specialCode_1" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialLibe_1" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialQte_1" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialCout_1" disabled /></td>
|
||||
<td><input type="checkbox" class="form-control" id="inp_chk_specialEchantillon_1" disabled /></td>
|
||||
<td><input type="date" class="form-control" id="inp_specialDate_1" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialConcurrent_1" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialDescription_1" disabled /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" class="form-control" id="inp_specialCode_2" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialLibe_2" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialQte_2" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialCout_2" disabled /></td>
|
||||
<td><input type="checkbox" class="form-control" id="inp_chk_specialEchantillon_2" disabled /></td>
|
||||
<td><input type="date" class="form-control" id="inp_specialDate_2" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialConcurrent_2" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialDescription_2" disabled /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" class="form-control" id="inp_specialCode_3" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialLibe_3" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialQte_3" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialCout_3" disabled /></td>
|
||||
<td><input type="checkbox" class="form-control" id="inp_chk_specialEchantillon_3" disabled /></td>
|
||||
<td><input type="date" class="form-control" id="inp_specialDate_3" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialConcurrent_3" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialDescription_3" disabled /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" class="form-control" id="inp_specialCode_4" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialLibe_4" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialQte_4" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialCout_4" disabled /></td>
|
||||
<td><input type="checkbox" class="form-control" id="inp_chk_specialEchantillon_4" disabled /></td>
|
||||
<td><input type="date" class="form-control" id="inp_specialDate_4" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialConcurrent_4" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialDescription_4" disabled /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" class="form-control" id="inp_specialCode_5" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialLibe_5" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialQte_5" disabled /></td>
|
||||
<td><input type="number" class="form-control" id="inp_specialCout_5" disabled /></td>
|
||||
<td><input type="checkbox" class="form-control" id="inp_chk_specialEchantillon_5" disabled /></td>
|
||||
<td><input type="date" class="form-control" id="inp_specialDate_5" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialConcurrent_5" disabled /></td>
|
||||
<td><input type="text" class="form-control" id="inp_specialDescription_5" disabled /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer" style="text-align: left;">
|
||||
<?php
|
||||
echo '<form id="frmComment" class="form-inline" role="presentation" >';
|
||||
echo '<label for="inpComment">Commentaire :</label>';
|
||||
echo '<input type="text" class="form-control mr-1" id="inpComment" name="inpComment" value="" style="width: 60%;" />';
|
||||
echo '<button type="button" class="btn btn-success" id="btnSaveComment">Enregistrer un commentaire</button>';
|
||||
echo '<button type="button" class="btn btn-default right" id="btnCloseModViewDevis">Fermer</button>';
|
||||
echo '</form>';
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$modal = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
echo '<script src="/pub/res/js/jsap.js"></script>';
|
||||
echo '<script src="/pub/res/js/jchat.js"></script>';
|
||||
$jscript = ob_get_contents();
|
||||
ob_end_clean();
|
||||
require_once $Route->_layout;
|
||||
178
views/vusers.php
Normal file
178
views/vusers.php
Normal file
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
global $Conf;
|
||||
global $Route;
|
||||
global $aModel;
|
||||
$metacss = "";
|
||||
$barre = "";
|
||||
ob_start();
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-cubes"></i> Liste des utilisateurs
|
||||
<button class="btn btn-success btn-xs pull-right" id="btnCreateUser" title="Créer un nouvel utilisateur"><i class="fa fa-plus fa-lg"></i> Ajouter</button>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="border cm-scrollbar cm-table-w-scroll table-responsive table-800">
|
||||
<table id="tblUsers" class="table table-bordered table-striped table-fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header text-center" scope="col" width="10%">Nom</th>
|
||||
<th class="header text-center" scope="col" width="10%">Prénom</th>
|
||||
<th class="header text-center" scope="col" width="10%">Rôle</th>
|
||||
<th class="header text-center" scope="col" width="10%">Mobile</th>
|
||||
<th class="header text-center" scope="col" width="20%">email</th>
|
||||
<th class="header text-center" scope="col" width="10%">Région</th>
|
||||
<th class="header text-center" scope="col" width="10%">Rattaché à</th>
|
||||
<th class="header text-center" scope="col" width="10%">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($aModel["users"] as $user) {
|
||||
echo '<tr class="ligUser">';
|
||||
echo '<td class="clickable celUser" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '">' . $user["libelle"] . '</td>';
|
||||
echo '<td class="clickable celUser" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '">' . $user["prenom"] . '</td>';
|
||||
echo '<td class="text-center clickable celUser" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '">' . $user["lib_role"] . '</td>';
|
||||
echo '<td class="text-center clickable celUser" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '">' . $user["mobile"] . '</td>';
|
||||
echo '<td class="clickable celUser" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '">' . $user["email"] . '</td>';
|
||||
echo '<td class="text-center clickable celUser" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '">' . $user["lib_region"] . '</td>';
|
||||
$lib_parent = "-";
|
||||
foreach ($aModel["parents"] as $parent) {
|
||||
if ($parent["rowid"] == $user["fk_parent"]) {
|
||||
$lib_parent = $parent["lib_parent"];
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '<td class="text-center clickable celUser" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '">' . $lib_parent . '</td>';
|
||||
echo '<td class="text-center">';
|
||||
echo '<a title="Modifier la fiche de cet utilisateur" class="btn btn-xs btn-primary btnModUser mr-1" data-act="E" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '"><i class="fa fa-pencil fa-lg"></i></a>';
|
||||
echo '<a title="Supprimer cet utilisateur" class="btn btn-xs btn-danger btnSuppUser" data-act="D" data-rowid="' . $user["rowid"] . '" data-libelle="' . $user["libelle"] . '"><i class="fa fa-trash fa-lg"></i></a>';
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if ($Conf->_devIp) {
|
||||
echo '<button class="btn btn-warning btn-xs" id="btnMaintenance"><i class="fa fa-bug fa-lg"></i> Maintenance des utilisateurs</button>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$content = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div class="modal draggable fade" id="modalEditUser" tabindex="-1" role="dialog" aria-labelledby="modUserTitre" data-backdrop="static">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modUserTitre"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<form class="form-horizontal" id="frmUser" role="form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="act" id="userAct" value=""/>
|
||||
<input type="hidden" name="rowid" id="userRowid" value=""/>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="userLibelle" class="control-label col-md-1">Nom :</label>
|
||||
<div class="col-md-4"><input type="text" class="form-control" name="libelle" id="userLibelle" data-default="" required="required"/></div>
|
||||
<label for="userPrenom" class="control-label col-md-1">Prénom :</label>
|
||||
<div class="col-md-4"><input type="text" class="form-control" name="prenom" id="userPrenom" data-default="" required="required"/></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="userMobile" class="control-label col-md-1">Mobile :</label>
|
||||
<div class="col-md-4"><input type="text" class="form-control" name="mobile" id="userMobile" data-default=""/></div>
|
||||
<label for="userEmail" class="control-label col-md-1">Email :</label>
|
||||
<div class="col-md-4"><input type="email" class="form-control" name="email" id="userEmail" data-default="" required="required"/></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="userLogin" class="control-label col-md-1">Login :</label>
|
||||
<div class="col-md-4"><input type="text" class="form-control" name="username" id="userName" data-default="" required="required"/></div>
|
||||
<label for="userRole" class="control-label col-md-1">Rôle :</label>
|
||||
<div class="col-md-4">
|
||||
<select class="form-control" name="fk_role" id="userRole" data-default="" required="required">
|
||||
<option value="0">Sélectionner un rôle</option>
|
||||
<?php
|
||||
foreach ($aModel["roles"] as $role) {
|
||||
echo '<option value="' . $role["rowid"] . '">' . $role["libelle"] . '</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="userRole" class="control-label col-md-1">Région :</label>
|
||||
<div class="col-md-4">
|
||||
<select class="form-control" name="fk_region" id="userRegion" data-default="">
|
||||
<option value="0">Aucune région</option>
|
||||
<?php
|
||||
foreach ($aModel["regions"] as $region) {
|
||||
echo '<option value="' . $region["rowid"] . '">' . $region["libelle"] . '</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
<label for="userParent" class="control-label col-md-1">Responsable :</label>
|
||||
<div class="col-md-4">
|
||||
<select class="form-control" name="fk_parent" id="userParent" data-default="">
|
||||
<option value="0">-</option>
|
||||
<?php
|
||||
foreach ($aModel["parents"] as $parent) {
|
||||
echo '<option value="' . $parent["rowid"] . '">' . $parent["lib_parent"] . '</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="userRole" class="control-label col-md-1">Grands Comptes :</label>
|
||||
<div class="col-md-4">
|
||||
<input type="checkbox" name="chk_grands_comptes" id="userChk_grands_comptes" value="0"/>
|
||||
</div>
|
||||
<label for="userDepts" class="control-label col-md-1">Départements :</label>
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control" name="lst_depts" id="userLst_depts" data-default=""/>
|
||||
<p class="help-block">Lister les départements, dont cet utilisateur a la responsabilité, en séparant chaque numéro par une virgule<br/>
|
||||
par exemple : 09,11,16,17,24,33
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="userActive" class="control-label col-md-2">Utilisateur actif :</label>
|
||||
<div class="col-md-4">
|
||||
<input type="checkbox" name="active" id="userActive" data-default="0"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="alert col-md-4" id="frmMsgErrorModUser"></div>
|
||||
<button type="button" class="btn btn-default" id="btnCancelModUser" title="Annuler la modification">Annuler</button>
|
||||
<button type="button" class="btn btn-success" id="btnSubmitModUser">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$modal = ob_get_contents();
|
||||
ob_clean();
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<script src="/pub/res/js/jusers.js"></script>
|
||||
<?php
|
||||
$jscript = ob_get_contents();
|
||||
ob_end_clean();
|
||||
require_once $Route->_layout;
|
||||
Reference in New Issue
Block a user