13.5.2.1 Dir::preInsertDocument()

La méthode preInsertDocument est appelée par la méthode insertDocument ou insertMultipleDocuments avant l'insertion du document dans le Dossier (si l'argument noprepost est égal à false).

13.5.2.1.1 Description

string preInsertDocument ( string $docid,
                             bool $multiple = false )

13.5.2.1.1.1 Avertissements

Aucun.

13.5.2.1.2 Liste des paramètres

(string) docid
L'identifiant (identifiant numérique ou nom logique) du document qui va être inséré dans le Dossier.
(bool) multiple

multiple est positionné par la méthode insertMultipleDocuments pour indiquer que preInsertDoucment est appelé dans le cadre de l'insertion de plusieurs documents.

Valeurs possibles :

  • true : Indique que le document inséré l'est dans le cadre de l'insertion de plusieurs documents.
  • false : Indique qu'un seul document est inséré dans le dossier.

13.5.2.1.3 Valeur de retour

La méthode retourne une chaîne vide s'il n'y a pas d'erreurs, ou une chaîne non- vide contenant le message d'erreur dans le cas contraire.

13.5.2.1.4 Erreurs / Exceptions

Si la méthode preInsertDocument retourne une chaîne non-vide, alors l'insertion n'est pas faite, et la méthode insertDocument retourne avec le message retourné par preInsertDocument.

13.5.2.1.5 Historique

13.5.2.1.5.1 Release 3.2.5

La méthode preInsertDocument remplace la méthode précédemment nommée preInsertDoc.

L'utilisation de preInsertDoc est obsolète depuis la version 3.2.5 de dynacase-core.

13.5.2.1.6 Exemples

namespace Facturation;
 
class ArchiveFacture extends \Dcp\Family\Dir {
    public function preInsertDocument($docId, $multiple = false) {
        $err=parent::preInsertDocument($docId, $multiple);
        if (empty($err)) {
            $facture = new_Doc('', $docId, true); // prendre la dernière révision
            if ($facture->isAlive()) {
                /*
                 * Seule les factures payés peuvent
                 * être insérées dans ce dossier.
                 */
                if ($facture->isPaid()) {
                    return sprintf(
                        "La facture '%s' ne peut être archivée car elle n'est pas payée.",
                        $facture->getTitle()
                    );
                }
            }
        }
        return $err;
    }
    protected function isPaid() {
        // Test de facturation
    }
}

13.5.2.1.7 Notes

Aucune.

13.5.2.1.8 Voir aussi

×
nouveauté