Jump to content

afficher les commnade prestashop dans un calendrier


Rdev

Recommended Posts

Bonjour Rdev,

Oui c'est totalement faisable me cela nécessite du développement conséquent.

Une solution sympas serait d'utiliser l'api google calendar

Créer un module Prestashop qui va se greffer au hookNewOrder ou hookValidateOrder, hookUpdateOrder.

Une page controller pour afficher le calendrier 

 

Plus je suppose plusieurs détails techniques que vous n'avez pas encore soulevé.

 

Question : dans quel contexte fonctionnel souhaitez vous cette fonctionnalité, c'est pour gérer des réservations?

Edited by Timactive (see edit history)
Link to comment
Share on other sites

Rdev,

 

Voici une petite demo que je viens de réaliser sur prestashop 1.6

 

Capture%20d_%C3%A9cran%20de%202014-09-24

 

 

TUTO

 

Vous placez les fichiers présents sur github dans le répertoire js de votre thème c'est à dire :

themes/[votretheme]/js/jganttview/jquery.ganttView.js

themes/[votretheme]/js/jganttview/date.js

themes/[votretheme]/js/jganttview/jquery.ganttView.css

themes/[votretheme]/js/jganttview/jquery-ui-1.8.4.css

 

Modifiez le fichier history.tpl en intégrant les scripts et css :

<link rel="stylesheet" type="text/css" href="{$js_dir}jganttview/jquery-ui-1.8.4.css" />
<link rel="stylesheet" type="text/css" href="{$js_dir}jganttview/jquery.ganttView.css" />
<script type="text/javascript" src="{$js_dir}jganttview/jquery.ganttView.js"></script>
<script type="text/javascript" src="{$js_dir}jganttview/date.js"></script>

Toujours dans le fichiers history.tpl parcourir  les commandes et alimenter l'objet gantData

Avec comme

date de début => la date d'ajout de la commande

date de fin => la date de livraison de la commande

 

Après tout dépend de votre besoin.

<script type="text/javascript">
var ganttData = [];


{foreach from=$orders item=order name=myLoop}
ganttData.push(
{
id: {$order.id_order}, name: "Commande {$order.reference}", series: [
{ name: "Date de la commande", start: new Date({$order.date_add|date_format:"%Y,%m,%d"}), end: new Date({$order.delivery_date|date_format:"%Y,%m,%d"}) }
]
});
console.log(ganttData);
{/foreach}
$(function () {
$("#ganttChart").ganttView({ 
data: ganttData,
slideWidth: 900,
behavior: {
onClick: function (data) { 
var msg = "You clicked on an event: { start: " + data.start.toString("M/d/yyyy") + ", end: " + data.end.toString("M/d/yyyy") + " }";
$("#eventMessage").text(msg);
},
onResize: function (data) { 
var msg = "You resized an event: { start: " + data.start.toString("M/d/yyyy") + ", end: " + data.end.toString("M/d/yyyy") + " }";
$("#eventMessage").text(msg);
},
onDrag: function (data) { 
var msg = "You dragged an event: { start: " + data.start.toString("M/d/yyyy") + ", end: " + data.end.toString("M/d/yyyy") + " }";
$("#eventMessage").text(msg);
}
}
});


// $("#ganttChart").ganttView("setSlideWidth", 600);
});
</script>

history.tpl : Ajouter la div qui va inclure le diagramme 

<div id="ganttChart"></div>
<br/><br/>
<div id="eventMessage"></div>

evenMessage est un bloc qui va afficher les évènements sur le schéma, click, drag, ....

 

 

  • Like 1
Link to comment
Share on other sites

voici les données

[{"id":"28","name":"","series":[{"name":"","start":"new Date(2014,09,20)","end":"new Date(2014,09,20)"}]}]
[{"id":"32","name":"","series":[{"name":"","start":"new Date(2014,09,23)","end":"new Date(2014,09,23)"}]}]
[{"id":"33","name":"","series":[{"name":"","start":"new Date(2014,09,23)","end":"new Date(2014,09,23)"}]}]
[{"id":"34","name":"","series":[{"name":"","start":"new Date(2014,09,23)","end":"new Date(2014,09,23)"}]}]
[{"id":"35","name":"","series":[{"name":"","start":"new Date(2014,09,23)","end":"new Date(2014,09,23)"}]}]
[{"id":"36","name":"","series":[{"name":"","start":"new Date(2014,09,23)","end":"new Date(2014,09,23)"}]}]
[{"id":"37","name":"","series":[{"name":"","start":"new Date(2014,09,23)","end":"new Date(2014,09,23)"}]}]
[{"id":"73","name":"","series":[{"name":"","start":"new Date(2014,09,18)","end":"new Date(2014,09,18)"}]}]
[{"id":"91","name":"","series":[{"name":"","start":"new Date(2014,09,22)","end":"new Date(2014,09,22)"}]}]
Link to comment
Share on other sites

Rdev, tu ne devrais pas avoir de guillemets entre new Date(2014,09,20).

Pourquoi avoir choisi cette librairie, je vois quel n'a pas été mis à jour depuis 4 ans.

J'ai trouvé celles-ci :

https://github.com/robicch/jQueryGantt

ou

http://taitems.github.io/jQuery.Gantt/

Vous pouvez appliquer exactement le même principe indiqué plus haut, essayez de voir si les guillemets résolvent votre premier problème.

Link to comment
Share on other sites

  • 4 months later...

BOnjour,

 

Le sujet m'interesse également ! Mais je cherche plutot à afficher un calendrier comme celui ci dans le backoffice, ce qui permettrait à l'admin d'avoir une vision globale du temps de traitement des commandes.

 

Une piste ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...