Fonction "sendfacturepdf"

13 posts in this topic

Posted · Report post

Bonjour,

Dans la liste des commande de la page administrer/commandes.php , je voudrais ajouter en plus de "voir, envoyer bdc, etc" un lien pour envoyer le bdc a une adresse mail en particulier mais toujours la même.

j'ai le code suivant repris dans commandes.php:

case "sendfacturepdf" :

		include("modeles/haut.php");


		sendclient($_GET['id'], 'pdf', $_GET['bill_type']);

		$C = fetch_assoc(query("SELECT email FROM peel_commandes WHERE id = '" . intval($_GET['id']) . "'"));

		echo "La facture " . intval($_GET['id']) . " a été envoyée à " . $C['email'];

		$order = "o_timestamp";

		$sort = "DESC";

		affiche_liste_commandes(vn($_GET['start']), $order, $sort);

		break;	


	default :

		include("modeles/haut.php");

		$order = "o_timestamp";

		$sort = "DESC";

		affiche_liste_commandes(vn($_REQUEST['start']), $order, $sort);

		break;
mais comment puis-je modifier ce code pour le faire et y a t'il une autre page a modifier? Merci beaucoup EDIT: J'ai créer une fonction supplémentaire (copièe de sendfacturepdf) comme ceci:
case "sendnewfonction" :

		include("modeles/haut.php");

		sendclient($_GET['id'], 'html');

		$C = fetch_assoc(query("SELECT email_commande FROM peel_sites WHERE id = '" . intval($_GET['id']) . "'"));

		echo "La commande " . intval($_GET['id']) . " a été envoyée à " . $C['email'];

		$order = "o_timestamp";

		$sort = "DESC";

		affiche_liste_commandes(vn($_GET['start']), $order, $sort);

		break;

Mais quand je clique sur le lien que j'ai ajoute dans commandes_liste.php pour ajouter cette fonction, j'ai le message que la facture a bien été envoyé mais il n'y a pas d'adresse mail qui s'affiche et l'adresse mail renseignée dans email_commande de la table peel_sites ne s'affiche pas et je ne reçois donc rien...

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Dans la liste des commande de la page administrer/commandes.php , je voudrais ajouter en plus de "voir, envoyer bdc, etc" un lien pour envoyer le bdc a une adresse mail en particulier mais toujours la même.

j'ai le code suivant repris dans commandes.php:

case "sendfacturepdf" :

		include("modeles/haut.php");


		sendclient($_GET['id'], 'pdf', $_GET['bill_type']);

		$C = fetch_assoc(query("SELECT email FROM peel_commandes WHERE id = '" . intval($_GET['id']) . "'"));

		echo "La facture " . intval($_GET['id']) . " a été envoyée à " . $C['email'];

		$order = "o_timestamp";

		$sort = "DESC";

		affiche_liste_commandes(vn($_GET['start']), $order, $sort);

		break;	


	default :

		include("modeles/haut.php");

		$order = "o_timestamp";

		$sort = "DESC";

		affiche_liste_commandes(vn($_REQUEST['start']), $order, $sort);

		break;
mais comment puis-je modifier ce code pour le faire et y a t'il une autre page a modifier? Merci beaucoup EDIT: J'ai créer une fonction supplémentaire (copièe de sendfacturepdf) comme ceci:
case "sendnewfonction" :

		include("modeles/haut.php");

		sendclient($_GET['id'], 'html');

		$C = fetch_assoc(query("SELECT email_commande FROM peel_sites WHERE id = '" . intval($_GET['id']) . "'"));

		echo "La commande " . intval($_GET['id']) . " a été envoyée à " . $C['email'];

		$order = "o_timestamp";

		$sort = "DESC";

		affiche_liste_commandes(vn($_GET['start']), $order, $sort);

		break;

Mais quand je clique sur le lien que j'ai ajoute dans commandes_liste.php pour ajouter cette fonction, j'ai le message que la facture a bien été envoyé mais il n'y a pas d'adresse mail qui s'affiche et l'adresse mail renseignée dans email_commande de la table peel_sites ne s'affiche pas et je ne reçois donc rien...

Avec tout les tests, j'ai remarqué que lorsque le statut est sur réglé, plus possible d'envoyer bdc, donc formule bdc pas valable.

En copiant fonction sendfacturepdf, je crois que c'est limité a un seul envoi...?

Donc en bref comment pourrais-je envoyer par mail a une adresse fixe (par exemple l'adresse mail renseignée dans mail commande de sites?)

Je dois envoyer les pdf ou pdf a un centre de logistique qui s'occupe de nos commandes, pour éviter els manips j'aimerais cliquer sur le bdc que je veux qu'ils fassent partir

Merci,

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Slab,

il y a plusieurs chose dans votre sujet.

Dans un premier temps, il faut modifier votre requête SQL pour récupérer l'email.

Donc le code ci-dessous

$C = fetch_assoc(query("SELECT email_commande FROM peel_sites WHERE id = '" . intval($_GET['id']) . "'"));
devient
$C = fetch_assoc(query("SELECT email_commande FROM peel_sites"));

Ensuite, vous dites qu'il n'est pas possible d'envoyer un bdc pour une facture réglé. Ce n'est pas le fonctionnement par défaut de PEEL. Il n'y a aucune limitation de ce type sur l'envoi de mail.

Quelle version de PEEL utilisez-vous?

Simon.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Slab,

il y a plusieurs chose dans votre sujet.

Dans un premier temps, il faut modifier votre requête SQL pour récupérer l'email.

Donc le code ci-dessous

$C = fetch_assoc(query("SELECT email_commande FROM peel_sites WHERE id = '" . intval($_GET['id']) . "'"));
devient
$C = fetch_assoc(query("SELECT email_commande FROM peel_sites"));

Ensuite, vous dites qu'il n'est pas possible d'envoyer un bdc pour une facture réglé. Ce n'est pas le fonctionnement par défaut de PEEL. Il n'y a aucune limitation de ce type sur l'envoi de mail.

Quelle version de PEEL utilisez-vous?

Simon.

J'utilise la 5_71, en faite le lien bdc disparait lorsque la commande est sur staut "réglé"...

Merci

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Effectivement,il n'est plus possible d'envoyer un bon de commande après le paiement de celle-ci. A ce stade, vous pouvez envoyer que la facture.

Pour modifier ce fonctionnement, il faut retirer le test sur le statu de commande à la ligne 124 du fichier administrer/modeles/commande_liste.php,

AVANT :


if ($r->id_statut_paiement != 3) {
echo '
<a class="normal" href="commandes.php?mode=sendclient&amp;id=' . $r->id . '' . ((!empty($_GET['statut']))?'&amp;statut=' . $_GET['statut']:'') . '">envoyer bdc</a>';
}

[/code] APRES:
[code]
echo '
<a class="normal" href="commandes.php?mode=sendclient&amp;id=' . $r->id . '' . ((!empty($_GET['statut']))?'&amp;statut=' . $_GET['statut']:'') . '">envoyer bdc</a>';

Simon.

Share this post


: post
Share on other sites

Posted · Report post

J'ai fait cette modification et le lien BDC apparait partout.

Par contre je n'arrive pas a recevoir les bdc sur l'adresse mail renseignée dans email_commande de la table peel_sites

j'ai changé:

$C = fetch_assoc(query("SELECT email_commande FROM peel_sites WHERE id = '" . intval($_GET['id']) . "'"));

par:

$C= fetch_assoc(query("SELECT email_commande FROM peel_sites"));

Mais ça ne bouge pas... est-ce que le WHERE id = '" est encore nécaissaire ou puis-je par exemple au lieu de prendre l'adresse mail de email_commande prendre l'adresse mail d'un administrateur par ex (id_utilisateur) ? dans ce cas, comment puis-je renseigner cela dans cette formule de administrer/commandes.php:


case "sendeadmin" :

  include("modeles/haut.php");

  sendclient($_GET['id'], 'html');

  $C = fetch_assoc(query("SELECT email_commande FROM peel_sites"));

  echo "La commande " . intval($_GET['id']) . " a &#233;t&#233; envoy&#233;e &#224; " . $C['email'];

  $order = "o_timestamp";

  $sort = "DESC";

  affiche_liste_commandes(vn($_GET['start']), $order, $sort);

  break;

aussi la fonction

echo "La commande " . intval($_GET['id']) . " a &#233;t&#233; envoy&#233;e &#224; " . $C['email'];

n'affiche rien comme mail, donc à mon avis le lien email_commande ne fonctionne pas...?

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Il y a plusieurs chose :

- Vous devez utiliser $C['email_commande'] au lieu de $C['email'] pour pouvoir exploiter le résultat de la requête SQL.

- Il n'y a aucun envoi d'email sur l'adresse email_commande dans la partie case "sendeadmin" : . Vous pouvez utiliser la fonction send_mail_order_admin présente dans la 5.71, et la modifier en ajoutant un paramètre pour spécifier l'adresse de destination.

Simon.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Je suis très intéressé par ce post à savoir éditer un BDC pour éventuellement relancer les commandes en attente de paiement.

Je suis en 5.1.

J'ai ainsi effectuer les opérations suivantes :

Dans commande_liste.php j'ai ajouté

<td class="normal" align="center">

<a class="normal" href="<?=$_SERVER['PHP_SELF']?>sendclient&amp;id=<?=$r->id ?>">envoyer bdc</a>

</td>
de manière à avoir envoyer BDC via back office ensuite dans commande.php j'ai ajouté
case "sendclient" :


sendclient($_GET['id']);

  $C = mysql_fetch_array(mysql_query("SELECT email FROM peel_commandes WHERE id = '" . intval($_GET['id']) . "'"));

  echo "La commande " . intval($_GET['id']) . " a &#233;t&#233; envoy&#233;e &#224; " . $C['email'];

  $order = "o_timestamp";

  $sort = "DESC";

  affiche_liste_commandes(vn($_GET['start']), $order, $sort);

break;

J'ai ajouté la page commande.html pour avoir le lien lors de la réception du mail.

Après un essai, je clique sur le lien envoyer BDC et je n'ai rien "PAGE 404 NOT FOUND"

J'ai certainement oublié quelque chose mais quoi......

une petite aide serait la bienvenue.

D'avance merci.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Pouvez-vous me fournir le lien qui indique l'erreur "PAGE 404 NOT FOUND" svp?

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Dans votre lien administrer/commandes.phpsendclient&id=1139, il manque ?mode= après commandes.php.

Le bon lien devrait être :

administrer/commandes.php?mode=sendclient&id=1139

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir Simon,

J'ai bien ajouté le manquant (?mode=), mais j'ai quand même un message d'erreur

Fatal error: Call to undefined function: sendclient() dans le dossier commande.php.ligne 106.

 106 sendclient($_GET['id']);

  $C = mysql_fetch_array(mysql_query("SELECT email FROM peel_commandes WHERE id = '" . intval($_GET['id']) . "'"));

  echo "La commande " . intval($_GET['id']) . " a &#233;t&#233; envoy&#233;e &#224; " . $C['email'];

  $order = "o_timestamp";

  $sort = "DESC";

  affiche_liste_commandes(vn($_GET['start']), $order, $sort);

  break;

Ou est l'erreur ?

D'avance merci.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Slab utilise la version 5.71 de PEEL. La fonction sendclient() existe dans cette version, mais pas dans la vôtre (5.1).

Il existe une fonction similaire sur la 5.1, la fonction mail_proforma(&$id). Il faut dans un premier temps déplacer la fonction du fichier link_proforma vers lib/fonctions/fonctions.php.

Ensuite, vous pourrez utiliser cette fonction dans votre page, de cette façon:


case "sendclient" :

mail_proforma($_GET['id']);
$C = mysql_fetch_array(mysql_query("SELECT email FROM peel_commandes WHERE id = '" . intval($_GET['id']) . "'"));
echo "La commande " . intval($_GET['id']) . " a &#233;t&#233; envoy&#233;e &#224; " . $C['email'];
$order = "o_timestamp";
$sort = "DESC";
affiche_liste_commandes(vn($_GET['start']), $order, $sort);
break;
[/CODE]

Share this post


: post
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

Twitter Advisto ecommerce

Facebook PEEL Shopping