MAJ Lancer une tache (php) a une moment précis.

Eléphant du PHP | 440 Messages

05 mai 2008, 17:00

bonjour à tous,

J'avance sur ma base de donnée et les personnes qui vont l'utiliser voudrait voudrait savoir si cela est possible (car moi je ne sais pas.)

Explication simple:


Nous avons prix d'une matière qui ne change qu'a partir du 1 juin (sont prix de départ est de 1.2 € et il va passer a 1.8€)

Est-il possible de créer une page (ou autre chose) qui permettrait par exemple la modification du prix en automatique a une date voulue.

La personne selectionne le produit, lui indique le nouveau prix et la date d'activation.

Merci d'avance pour votre aide.

guigui69
Modifié en dernier par guigui69 le 06 mai 2008, 12:11, modifié 1 fois.

Mammouth du PHP | 1353 Messages

05 mai 2008, 17:07

Bonjour,

Pour faire cela il faut utiliser les tâches CRON.

Tu trouveras un début de réponse sur ce post
Tell me and I forget. Teach me and I remember. Involve me and I learn.

ViPHP
AB
ViPHP | 5818 Messages

05 mai 2008, 18:48

Une tâche cron s'effectue régulièrement suivant l'interval de temps que tu défini. Tous les jours à 24h01 par exemple tu pourrais faire une requête sur ta bdd pour savoir si certains prix doivent être mis à jour en comparant avec les dates.
Tu pourrais effectuer cette comparaison également à chaque requête mais ce serait beaucoup plus lourd pour le serveur et la solution du cron est dans ce cas la meilleure.

ViPHP
ViPHP | 4674 Messages

06 mai 2008, 00:35

Hey :),

Ou sinon tu embauches un petit chinois, ça pourrait peut-être sauver l'usine de mon père ...
;-)
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 440 Messages

06 mai 2008, 10:02

Donc il faudrait que je parte sur une base avec cron.

Car le but c'est que ça soit les utilisateurs qui renseigne cette page (php), avec le nom du produit le nouveau prix et la date.

L'exécution de la requête serait gérer en php avec une comparaison de date.

c'est bien ca?

Comment je doit mis prendre ? au niveau mysql ou en php?

merci pour votre aide

guigui69

---------------------------------------------------------------------------------

MAJ, j'ai imaginé ceci:


Une table qui va s'appeler cron_modif_m

avec comme champs:

id_cron_modif_m
code_m
pu_m_cron_modif_m
coef_pdr_mat_cron_modif_m
pu_pdr_mar_cron_modif_m
date_cron_modif_m

Dans cette table serait enregistré par les utilisateur les futurs modification de prix.


le script php
<?php
information de connections

$date = date("d-m-Y");

$sql1= "Select
id_cron_modif_m, code_m, pu_m_cron_modif_m, coef_pdr_mat_cron_modif_m, pu_pdr_mat_cron_modif_m, date_cron_modif_m
FROM cron_modif_m
WHERE date_cron_modif_m = $date;";

$query1= mysql_query($sql1) or die ('erreur');
while ($ligne1 = mysql_fetch_array($query1)){

$sql2= UPDATE matiere values ( pu_m= $ligne["pu_m_cron_modif_m"], coef_pdr_mat= $ligne["coef_pdr_mat_cron_modif_m"], pu_pdr_mat=$ligne["pu_pdr_mat_modif_m]) where code_m =$ligne["code_m"]
$query2= mysql_query($sql2) or die ('erreur');
mysql_free_result($query2);
}

?>
Cela vous semble correct ou bien ce n'ai pas réalisable? c'est déconseillé?

Merci d'avance pour votre aide

guigui69

Eléphant du PHP | 440 Messages

11 mai 2008, 19:40

Re bonjour à tous,

Est que la méthode que j'ai décrit plus haut est la bonne ou il est déconseillé ou impossible de faire comme ceci?

Merci

guigui69

ViPHP
ViPHP | 1996 Messages

11 mai 2008, 22:18

Bien je gère une base de donnée pour les mêmes données (lol) donc voici ma méthode : affectation des prix à un moment donné + présence sur le marché à un moment précis. J'ai donc créé tout simplement une colonne date_utilisation avec un timestamp d'utilisation. Ensuite je la compare avec la date d'aujourd'hui et si ce timestamp est inférieur, la référence est utilisée (ou le prix dans ton cas).
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 422 Messages

12 mai 2008, 00:49

Il ne faut surtout pas écraser les prix des produits dans la base de données. Imagine qu'un type fasse un achat avant le 1er juin, puis que vous soyez amené à rembourser après le 1er juin parce que la livraison s'est perdue. Si tu as écrasé le prix, ça va être galère pour faire la facture d'avoir.

Tu peux avoir le cas d'un devis établi sur les anciens prix, accepté par le client sur cette base et la facture établie après le changement de prix. Tu peux avoir un commercial qui a passé un accord avec certains de ses clients pour que certaines livraisons se fassent à l'ancien tarif ...

Personnellement, je mettrais en place un système avec des tarifs date à date. On compare la date du jour avec la date de la facture (ou la date du devis) et on choisit le tarif. Mais ce système est débrayable pour appliquer l'ancien tarif après le changement.

Crois-moi, dans le domaine de la vente, même s'ils affirment le contraire, les commerciaux ont des pratiques particulièrement tordues. Si tu pars sur un truc trop basique, ça va coincer. Il faut absolument que tu te fasses préciser ce fonctionnement de changement de tarif dans les détails, en imaginant les cas les plus compliqués et en voyant plusieurs personnes de niveau hiérarchique différent (le directeur commercial ne sait pas forcément comment travaillent ses équipes, mais c'est lui qui prend les décisions).

Bon courage.

Eléphant du PHP | 440 Messages

12 mai 2008, 23:01

Merci pour vos réponses.

Ma base de donnée ne sert uniquement a réaliser les prix de revient pour réaliser nos produits (croissant etc..). Donc des que le prix d'une matière première (de nos fournisseurs) change on la change dans la base, pour que cela affecte le calcul de nos recette de prix.

Vous croyez que je doit monter un système de ce genre? (désolé je début en bdd et php)


merci d'avance d'éclaircir mes pensées.

guigui69

ViPHP
ViPHP | 2287 Messages

12 mai 2008, 23:35

Vous croyez que je doit monter un système de ce genre? (désolé je début en bdd et php)
Je suis de l'avis de caroube et je ne l'aurais pas mieux exprimé qu'il ne l'a fait :-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphant du PHP | 440 Messages

13 mai 2008, 09:28

D'accord,

Comment mettre sa en place? Auriez-vous des exemples a me montrer?

Merci d'avance

guigui69