THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,
je voudrais développer un plug-in permettant de choisir (pour les adresses déjà crées) ou d'ajouter de nouvelles adresses à un client lors de la création d'une commande dans le Back Office afin de pouvoir avoir une adresse de livraison différente de celle de facturation.

Malheureusement à l'heure actuelle, il n'existe pas de point d'entrée pour nomplugin_admin_commandecreer.php
Serait-il possible d'ajouter cela à la prochaine mise à jour de Thélia?
Cordialement.

Offline


En fait, ce n'est pas un plugin qui faut faire mais revoir la structure du back office.

Je ne veux pas dire de bêtises, mais dans la nouvelle interface d'admin il me semble que c'est possible (la version noir et grise en twitterbootstrap)

Installe là en parallèle et teste là au pire.

Offline


Tu peux faire ça après la création de la commande, en ajoutant ton interface de gestion d'adresse de livraison dans nomdetonplugin_admin_commandedetails.php


OpenStudio Toulouse

Offline


Bonjour,

j'aimerais être sûr qu'en ajoutant l'interface de gestion d'adresse de livraison dans nomdetonplugin_admin_commandedetails.php, le facture et le bon de livraison pourront être générés avec la nouvelle adresse.

Est-il possible (dans commande_details.php) de surcharger l'actuel bloc "Adresse de livraison" pour y inclure un menu déroulant pour choisir les adresses de livraison déjà crées?

Offline


Est-il possible (dans commande_details.php) de surcharger l'actuel bloc "Adresse de livraison"

Oui, avec un peu de CSS et de Javascript (dans nomdetonplugin_admin_commandedetails.php), tu dois pouvoir remplacer ce bloc par le tien.

Ton bloc de saisie permettra de modifier la ligne de la table venteprod qui correspond à la commande courante.

Rien de très compliqué smile


OpenStudio Toulouse

Offline


Bonjour,
j'essaye de modifier la ligne de la table venteprod qui correspond à la commande courante avec la fonction maj() mais ça ne fonctionne pas.
Lorsque je fais un submit, le numéro de commande disparait des variables $_GET qui apparaissent normalement dans l'adresse.
Voici le contenu de mon fichier adressesclientbo_admin_commandedetails.php

<?php
include_once(realpath(dirname(__FILE__)) . "/../../../fonctions/authplugins.php");
autorisation("adressesclientbo");

/* modifier l'adresse de livraison */
$commande = new Commande();
$commande->charger_ref($_GET['ref']);

		//MELANIE - A MODIFIER
		$adr = new Venteadr();
		$adr->charger($commande->adrlivr);

    // Adresse livraison (melanie)
    if ($_POST['adresse'] !="" and  $_POST['adrnom']!=""){
    echo "test";
		  $adr->raison = $_POST['raison'];
		  $adr->entreprise = $_POST['adrentreprise'];
		  $adr->nom = $_POST['adrnom'];
		  $adr->prenom = $_POST['adrprenom'];
		  $adr->adresse1 = $_POST['adresse'];
		  $adr->adresse2 = $_POST['adresse2'];
		  $adr->adresse3 = $_POST['adresse3'];
		  $adr->cpostal = $_POST['adrcp'];
		  $adr->ville = $_POST['adrville'];
		  $adr->tel = $_POST['adrtel'];
		  $adr->pays = $_POST['adrpays'];
      $adr->maj();
    }

?>


<script language="JavaScript" type="text/javascript">
function AFFICHE(mon_texte){
	document.getElementById('titre').style.background = "#f00"; 
}


function fct_afficher(id_champ){
var obj=document.getElementById(id_champ);
alert("test");
alert("Age saisi= "+obj.value);
}

</script>

<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="livr_modif" name="formmodif">

  <!--CHOIX DE L'ADRESSE DE LIVRAISON - ajout par melanie le 10/10/2013-->
<div class="bordure_bottom" style="margin:10px 0 0px 0;">
<div class="entete_liste_client">
	<div class="titre">ADRESSE DE LIVRAISON (SI DIFFERENTE DE CELLE DE FACTURATION)</div>
</div>
<!--form id="adrvt"-->
  <ul class="ligne_claire_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Civilite', 'admin'); ?></li>
		<li><select name="raison">
    <option value="">Choisir...</option>
    								<?php
    								$raison = new Raison();

    								$result = $raison->query("select * from $raison->table");

    								while ($result && $row = $raison->fetch_object($result, 'Raison')) {

    									$raisondesc = new Raisondesc($row->id, $_SESSION['util']->lang);

    								//	$selected = (2) ? 'selected="selected"' : '';
    									?>
    										<option <?php echo $selected; ?> value="<?php echo $raisondesc->raison; ?>"><?php echo $raisondesc->long; ?></option>
    									<?php
    								}

    								?>
    								</select></li>
	</ul>
	<ul class="ligne_fonce_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Entreprise', 'admin'); ?></li>
		<li><input type="text" name="adrentreprise" id="adrentreprise" value="" class="form" size="40" /></li>
	</ul>
  <ul class="ligne_claire_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Nom', 'admin'); ?></li>
		<li><input type="text" name="adrnom" id="adrnom" value="" class="form" size="40"  /></li>
	</ul>
	<ul class="ligne_fonce_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Prenom', 'admin'); ?></li>
		<li><input type="text" name="adrprenom" id="adrprenom" value="" class="form" size="40" /></li>
	</ul>
  <ul class="ligne_claire_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Adresse', 'admin'); ?></li>
		<li><input type="text" name="adresse" id="adresse" value="<?php echo $client->adresse; ?>" class="form" size="40"  /></li>
	</ul>
	<ul class="ligne_fonce_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Adressesuite', 'admin'); ?></li>
		<li><input type="text" name="adresse2" id="adresse2" value="<?php echo $client->adresse2; ?>" class="form" size="40" />

    </li>
	</ul>
  <ul class="ligne_fonce_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Adressesuite', 'admin'); ?></li>
		<li><input type="text" name="adresse3" id="adresse3" value="<?php echo $client->adresse3; ?>" class="form" size="40" />

    </li>
	</ul>
	<ul class="ligne_claire_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('CP', 'admin'); ?></li>
		<li><input type="text" name="adrcp" id="adrcp" value="" class="form" size="40" /></li>
	</ul>
	<ul class="ligne_fonce_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Ville', 'admin'); ?></li>
		<li><input type="text" name="adrville" id="adrville" value="<?php echo $client->ville; ?>" class="form" size="40" /></li>
	</ul>
	<ul class="ligne_claire_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Pays', 'admin'); ?></li>
		<li><!--input type="text" name="qtite" id="qtite" value="" class="form" size="40" /-->
    <select name="adrpays" class="form_client">
    <option value="">Choisir...</option>
    								<?php
    								$pays = new Pays();
    								$query ="select * from $pays->table";

    								$resul = $pays->query($query);

    								while($resul && $row = $pays->fetch_object($resul, 'Pays')) {

    									$paysdesc = new Paysdesc();

    									if ($paysdesc->charger($row->id)) {

    									//	if($row->id == 64 || $pays->defaut) $selected="selected=\"selected\""; else $selected="";
    										?>
    										<option value="<?php echo($row->id); ?>" <?php echo($selected); ?>><?php echo($paysdesc->titre); ?></option>
    									    <?php
    									}
    								}
    	  							?>
          							</select>

    </li>
	</ul>

  <ul class="ligne_fonce_BlocDescription">
		<li class="designation" style="width:280px;"><?php echo trad('Telport', 'admin'); ?></li>
		<li><input type="text" name="adrtel" id="adrtel" value="" class="form" size="40" /></li>
	</ul>
<!--/form-->

<input type="submit" value="modifier adresse" />
<input type="button" onclick="formmodif.submit()" />

</div>
<!--fin ajout par melanie le 10/10/2013 -->
</form>

Voilà.

Offline


Normal que $_GET soit vide,  ta form fait un POST.

Place donc la ref de commande comme un input hidden dans ta form.


OpenStudio Toulouse

Offline


Merci pour l'aide.
j'ai modifié le début de mon code ainsi :

$ref = $_REQUEST["ref"];
$commande = new Commande();
$commande->charger_ref($ref);

		//MELANIE - A MODIFIER
		$adr = new Venteadr();
		$adr->charger($commande->adrlivr);

    // Adresse livraison (melanie)
    if ($_POST['adresse'] !="" and  $_POST['adrnom']!=""){
/*     echo "$ref"; */
		  $adr->raison = $_POST['raison'];
		  $adr->entreprise = $_POST['adrentreprise'];
		  $adr->nom = $_POST['adrnom'];
		  $adr->prenom = $_POST['adrprenom'];
		  $adr->adresse1 = $_POST['adresse'];
		  $adr->adresse2 = $_POST['adresse2'];
		  $adr->adresse3 = $_POST['adresse3'];
		  $adr->cpostal = $_POST['adrcp'];
		  $adr->ville = $_POST['adrville'];
		  $adr->tel = $_POST['adrtel'];
		  $adr->pays = $_POST['adrpays'];
      $adr->maj();
      
      // problème de rechargement
      header("Location: commande_details.php?ref='.$ref.'.php'");

		
    }
    

?>

j'ai maintenant la base de donnée qui est mise à jour mais le rechargement de la page ne fonctionne pas.
La syntaxe n'est pas bonne ou au mauvais endroit.

Offline


Tu ne peux plus envoyer de header HTTP une fois que tu as commencé à envoyer des données.


OpenStudio Toulouse