diff --git a/functions/functions_contrats.php b/functions/functions_contrats.php
index 930b620..a22fb8d 100644
--- a/functions/functions_contrats.php
+++ b/functions/functions_contrats.php
@@ -119,6 +119,8 @@ function getContratDatas($id) {
$i["frequence_print"] = CONTRATS_FREQUENCES[$i["frequence"]];
if($i["frequence"] == "quinz") $i["frequence_print"] .= " (groupe ".$i["quinz_groupe"].')';
+
+ $i["paniers_livres"] = getContratPaniersLivres($id);
}
else {
$er = "sql: ".$sql."error: ".getReadableVar($r['erreur']);
@@ -128,6 +130,29 @@ function getContratDatas($id) {
return $i;
}
+function getContratPaniersLivres($id) {
+ $list = array();
+
+ $sql = getLivraisonsPaniersSelectBaseSQL()
+ ." WHERE ".LIVRAISONS_PANIERS_TABLE.".`contrat`=".intval($id)
+ ." ORDER BY ".LIVRAISONS_TABLE.".`date` ASC";
+
+ $r = $GLOBALS['db_admin']['man']->select($sql);
+
+ if(!$r['erreur']) {
+ foreach($r['datas'] as $i) {
+ $i["livraison_date_print"] = formatDate($i["livraison_date"], "mysql_date", "print_date");
+ $list[$i['livraison_ref']] = $i;
+ }
+ }
+ else {
+ $er = "sql: ".$sql."error: ".getReadableVar($r['erreur']);
+ $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération de la liste des paniers livrés du contrat dans le base de données !".$er;
+ }
+
+ return $list;
+}
+
function getContratLastPanier($id) {
$i = false;
diff --git a/public_html_admin/contrats.php b/public_html_admin/contrats.php
index e70d724..de09138 100644
--- a/public_html_admin/contrats.php
+++ b/public_html_admin/contrats.php
@@ -37,6 +37,15 @@ if(isset($_REQUEST["ref"]) && (int)$_REQUEST["ref"]>0 && $action) {
switch($action) {
// AJAX GET DATAS
case "getDatas": die(json_encode($infos)); break;
+ // MODAL VIEW - GET TAB
+ case "modalView_getTab": {
+ $GLOBALS['smarty'] -> assign('infos', $infos);
+ $tabs = array(
+ "paniers" => "contrats/contrat_modal_view_tab_paniers.tpl"
+ );
+ if(isset($_REQUEST['tab']) && array_key_exists($_REQUEST['tab'], $tabs)) die( $GLOBALS['smarty']->fetch($tabs[$_REQUEST['tab']]) );
+ die("NO TAB");
+ } break;
// EDIT
case "edit": {
$datas = getContratDatasFromRequest();
@@ -140,6 +149,7 @@ switch($action) {
// TEMPLATE
$GLOBALS['template'] = 'contrats/contrats_list.tpl';
$jsFiles[] = PUBLIC_HTML_ADMIN.'js/contrats.js';
+ $cssFiles[] = PUBLIC_HTML_ADMIN.'css/contrats.css';
// REQUIRED LISTS
$GLOBALS['smarty'] -> assign('paniers_groupes_list', $groupesList);
diff --git a/public_html_admin/css/contrats.css b/public_html_admin/css/contrats.css
new file mode 100644
index 0000000..51b674f
--- /dev/null
+++ b/public_html_admin/css/contrats.css
@@ -0,0 +1,36 @@
+/* MODAL & FORM LIVRAISON */
+
+#modalViewContrat { overflow: hidden; }
+
+#modalViewContrat div.modal-header { border-bottom: none; padding-bottom: 5px; }
+
+#modalViewContrat .formContrat { margin: -15px; }
+
+/* NAV TABS */
+
+.formContrat ul.nav.nav-tabs { padding-left: 10px; }
+
+div.formContratTabs > div.tab {
+ display: none;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ overflow-y: scroll;
+}
+
+div.formContratTabs > div.tab.active { display: block; }
+
+div.formContratTabs > div.tab span.nullChild { display: block; padding: 10px; }
+
+div.formContratTabs > div.tab span.nullChild { display: block; padding: 10px; }
+
+/* TAB INFOS */
+
+div.formContratTabs > div.tabInfos table tr:first-child > th,
+div.formContratTabs > div.tabInfos table tr:first-child > td { border-top: none; }
+
+div.formContratTabs > div.tabInfos table { margin-bottom: 0; }
+div.formContratTabs > div.tabInfos table th { width: 200px; }
+
+/* TAB PANIERS */
+
+div.formContratTabs > div.tabPaniers table { margin-bottom: 0; }
diff --git a/public_html_admin/js/clients.js b/public_html_admin/js/clients.js
index 0d29645..51514c8 100644
--- a/public_html_admin/js/clients.js
+++ b/public_html_admin/js/clients.js
@@ -160,9 +160,13 @@ function loadDatasInViewClientModal(id) {
}
function clearViewClientModal() {
- currentViewClient = 0;
modalViewClient.find("small.db_ref > span").html("");
+ modalViewClient.find("ul.formClientTabs > li").removeClass('active hide');
+ modalViewClient.find("ul.formClientTabs > li:first-child").addClass('active');
+ modalViewClient.find("div.formClientTabs > div.tab").removeClass("active");
+ modalViewClient.find("div.formClientTabs > div.tab:first-child").addClass("active");
+
modalViewClient.find("td.nom").html("");
modalViewClient.find("td.tel").html("");
modalViewClient.find("td.email").html("");
diff --git a/public_html_admin/js/contrats.js b/public_html_admin/js/contrats.js
index 2c6cace..7f0fe7a 100644
--- a/public_html_admin/js/contrats.js
+++ b/public_html_admin/js/contrats.js
@@ -137,6 +137,31 @@ function initViewContrat() {
currentViewContrat = id;
loadDatasInViewContratModal(id);
});
+
+ var form = modalViewContrat.find("div.formContrat");
+
+ // TABS
+ form.find("a.formContratTabBtn").click(function(e) {
+ e.preventDefault();
+
+ // BTN
+ if(!$(this).parent().hasClass("active")) {
+ form.find("ul.formContratTabs > li").removeClass('active');
+ $(this).parent().addClass("active");
+ }
+
+ // TAB
+ var tab = form.find("div.tab."+$(this).attr("tab"));
+ if(tab.length>0) {
+ if(tab.hasClass("active")) return;
+
+ form.find("div.formContratTabs > div.tab").removeClass("active");
+ tab.addClass("active");
+ }
+ });
+ resizeFormContrat(form);
+ $( window ).on( "resize", function() { resizeFormContrat(form) });
+
// CANCEL
modalViewContrat.on('hidden.bs.modal', function (e) {
@@ -145,6 +170,11 @@ function initViewContrat() {
});
}
+function resizeFormContrat(form) {
+ var wh = window.innerHeight;
+ form.find("div.formContratTabs div.tab").css("max-height", (wh-180)+"px");
+}
+
function loadDatasInViewContratModal(id) {
datas = {
'ref' : id,
@@ -152,6 +182,7 @@ function loadDatasInViewContratModal(id) {
};
$.post( contratsBaseURL, datas, function( result ) {
var datas = JSON.parse(result);
+ console.log(datas);
modalViewContrat.find("small.db_ref > span").html(datas.ref);
@@ -187,6 +218,11 @@ function loadDatasInViewContratModal(id) {
modalViewContrat.find("td.nb_panier_livre").html(nb_panier_livre);
modalViewContrat.find("td.nb_panier_restant").html(datas.nb_paniers_restants + " / " + datas.nb_paniers);
+ // PANIERS
+ $.post(contratsBaseURL, { 'ref' : id, 'action' : 'modalView_getTab', 'tab' : 'paniers' }, function(result) {
+ modalViewContrat.find("div.tabPaniers").html(result);
+ }).fail(function() { alert(srvErrorMsg+" (load modal view client - tab paniers)"); });
+
modalViewContrat.modal('show');
}).fail(function() { alert(srvErrorMsg+" (load modal view contrat)"); });
}
@@ -194,6 +230,11 @@ function loadDatasInViewContratModal(id) {
function clearViewContratModal() {
modalViewContrat.find("small.db_ref > span").html("");
+ modalViewContrat.find("ul.formContratTabs > li").removeClass('active hide');
+ modalViewContrat.find("ul.formContratTabs > li:first-child").addClass('active');
+ modalViewContrat.find("div.formContratTabs > div.tab").removeClass("active");
+ modalViewContrat.find("div.formContratTabs > div.tab:first-child").addClass("active");
+
modalViewContrat.find("td.nom").html("");
modalViewContrat.find("td.tel").html("");
modalViewContrat.find("td.email").html("");
@@ -207,6 +248,8 @@ function clearViewContratModal() {
modalViewContrat.find("td.nb_panier_livre").html("");
modalViewContrat.find("td.nb_panier_restant").html("");
+
+ modalViewContrat.find("div.tabPaniers").html("");
}
/***** FORM CONTRAT *****/
diff --git a/public_html_admin/js/livraisons.js b/public_html_admin/js/livraisons.js
index 8fc220b..d0de3ee 100644
--- a/public_html_admin/js/livraisons.js
+++ b/public_html_admin/js/livraisons.js
@@ -77,15 +77,17 @@ $(document).ready( function() {
function initFiltresLivraisons() {
// console.log("INIT FILTRES LIVRAISONS");
+ loadValue = filtreLivraisonGroupe.attr("load_value");
filtreLivraisonGroupe.change(function(e) {
$(this).blur();
document.location = "?groupe="+parseInt($(this).val());
- });
+ }).val(loadValue);
+ loadValue = filtreLivraisonArchive.attr("load_value");
filtreLivraisonArchive.change(function(e) {
$(this).blur();
document.location = "?archive="+parseInt($(this).val());
- });
+ }).val(loadValue);
}
/***** VIEW LIVRAISON *****/
diff --git a/public_html_admin/templates/contrats/contrat_modal_view.tpl b/public_html_admin/templates/contrats/contrat_modal_view.tpl
index a3bcdb0..6208ac4 100644
--- a/public_html_admin/templates/contrats/contrat_modal_view.tpl
+++ b/public_html_admin/templates/contrats/contrat_modal_view.tpl
@@ -10,15 +10,28 @@
Fiche contrat
-
- | type de contrat : | |
- | client : | |
- | date de début : | |
- | lieu de dépôt : | |
- | nb. de chèque : | |
- | nb. de panier(s) livré(s) : | |
- | nb. de panier(s) restant(s) : | |
-
+
diff --git a/public_html_admin/templates/contrats/contrat_modal_view_tab_paniers.tpl b/public_html_admin/templates/contrats/contrat_modal_view_tab_paniers.tpl
new file mode 100644
index 0000000..fa78628
--- /dev/null
+++ b/public_html_admin/templates/contrats/contrat_modal_view_tab_paniers.tpl
@@ -0,0 +1,22 @@
+
+
+
+ | date |
+ panier |
+ lieu |
+
+
+
+ {foreach from=$infos.paniers_livres item=i}
+
+ | {$i.livraison_date_print} |
+ {$i.panier_type_nom} |
+ {$i.lieu_depot_nom} |
+
+ {foreachelse}
+
+ | aucun panier |
+
+ {/foreach}
+
+
\ No newline at end of file
diff --git a/public_html_admin/templates/livraisons/livraisons_secondbar.tpl b/public_html_admin/templates/livraisons/livraisons_secondbar.tpl
index be0eea8..f0f4ae8 100644
--- a/public_html_admin/templates/livraisons/livraisons_secondbar.tpl
+++ b/public_html_admin/templates/livraisons/livraisons_secondbar.tpl
@@ -10,15 +10,15 @@