/[dolibarr]/dolibarr/htdocs/bon-prelevement.class.php
ViewVC logotype

Diff of /dolibarr/htdocs/bon-prelevement.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.16 by rodolphe, Mon Jul 25 13:22:29 2005 UTC revision 1.17 by rodolphe, Wed Aug 3 15:20:13 2005 UTC
# Line 42  class BonPrelevement Line 42  class BonPrelevement
42    var $emetteur_numero_compte;    var $emetteur_numero_compte;
43    var $emetteur_code_etablissement;    var $emetteur_code_etablissement;
44    var $total;    var $total;
45      var $_fetched;
46    
47    function BonPrelevement($DB, $filename='')    function BonPrelevement($DB, $filename='')
48      {      {
# Line 69  class BonPrelevement Line 70  class BonPrelevement
70    
71        $this->methodes_trans[0] = "Internet";        $this->methodes_trans[0] = "Internet";
72    
73          $this->_fetched = 0;
74    
75        return 1;        return 1;
76      }      }
77    /*    /*
# Line 181  class BonPrelevement Line 184  class BonPrelevement
184     *     *
185     *     *
186     */     */
187      function ReadError($error)
188      {
189        $errors = array();
190    
191        $errors[1027] = "Date invalide";
192    
193        return $errors[abs($error)];
194      }
195      /*
196       *
197       *
198       */
199    function Fetch($rowid)    function Fetch($rowid)
200    {    {
201      $sql = "SELECT p.rowid, p.ref, p.amount, p.note, p.credite";      $sql = "SELECT p.rowid, p.ref, p.amount, p.note, p.credite";
# Line 217  class BonPrelevement Line 232  class BonPrelevement
232    
233              $this->statut             = $obj->statut;              $this->statut             = $obj->statut;
234    
235                $this->_fetched = 1;
236    
237              return 0;              return 0;
238            }            }
239          else          else
# Line 322  class BonPrelevement Line 339  class BonPrelevement
339    {    {
340      $error == 0;      $error == 0;
341    
342      if ($this->db->begin())      if ($this->_fetched == 1)
343        {        {
344          $sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_bons ";          if ($date >= $this->date_trans)
         $sql .= " SET fk_user_credit = ".$user->id;  
         $sql .= " , statut = 2";  
         $sql .= " , date_credit='".$this->db->idate($date)."'";  
         $sql .= " WHERE rowid=".$this->id;  
         $sql .= " AND statut = 1";  
   
         if (! $this->db->query($sql))  
           {  
             dolibarr_syslog("BonPrelevement::set_infocredit Erreur 1");  
             $error++;  
           }  
   
         /*  
          * Fin de la procédure  
          *  
          */  
         if ($error == 0)  
345            {            {
346              $this->db->commit();              if ($this->db->begin())
347              return 0;                {
348                    $sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_bons ";
349                    $sql .= " SET fk_user_credit = ".$user->id;
350                    $sql .= " , statut = 2";
351                    $sql .= " , date_credit='".$this->db->idate($date)."'";
352                    $sql .= " WHERE rowid=".$this->id;
353                    $sql .= " AND statut = 1";
354                    
355                    if ($this->db->query($sql))
356                      {
357                        $subject = "Crédit prélévement ".$this->ref." à la banque";
358                        $message = "Le bon de prélèvement ".$this->ref;
359                        $message .= " a été crédité par la banque ";
360                        $message .="le ".strftime("%A %e %B %Y", $date);
361                        
362                        $this->Notify($user,"cr", $subject, $message);
363                      }
364                    else
365                      {
366                        dolibarr_syslog("BonPrelevement::set_infocredit Erreur 1");
367                        $error++;
368                      }
369                    
370                    /*
371                     * Fin de la procédure
372                     *
373                     */
374                    if ($error == 0)
375                      {
376                        $this->db->commit();
377                        return 0;
378                      }
379                    else
380                      {
381                        $this->db->rollback();
382                        dolibarr_syslog("bon-prelevment::set_infocredit ROLLBACK ");                    
383                        return -1;
384                      }
385                  }
386                else
387                  {
388                    dolibarr_syslog("bon-prelevement::set_infocredit Ouverture transaction SQL impossible ");
389                    return -1025;
390                  }
391            }            }
392          else          else
393            {            {
394                dolibarr_syslog("bon-prelevment::set_infocredit 1027 Date de credit < Date de trans ");        
395              $this->db->rollback();              return -1027;
             dolibarr_syslog("bon-prelevment::set_infotrans ROLLBACK ");  
   
             return -1;  
396            }                        }            
397        }        }
398      else      else
399        {        {
400                    return -1026;
         dolibarr_syslog("bon-prelevement::set_infocredit Ouverture transaction SQL impossible ");  
         return -2;  
401        }        }
402    }    }
403    /**    /**
# Line 369  class BonPrelevement Line 407  class BonPrelevement
407    function set_infotrans($user, $date, $method)    function set_infotrans($user, $date, $method)
408    {    {
409      $error == 0;      $error == 0;
410        dolibarr_syslog("bon-prelevement::set_infotrans Start",LOG_INFO);
411      if ($this->db->begin())      if ($this->db->begin())
412        {        {
413            $sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_bons ";
         $sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_bons ";  
414          $sql .= " SET fk_user_trans = ".$user->id;          $sql .= " SET fk_user_trans = ".$user->id;
415          $sql .= " , date_trans='".$this->db->idate($date)."'";          $sql .= " , date_trans='".$this->db->idate($date)."'";
416          $sql .= " , method_trans=".$method;          $sql .= " , method_trans=".$method;
# Line 383  class BonPrelevement Line 420  class BonPrelevement
420                
421          if ($this->db->query($sql))          if ($this->db->query($sql))
422            {            {
423              // Appel des triggers              $this->method_trans = $method;
424              include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");  
425              $interface = new Interfaces($this->db);              $subject = "Transmission du prélévement ".$this->ref." à la banque";
426              $ret=$interface->run_triggers('STANDINGORDER_TRANS',$this,$user,$lang,$conf);              $message = "Le bon de prélèvement ".$this->ref;
427              // Fin appel triggers              $message .= " a été transmis à la banque par ".$user->prenom. " ".$user->nom;
428                $message .= "\n\n";
429                $message .= "Méthode : ".$this->methodes_trans[$this->method_trans];
430                $message .="\nLe :".strftime("%a %e %B %Y", $date);
431    
432    
433                $this->Notify($user,"tr", $subject, $message);
434            }            }
435          else          else
436            {            {
437              dolibarr_syslog("bon-prelevement::set_infotrans Erreur 1");              dolibarr_syslog("bon-prelevement::set_infotrans Erreur 1", LOG_ERR);
438              dolibarr_syslog($this->db->error());              dolibarr_syslog($this->db->error());
439              $error++;              $error++;
440            }            }
# Line 408  class BonPrelevement Line 451  class BonPrelevement
451          else          else
452            {            {
453              $this->db->rollback();              $this->db->rollback();
454              dolibarr_syslog("BonPrelevement::set_infotrans ROLLBACK ");              dolibarr_syslog("BonPrelevement::set_infotrans ROLLBACK", LOG_ERR);
455    
456              return -1;              return -1;
457            }                        }            
# Line 416  class BonPrelevement Line 459  class BonPrelevement
459      else      else
460        {        {
461                    
462          dolibarr_syslog("BonPrelevement::set_infotrans Ouverture transaction SQL impossible ");          dolibarr_syslog("BonPrelevement::set_infotrans Ouverture transaction SQL impossible", LOG_CRIT);
463          return -2;          return -2;
464        }        }
465    }    }
466      /*
467       *
468       *
469       */
470      function Notify($user, $action, $subject, $message)
471      {
472        $message .= "\n\n--\n";
473        $message .= "Ceci est un message automatique envoyé par Dolibarr";
474    
475    
476        $sql = "SELECT u.name, u.firstname, u.email";
477        $sql .= " FROM ".MAIN_DB_PREFIX."user as u";
478        $sql .= " , ".MAIN_DB_PREFIX."prelevement_notifications as pn";
479        $sql .= " WHERE pn.action ='".$action."'";
480        $sql .= " AND u.rowid = pn.fk_user;";
481    
482        $resql = $this->db->query($sql);
483        if ($resql)
484          {
485            $num = $this->db->num_rows($resql);
486            $i = 0;
487            while ($i < $num)
488              {
489                $obj = $this->db->fetch_object($resql);
490                
491                require_once(DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php");
492    
493    
494                $sendto = $obj->firstname . " " .$obj->name . "<".$obj->email.">";
495                $from = $user->prenom . " " .$user->nom . "<".$user->email.">";
496                
497                $mailfile = new DolibarrMail($subject,
498                                             $sendto,
499                                             $from,
500                                             $message);
501                $mailfile->sendfile();
502                
503                
504    
505                $i++;
506              }
507            $this->db->free($resql);
508          }
509      }
510    
511    /**    /**
512     *    \brief      Recupére la liste des factures concernées     *    \brief      Recupére la liste des factures concernées
# Line 916  class BonPrelevement Line 1003  class BonPrelevement
1003            }            }
1004        }          }  
1005    }    }
1006        /*
1007         *
1008       *
1009       */  
1010      function DeleteNotificationById($rowid)
1011      {
1012        $result = 0;
1013    
1014        $sql = "DELETE FROM ".MAIN_DB_PREFIX."prelevement_notifications ";
1015        $sql .= " WHERE rowid = '".$rowid."';";
1016    
1017        if ($this->db->query($sql))
1018          {
1019            return 0;
1020          }
1021        else
1022          {
1023            return -1;
1024          }
1025      }
1026      /*
1027       *
1028       */
1029      function DeleteNotification($user, $action)
1030      {
1031        $result = 0;
1032    
1033        $sql = "DELETE FROM ".MAIN_DB_PREFIX."prelevement_notifications ";
1034        $sql .= " WHERE fk_user = '".$user."' AND action = '".$action."';";
1035    
1036        if ($this->db->query($sql))
1037          {
1038            return 0;
1039          }
1040        else
1041          {
1042            return -1;
1043          }
1044      }
1045      /*
1046       *
1047       *
1048       */
1049      function AddNotification($user, $action)
1050      {
1051        $result = 0;
1052    
1053        if ($this->DeleteNotification($user, $action) == 0)
1054          {
1055    
1056            $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_notifications ";
1057            $sql .= " (fk_user, action )";
1058            $sql .= " VALUES ('".$user."','".$action."');";
1059            
1060            if ($this->db->query($sql))
1061              {      
1062                $result = 0;        
1063              }
1064            else
1065              {
1066                $result = -1;
1067                dolibarr_syslog("BonPrelevement::AddNotification Erreur $result");
1068              }
1069          }
1070        
1071        return $result;
1072      }
1073    /**    /**
1074     * Génération d'un bon de prélèvement     * Génération d'un bon de prélèvement
1075     *     *

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26