294 lines
10 KiB
PHP
294 lines
10 KiB
PHP
<?php
|
|
/*************************************************************************************/
|
|
/* */
|
|
/* Thelia - Plugin de combinaison des déclinaisons */
|
|
/* */
|
|
/* Copyright (c) Franck Allimant, 2011 */
|
|
/* email : franck.allimant@cqfdev.fr */
|
|
/* web : http://www.cqfdev.fr */
|
|
/* idée originale: Jean-Baptiste Billot (ottoroots@gmail.com) */
|
|
/* */
|
|
/* This program is free software; you can redistribute it and/or modify */
|
|
/* it under the terms of the GNU General Public License as published by */
|
|
/* the Free Software Foundation; either version 2 of the License, or */
|
|
/* (at your option) any later version. */
|
|
/* */
|
|
/* This program is distributed in the hope that it will be useful, */
|
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
|
/* GNU General Public License for more details. */
|
|
/* */
|
|
/* You should have received a copy of the GNU General Public License */
|
|
/* along with this program; if not, write to the Free Software */
|
|
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
/* */
|
|
/*************************************************************************************/
|
|
|
|
|
|
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Navigation.class.php");
|
|
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Administrateur.class.php");
|
|
|
|
session_start();
|
|
|
|
if (! isset($_SESSION["util"]->id) ) { echo "Pas de session."; exit; }
|
|
|
|
header("Content-Type: text/html;charset=utf-8");
|
|
|
|
include_once(realpath(dirname(__FILE__)) . "/CombidecliAdmin.class.php");
|
|
|
|
$adm = new CombidecliAdmin();
|
|
|
|
$baseurl = "../client/plugins/combidecli/combidecli_gestion.php?ref=$adm->refproduit&lang=$adm->lang";
|
|
|
|
$commande = isset($_REQUEST['commande_dc']) ? $_REQUEST['commande_dc'] : false;
|
|
|
|
switch($commande)
|
|
{
|
|
case 'combiner' :
|
|
$adm->combiner();
|
|
break;
|
|
|
|
case 'supprimer' :
|
|
$adm->supprimer();
|
|
break;
|
|
|
|
case 'maj':
|
|
$adm->maj();
|
|
break;
|
|
}
|
|
|
|
$adm->prepare_page();
|
|
|
|
// S'il y a des déclinaisons sur le produit
|
|
if (count($adm->declinaisondescs) > 0)
|
|
{
|
|
?>
|
|
|
|
<script type="text/javascript">
|
|
|
|
var baseurl = "<?php echo $baseurl; ?>";
|
|
|
|
function cd_disable()
|
|
{
|
|
$('#cd_activer_button').attr("disabled", "disabled");
|
|
$('#cd_desactiver_button').attr("disabled", "disabled");
|
|
$('#cd_maj_button').attr("disabled", "disabled");
|
|
$('#cd_synchroniser_button').attr("disabled", "disabled");
|
|
}
|
|
|
|
function cd_change_composants()
|
|
{
|
|
<?php if(count($adm->combinaisons) > 0) { ?>
|
|
if (confirm('En modifiant les déclinaisons combinées, vous perdrez les stocks et surplus actuels.\nVoulez-vous continuer ?'))
|
|
{
|
|
cd_combiner();
|
|
}
|
|
|
|
return false;
|
|
<?php } else { ?>
|
|
return true;
|
|
<?php } ?>
|
|
|
|
}
|
|
|
|
function cd_combiner()
|
|
{
|
|
// Au moins une case cochéee
|
|
if ($('input[name^=dc_composant]:checked').length < 1)
|
|
{
|
|
alert("Au moins une déclinaison doit être sélectionnée.");
|
|
|
|
return false;
|
|
}
|
|
var composants = $('input[name^=dc_composant]:checked').map( function(n, i) { return $(i).val() });
|
|
|
|
cd_disable();
|
|
cd_peupler();
|
|
$('#pliantcombidecli').load(baseurl, {
|
|
commande_dc: "combiner",
|
|
composants: composants
|
|
}
|
|
);
|
|
}
|
|
|
|
function cd_synchroniser()
|
|
{
|
|
if (confirm("Synchroniser les combinaisons avec l'état d'activation actuel de vos déclinaisons ?\nSi vous avez activé ou désactivé des déclinaisons, vous devrez resaisir vos stocks et vos surplus.")) cd_combiner();
|
|
}
|
|
|
|
function cd_desactiver()
|
|
{
|
|
if (confirm("Désactiver les combinaisons pour ce produit ?"))
|
|
{
|
|
cd_disable();
|
|
|
|
$('#pliantcombidecli').load(baseurl + "&commande_dc=supprimer");
|
|
}
|
|
}
|
|
|
|
function cd_peupler()
|
|
{
|
|
$('input[name^="dc_stock_"]').val(1000);
|
|
cd_maj();
|
|
}
|
|
|
|
function cd_maj()
|
|
{
|
|
cd_disable();
|
|
|
|
// Construire les paramètres de la requete
|
|
$.post(baseurl + "&commande_dc=maj",
|
|
$('#pliantcombidecli input').serialize() ,
|
|
function(data, textStatus, jqXHR) {
|
|
$('#pliantcombidecli').html(data);
|
|
}
|
|
);
|
|
}
|
|
|
|
// Désactiver les champs de saisie du stock des declinaisons si les combinaisons sont activées
|
|
$(document).ready(function() {
|
|
|
|
$('input[name^=stock]').removeAttr('disabled').css('background-color', '');
|
|
$('input[name^=surplus]').removeAttr('disabled').css('background-color', '');
|
|
|
|
<?php if(count($adm->combinaisons) != 0) { ?>
|
|
|
|
// Mettre a jour le stock produit
|
|
$('input[name=stock]').val(<?php echo floatval($adm->stock_produit); ?>);
|
|
|
|
// Désactiver le surplus et le stock des declinaisons combinees
|
|
<?php foreach($adm->declinaisondescs as $declinaisondesc)
|
|
{
|
|
if (in_array($declinaisondesc->declinaison, $adm->composants))
|
|
{
|
|
$result = $adm->_query("select id from declidisp where declinaison = $declinaisondesc->declinaison");
|
|
|
|
while ($result && $row = mysql_fetch_object($result))
|
|
{
|
|
?>
|
|
$('input[name=surplus<?php echo $row->id; ?>]').attr('disabled', 'disabled').css('background-color', '#ccc').val('');
|
|
$('input[name=stock<?php echo $row->id; ?>]').attr('disabled', 'disabled').css('background-color', '#ccc').val('');
|
|
<?php
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
<?php } ?>
|
|
});
|
|
</script>
|
|
|
|
<table style="width: 100%; margin: 0">
|
|
|
|
<tr style="height: 40px;">
|
|
<th>
|
|
<?php if(count($adm->combinaisons) == 0) { ?>
|
|
La combinaison des déclinaisons n'est pas activée pour ce produit.<br />
|
|
Indiquez ci-dessous les déclinaison que vous souhaitez combiner:
|
|
<?php } else { ?>
|
|
Déclinaisons actuellement combinées:
|
|
<?php } ?>
|
|
</th>
|
|
</tr>
|
|
|
|
<?php
|
|
$style = "fonce";
|
|
|
|
foreach($adm->declinaisondescs as $declinaisondesc)
|
|
{
|
|
?>
|
|
<tr class="<?php echo $style; ?>" style="float: none; width: auto;">
|
|
<td>
|
|
<input <?php echo in_array($declinaisondesc->declinaison, $adm->composants) ? 'checked="checked"' : 'checked="checked"' ?>
|
|
type="checkbox"
|
|
value="<?php echo $declinaisondesc->declinaison ?>"
|
|
name="dc_composant[]"
|
|
onclick="return cd_change_composants();"
|
|
/> <?php echo $declinaisondesc->titre ?>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
$style = $style == "claire" ? "fonce" : "claire";
|
|
}
|
|
|
|
if ($adm->warning_no_decli) { ?>
|
|
<tr class="<?php echo $style; ?>">
|
|
<td><p style="color: red; font-weight: bold">La configuration actuelle de vos déclinaisons ne permet pas de créer de combinaison.</p></td>
|
|
</tr>
|
|
<?php
|
|
$style = $style == "claire" ? "fonce" : "claire";
|
|
}
|
|
?>
|
|
|
|
<tr>
|
|
<td class="<?php echo $style.'bottom' ?>" style="text-align: right">
|
|
<?php if(count($adm->combinaisons) == 0) { ?>
|
|
<button style="margin-right: 5px;" id="cd_activer_button" onclick="cd_combiner(); return false;">Activer la combinaison des déclinaisons</button>
|
|
<?php } else { ?>
|
|
|
|
<button title="Mettez à jour les combinaisons si vous avez activé ou désactivé une déclinaison au niveau de la rubrique de ce produit" id="cd_synchroniser_button" onclick="cd_synchroniser(); return false;">Mettre à jour les combinaisons</button>
|
|
<button style="margin-right: 5px;" title="Désactiver complètement les combinaisons sur ce produit" id="cd_desactiver_button" onclick="cd_desactiver(); return false;">Désactiver les combinaisons</button>
|
|
<?php } ?>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
|
|
if (count($adm->combinaisons) > 0)
|
|
{
|
|
// Les combinaisons sont actives
|
|
?>
|
|
<input type="hidden" name="combidecli_actives" value="1" />
|
|
|
|
<div class="entete" style="border: 0">
|
|
<div class="titre" style="cursor:pointer" onClick="$('#pliantcombidecli').show('slow');">STOCK ET SURPLUS</div>
|
|
</div>
|
|
|
|
<table width="100%">
|
|
<tr style="height: 30px;">
|
|
<th>Combinaison</th>
|
|
<th>Stock</th>
|
|
<th>Surplus</th>
|
|
<th style="text-align: center;">Active</th>
|
|
</tr>
|
|
<?php
|
|
|
|
$style = "claire";
|
|
|
|
foreach($adm->combinaisons as $combinaison)
|
|
{
|
|
?>
|
|
<tr class="<?php echo $style; ?>" style="float: none; width: auto;">
|
|
<td style="padding-left: 5px;">
|
|
<input type="hidden" name="dc_id[]" value="<?php echo $combinaison->id; ?>" />
|
|
<?php echo $combinaison->label; ?>
|
|
</td>
|
|
<td><input type"text" class="form" size="5" name="dc_stock_<?php echo $combinaison->id; ?>" value="<?php echo $combinaison->stock; ?>" /></td>
|
|
<td><input type"text" class="form" size="5" name="dc_surplus_<?php echo $combinaison->id; ?>" value="<?php echo $combinaison->surplus; ?>" /></td>
|
|
<td style="text-align: center;"><input type="checkbox" name="dc_actif_<?php echo $combinaison->id; ?>" value="1" <?php echo $combinaison->actif ? 'checked="checked"' : ''; ?>/></td>
|
|
</tr>
|
|
<?php
|
|
|
|
$style = $style == "claire" ? "fonce" : "claire";
|
|
}
|
|
?>
|
|
<tr class="<?php echo $style.'bottom' ?>" style="text-align: right">
|
|
<td colspan="4">
|
|
<button title="Peupler les stocks à 1000 pièces" id="cd_synchroniser_button" onclick="cd_peupler(); return false;">Peupler les stocks</button> <button id="cd_maj_button" onclick="cd_maj(); return false;">Valider les modifications</button>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
}
|
|
else
|
|
{
|
|
?>
|
|
<table style="width: 100%; margin: 0">
|
|
<tr style="height: 40px;">
|
|
<td class="clairebottom" style="text-align: center">Il n'y a pas de combinaison possible pour ce produit.</td>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
?>
|