Format d'affichage date sur facture avec champ date picker

  • Posts: 50
  • Thank you received: 2
  • Hikamarket Multivendor Hikashop Multisite
3 months 1 week ago #358338

-- HikaShop version -- : 5.0.2
-- Joomla version -- : 4.4.2
-- PHP version -- : 8.1.27

Bonjour,

Le bon de livraison a été modifié en devis et j'aimerais ajouter sous le numéro de devis, "Devis Valable jusqu'au XX/XX/XX".

J'ai donc crée un champ commande (devisvalablejusquau) en sélecteur de date avancée, avec un format %d/%m/%Y. Dans ma commande, j'ai sélectionné la date du 29/02/2024 pour ce champ.

Sur la Vue Order/Invoice, quand j'applique le code suivant :

<?php echo $this->order->devisvalablejusquau; ?>

J'obtiens : 20240229000000

Et quand, je met celui-ci :
<?php echo  hikashop_getDate($this->order->devisvalablejusquau, $this->params->get('date_format', '%d/%m/%Y')); ?>
Le format est bon mais pas la date, il est affiché : 28/04/2057

1. Il y a t-il une solution pour que la bonne date et au bon format s'affiche ? Est-ce peut-être plus simple de mettre directement un champ texte ?
2. Pour aller plus loin, est-il possible que la date de fin de validité, soit calculée automatiquement, par exemple à J+15 de la date de création de commande ?
3. Je voulais ajouter du texte uniquement sur le bon de livraison et non sur la facture. Pour faire l'inverse, cibler uniquement la facture, j'ai trouvé que c'était le code suivant :
if($this->invoice_type == 'full')
Or pour modifier uniquement le bon de livraison, je n'ai pas trouvé plus simple que :
	if($this->invoice_type == 'full') {
		echo '';
} else {
  echo "<p style='border-top:1px solid #000;'></p><div><b>« Bon pour Accord de Prestation »";

Ou du coup le premier echo est pour la facture et le deuxième pour le bon de livraison, n'y a-t-il pas plus simple comme remplacer 'full' par autre chose ?


Merci pour votre aide.

Please Log in or Create an account to join the conversation.

  • Posts: 81540
  • Thank you received: 13071
  • MODERATOR
3 months 1 week ago #358348

Bonjour,

1. Le formattage des champs personnalisés de type date n'est pas compatible avec le formattage des dates de hikashop_getDate
Le plus serais de faire manuellement:

<?php
$year = substr($this->order->devisvalablejusquau, 0 ,4);
$month = substr($this->order->devisvalablejusquau, 4 ,2);
$day = substr($this->order->devisvalablejusquau, 6 ,2);
echo $day.'/'.$month.'/'.$year;
?>

2. Oui. C'est même plus simple ainsi:
<?php echo hikashop_getDate($this->order->order_created+1209600,'%d %B %Y'); ?>
1209600 est le nombre de secondes dans 2 semaines.

3. Comme cela:
if($this->invoice_type != 'full') {
  echo "<p style='border-top:1px solid #000;'></p><div><b>« Bon pour Accord de Prestation »";
}

Last edit: 3 months 1 week ago by nicolas.

Please Log in or Create an account to join the conversation.

  • Posts: 50
  • Thank you received: 2
  • Hikamarket Multivendor Hikashop Multisite
3 months 1 week ago #358355

Super, ça fonctionne à merveille.

Merci beaucoup Nicolas !

Please Log in or Create an account to join the conversation.

Time to create page: 0.062 seconds
Powered by Kunena Forum