Procédure pour vider et remplir automatiquement un panier de lecteurs

Bonjour,
Je souhaite mettre en place une procédure pour vider et remplir automatiquement un panier avec les lecteurs ayant au moins un prêt en cours avec une date de retour dans X jours... Vous l'aurez compris, l'idée est de leur envoyer un mail de rappel.
Comment rédiger une telle procédure ?
Merci de votre aide.

Réponses

  • Bonjour,
    PMB permet de faire ça en quelques clics dans Circulation>relance
    Pas besoin de faire un panier vous pouvez envoyer vos mail directement (et plein d'autres choses comme par exemple la gestion de frais de relances etc.)
    Ne pas oubliez de paramétrer le mail de relance (administration>outil>paramètre) et de regarder aussi le module "gestion financière et relance multiple" (administration>module)

  • Bonjour,
    Je ne souhaite pas faire des relances, elles sont déjà opérationnelles, mais interviennent après retard.
    L'idée est d'utiliser le gestionnaire des tâches pour faire un mailing automatique de rappel dès que la date de retour approche.
    Merci tout de même d'avoir pris la peine de me répondre.
    Bonne journée,
  • octobre 2019 modifié
    Bonjour,

    Voici 2 versions de la requête demandée

    1) Une version "manuelle" pour tester
    C'est une procédure de sélection, à importer dans l'onglet Circulation.
    Elle permet de remplir un panier avec les lecteurs qui ont au moins un prêt en cours dont la date de retour est proche, mais ne met pas dans le panier les lecteurs qui sont en retard

    Cette version manuelle permet de choisir le panier dans lequel mettre les lecteurs ainsi que le nombre de jours (à saisir au clavier).

    Voici l'essentiel de la requête de l'onglet Circulation
    (sauvegardée sous le nom utf8-select-lecteurs-pret-date-retour-proche.sql)

    SELECT pret_idempr as object_id FROM pret WHERE DATEDIFF(pret_retour,current_date()) <= !!nbjours!! AND pret_retour > current_date()


    2) Une version "semi-automatique" à adapter
    C'est une procédure à importer et à exécuter dans l'onglet Administration.
    Elle permet de vider un panier préexistant, et ensuite de le remplir avec les lecteurs qui ont au moins un prêt en cours dont la date de retour est proche.

    Voici l'essentiel de la requête de l'onglet Administration
    (sauvegardée sous le nom utf8-admin-remplir-panier-lecteurs-pret-date-retour-proche.sql)

    DELETE FROM empr_caddie_content WHERE empr_caddie_id = (!!nom_panier!!);
    INSERT INTO empr_caddie_content SELECT (!!nom_panier!!), pret_idempr, null FROM pret WHERE DATEDIFF(pret_retour,current_date()) <= !!nbjours!! AND pret_retour > current_date() GROUP BY pret_idempr 

    N.B. Il s'agit en fait d(un ensemble de deux requêtes, séparées par un point-virgule
    La 1e requête permet de vider le panier (DELETE FROM), la 2e le remplit (INSERT INTO).


    Pour en revenir à la demande initiale
    Si on veut lancer ce processus de rappel de manière tout à fait automatique, il faut adapter la version 2 de cette requête.

    Exemple : si je suppose que la panier choisi ait le numéro identifiant 3, et que le nombre de jours soit 5, la requête devient

    DELETE FROM empr_caddie_content WHERE empr_caddie_id = 3;
    INSERT INTO empr_caddie_content SELECT 3, pret_idempr, null FROM pret WHERE DATEDIFF(pret_retour,current_date()) <= 5 AND pret_retour > current_date() GROUP BY pret_idempr 

    Les 2 requêtes sont disponibles dans le zip ci-joint

    Attention toutefois !
    Si un lecteur a 3 prêts en cours avec des dates de retour différentes : un prêt "OK" (pas de problème de date), un prêt en retard et un prêt pas encore en retard mais dont la date de retour est proche, le lecteur sera inséré dans le panier.
    Mais il est Impossible de spécifier de quel livre/CD ... il s'agit, ni quelle est la date de retour éventuellement problématique.

    Cordialement,
    Anne-Marie
Connectez-vous ou Inscrivez-vous pour répondre.