En visitant ce site, vous acceptez l'utilisation de cookies afin de vous proposer les meilleurs services possibles.

[résolu] Erreur dans la "liste virtuemart des commandes" (en front-end)

  • doc_denis
  • Portrait de doc_denis
  • Hors Ligne
  • Membre senior
  • Membre senior
  • ...oui, la photo date :)
Plus d'informations
il y a 9 ans 2 mois - il y a 9 ans 2 mois #21 par doc_denis
j'ai posté le message avec mon notre idée :
forum.virtuemart.net/index.php?topic=136665.0
Dernière édition: il y a 9 ans 2 mois par doc_denis.
Les utilisateur(s) suivant ont remercié: clend

Connexion ou Créer un compte pour participer à la conversation.

  • clend
  • Portrait de clend
  • Hors Ligne
  • Nouveau membre
  • Nouveau membre
  • "La gentillesse est la première des vertus" Jean Guéheno (A.F.)
Plus d'informations
il y a 9 ans 2 mois #22 par clend
Merci doc_denis.

Effectivement : puisqu'on détectait que l'affichage final dans l'historique de la commande était correct, il suffisait de reprendre cet affichage. Bravo à toi !

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 9 ans 2 mois #23 par studio42
Pas mal mais:
<?php
foreach($this->orderdetails['history'] as $_hist)
?>	
<?php echo vmJsApi::date($_hist->created_on,'LC1',true); ?>
a remplacer par
<?php
foreach($this->orderdetails['history'] as $_hist) {
echo vmJsApi::date($_hist->created_on,'LC1',true); 
break;
}
?>
évitera de voir toute l'historique

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 2 mois #24 par alatak
Bonjour

Super doc_denis,

Je vais verifier / regarder de mon cote , et faire remonter l'info directement au chef de projet Milbo :)
Les utilisateur(s) suivant ont remercié: clend

Connexion ou Créer un compte pour participer à la conversation.

  • doc_denis
  • Portrait de doc_denis
  • Hors Ligne
  • Membre senior
  • Membre senior
  • ...oui, la photo date :)
Plus d'informations
il y a 9 ans 2 mois #25 par doc_denis

studio42 écrit: Pas mal mais:

<?php
foreach($this->orderdetails['history'] as $_hist)
?>	
<?php echo vmJsApi::date($_hist->created_on,'LC1',true); ?>
a remplacer par
<?php
foreach($this->orderdetails['history'] as $_hist) {
echo vmJsApi::date($_hist->created_on,'LC1',true); 
break;
}
?>
évitera de voir toute l'historique


j'ai vérifié sur un site de prod, et il n'y à que la dernière date de modification qui s'affiche en haut de page.
cela dit, ton code est plus propre ;-)

Connexion ou Créer un compte pour participer à la conversation.

  • clend
  • Portrait de clend
  • Hors Ligne
  • Nouveau membre
  • Nouveau membre
  • "La gentillesse est la première des vertus" Jean Guéheno (A.F.)
Plus d'informations
il y a 9 ans 2 mois - il y a 9 ans 2 mois #26 par clend
La méthode proposée par doc_denis fonctionne très bien : elle n'affiche nullement tout l'historique de la commande (elle se contente de récupérer la date de création du dernier statut de la commande et de l'afficher fort bien (n tests réalisés sur des commandes avec diverses étapes de statut).

Par contre, la méthode proposée par studio42 a le même défaut que VM natif : on continue d'afficher pour dernière date de modification du statut la date de création de la commande ! (ce qui n'est donc pas correct)
Dernière édition: il y a 9 ans 2 mois par clend.

Connexion ou Créer un compte pour participer à la conversation.

  • doc_denis
  • Portrait de doc_denis
  • Hors Ligne
  • Membre senior
  • Membre senior
  • ...oui, la photo date :)
Plus d'informations
il y a 9 ans 2 mois - il y a 9 ans 2 mois #27 par doc_denis
Pour faire plus propre (pour mémoire, fichier à modifier) : components/com_virtuemart/views/orders/tmpl/details_order.php
ou la surcharge : templates/ton_template/html/com_virtuemart/orders/details_order.php

remplacer :
    <tr>
	<td class=""><?php echo vmText::_('COM_VIRTUEMART_LAST_UPDATED') ?></td>
	<td align="left"><?php echo vmJsApi::date($this->orderdetails['details']['BT']->modified_on, 'LC4', true); ?></td>
    </tr>
    <tr>

Par ceci
<tr>
   <td class=""><?php echo vmText::_('COM_VIRTUEMART_LAST_UPDATED') ?></td>
      <td align="left">
         <?php
            foreach($this->orderdetails['history'] as $_hist);
            echo vmJsApi::date($_hist->created_on,'LC1',true); 
         ?>	
      </td>
   </tr>
Dernière édition: il y a 9 ans 2 mois par doc_denis.

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 9 ans 2 mois - il y a 9 ans 2 mois #28 par studio42
Étrange que ma version ne marche pas. Si quelqu'un sait programmer en PHP, cela évite juste de renvoyer plus d'une réponse en ajoutant un "break".
Sinon c'est exactement le même code que Doc denis.
La réponse donnée par doc denis n'est pas "propre" au niveau programmation, c'est tout.

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!
Dernière édition: il y a 9 ans 2 mois par studio42.

Connexion ou Créer un compte pour participer à la conversation.

  • clend
  • Portrait de clend
  • Hors Ligne
  • Nouveau membre
  • Nouveau membre
  • "La gentillesse est la première des vertus" Jean Guéheno (A.F.)
Plus d'informations
il y a 9 ans 2 mois - il y a 9 ans 2 mois #29 par clend

studio42 écrit: Étrange que ma version ne marche pas. Si quelqu'un sait programmer en PHP, cela évite juste de renvoyer plus d'une réponse en ajoutant un "break".
Sinon c'est exactement le même code que Doc denis.
La réponse donnée par doc denis n'est pas "propre" au niveau programmation, c'est tout.


Et non, ce n'est pas étrange que cette solution ne marche pas. Pour s'en convaincre, il faut regarder la structure de la table spécifique qui stocke chronologiquement un nouvel enregistrement chaque fois que le statut d'une commande est modifié : quand on recherche la dernière date de modif du statut d'une commande, il faut donc -en ne sélectionnant que les enregistrements relatifs à la commande étudiée- parcourir TOUS les enregistrements et n'en retenir que le DERNIER (et non pas sortir de la recherche dès qu'on a trouvé le 1er enregistrement de ladite commande (fonction "break").

ps : ce qui explique pourquoi le script proposé s'arrête à la date initiale de la commande (même erreur que VM)

Le seul reproche que je ferais sur la solution proposée par doc_denis : c'est de ne pas reprendre une structure de date cohérente avec la date de création de la facture affichée 2 lignes au-dessus sur l'écran de la commande. Il conviendrait de reprendre le paramètre "LC4" et non pas "LC1" (un détail ... pour une solution qui marche) !
Dernière édition: il y a 9 ans 2 mois par clend.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 2 mois - il y a 9 ans 2 mois #30 par alatak
bonjour

Si c'est la dernière valeur d'un array, php fait ca pour toi ;)
soit:
echo end($this->orderdetails['history']);
voir php.net/manual/fr/function.end.php
Dernière édition: il y a 9 ans 2 mois par alatak.
Les utilisateur(s) suivant ont remercié: clend

Connexion ou Créer un compte pour participer à la conversation.