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 |
?> |
?> |