From 5d80ea0c72171d4c6be96eaa9086198d9756b062 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Sun, 5 Nov 2017 12:58:36 +0100
Subject: [PATCH] FIX #5956 add control for corporate/no corporate contact

---
 .../class/class_contacts_v2_Abstract.php      | 24 +++++++++++++------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/apps/maarch_entreprise/class/class_contacts_v2_Abstract.php b/apps/maarch_entreprise/class/class_contacts_v2_Abstract.php
index f8251416078..1f99332424d 100755
--- a/apps/maarch_entreprise/class/class_contacts_v2_Abstract.php
+++ b/apps/maarch_entreprise/class/class_contacts_v2_Abstract.php
@@ -41,8 +41,16 @@ abstract class contacts_v2_Abstract extends Database
         //  return the user information in sessions vars
         $func = new functions();
         $_SESSION['m_admin']['contact']['IS_CORPORATE_PERSON'] =
-            $_REQUEST['is_corporate'];
+        $_REQUEST['is_corporate']; 
+        $controlTarget = "SELECT id FROM contact_types WHERE contact_target = ? or contact_target = 'both' or contact_target is null"; 
+        $db = new Database(); 
         if ($_SESSION['m_admin']['contact']['IS_CORPORATE_PERSON'] == 'Y') {
+
+            $stmt = $db->query($controlTarget, array('corporate')); 
+            if($stmt->rowCount()==0){ 
+                $_SESSION['error'] = 'No contact type set for corporate contact.'; 
+            } 
+
             $_SESSION['m_admin']['contact']['SOCIETY'] = $func->wash(
                 $_REQUEST['society'], 'no', _STRUCTURE_ORGANISM . ' ', 'yes', 0, 255
             );
@@ -51,6 +59,12 @@ abstract class contacts_v2_Abstract extends Database
             $_SESSION['m_admin']['contact']['FUNCTION'] = '';
             $_SESSION['m_admin']['contact']['TITLE'] = '';
         } else {
+
+            $stmt = $db->query($controlTarget, array('no_corporate')); 
+            if($stmt->rowCount()==0){ 
+                $_SESSION['error'] = 'No contact type set for no corporate contact.'; 
+            } 
+            
             $_SESSION['m_admin']['contact']['LASTNAME'] = $func->wash(
                 $_REQUEST['lastname'], 'no', _LASTNAME, 'yes', 0, 255
             );
@@ -525,13 +539,11 @@ abstract class contacts_v2_Abstract extends Database
                     </tr>
                     <?php
                 }?>
-                    <script type="text/javascript"> </script>
                     <tr id="contact_types_tr" >
                         <td><?php echo _CONTACT_TYPE;?> :</td>
                         <td class="indexing_field">
                             <select name="contact_type" id="contact_type" 
-                            
-                                <?php if($mode == "add"){                                     
+                                <?php if($mode == "add"){ 
                                     ?> onchange="getContacts('<?php echo $_SESSION['config']['businessappurl'];?>index.php?display=true&dir=my_contacts&page=getContacts', this.options[this.selectedIndex].value, 'view');" <?php 
                                 } ?>
                                 >
@@ -670,12 +682,10 @@ abstract class contacts_v2_Abstract extends Database
                     } else {
                         setContactType('corporate','');
                         $j('#corpo_yes').prop('checked',true);
-                        $j('#corpo_yes').click();;
+                        $j('#corpo_yes').click();
                     }
 
-                    
                 </script>
-                
 
             <?php
                 if($mode=="up" && $admin)
-- 
GitLab