dolibarr-bugtrack
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dolibarr-bugtrack] [bug #18307] Module adhérent : impossible enregistre


From: luc tech
Subject: [Dolibarr-bugtrack] [bug #18307] Module adhérent : impossible enregistrer cotisation en même temps que nouvel adhérent
Date: Wed, 15 Nov 2006 17:40:47 +0000
User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

URL:
  <http://savannah.nongnu.org/bugs/?18307>

                 Summary: Module adhérent : impossible enregistrer
cotisation en même temps que nouvel adhérent
                 Project: Dolibarr
            Submitted by: luctech
            Submitted on: mercredi 15.11.2006 à 17:40
                Severity: 3 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
                 Release: None
        Operating System: None

    _______________________________________________________

Details:

A l'écran, l'erreur est :
Warning: Missing argument 3 for cotisation() in
D:\mesprogrammes\xampp\htdocs\doli\htdocs\adherents\adherent.class.php on
line 659

Warning: Missing argument 4 for cotisation() in
D:\mesprogrammes\xampp\htdocs\doli\htdocs\adherents\adherent.class.php on
line 659

Warning: Missing argument 5 for cotisation() in
D:\mesprogrammes\xampp\htdocs\doli\htdocs\adherents\adherent.class.php on
line 659

Warning: Missing argument 6 for cotisation() in
D:\mesprogrammes\xampp\htdocs\doli\htdocs\adherents\adherent.class.php on
line 659

Warning: Cannot modify header information - headers already sent by (output
started at
D:\mesprogrammes\xampp\htdocs\doli\htdocs\adherents\adherent.class.php:659)
in D:\mesprogrammes\xampp\htdocs\doli\htdocs\adherents\fiche.php on line 306

Il me semble que cela recouvre plusieurs bugs autour du cas "add" du fichier
"fiche.php" ($_POST["action"] == 'add' vers ligne 175). Sans doute un oubli
des impacts d'une évolution de la fonction "cotisation" dans ce cas.
- mauvais nombre de paramètres d'appel 
- paramètres liés à la cotisation non récupérés du formulaires (donc
non transmissibles à cotisation).

Cela revient à "uniformiser" le traitement de la cotisation dans le cas
"nouvel adhérent" avec le cas "renouvellement de cotisation d'un adhérent
existant".

Je pense donc qu'il faut ajouter :
$accountid=$_POST["accountid"];
$operation=$_POST["operation"];
$label=$_POST["label"];
$num_chq=$_POST["num_chq"];
juste avant l'appel à la fonction cotisation

Changer l'appel de la fonction :
//avant $crowid=$adh->cotisation($datecotisation, $cotisation);
devient :
$crowid=$adh->cotisation($datecotisation, $cotisation, $accountid,
$operation, $label, $num_chq);

Le traitement du code retour doit sans doute changer aussi. Quelque chose
comme :
if ($crowid > 0)
        {
            $db->commit();

                // Envoi mail
                if ($conf->global->ADHERENT_MAIL_COTIS)
                {
                   
$adh->send_an_email($adh->email,$conf->global->ADHERENT_MAIL_COTIS,$conf->global->ADHERENT_MAIL_COTIS_SUBJECT);
                }
        }
        else
        {
            $db->rollback();
            dolibarr_print_error($db,$adh->error);
        }


Et l'insertion dans le compte bancaire doit être supprimée car prise en
charge par la fonction "cotisation" :
/*debut suppr
                if ($global->conf->ADHERENT_BANK_USE)
                {
                    $dateop=strftime("%Y%m%d",time());
                    $amount=$cotisation;
                    $acct=new Account($db,$_POST["accountid"]);
                    $insertid=$acct->addline($dateop, $_POST["operation"],
$_POST["label"], $amount, $_POST["num_chq"], '', $user);
                    if ($insertid == '')
                    {
                        dolibarr_print_error($db);
                    }
                    else
                    {
                        // met a jour la table cotisation
                        $sql ="UPDATE ".MAIN_DB_PREFIX."cotisation";
                        $sql.=" SET fk_bank=$insertid WHERE rowid=$rowid ";
                        $result = $db->query($sql);
                        if ($result)
                        {
                            //Header("Location: fiche.php");
                        }
                        else
                        {
                            dolibarr_print_error($db);
                        }
                    }
                }   fin suppr */







    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?18307>

_______________________________________________
  Message posté via/par Savannah
  http://savannah.nongnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]