/[dolibarr]/dolibarr/htdocs/contrat/contrat.class.php
ViewVC logotype

Diff of /dolibarr/htdocs/contrat/contrat.class.php

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

revision 1.40 by eldy, Thu Sep 1 23:17:42 2005 UTC revision 1.41 by eldy, Sat Sep 3 00:09:55 2005 UTC
# Line 690  class Contrat Line 690  class Contrat
690              return -1;              return -1;
691          }          }
692      }      }
693    
694        /* gestion des contacts d'un contrat */
695    
696            /**
697             *
698             *      \brief      Ajoute un contact associé au contrat
699         *      \param      fk_socpeople    Id du contact a ajouter.
700         *      \param      nature          description du contact
701         *      \return     int             <0 si erreur, >0 si ok
702         */
703             function add_contact($fk_socpeople, $nature)
704             {
705            
706            if ($fk_socpeople <= 0
707                    || $this->societe->contact_get_email($fk_socpeople) == "" )
708            {
709                            // le contact n'existe pas ou est invalide
710                            return -1;
711            }
712            
713            $lNature = addslashes(trim($nature));
714            $datecreate = mktime();
715            
716            // Insertion dans la base
717            $sql = "INSERT INTO ".MAIN_DB_PREFIX."contrat_contact";
718            $sql.= " (fk_contrat, fk_socpeople, datecreate, statut, nature) ";
719            $sql.= " VALUES ($this->id, $fk_socpeople , " ;
720                    $sql.= $this->db->pdate(time());
721                    $sql.= ", 5, '". $lNature . "' ";
722            $sql.= ");";
723            
724            // Retour
725            if ( $this->db->query($sql) )
726            {
727                return 0;
728            }
729            else
730            {
731                dolibarr_print_error($this->db);
732                return -1;
733            }
734             }    
735            
736             /**
737             *
738             *      \brief      Misea jour du contact associé au contrat
739         *      \param      rowid    La reference du lien contant contact.
740         *          \param          statut  Le nouveau statut
741         *      \param      nature          description du contact
742         *      \return     int             <0 si erreur, >0 si ok
743         */
744             function update_contact($rowid, $statut,  $nature)
745             {
746              
747            $lNature = addslashes(trim($nature));
748            
749            // Insertion dans la base
750            $sql = "UPDATE ".MAIN_DB_PREFIX."contrat_contact set ";
751            $sql.= " statut = $statut ,";
752            $sql.= " nature = '" . $lNature ."'";
753            $sql.= " where rowid = $rowid ;";
754            // Retour
755            if (  $this->db->query($sql) )
756            {
757                return 0;
758            }
759            else
760            {
761                dolibarr_print_error($this->db);
762                return -1;
763            }
764             }    
765            
766            /**
767         *    \brief      Supprime une ligne de contact de contrat
768         *    \param      idligne           La reference du contact
769         *    \return     statur     0 OK, -1 erreur
770         */
771            function delete_contact($idligne)
772            {
773    
774          $sql = "DELETE FROM ".MAIN_DB_PREFIX."contrat_contact WHERE rowid =".$idligne;
775          
776          if ($this->db->query($sql) ) {
777            
778              return 0;
779            }
780          else
781            {
782              return 1;
783            }
784        }
785                            
786        /**
787         *    \brief      Récupère les lignes de contact du contrat
788         *    \param      statut      Statut des lignes detail à récupérer
789         *    \return     array       Tableau des rowid des contacts
790         */
791        function liste_contact($statut=-1)
792        {
793            $tab=array();
794        
795            $sql = "SELECT cd.rowid";
796            $sql.= " FROM ".MAIN_DB_PREFIX."contrat_contact cd , ".MAIN_DB_PREFIX."socpeople sp";
797            $sql.= " WHERE fk_contrat =".$this->id;
798            $sql.= " and cd.fk_socpeople = sp.idp";
799            if ($statut >= 0) $sql.= " AND statut = '$statut'";
800            $sql.=" order by sp.name asc ;";
801            
802            $resql=$this->db->query($sql);
803            if ($resql)
804            {
805                $num=$this->db->num_rows($resql);
806                $i=0;
807                while ($i < $num)
808                {
809                    $obj = $this->db->fetch_object($resql);
810                    $tab[$i]=$obj->rowid;
811                    $i++;
812                }
813                return $tab;
814            }
815            else
816            {
817                $this->error=$this->db->error();
818                return -1;
819            }
820        }
821    
822             /**
823         *    \brief      Le détail d'un contact
824         *    \param      rowid      L'identifiant du contant de contrat
825         *    \return     object     L'objet de construit par DoliDb.fetch_object
826         */
827            function detail_contact($rowid)
828        {
829      
830            $sql = "SELECT datecreate, statut, nature, fk_socpeople";
831            $sql.= " FROM ".MAIN_DB_PREFIX."contrat_contact";
832            $sql.= " WHERE rowid =".$rowid.";";
833    
834            $resql=$this->db->query($sql);
835            if ($resql)
836            {
837                 $obj = $this->db->fetch_object($result);
838      
839                return $obj;
840            }
841            else
842            {
843                $this->error=$this->db->error();
844                return null;
845            }
846        }  
847    
848             /**
849         *    \brief      La liste des valeurs possibles de nature de contats
850         *    
851         *    \return     array   La liste des natures
852         */
853            function liste_nature_contact()
854        {
855                    $tab = array();
856                    
857            $sql = "SELECT distinct nature";
858            $sql.= " FROM ".MAIN_DB_PREFIX."contrat_contact";
859            $sql.= " order by nature;";
860    
861            $resql=$this->db->query($sql);
862            if ($resql)
863            {
864                $num=$this->db->num_rows($result);
865                $i=0;
866                while ($i < $num)
867                {
868                    $obj = $this->db->fetch_object($result);
869                    $tab[$i]=$obj->nature;
870                    $i++;
871                }
872                return $tab;
873            }
874            else
875            {
876                $this->error=$this->db->error();
877                return null;
878            }
879        }                                  
880            
881  }  }
882  ?>  ?>

Legend:
Removed from v.1.40  
changed lines
  Added in v.1.41

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